bitbyte-blog

my little corner on the web
Log | Files | Refs | LICENSE

9a1c0a7519ec21e258eeb865c2852abe7fc17f1c.html.html.html (4970517B)


      1 <!DOCTYPE html>
      2 <html>
      3 <head>
      4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      5 <meta name="viewport" content="width=device-width, initial-scale=1" />
      6 <title>9a1c0a7519ec21e258eeb865c2852abe7fc17f1c.html.html - bitbyte-blog - Unnamed repository; edit this file &#39;description&#39; to name the repository.
      7 </title>
      8 <link rel="icon" type="image/png" href="../../../../../../favicon.png" />
      9 <link rel="alternate" type="application/atom+xml" title="bitbyte-blog Atom Feed" href="../../../../../../atom.xml" />
     10 <link rel="alternate" type="application/atom+xml" title="bitbyte-blog Atom Feed (tags)" href="../../../../../../tags.xml" />
     11 <link rel="stylesheet" type="text/css" href="../../../../../../style.css" />
     12 </head>
     13 <body>
     14 <table><tr><td><a href="../../../../../../../"><img src="../../../../../../logo.png" alt="" width="32" height="32" /></a></td><td><h1>bitbyte-blog</h1><span class="desc">Unnamed repository; edit this file &#39;description&#39; to name the repository.
     15 </span></td></tr><tr><td></td><td>
     16 <a href="../../../../../../log.html">Log</a> | <a href="../../../../../../files.html">Files</a> | <a href="../../../../../../refs.html">Refs</a> | <a href="../../../../../../file/LICENSE.html">LICENSE</a></td></tr></table>
     17 <hr/>
     18 <div id="content">
     19 <p> 9a1c0a7519ec21e258eeb865c2852abe7fc17f1c.html.html (3740182B)</p><hr/><pre id="blob">
     20 <a href="#l1" class="line" id="l1">      1</a> &lt;!DOCTYPE html&gt;
     21 <a href="#l2" class="line" id="l2">      2</a> &lt;html&gt;
     22 <a href="#l3" class="line" id="l3">      3</a> &lt;head&gt;
     23 <a href="#l4" class="line" id="l4">      4</a> &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
     24 <a href="#l5" class="line" id="l5">      5</a> &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot; /&gt;
     25 <a href="#l6" class="line" id="l6">      6</a> &lt;title&gt;9a1c0a7519ec21e258eeb865c2852abe7fc17f1c.html - bitbyte-blog - Unnamed repository; edit this file &amp;#39;description&amp;#39; to name the repository.
     26 <a href="#l7" class="line" id="l7">      7</a> &lt;/title&gt;
     27 <a href="#l8" class="line" id="l8">      8</a> &lt;link rel=&quot;icon&quot; type=&quot;image/png&quot; href=&quot;../../../../favicon.png&quot; /&gt;
     28 <a href="#l9" class="line" id="l9">      9</a> &lt;link rel=&quot;alternate&quot; type=&quot;application/atom+xml&quot; title=&quot;bitbyte-blog Atom Feed&quot; href=&quot;../../../../atom.xml&quot; /&gt;
     29 <a href="#l10" class="line" id="l10">     10</a> &lt;link rel=&quot;alternate&quot; type=&quot;application/atom+xml&quot; title=&quot;bitbyte-blog Atom Feed (tags)&quot; href=&quot;../../../../tags.xml&quot; /&gt;
     30 <a href="#l11" class="line" id="l11">     11</a> &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;../../../../style.css&quot; /&gt;
     31 <a href="#l12" class="line" id="l12">     12</a> &lt;/head&gt;
     32 <a href="#l13" class="line" id="l13">     13</a> &lt;body&gt;
     33 <a href="#l14" class="line" id="l14">     14</a> &lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href=&quot;../../../../../&quot;&gt;&lt;img src=&quot;../../../../logo.png&quot; alt=&quot;&quot; width=&quot;32&quot; height=&quot;32&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;h1&gt;bitbyte-blog&lt;/h1&gt;&lt;span class=&quot;desc&quot;&gt;Unnamed repository; edit this file &amp;#39;description&amp;#39; to name the repository.
     34 <a href="#l15" class="line" id="l15">     15</a> &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;
     35 <a href="#l16" class="line" id="l16">     16</a> &lt;a href=&quot;../../../../log.html&quot;&gt;Log&lt;/a&gt; | &lt;a href=&quot;../../../../files.html&quot;&gt;Files&lt;/a&gt; | &lt;a href=&quot;../../../../refs.html&quot;&gt;Refs&lt;/a&gt; | &lt;a href=&quot;../../../../file/LICENSE.html&quot;&gt;LICENSE&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
     36 <a href="#l17" class="line" id="l17">     17</a> &lt;hr/&gt;
     37 <a href="#l18" class="line" id="l18">     18</a> &lt;div id=&quot;content&quot;&gt;
     38 <a href="#l19" class="line" id="l19">     19</a> &lt;p&gt; 9a1c0a7519ec21e258eeb865c2852abe7fc17f1c.html (2812828B)&lt;/p&gt;&lt;hr/&gt;&lt;pre id=&quot;blob&quot;&gt;
     39 <a href="#l20" class="line" id="l20">     20</a> &lt;a href=&quot;#l1&quot; class=&quot;line&quot; id=&quot;l1&quot;&gt;      1&lt;/a&gt; &amp;lt;!DOCTYPE html&amp;gt;
     40 <a href="#l21" class="line" id="l21">     21</a> &lt;a href=&quot;#l2&quot; class=&quot;line&quot; id=&quot;l2&quot;&gt;      2&lt;/a&gt; &amp;lt;html&amp;gt;
     41 <a href="#l22" class="line" id="l22">     22</a> &lt;a href=&quot;#l3&quot; class=&quot;line&quot; id=&quot;l3&quot;&gt;      3&lt;/a&gt; &amp;lt;head&amp;gt;
     42 <a href="#l23" class="line" id="l23">     23</a> &lt;a href=&quot;#l4&quot; class=&quot;line&quot; id=&quot;l4&quot;&gt;      4&lt;/a&gt; &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;../styles/log.css&amp;quot; /&amp;gt;
     43 <a href="#l24" class="line" id="l24">     24</a> &lt;a href=&quot;#l5&quot; class=&quot;line&quot; id=&quot;l5&quot;&gt;      5&lt;/a&gt; &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=UTF-8&amp;quot; /&amp;gt;
     44 <a href="#l25" class="line" id="l25">     25</a> &lt;a href=&quot;#l6&quot; class=&quot;line&quot; id=&quot;l6&quot;&gt;      6&lt;/a&gt; &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1&amp;quot; /&amp;gt;
     45 <a href="#l26" class="line" id="l26">     26</a> &lt;a href=&quot;#l7&quot; class=&quot;line&quot; id=&quot;l7&quot;&gt;      7&lt;/a&gt; &amp;lt;title&amp;gt;Add p5 and r3f - bitbyte-blog - Unnamed repository; edit this file &amp;amp;#39;description&amp;amp;#39; to name the repository.
     46 <a href="#l27" class="line" id="l27">     27</a> &lt;a href=&quot;#l8&quot; class=&quot;line&quot; id=&quot;l8&quot;&gt;      8&lt;/a&gt; &amp;lt;/title&amp;gt;
     47 <a href="#l28" class="line" id="l28">     28</a> &lt;a href=&quot;#l9&quot; class=&quot;line&quot; id=&quot;l9&quot;&gt;      9&lt;/a&gt; &amp;lt;link rel=&amp;quot;icon&amp;quot; type=&amp;quot;image/png&amp;quot; href=&amp;quot;../favicon.png&amp;quot; /&amp;gt;
     48 <a href="#l29" class="line" id="l29">     29</a> &lt;a href=&quot;#l10&quot; class=&quot;line&quot; id=&quot;l10&quot;&gt;     10&lt;/a&gt; &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;bitbyte-blog Atom Feed&amp;quot; href=&amp;quot;../atom.xml&amp;quot; /&amp;gt;
     49 <a href="#l30" class="line" id="l30">     30</a> &lt;a href=&quot;#l11&quot; class=&quot;line&quot; id=&quot;l11&quot;&gt;     11&lt;/a&gt; &amp;lt;link rel=&amp;quot;alternate&amp;quot; type=&amp;quot;application/atom+xml&amp;quot; title=&amp;quot;bitbyte-blog Atom Feed (tags)&amp;quot; href=&amp;quot;../tags.xml&amp;quot; /&amp;gt;
     50 <a href="#l31" class="line" id="l31">     31</a> &lt;a href=&quot;#l12&quot; class=&quot;line&quot; id=&quot;l12&quot;&gt;     12&lt;/a&gt; &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;../style.css&amp;quot; /&amp;gt;
     51 <a href="#l32" class="line" id="l32">     32</a> &lt;a href=&quot;#l13&quot; class=&quot;line&quot; id=&quot;l13&quot;&gt;     13&lt;/a&gt; &amp;lt;/head&amp;gt;
     52 <a href="#l33" class="line" id="l33">     33</a> &lt;a href=&quot;#l14&quot; class=&quot;line&quot; id=&quot;l14&quot;&gt;     14&lt;/a&gt; &amp;lt;body&amp;gt;
     53 <a href="#l34" class="line" id="l34">     34</a> &lt;a href=&quot;#l15&quot; class=&quot;line&quot; id=&quot;l15&quot;&gt;     15&lt;/a&gt; &amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;../../&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;../logo.png&amp;quot; alt=&amp;quot;&amp;quot; width=&amp;quot;32&amp;quot; height=&amp;quot;32&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;h1&amp;gt;bitbyte-blog&amp;lt;/h1&amp;gt;&amp;lt;span class=&amp;quot;desc&amp;quot;&amp;gt;Unnamed repository; edit this file &amp;amp;#39;description&amp;amp;#39; to name the repository.
     54 <a href="#l35" class="line" id="l35">     35</a> &lt;a href=&quot;#l16&quot; class=&quot;line&quot; id=&quot;l16&quot;&gt;     16&lt;/a&gt; &amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;
     55 <a href="#l36" class="line" id="l36">     36</a> &lt;a href=&quot;#l17&quot; class=&quot;line&quot; id=&quot;l17&quot;&gt;     17&lt;/a&gt; &amp;lt;a href=&amp;quot;../log.html&amp;quot;&amp;gt;Log&amp;lt;/a&amp;gt; | &amp;lt;a href=&amp;quot;../files.html&amp;quot;&amp;gt;Files&amp;lt;/a&amp;gt; | &amp;lt;a href=&amp;quot;../refs.html&amp;quot;&amp;gt;Refs&amp;lt;/a&amp;gt; | &amp;lt;a href=&amp;quot;../file/LICENSE.html&amp;quot;&amp;gt;LICENSE&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;
     56 <a href="#l37" class="line" id="l37">     37</a> &lt;a href=&quot;#l18&quot; class=&quot;line&quot; id=&quot;l18&quot;&gt;     18&lt;/a&gt; &amp;lt;hr/&amp;gt;
     57 <a href="#l38" class="line" id="l38">     38</a> &lt;a href=&quot;#l19&quot; class=&quot;line&quot; id=&quot;l19&quot;&gt;     19&lt;/a&gt; &amp;lt;div id=&amp;quot;content&amp;quot;&amp;gt;
     58 <a href="#l39" class="line" id="l39">     39</a> &lt;a href=&quot;#l20&quot; class=&quot;line&quot; id=&quot;l20&quot;&gt;     20&lt;/a&gt; &amp;lt;pre&amp;gt;&amp;lt;b&amp;gt;commit&amp;lt;/b&amp;gt; &amp;lt;a href=&amp;quot;../commit/9a1c0a7519ec21e258eeb865c2852abe7fc17f1c.html&amp;quot;&amp;gt;9a1c0a7519ec21e258eeb865c2852abe7fc17f1c&amp;lt;/a&amp;gt;
     59 <a href="#l40" class="line" id="l40">     40</a> &lt;a href=&quot;#l21&quot; class=&quot;line&quot; id=&quot;l21&quot;&gt;     21&lt;/a&gt; &amp;lt;b&amp;gt;parent&amp;lt;/b&amp;gt; &amp;lt;a href=&amp;quot;../commit/cc22d55209347ef3409b2870e95390d427d7d462.html&amp;quot;&amp;gt;cc22d55209347ef3409b2870e95390d427d7d462&amp;lt;/a&amp;gt;
     60 <a href="#l41" class="line" id="l41">     41</a> &lt;a href=&quot;#l22&quot; class=&quot;line&quot; id=&quot;l22&quot;&gt;     22&lt;/a&gt; &amp;lt;b&amp;gt;Author:&amp;lt;/b&amp;gt; hectoraldairah &amp;amp;lt;&amp;lt;a href=&amp;quot;mailto:hectoraldairah@protonmail.com&amp;quot;&amp;gt;hectoraldairah@protonmail.com&amp;lt;/a&amp;gt;&amp;amp;gt;
     61 <a href="#l42" class="line" id="l42">     42</a> &lt;a href=&quot;#l23&quot; class=&quot;line&quot; id=&quot;l23&quot;&gt;     23&lt;/a&gt; &amp;lt;b&amp;gt;Date:&amp;lt;/b&amp;gt;   Mon,  4 Aug 2025 16:44:51 -0600
     62 <a href="#l43" class="line" id="l43">     43</a> &lt;a href=&quot;#l24&quot; class=&quot;line&quot; id=&quot;l24&quot;&gt;     24&lt;/a&gt; 
     63 <a href="#l44" class="line" id="l44">     44</a> &lt;a href=&quot;#l25&quot; class=&quot;line&quot; id=&quot;l25&quot;&gt;     25&lt;/a&gt; Add p5 and r3f
     64 <a href="#l45" class="line" id="l45">     45</a> &lt;a href=&quot;#l26&quot; class=&quot;line&quot; id=&quot;l26&quot;&gt;     26&lt;/a&gt; 
     65 <a href="#l46" class="line" id="l46">     46</a> &lt;a href=&quot;#l27&quot; class=&quot;line&quot; id=&quot;l27&quot;&gt;     27&lt;/a&gt; &amp;lt;b&amp;gt;Diffstat:&amp;lt;/b&amp;gt;
     66 <a href="#l47" class="line" id="l47">     47</a> &lt;a href=&quot;#l28&quot; class=&quot;line&quot; id=&quot;l28&quot;&gt;     28&lt;/a&gt; &amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;M&amp;quot;&amp;gt;M&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;#h0&amp;quot;&amp;gt;.eleventy.js&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; | &amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;num&amp;quot;&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span class=&amp;quot;i&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;d&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
     67 <a href="#l48" class="line" id="l48">     48</a> &lt;a href=&quot;#l29&quot; class=&quot;line&quot; id=&quot;l29&quot;&gt;     29&lt;/a&gt; &amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;M&amp;quot;&amp;gt;M&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;#h1&amp;quot;&amp;gt;package-lock.json&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; | &amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;num&amp;quot;&amp;gt;809&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span class=&amp;quot;i&amp;quot;&amp;gt;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;d&amp;quot;&amp;gt;-&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
     68 <a href="#l49" class="line" id="l49">     49</a> &lt;a href=&quot;#l30&quot; class=&quot;line&quot; id=&quot;l30&quot;&gt;     30&lt;/a&gt; &amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;M&amp;quot;&amp;gt;M&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;#h2&amp;quot;&amp;gt;package.json&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; | &amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;num&amp;quot;&amp;gt;12&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span class=&amp;quot;i&amp;quot;&amp;gt;++++++++++&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;d&amp;quot;&amp;gt;--&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
     69 <a href="#l50" class="line" id="l50">     50</a> &lt;a href=&quot;#l31&quot; class=&quot;line&quot; id=&quot;l31&quot;&gt;     31&lt;/a&gt; &amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;A&amp;quot;&amp;gt;A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;#h3&amp;quot;&amp;gt;src/assets/js/r3f.bundle.js&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; | &amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;num&amp;quot;&amp;gt;3961&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span class=&amp;quot;i&amp;quot;&amp;gt;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;d&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
     70 <a href="#l51" class="line" id="l51">     51</a> &lt;a href=&quot;#l32&quot; class=&quot;line&quot; id=&quot;l32&quot;&gt;     32&lt;/a&gt; &amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;A&amp;quot;&amp;gt;A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;#h4&amp;quot;&amp;gt;src/assets/js/sketch.bundle.js&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; | &amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;num&amp;quot;&amp;gt;2341&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span class=&amp;quot;i&amp;quot;&amp;gt;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;d&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
     71 <a href="#l52" class="line" id="l52">     52</a> &lt;a href=&quot;#l33&quot; class=&quot;line&quot; id=&quot;l33&quot;&gt;     33&lt;/a&gt; &amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;A&amp;quot;&amp;gt;A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;#h5&amp;quot;&amp;gt;src/js/r3f.jsx&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; | &amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;num&amp;quot;&amp;gt;40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span class=&amp;quot;i&amp;quot;&amp;gt;++++++++++++++++++++++++++++++++++++++++&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;d&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
     72 <a href="#l53" class="line" id="l53">     53</a> &lt;a href=&quot;#l34&quot; class=&quot;line&quot; id=&quot;l34&quot;&gt;     34&lt;/a&gt; &amp;lt;tr&amp;gt;&amp;lt;td class=&amp;quot;A&amp;quot;&amp;gt;A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;quot;#h6&amp;quot;&amp;gt;src/js/sketch.js&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt; | &amp;lt;/td&amp;gt;&amp;lt;td class=&amp;quot;num&amp;quot;&amp;gt;17&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;span class=&amp;quot;i&amp;quot;&amp;gt;+++++++++++++++++&amp;lt;/span&amp;gt;&amp;lt;span class=&amp;quot;d&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;
     73 <a href="#l54" class="line" id="l54">     54</a> &lt;a href=&quot;#l35&quot; class=&quot;line&quot; id=&quot;l35&quot;&gt;     35&lt;/a&gt; &amp;lt;/table&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;pre&amp;gt;7 files changed, 7173 insertions(+), 8 deletions(-)
     74 <a href="#l55" class="line" id="l55">     55</a> &lt;a href=&quot;#l36&quot; class=&quot;line&quot; id=&quot;l36&quot;&gt;     36&lt;/a&gt; &amp;lt;hr/&amp;gt;&amp;lt;b&amp;gt;diff --git a/&amp;lt;a id=&amp;quot;h0&amp;quot; href=&amp;quot;../file/.eleventy.js.html&amp;quot;&amp;gt;.eleventy.js&amp;lt;/a&amp;gt; b/&amp;lt;a href=&amp;quot;../file/.eleventy.js.html&amp;quot;&amp;gt;.eleventy.js&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;
     75 <a href="#l56" class="line" id="l56">     56</a> &lt;a href=&quot;#l37&quot; class=&quot;line&quot; id=&quot;l37&quot;&gt;     37&lt;/a&gt; &amp;lt;a href=&amp;quot;#h0-0&amp;quot; id=&amp;quot;h0-0&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -26,6 +26,7 @@ module.exports = (config) =&amp;amp;gt; {
     76 <a href="#l57" class="line" id="l57">     57</a> &lt;a href=&quot;#l38&quot; class=&quot;line&quot; id=&quot;l38&quot;&gt;     38&lt;/a&gt; &amp;lt;/a&amp;gt;   config.addPassthroughCopy(&amp;amp;#39;./src/pixelart/&amp;amp;#39;);
     77 <a href="#l58" class="line" id="l58">     58</a> &lt;a href=&quot;#l39&quot; class=&quot;line&quot; id=&quot;l39&quot;&gt;     39&lt;/a&gt;    config.addPassthroughCopy(&amp;amp;#39;./src/posts/&amp;amp;#39;);
     78 <a href="#l59" class="line" id="l59">     59</a> &lt;a href=&quot;#l40&quot; class=&quot;line&quot; id=&quot;l40&quot;&gt;     40&lt;/a&gt;    config.addPassthroughCopy(&amp;amp;#39;./src/books/&amp;amp;#39;);
     79 <a href="#l60" class="line" id="l60">     60</a> &lt;a href=&quot;#l41&quot; class=&quot;line&quot; id=&quot;l41&quot;&gt;     41&lt;/a&gt; &amp;lt;a href=&amp;quot;#h0-0-3&amp;quot; id=&amp;quot;h0-0-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  config.addPassthroughCopy(&amp;amp;#39;./src/js/&amp;amp;#39;);
     80 <a href="#l61" class="line" id="l61">     61</a> &lt;a href=&quot;#l42&quot; class=&quot;line&quot; id=&quot;l42&quot;&gt;     42&lt;/a&gt; &amp;lt;/a&amp;gt;
     81 <a href="#l62" class="line" id="l62">     62</a> &lt;a href=&quot;#l43&quot; class=&quot;line&quot; id=&quot;l43&quot;&gt;     43&lt;/a&gt;    // Add filters
     82 <a href="#l63" class="line" id="l63">     63</a> &lt;a href=&quot;#l44&quot; class=&quot;line&quot; id=&quot;l44&quot;&gt;     44&lt;/a&gt;    Object.keys(filters).forEach((filterName) =&amp;amp;gt; {
     83 <a href="#l64" class="line" id="l64">     64</a> &lt;a href=&quot;#l45&quot; class=&quot;line&quot; id=&quot;l45&quot;&gt;     45&lt;/a&gt; &amp;lt;b&amp;gt;diff --git a/&amp;lt;a id=&amp;quot;h1&amp;quot; href=&amp;quot;../file/package-lock.json.html&amp;quot;&amp;gt;package-lock.json&amp;lt;/a&amp;gt; b/&amp;lt;a href=&amp;quot;../file/package-lock.json.html&amp;quot;&amp;gt;package-lock.json&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;
     84 <a href="#l65" class="line" id="l65">     65</a> &lt;a href=&quot;#l46&quot; class=&quot;line&quot; id=&quot;l46&quot;&gt;     46&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-0&amp;quot; id=&amp;quot;h1-0&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -13,18 +13,23 @@
     85 <a href="#l66" class="line" id="l66">     66</a> &lt;a href=&quot;#l47&quot; class=&quot;line&quot; id=&quot;l47&quot;&gt;     47&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;@11ty/eleventy-navigation&amp;amp;quot;: &amp;amp;quot;^0.3.2&amp;amp;quot;,
     86 <a href="#l67" class="line" id="l67">     67</a> &lt;a href=&quot;#l48&quot; class=&quot;line&quot; id=&quot;l48&quot;&gt;     48&lt;/a&gt;          &amp;amp;quot;@11ty/eleventy-plugin-rss&amp;amp;quot;: &amp;amp;quot;^1.1.2&amp;amp;quot;,
     87 <a href="#l68" class="line" id="l68">     68</a> &lt;a href=&quot;#l49&quot; class=&quot;line&quot; id=&quot;l49&quot;&gt;     49&lt;/a&gt;          &amp;amp;quot;@netlify/functions&amp;amp;quot;: &amp;amp;quot;^2.8.1&amp;amp;quot;,
     88 <a href="#l69" class="line" id="l69">     69</a> &lt;a href=&quot;#l50&quot; class=&quot;line&quot; id=&quot;l50&quot;&gt;     50&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-0-3&amp;quot; id=&amp;quot;h1-0-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@react-three/fiber&amp;amp;quot;: &amp;amp;quot;^9.3.0&amp;amp;quot;,
     89 <a href="#l70" class="line" id="l70">     70</a> &lt;a href=&quot;#l51&quot; class=&quot;line&quot; id=&quot;l51&quot;&gt;     51&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;concurrently&amp;amp;quot;: &amp;amp;quot;^6.3.0&amp;amp;quot;,
     90 <a href="#l71" class="line" id="l71">     71</a> &lt;a href=&quot;#l52&quot; class=&quot;line&quot; id=&quot;l52&quot;&gt;     52&lt;/a&gt;          &amp;amp;quot;dotenv&amp;amp;quot;: &amp;amp;quot;^16.4.5&amp;amp;quot;,
     91 <a href="#l72" class="line" id="l72">     72</a> &lt;a href=&quot;#l53&quot; class=&quot;line&quot; id=&quot;l53&quot;&gt;     53&lt;/a&gt;          &amp;amp;quot;gorko&amp;amp;quot;: &amp;amp;quot;^0.8.0&amp;amp;quot;,
     92 <a href="#l73" class="line" id="l73">     73</a> &lt;a href=&quot;#l54&quot; class=&quot;line&quot; id=&quot;l54&quot;&gt;     54&lt;/a&gt;          &amp;amp;quot;gulp&amp;amp;quot;: &amp;amp;quot;^5.0.1&amp;amp;quot;,
     93 <a href="#l74" class="line" id="l74">     74</a> &lt;a href=&quot;#l55&quot; class=&quot;line&quot; id=&quot;l55&quot;&gt;     55&lt;/a&gt;          &amp;amp;quot;luxon&amp;amp;quot;: &amp;amp;quot;^2.1.0&amp;amp;quot;,
     94 <a href="#l75" class="line" id="l75">     75</a> &lt;a href=&quot;#l56&quot; class=&quot;line&quot; id=&quot;l56&quot;&gt;     56&lt;/a&gt;          &amp;amp;quot;markdown-it&amp;amp;quot;: &amp;amp;quot;^12.3.0&amp;amp;quot;,
     95 <a href="#l76" class="line" id="l76">     76</a> &lt;a href=&quot;#l57&quot; class=&quot;line&quot; id=&quot;l57&quot;&gt;     57&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-0-10&amp;quot; id=&amp;quot;h1-0-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;p5&amp;amp;quot;: &amp;amp;quot;^2.0.3&amp;amp;quot;,
     96 <a href="#l77" class="line" id="l77">     77</a> &lt;a href=&quot;#l58&quot; class=&quot;line&quot; id=&quot;l58&quot;&gt;     58&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;postcss-color-hexa&amp;amp;quot;: &amp;amp;quot;^1.2.4&amp;amp;quot;,
     97 <a href="#l78" class="line" id="l78">     78</a> &lt;a href=&quot;#l59&quot; class=&quot;line&quot; id=&quot;l59&quot;&gt;     59&lt;/a&gt;          &amp;amp;quot;prismjs&amp;amp;quot;: &amp;amp;quot;^1.29.0&amp;amp;quot;,
     98 <a href="#l79" class="line" id="l79">     79</a> &lt;a href=&quot;#l60&quot; class=&quot;line&quot; id=&quot;l60&quot;&gt;     60&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-0-13&amp;quot; id=&amp;quot;h1-0-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;^19.1.1&amp;amp;quot;,
     99 <a href="#l80" class="line" id="l80">     80</a> &lt;a href=&quot;#l61&quot; class=&quot;line&quot; id=&quot;l61&quot;&gt;     61&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-0-14&amp;quot; id=&amp;quot;h1-0-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-dom&amp;amp;quot;: &amp;amp;quot;^19.1.1&amp;amp;quot;,
    100 <a href="#l81" class="line" id="l81">     81</a> &lt;a href=&quot;#l62&quot; class=&quot;line&quot; id=&quot;l62&quot;&gt;     62&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;sass&amp;amp;quot;: &amp;amp;quot;^1.43.4&amp;amp;quot;,
    101 <a href="#l82" class="line" id="l82">     82</a> &lt;a href=&quot;#l63&quot; class=&quot;line&quot; id=&quot;l63&quot;&gt;     63&lt;/a&gt;          &amp;amp;quot;sharp&amp;amp;quot;: &amp;amp;quot;^0.34.3&amp;amp;quot;,
    102 <a href="#l83" class="line" id="l83">     83</a> &lt;a href=&quot;#l64&quot; class=&quot;line&quot; id=&quot;l64&quot;&gt;     64&lt;/a&gt;          &amp;amp;quot;slugify&amp;amp;quot;: &amp;amp;quot;^1.6.5&amp;amp;quot;,
    103 <a href="#l84" class="line" id="l84">     84</a> &lt;a href=&quot;#l65&quot; class=&quot;line&quot; id=&quot;l65&quot;&gt;     65&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-0-18&amp;quot; id=&amp;quot;h1-0-18&amp;quot; class=&amp;quot;d&amp;quot;&amp;gt;-        &amp;amp;quot;speedlify-score&amp;amp;quot;: &amp;amp;quot;^2.0.2&amp;amp;quot;
    104 <a href="#l85" class="line" id="l85">     85</a> &lt;a href=&quot;#l66&quot; class=&quot;line&quot; id=&quot;l66&quot;&gt;     66&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-0-19&amp;quot; id=&amp;quot;h1-0-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;speedlify-score&amp;amp;quot;: &amp;amp;quot;^2.0.2&amp;amp;quot;,
    105 <a href="#l86" class="line" id="l86">     86</a> &lt;a href=&quot;#l67&quot; class=&quot;line&quot; id=&quot;l67&quot;&gt;     67&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-0-20&amp;quot; id=&amp;quot;h1-0-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;three&amp;amp;quot;: &amp;amp;quot;^0.179.1&amp;amp;quot;
    106 <a href="#l87" class="line" id="l87">     87</a> &lt;a href=&quot;#l68&quot; class=&quot;line&quot; id=&quot;l68&quot;&gt;     68&lt;/a&gt; &amp;lt;/a&amp;gt;       },
    107 <a href="#l88" class="line" id="l88">     88</a> &lt;a href=&quot;#l69&quot; class=&quot;line&quot; id=&quot;l69&quot;&gt;     69&lt;/a&gt;        &amp;amp;quot;devDependencies&amp;amp;quot;: {
    108 <a href="#l89" class="line" id="l89">     89</a> &lt;a href=&quot;#l70&quot; class=&quot;line&quot; id=&quot;l70&quot;&gt;     70&lt;/a&gt;          &amp;amp;quot;@11ty/eleventy&amp;amp;quot;: &amp;amp;quot;^2.0.1&amp;amp;quot;,
    109 <a href="#l90" class="line" id="l90">     90</a> &lt;a href=&quot;#l71&quot; class=&quot;line&quot; id=&quot;l71&quot;&gt;     71&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-1&amp;quot; id=&amp;quot;h1-1&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -33,6 +38,7 @@
    110 <a href="#l91" class="line" id="l91">     91</a> &lt;a href=&quot;#l72&quot; class=&quot;line&quot; id=&quot;l72&quot;&gt;     72&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;@11ty/eleventy-plugin-syntaxhighlight&amp;amp;quot;: &amp;amp;quot;^4.2.0&amp;amp;quot;,
    111 <a href="#l92" class="line" id="l92">     92</a> &lt;a href=&quot;#l73&quot; class=&quot;line&quot; id=&quot;l73&quot;&gt;     73&lt;/a&gt;          &amp;amp;quot;@11ty/is-land&amp;amp;quot;: &amp;amp;quot;^2.0.3&amp;amp;quot;,
    112 <a href="#l93" class="line" id="l93">     93</a> &lt;a href=&quot;#l74&quot; class=&quot;line&quot; id=&quot;l74&quot;&gt;     74&lt;/a&gt;          &amp;amp;quot;cssnano&amp;amp;quot;: &amp;amp;quot;^5.1.14&amp;amp;quot;,
    113 <a href="#l94" class="line" id="l94">     94</a> &lt;a href=&quot;#l75&quot; class=&quot;line&quot; id=&quot;l75&quot;&gt;     75&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-1-3&amp;quot; id=&amp;quot;h1-1-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;esbuild&amp;amp;quot;: &amp;amp;quot;^0.25.8&amp;amp;quot;,
    114 <a href="#l95" class="line" id="l95">     95</a> &lt;a href=&quot;#l76&quot; class=&quot;line&quot; id=&quot;l76&quot;&gt;     76&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;eslint&amp;amp;quot;: &amp;amp;quot;^8.28.0&amp;amp;quot;,
    115 <a href="#l96" class="line" id="l96">     96</a> &lt;a href=&quot;#l77&quot; class=&quot;line&quot; id=&quot;l77&quot;&gt;     77&lt;/a&gt;          &amp;amp;quot;gulp-postcss&amp;amp;quot;: &amp;amp;quot;^9.0.1&amp;amp;quot;,
    116 <a href="#l97" class="line" id="l97">     97</a> &lt;a href=&quot;#l78&quot; class=&quot;line&quot; id=&quot;l78&quot;&gt;     78&lt;/a&gt;          &amp;amp;quot;gulp-sass&amp;amp;quot;: &amp;amp;quot;^5.1.0&amp;amp;quot;,
    117 <a href="#l98" class="line" id="l98">     98</a> &lt;a href=&quot;#l79&quot; class=&quot;line&quot; id=&quot;l79&quot;&gt;     79&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-2&amp;quot; id=&amp;quot;h1-2&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -404,6 +410,11 @@
    118 <a href="#l99" class="line" id="l99">     99</a> &lt;a href=&quot;#l80&quot; class=&quot;line&quot; id=&quot;l80&quot;&gt;     80&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=6.9.0&amp;amp;quot;
    119 <a href="#l100" class="line" id="l100">    100</a> &lt;a href=&quot;#l81&quot; class=&quot;line&quot; id=&quot;l81&quot;&gt;     81&lt;/a&gt;        }
    120 <a href="#l101" class="line" id="l101">    101</a> &lt;a href=&quot;#l82&quot; class=&quot;line&quot; id=&quot;l82&quot;&gt;     82&lt;/a&gt;      },
    121 <a href="#l102" class="line" id="l102">    102</a> &lt;a href=&quot;#l83&quot; class=&quot;line&quot; id=&quot;l83&quot;&gt;     83&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-2-3&amp;quot; id=&amp;quot;h1-2-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@davepagurek/bezier-path&amp;amp;quot;: {
    122 <a href="#l103" class="line" id="l103">    103</a> &lt;a href=&quot;#l84&quot; class=&quot;line&quot; id=&quot;l84&quot;&gt;     84&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-2-4&amp;quot; id=&amp;quot;h1-2-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.0.2&amp;amp;quot;,
    123 <a href="#l104" class="line" id="l104">    104</a> &lt;a href=&quot;#l85&quot; class=&quot;line&quot; id=&quot;l85&quot;&gt;     85&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-2-5&amp;quot; id=&amp;quot;h1-2-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@davepagurek/bezier-path/-/bezier-path-0.0.2.tgz&amp;amp;quot;,
    124 <a href="#l105" class="line" id="l105">    105</a> &lt;a href=&quot;#l86&quot; class=&quot;line&quot; id=&quot;l86&quot;&gt;     86&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-2-6&amp;quot; id=&amp;quot;h1-2-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-4L9ddgzZc9DRGyl1RrS3z5nwnVJoyjsAelVG4X1jh4tVxryEHr4H9QavhxW/my6Rn3669Qz6mhv8gd5O/WeFTA==&amp;amp;quot;
    125 <a href="#l106" class="line" id="l106">    106</a> &lt;a href=&quot;#l87&quot; class=&quot;line&quot; id=&quot;l87&quot;&gt;     87&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-2-7&amp;quot; id=&amp;quot;h1-2-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    126 <a href="#l107" class="line" id="l107">    107</a> &lt;a href=&quot;#l88&quot; class=&quot;line&quot; id=&quot;l88&quot;&gt;     88&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/@emnapi/runtime&amp;amp;quot;: {
    127 <a href="#l108" class="line" id="l108">    108</a> &lt;a href=&quot;#l89&quot; class=&quot;line&quot; id=&quot;l89&quot;&gt;     89&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.4.4&amp;amp;quot;,
    128 <a href="#l109" class="line" id="l109">    109</a> &lt;a href=&quot;#l90&quot; class=&quot;line&quot; id=&quot;l90&quot;&gt;     90&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.4.tgz&amp;amp;quot;,
    129 <a href="#l110" class="line" id="l110">    110</a> &lt;a href=&quot;#l91&quot; class=&quot;line&quot; id=&quot;l91&quot;&gt;     91&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-3&amp;quot; id=&amp;quot;h1-3&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -419,6 +430,422 @@
    130 <a href="#l111" class="line" id="l111">    111</a> &lt;a href=&quot;#l92&quot; class=&quot;line&quot; id=&quot;l92&quot;&gt;     92&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==&amp;amp;quot;,
    131 <a href="#l112" class="line" id="l112">    112</a> &lt;a href=&quot;#l93&quot; class=&quot;line&quot; id=&quot;l93&quot;&gt;     93&lt;/a&gt;        &amp;amp;quot;optional&amp;amp;quot;: true
    132 <a href="#l113" class="line" id="l113">    113</a> &lt;a href=&quot;#l94&quot; class=&quot;line&quot; id=&quot;l94&quot;&gt;     94&lt;/a&gt;      },
    133 <a href="#l114" class="line" id="l114">    114</a> &lt;a href=&quot;#l95&quot; class=&quot;line&quot; id=&quot;l95&quot;&gt;     95&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-3-3&amp;quot; id=&amp;quot;h1-3-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/aix-ppc64&amp;amp;quot;: {
    134 <a href="#l115" class="line" id="l115">    115</a> &lt;a href=&quot;#l96&quot; class=&quot;line&quot; id=&quot;l96&quot;&gt;     96&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-4&amp;quot; id=&amp;quot;h1-3-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    135 <a href="#l116" class="line" id="l116">    116</a> &lt;a href=&quot;#l97&quot; class=&quot;line&quot; id=&quot;l97&quot;&gt;     97&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-5&amp;quot; id=&amp;quot;h1-3-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz&amp;amp;quot;,
    136 <a href="#l117" class="line" id="l117">    117</a> &lt;a href=&quot;#l98&quot; class=&quot;line&quot; id=&quot;l98&quot;&gt;     98&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-6&amp;quot; id=&amp;quot;h1-3-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==&amp;amp;quot;,
    137 <a href="#l118" class="line" id="l118">    118</a> &lt;a href=&quot;#l99&quot; class=&quot;line&quot; id=&quot;l99&quot;&gt;     99&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-7&amp;quot; id=&amp;quot;h1-3-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    138 <a href="#l119" class="line" id="l119">    119</a> &lt;a href=&quot;#l100&quot; class=&quot;line&quot; id=&quot;l100&quot;&gt;    100&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-8&amp;quot; id=&amp;quot;h1-3-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;ppc64&amp;amp;quot;
    139 <a href="#l120" class="line" id="l120">    120</a> &lt;a href=&quot;#l101&quot; class=&quot;line&quot; id=&quot;l101&quot;&gt;    101&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-9&amp;quot; id=&amp;quot;h1-3-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    140 <a href="#l121" class="line" id="l121">    121</a> &lt;a href=&quot;#l102&quot; class=&quot;line&quot; id=&quot;l102&quot;&gt;    102&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-10&amp;quot; id=&amp;quot;h1-3-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    141 <a href="#l122" class="line" id="l122">    122</a> &lt;a href=&quot;#l103&quot; class=&quot;line&quot; id=&quot;l103&quot;&gt;    103&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-11&amp;quot; id=&amp;quot;h1-3-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    142 <a href="#l123" class="line" id="l123">    123</a> &lt;a href=&quot;#l104&quot; class=&quot;line&quot; id=&quot;l104&quot;&gt;    104&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-12&amp;quot; id=&amp;quot;h1-3-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    143 <a href="#l124" class="line" id="l124">    124</a> &lt;a href=&quot;#l105&quot; class=&quot;line&quot; id=&quot;l105&quot;&gt;    105&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-13&amp;quot; id=&amp;quot;h1-3-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;aix&amp;amp;quot;
    144 <a href="#l125" class="line" id="l125">    125</a> &lt;a href=&quot;#l106&quot; class=&quot;line&quot; id=&quot;l106&quot;&gt;    106&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-14&amp;quot; id=&amp;quot;h1-3-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    145 <a href="#l126" class="line" id="l126">    126</a> &lt;a href=&quot;#l107&quot; class=&quot;line&quot; id=&quot;l107&quot;&gt;    107&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-15&amp;quot; id=&amp;quot;h1-3-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    146 <a href="#l127" class="line" id="l127">    127</a> &lt;a href=&quot;#l108&quot; class=&quot;line&quot; id=&quot;l108&quot;&gt;    108&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-16&amp;quot; id=&amp;quot;h1-3-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    147 <a href="#l128" class="line" id="l128">    128</a> &lt;a href=&quot;#l109&quot; class=&quot;line&quot; id=&quot;l109&quot;&gt;    109&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-17&amp;quot; id=&amp;quot;h1-3-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    148 <a href="#l129" class="line" id="l129">    129</a> &lt;a href=&quot;#l110&quot; class=&quot;line&quot; id=&quot;l110&quot;&gt;    110&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-18&amp;quot; id=&amp;quot;h1-3-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    149 <a href="#l130" class="line" id="l130">    130</a> &lt;a href=&quot;#l111&quot; class=&quot;line&quot; id=&quot;l111&quot;&gt;    111&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-19&amp;quot; id=&amp;quot;h1-3-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/android-arm&amp;amp;quot;: {
    150 <a href="#l131" class="line" id="l131">    131</a> &lt;a href=&quot;#l112&quot; class=&quot;line&quot; id=&quot;l112&quot;&gt;    112&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-20&amp;quot; id=&amp;quot;h1-3-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    151 <a href="#l132" class="line" id="l132">    132</a> &lt;a href=&quot;#l113&quot; class=&quot;line&quot; id=&quot;l113&quot;&gt;    113&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-21&amp;quot; id=&amp;quot;h1-3-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz&amp;amp;quot;,
    152 <a href="#l133" class="line" id="l133">    133</a> &lt;a href=&quot;#l114&quot; class=&quot;line&quot; id=&quot;l114&quot;&gt;    114&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-22&amp;quot; id=&amp;quot;h1-3-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==&amp;amp;quot;,
    153 <a href="#l134" class="line" id="l134">    134</a> &lt;a href=&quot;#l115&quot; class=&quot;line&quot; id=&quot;l115&quot;&gt;    115&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-23&amp;quot; id=&amp;quot;h1-3-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    154 <a href="#l135" class="line" id="l135">    135</a> &lt;a href=&quot;#l116&quot; class=&quot;line&quot; id=&quot;l116&quot;&gt;    116&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-24&amp;quot; id=&amp;quot;h1-3-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm&amp;amp;quot;
    155 <a href="#l136" class="line" id="l136">    136</a> &lt;a href=&quot;#l117&quot; class=&quot;line&quot; id=&quot;l117&quot;&gt;    117&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-25&amp;quot; id=&amp;quot;h1-3-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    156 <a href="#l137" class="line" id="l137">    137</a> &lt;a href=&quot;#l118&quot; class=&quot;line&quot; id=&quot;l118&quot;&gt;    118&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-26&amp;quot; id=&amp;quot;h1-3-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    157 <a href="#l138" class="line" id="l138">    138</a> &lt;a href=&quot;#l119&quot; class=&quot;line&quot; id=&quot;l119&quot;&gt;    119&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-27&amp;quot; id=&amp;quot;h1-3-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    158 <a href="#l139" class="line" id="l139">    139</a> &lt;a href=&quot;#l120&quot; class=&quot;line&quot; id=&quot;l120&quot;&gt;    120&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-28&amp;quot; id=&amp;quot;h1-3-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    159 <a href="#l140" class="line" id="l140">    140</a> &lt;a href=&quot;#l121&quot; class=&quot;line&quot; id=&quot;l121&quot;&gt;    121&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-29&amp;quot; id=&amp;quot;h1-3-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;android&amp;amp;quot;
    160 <a href="#l141" class="line" id="l141">    141</a> &lt;a href=&quot;#l122&quot; class=&quot;line&quot; id=&quot;l122&quot;&gt;    122&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-30&amp;quot; id=&amp;quot;h1-3-30&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    161 <a href="#l142" class="line" id="l142">    142</a> &lt;a href=&quot;#l123&quot; class=&quot;line&quot; id=&quot;l123&quot;&gt;    123&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-31&amp;quot; id=&amp;quot;h1-3-31&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    162 <a href="#l143" class="line" id="l143">    143</a> &lt;a href=&quot;#l124&quot; class=&quot;line&quot; id=&quot;l124&quot;&gt;    124&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-32&amp;quot; id=&amp;quot;h1-3-32&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    163 <a href="#l144" class="line" id="l144">    144</a> &lt;a href=&quot;#l125&quot; class=&quot;line&quot; id=&quot;l125&quot;&gt;    125&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-33&amp;quot; id=&amp;quot;h1-3-33&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    164 <a href="#l145" class="line" id="l145">    145</a> &lt;a href=&quot;#l126&quot; class=&quot;line&quot; id=&quot;l126&quot;&gt;    126&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-34&amp;quot; id=&amp;quot;h1-3-34&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    165 <a href="#l146" class="line" id="l146">    146</a> &lt;a href=&quot;#l127&quot; class=&quot;line&quot; id=&quot;l127&quot;&gt;    127&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-35&amp;quot; id=&amp;quot;h1-3-35&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/android-arm64&amp;amp;quot;: {
    166 <a href="#l147" class="line" id="l147">    147</a> &lt;a href=&quot;#l128&quot; class=&quot;line&quot; id=&quot;l128&quot;&gt;    128&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-36&amp;quot; id=&amp;quot;h1-3-36&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    167 <a href="#l148" class="line" id="l148">    148</a> &lt;a href=&quot;#l129&quot; class=&quot;line&quot; id=&quot;l129&quot;&gt;    129&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-37&amp;quot; id=&amp;quot;h1-3-37&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz&amp;amp;quot;,
    168 <a href="#l149" class="line" id="l149">    149</a> &lt;a href=&quot;#l130&quot; class=&quot;line&quot; id=&quot;l130&quot;&gt;    130&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-38&amp;quot; id=&amp;quot;h1-3-38&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==&amp;amp;quot;,
    169 <a href="#l150" class="line" id="l150">    150</a> &lt;a href=&quot;#l131&quot; class=&quot;line&quot; id=&quot;l131&quot;&gt;    131&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-39&amp;quot; id=&amp;quot;h1-3-39&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    170 <a href="#l151" class="line" id="l151">    151</a> &lt;a href=&quot;#l132&quot; class=&quot;line&quot; id=&quot;l132&quot;&gt;    132&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-40&amp;quot; id=&amp;quot;h1-3-40&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm64&amp;amp;quot;
    171 <a href="#l152" class="line" id="l152">    152</a> &lt;a href=&quot;#l133&quot; class=&quot;line&quot; id=&quot;l133&quot;&gt;    133&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-41&amp;quot; id=&amp;quot;h1-3-41&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    172 <a href="#l153" class="line" id="l153">    153</a> &lt;a href=&quot;#l134&quot; class=&quot;line&quot; id=&quot;l134&quot;&gt;    134&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-42&amp;quot; id=&amp;quot;h1-3-42&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    173 <a href="#l154" class="line" id="l154">    154</a> &lt;a href=&quot;#l135&quot; class=&quot;line&quot; id=&quot;l135&quot;&gt;    135&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-43&amp;quot; id=&amp;quot;h1-3-43&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    174 <a href="#l155" class="line" id="l155">    155</a> &lt;a href=&quot;#l136&quot; class=&quot;line&quot; id=&quot;l136&quot;&gt;    136&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-44&amp;quot; id=&amp;quot;h1-3-44&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    175 <a href="#l156" class="line" id="l156">    156</a> &lt;a href=&quot;#l137&quot; class=&quot;line&quot; id=&quot;l137&quot;&gt;    137&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-45&amp;quot; id=&amp;quot;h1-3-45&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;android&amp;amp;quot;
    176 <a href="#l157" class="line" id="l157">    157</a> &lt;a href=&quot;#l138&quot; class=&quot;line&quot; id=&quot;l138&quot;&gt;    138&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-46&amp;quot; id=&amp;quot;h1-3-46&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    177 <a href="#l158" class="line" id="l158">    158</a> &lt;a href=&quot;#l139&quot; class=&quot;line&quot; id=&quot;l139&quot;&gt;    139&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-47&amp;quot; id=&amp;quot;h1-3-47&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    178 <a href="#l159" class="line" id="l159">    159</a> &lt;a href=&quot;#l140&quot; class=&quot;line&quot; id=&quot;l140&quot;&gt;    140&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-48&amp;quot; id=&amp;quot;h1-3-48&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    179 <a href="#l160" class="line" id="l160">    160</a> &lt;a href=&quot;#l141&quot; class=&quot;line&quot; id=&quot;l141&quot;&gt;    141&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-49&amp;quot; id=&amp;quot;h1-3-49&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    180 <a href="#l161" class="line" id="l161">    161</a> &lt;a href=&quot;#l142&quot; class=&quot;line&quot; id=&quot;l142&quot;&gt;    142&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-50&amp;quot; id=&amp;quot;h1-3-50&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    181 <a href="#l162" class="line" id="l162">    162</a> &lt;a href=&quot;#l143&quot; class=&quot;line&quot; id=&quot;l143&quot;&gt;    143&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-51&amp;quot; id=&amp;quot;h1-3-51&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/android-x64&amp;amp;quot;: {
    182 <a href="#l163" class="line" id="l163">    163</a> &lt;a href=&quot;#l144&quot; class=&quot;line&quot; id=&quot;l144&quot;&gt;    144&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-52&amp;quot; id=&amp;quot;h1-3-52&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    183 <a href="#l164" class="line" id="l164">    164</a> &lt;a href=&quot;#l145&quot; class=&quot;line&quot; id=&quot;l145&quot;&gt;    145&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-53&amp;quot; id=&amp;quot;h1-3-53&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz&amp;amp;quot;,
    184 <a href="#l165" class="line" id="l165">    165</a> &lt;a href=&quot;#l146&quot; class=&quot;line&quot; id=&quot;l146&quot;&gt;    146&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-54&amp;quot; id=&amp;quot;h1-3-54&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==&amp;amp;quot;,
    185 <a href="#l166" class="line" id="l166">    166</a> &lt;a href=&quot;#l147&quot; class=&quot;line&quot; id=&quot;l147&quot;&gt;    147&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-55&amp;quot; id=&amp;quot;h1-3-55&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    186 <a href="#l167" class="line" id="l167">    167</a> &lt;a href=&quot;#l148&quot; class=&quot;line&quot; id=&quot;l148&quot;&gt;    148&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-56&amp;quot; id=&amp;quot;h1-3-56&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;x64&amp;amp;quot;
    187 <a href="#l168" class="line" id="l168">    168</a> &lt;a href=&quot;#l149&quot; class=&quot;line&quot; id=&quot;l149&quot;&gt;    149&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-57&amp;quot; id=&amp;quot;h1-3-57&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    188 <a href="#l169" class="line" id="l169">    169</a> &lt;a href=&quot;#l150&quot; class=&quot;line&quot; id=&quot;l150&quot;&gt;    150&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-58&amp;quot; id=&amp;quot;h1-3-58&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    189 <a href="#l170" class="line" id="l170">    170</a> &lt;a href=&quot;#l151&quot; class=&quot;line&quot; id=&quot;l151&quot;&gt;    151&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-59&amp;quot; id=&amp;quot;h1-3-59&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    190 <a href="#l171" class="line" id="l171">    171</a> &lt;a href=&quot;#l152&quot; class=&quot;line&quot; id=&quot;l152&quot;&gt;    152&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-60&amp;quot; id=&amp;quot;h1-3-60&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    191 <a href="#l172" class="line" id="l172">    172</a> &lt;a href=&quot;#l153&quot; class=&quot;line&quot; id=&quot;l153&quot;&gt;    153&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-61&amp;quot; id=&amp;quot;h1-3-61&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;android&amp;amp;quot;
    192 <a href="#l173" class="line" id="l173">    173</a> &lt;a href=&quot;#l154&quot; class=&quot;line&quot; id=&quot;l154&quot;&gt;    154&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-62&amp;quot; id=&amp;quot;h1-3-62&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    193 <a href="#l174" class="line" id="l174">    174</a> &lt;a href=&quot;#l155&quot; class=&quot;line&quot; id=&quot;l155&quot;&gt;    155&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-63&amp;quot; id=&amp;quot;h1-3-63&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    194 <a href="#l175" class="line" id="l175">    175</a> &lt;a href=&quot;#l156&quot; class=&quot;line&quot; id=&quot;l156&quot;&gt;    156&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-64&amp;quot; id=&amp;quot;h1-3-64&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    195 <a href="#l176" class="line" id="l176">    176</a> &lt;a href=&quot;#l157&quot; class=&quot;line&quot; id=&quot;l157&quot;&gt;    157&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-65&amp;quot; id=&amp;quot;h1-3-65&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    196 <a href="#l177" class="line" id="l177">    177</a> &lt;a href=&quot;#l158&quot; class=&quot;line&quot; id=&quot;l158&quot;&gt;    158&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-66&amp;quot; id=&amp;quot;h1-3-66&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    197 <a href="#l178" class="line" id="l178">    178</a> &lt;a href=&quot;#l159&quot; class=&quot;line&quot; id=&quot;l159&quot;&gt;    159&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-67&amp;quot; id=&amp;quot;h1-3-67&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/darwin-arm64&amp;amp;quot;: {
    198 <a href="#l179" class="line" id="l179">    179</a> &lt;a href=&quot;#l160&quot; class=&quot;line&quot; id=&quot;l160&quot;&gt;    160&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-68&amp;quot; id=&amp;quot;h1-3-68&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    199 <a href="#l180" class="line" id="l180">    180</a> &lt;a href=&quot;#l161&quot; class=&quot;line&quot; id=&quot;l161&quot;&gt;    161&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-69&amp;quot; id=&amp;quot;h1-3-69&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz&amp;amp;quot;,
    200 <a href="#l181" class="line" id="l181">    181</a> &lt;a href=&quot;#l162&quot; class=&quot;line&quot; id=&quot;l162&quot;&gt;    162&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-70&amp;quot; id=&amp;quot;h1-3-70&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==&amp;amp;quot;,
    201 <a href="#l182" class="line" id="l182">    182</a> &lt;a href=&quot;#l163&quot; class=&quot;line&quot; id=&quot;l163&quot;&gt;    163&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-71&amp;quot; id=&amp;quot;h1-3-71&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    202 <a href="#l183" class="line" id="l183">    183</a> &lt;a href=&quot;#l164&quot; class=&quot;line&quot; id=&quot;l164&quot;&gt;    164&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-72&amp;quot; id=&amp;quot;h1-3-72&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm64&amp;amp;quot;
    203 <a href="#l184" class="line" id="l184">    184</a> &lt;a href=&quot;#l165&quot; class=&quot;line&quot; id=&quot;l165&quot;&gt;    165&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-73&amp;quot; id=&amp;quot;h1-3-73&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    204 <a href="#l185" class="line" id="l185">    185</a> &lt;a href=&quot;#l166&quot; class=&quot;line&quot; id=&quot;l166&quot;&gt;    166&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-74&amp;quot; id=&amp;quot;h1-3-74&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    205 <a href="#l186" class="line" id="l186">    186</a> &lt;a href=&quot;#l167&quot; class=&quot;line&quot; id=&quot;l167&quot;&gt;    167&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-75&amp;quot; id=&amp;quot;h1-3-75&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    206 <a href="#l187" class="line" id="l187">    187</a> &lt;a href=&quot;#l168&quot; class=&quot;line&quot; id=&quot;l168&quot;&gt;    168&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-76&amp;quot; id=&amp;quot;h1-3-76&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    207 <a href="#l188" class="line" id="l188">    188</a> &lt;a href=&quot;#l169&quot; class=&quot;line&quot; id=&quot;l169&quot;&gt;    169&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-77&amp;quot; id=&amp;quot;h1-3-77&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;darwin&amp;amp;quot;
    208 <a href="#l189" class="line" id="l189">    189</a> &lt;a href=&quot;#l170&quot; class=&quot;line&quot; id=&quot;l170&quot;&gt;    170&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-78&amp;quot; id=&amp;quot;h1-3-78&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    209 <a href="#l190" class="line" id="l190">    190</a> &lt;a href=&quot;#l171&quot; class=&quot;line&quot; id=&quot;l171&quot;&gt;    171&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-79&amp;quot; id=&amp;quot;h1-3-79&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    210 <a href="#l191" class="line" id="l191">    191</a> &lt;a href=&quot;#l172&quot; class=&quot;line&quot; id=&quot;l172&quot;&gt;    172&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-80&amp;quot; id=&amp;quot;h1-3-80&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    211 <a href="#l192" class="line" id="l192">    192</a> &lt;a href=&quot;#l173&quot; class=&quot;line&quot; id=&quot;l173&quot;&gt;    173&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-81&amp;quot; id=&amp;quot;h1-3-81&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    212 <a href="#l193" class="line" id="l193">    193</a> &lt;a href=&quot;#l174&quot; class=&quot;line&quot; id=&quot;l174&quot;&gt;    174&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-82&amp;quot; id=&amp;quot;h1-3-82&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    213 <a href="#l194" class="line" id="l194">    194</a> &lt;a href=&quot;#l175&quot; class=&quot;line&quot; id=&quot;l175&quot;&gt;    175&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-83&amp;quot; id=&amp;quot;h1-3-83&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/darwin-x64&amp;amp;quot;: {
    214 <a href="#l195" class="line" id="l195">    195</a> &lt;a href=&quot;#l176&quot; class=&quot;line&quot; id=&quot;l176&quot;&gt;    176&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-84&amp;quot; id=&amp;quot;h1-3-84&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    215 <a href="#l196" class="line" id="l196">    196</a> &lt;a href=&quot;#l177&quot; class=&quot;line&quot; id=&quot;l177&quot;&gt;    177&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-85&amp;quot; id=&amp;quot;h1-3-85&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz&amp;amp;quot;,
    216 <a href="#l197" class="line" id="l197">    197</a> &lt;a href=&quot;#l178&quot; class=&quot;line&quot; id=&quot;l178&quot;&gt;    178&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-86&amp;quot; id=&amp;quot;h1-3-86&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==&amp;amp;quot;,
    217 <a href="#l198" class="line" id="l198">    198</a> &lt;a href=&quot;#l179&quot; class=&quot;line&quot; id=&quot;l179&quot;&gt;    179&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-87&amp;quot; id=&amp;quot;h1-3-87&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    218 <a href="#l199" class="line" id="l199">    199</a> &lt;a href=&quot;#l180&quot; class=&quot;line&quot; id=&quot;l180&quot;&gt;    180&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-88&amp;quot; id=&amp;quot;h1-3-88&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;x64&amp;amp;quot;
    219 <a href="#l200" class="line" id="l200">    200</a> &lt;a href=&quot;#l181&quot; class=&quot;line&quot; id=&quot;l181&quot;&gt;    181&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-89&amp;quot; id=&amp;quot;h1-3-89&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    220 <a href="#l201" class="line" id="l201">    201</a> &lt;a href=&quot;#l182&quot; class=&quot;line&quot; id=&quot;l182&quot;&gt;    182&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-90&amp;quot; id=&amp;quot;h1-3-90&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    221 <a href="#l202" class="line" id="l202">    202</a> &lt;a href=&quot;#l183&quot; class=&quot;line&quot; id=&quot;l183&quot;&gt;    183&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-91&amp;quot; id=&amp;quot;h1-3-91&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    222 <a href="#l203" class="line" id="l203">    203</a> &lt;a href=&quot;#l184&quot; class=&quot;line&quot; id=&quot;l184&quot;&gt;    184&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-92&amp;quot; id=&amp;quot;h1-3-92&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    223 <a href="#l204" class="line" id="l204">    204</a> &lt;a href=&quot;#l185&quot; class=&quot;line&quot; id=&quot;l185&quot;&gt;    185&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-93&amp;quot; id=&amp;quot;h1-3-93&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;darwin&amp;amp;quot;
    224 <a href="#l205" class="line" id="l205">    205</a> &lt;a href=&quot;#l186&quot; class=&quot;line&quot; id=&quot;l186&quot;&gt;    186&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-94&amp;quot; id=&amp;quot;h1-3-94&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    225 <a href="#l206" class="line" id="l206">    206</a> &lt;a href=&quot;#l187&quot; class=&quot;line&quot; id=&quot;l187&quot;&gt;    187&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-95&amp;quot; id=&amp;quot;h1-3-95&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    226 <a href="#l207" class="line" id="l207">    207</a> &lt;a href=&quot;#l188&quot; class=&quot;line&quot; id=&quot;l188&quot;&gt;    188&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-96&amp;quot; id=&amp;quot;h1-3-96&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    227 <a href="#l208" class="line" id="l208">    208</a> &lt;a href=&quot;#l189&quot; class=&quot;line&quot; id=&quot;l189&quot;&gt;    189&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-97&amp;quot; id=&amp;quot;h1-3-97&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    228 <a href="#l209" class="line" id="l209">    209</a> &lt;a href=&quot;#l190&quot; class=&quot;line&quot; id=&quot;l190&quot;&gt;    190&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-98&amp;quot; id=&amp;quot;h1-3-98&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    229 <a href="#l210" class="line" id="l210">    210</a> &lt;a href=&quot;#l191&quot; class=&quot;line&quot; id=&quot;l191&quot;&gt;    191&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-99&amp;quot; id=&amp;quot;h1-3-99&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/freebsd-arm64&amp;amp;quot;: {
    230 <a href="#l211" class="line" id="l211">    211</a> &lt;a href=&quot;#l192&quot; class=&quot;line&quot; id=&quot;l192&quot;&gt;    192&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-100&amp;quot; id=&amp;quot;h1-3-100&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    231 <a href="#l212" class="line" id="l212">    212</a> &lt;a href=&quot;#l193&quot; class=&quot;line&quot; id=&quot;l193&quot;&gt;    193&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-101&amp;quot; id=&amp;quot;h1-3-101&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz&amp;amp;quot;,
    232 <a href="#l213" class="line" id="l213">    213</a> &lt;a href=&quot;#l194&quot; class=&quot;line&quot; id=&quot;l194&quot;&gt;    194&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-102&amp;quot; id=&amp;quot;h1-3-102&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==&amp;amp;quot;,
    233 <a href="#l214" class="line" id="l214">    214</a> &lt;a href=&quot;#l195&quot; class=&quot;line&quot; id=&quot;l195&quot;&gt;    195&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-103&amp;quot; id=&amp;quot;h1-3-103&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    234 <a href="#l215" class="line" id="l215">    215</a> &lt;a href=&quot;#l196&quot; class=&quot;line&quot; id=&quot;l196&quot;&gt;    196&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-104&amp;quot; id=&amp;quot;h1-3-104&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm64&amp;amp;quot;
    235 <a href="#l216" class="line" id="l216">    216</a> &lt;a href=&quot;#l197&quot; class=&quot;line&quot; id=&quot;l197&quot;&gt;    197&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-105&amp;quot; id=&amp;quot;h1-3-105&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    236 <a href="#l217" class="line" id="l217">    217</a> &lt;a href=&quot;#l198&quot; class=&quot;line&quot; id=&quot;l198&quot;&gt;    198&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-106&amp;quot; id=&amp;quot;h1-3-106&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    237 <a href="#l218" class="line" id="l218">    218</a> &lt;a href=&quot;#l199&quot; class=&quot;line&quot; id=&quot;l199&quot;&gt;    199&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-107&amp;quot; id=&amp;quot;h1-3-107&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    238 <a href="#l219" class="line" id="l219">    219</a> &lt;a href=&quot;#l200&quot; class=&quot;line&quot; id=&quot;l200&quot;&gt;    200&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-108&amp;quot; id=&amp;quot;h1-3-108&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    239 <a href="#l220" class="line" id="l220">    220</a> &lt;a href=&quot;#l201&quot; class=&quot;line&quot; id=&quot;l201&quot;&gt;    201&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-109&amp;quot; id=&amp;quot;h1-3-109&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;freebsd&amp;amp;quot;
    240 <a href="#l221" class="line" id="l221">    221</a> &lt;a href=&quot;#l202&quot; class=&quot;line&quot; id=&quot;l202&quot;&gt;    202&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-110&amp;quot; id=&amp;quot;h1-3-110&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    241 <a href="#l222" class="line" id="l222">    222</a> &lt;a href=&quot;#l203&quot; class=&quot;line&quot; id=&quot;l203&quot;&gt;    203&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-111&amp;quot; id=&amp;quot;h1-3-111&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    242 <a href="#l223" class="line" id="l223">    223</a> &lt;a href=&quot;#l204&quot; class=&quot;line&quot; id=&quot;l204&quot;&gt;    204&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-112&amp;quot; id=&amp;quot;h1-3-112&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    243 <a href="#l224" class="line" id="l224">    224</a> &lt;a href=&quot;#l205&quot; class=&quot;line&quot; id=&quot;l205&quot;&gt;    205&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-113&amp;quot; id=&amp;quot;h1-3-113&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    244 <a href="#l225" class="line" id="l225">    225</a> &lt;a href=&quot;#l206&quot; class=&quot;line&quot; id=&quot;l206&quot;&gt;    206&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-114&amp;quot; id=&amp;quot;h1-3-114&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    245 <a href="#l226" class="line" id="l226">    226</a> &lt;a href=&quot;#l207&quot; class=&quot;line&quot; id=&quot;l207&quot;&gt;    207&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-115&amp;quot; id=&amp;quot;h1-3-115&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/freebsd-x64&amp;amp;quot;: {
    246 <a href="#l227" class="line" id="l227">    227</a> &lt;a href=&quot;#l208&quot; class=&quot;line&quot; id=&quot;l208&quot;&gt;    208&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-116&amp;quot; id=&amp;quot;h1-3-116&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    247 <a href="#l228" class="line" id="l228">    228</a> &lt;a href=&quot;#l209&quot; class=&quot;line&quot; id=&quot;l209&quot;&gt;    209&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-117&amp;quot; id=&amp;quot;h1-3-117&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz&amp;amp;quot;,
    248 <a href="#l229" class="line" id="l229">    229</a> &lt;a href=&quot;#l210&quot; class=&quot;line&quot; id=&quot;l210&quot;&gt;    210&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-118&amp;quot; id=&amp;quot;h1-3-118&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==&amp;amp;quot;,
    249 <a href="#l230" class="line" id="l230">    230</a> &lt;a href=&quot;#l211&quot; class=&quot;line&quot; id=&quot;l211&quot;&gt;    211&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-119&amp;quot; id=&amp;quot;h1-3-119&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    250 <a href="#l231" class="line" id="l231">    231</a> &lt;a href=&quot;#l212&quot; class=&quot;line&quot; id=&quot;l212&quot;&gt;    212&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-120&amp;quot; id=&amp;quot;h1-3-120&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;x64&amp;amp;quot;
    251 <a href="#l232" class="line" id="l232">    232</a> &lt;a href=&quot;#l213&quot; class=&quot;line&quot; id=&quot;l213&quot;&gt;    213&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-121&amp;quot; id=&amp;quot;h1-3-121&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    252 <a href="#l233" class="line" id="l233">    233</a> &lt;a href=&quot;#l214&quot; class=&quot;line&quot; id=&quot;l214&quot;&gt;    214&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-122&amp;quot; id=&amp;quot;h1-3-122&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    253 <a href="#l234" class="line" id="l234">    234</a> &lt;a href=&quot;#l215&quot; class=&quot;line&quot; id=&quot;l215&quot;&gt;    215&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-123&amp;quot; id=&amp;quot;h1-3-123&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    254 <a href="#l235" class="line" id="l235">    235</a> &lt;a href=&quot;#l216&quot; class=&quot;line&quot; id=&quot;l216&quot;&gt;    216&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-124&amp;quot; id=&amp;quot;h1-3-124&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    255 <a href="#l236" class="line" id="l236">    236</a> &lt;a href=&quot;#l217&quot; class=&quot;line&quot; id=&quot;l217&quot;&gt;    217&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-125&amp;quot; id=&amp;quot;h1-3-125&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;freebsd&amp;amp;quot;
    256 <a href="#l237" class="line" id="l237">    237</a> &lt;a href=&quot;#l218&quot; class=&quot;line&quot; id=&quot;l218&quot;&gt;    218&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-126&amp;quot; id=&amp;quot;h1-3-126&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    257 <a href="#l238" class="line" id="l238">    238</a> &lt;a href=&quot;#l219&quot; class=&quot;line&quot; id=&quot;l219&quot;&gt;    219&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-127&amp;quot; id=&amp;quot;h1-3-127&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    258 <a href="#l239" class="line" id="l239">    239</a> &lt;a href=&quot;#l220&quot; class=&quot;line&quot; id=&quot;l220&quot;&gt;    220&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-128&amp;quot; id=&amp;quot;h1-3-128&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    259 <a href="#l240" class="line" id="l240">    240</a> &lt;a href=&quot;#l221&quot; class=&quot;line&quot; id=&quot;l221&quot;&gt;    221&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-129&amp;quot; id=&amp;quot;h1-3-129&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    260 <a href="#l241" class="line" id="l241">    241</a> &lt;a href=&quot;#l222&quot; class=&quot;line&quot; id=&quot;l222&quot;&gt;    222&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-130&amp;quot; id=&amp;quot;h1-3-130&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    261 <a href="#l242" class="line" id="l242">    242</a> &lt;a href=&quot;#l223&quot; class=&quot;line&quot; id=&quot;l223&quot;&gt;    223&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-131&amp;quot; id=&amp;quot;h1-3-131&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-arm&amp;amp;quot;: {
    262 <a href="#l243" class="line" id="l243">    243</a> &lt;a href=&quot;#l224&quot; class=&quot;line&quot; id=&quot;l224&quot;&gt;    224&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-132&amp;quot; id=&amp;quot;h1-3-132&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    263 <a href="#l244" class="line" id="l244">    244</a> &lt;a href=&quot;#l225&quot; class=&quot;line&quot; id=&quot;l225&quot;&gt;    225&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-133&amp;quot; id=&amp;quot;h1-3-133&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz&amp;amp;quot;,
    264 <a href="#l245" class="line" id="l245">    245</a> &lt;a href=&quot;#l226&quot; class=&quot;line&quot; id=&quot;l226&quot;&gt;    226&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-134&amp;quot; id=&amp;quot;h1-3-134&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==&amp;amp;quot;,
    265 <a href="#l246" class="line" id="l246">    246</a> &lt;a href=&quot;#l227&quot; class=&quot;line&quot; id=&quot;l227&quot;&gt;    227&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-135&amp;quot; id=&amp;quot;h1-3-135&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    266 <a href="#l247" class="line" id="l247">    247</a> &lt;a href=&quot;#l228&quot; class=&quot;line&quot; id=&quot;l228&quot;&gt;    228&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-136&amp;quot; id=&amp;quot;h1-3-136&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm&amp;amp;quot;
    267 <a href="#l248" class="line" id="l248">    248</a> &lt;a href=&quot;#l229&quot; class=&quot;line&quot; id=&quot;l229&quot;&gt;    229&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-137&amp;quot; id=&amp;quot;h1-3-137&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    268 <a href="#l249" class="line" id="l249">    249</a> &lt;a href=&quot;#l230&quot; class=&quot;line&quot; id=&quot;l230&quot;&gt;    230&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-138&amp;quot; id=&amp;quot;h1-3-138&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    269 <a href="#l250" class="line" id="l250">    250</a> &lt;a href=&quot;#l231&quot; class=&quot;line&quot; id=&quot;l231&quot;&gt;    231&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-139&amp;quot; id=&amp;quot;h1-3-139&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    270 <a href="#l251" class="line" id="l251">    251</a> &lt;a href=&quot;#l232&quot; class=&quot;line&quot; id=&quot;l232&quot;&gt;    232&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-140&amp;quot; id=&amp;quot;h1-3-140&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    271 <a href="#l252" class="line" id="l252">    252</a> &lt;a href=&quot;#l233&quot; class=&quot;line&quot; id=&quot;l233&quot;&gt;    233&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-141&amp;quot; id=&amp;quot;h1-3-141&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    272 <a href="#l253" class="line" id="l253">    253</a> &lt;a href=&quot;#l234&quot; class=&quot;line&quot; id=&quot;l234&quot;&gt;    234&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-142&amp;quot; id=&amp;quot;h1-3-142&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    273 <a href="#l254" class="line" id="l254">    254</a> &lt;a href=&quot;#l235&quot; class=&quot;line&quot; id=&quot;l235&quot;&gt;    235&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-143&amp;quot; id=&amp;quot;h1-3-143&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    274 <a href="#l255" class="line" id="l255">    255</a> &lt;a href=&quot;#l236&quot; class=&quot;line&quot; id=&quot;l236&quot;&gt;    236&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-144&amp;quot; id=&amp;quot;h1-3-144&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    275 <a href="#l256" class="line" id="l256">    256</a> &lt;a href=&quot;#l237&quot; class=&quot;line&quot; id=&quot;l237&quot;&gt;    237&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-145&amp;quot; id=&amp;quot;h1-3-145&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    276 <a href="#l257" class="line" id="l257">    257</a> &lt;a href=&quot;#l238&quot; class=&quot;line&quot; id=&quot;l238&quot;&gt;    238&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-146&amp;quot; id=&amp;quot;h1-3-146&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    277 <a href="#l258" class="line" id="l258">    258</a> &lt;a href=&quot;#l239&quot; class=&quot;line&quot; id=&quot;l239&quot;&gt;    239&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-147&amp;quot; id=&amp;quot;h1-3-147&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-arm64&amp;amp;quot;: {
    278 <a href="#l259" class="line" id="l259">    259</a> &lt;a href=&quot;#l240&quot; class=&quot;line&quot; id=&quot;l240&quot;&gt;    240&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-148&amp;quot; id=&amp;quot;h1-3-148&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    279 <a href="#l260" class="line" id="l260">    260</a> &lt;a href=&quot;#l241&quot; class=&quot;line&quot; id=&quot;l241&quot;&gt;    241&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-149&amp;quot; id=&amp;quot;h1-3-149&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz&amp;amp;quot;,
    280 <a href="#l261" class="line" id="l261">    261</a> &lt;a href=&quot;#l242&quot; class=&quot;line&quot; id=&quot;l242&quot;&gt;    242&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-150&amp;quot; id=&amp;quot;h1-3-150&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==&amp;amp;quot;,
    281 <a href="#l262" class="line" id="l262">    262</a> &lt;a href=&quot;#l243&quot; class=&quot;line&quot; id=&quot;l243&quot;&gt;    243&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-151&amp;quot; id=&amp;quot;h1-3-151&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    282 <a href="#l263" class="line" id="l263">    263</a> &lt;a href=&quot;#l244&quot; class=&quot;line&quot; id=&quot;l244&quot;&gt;    244&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-152&amp;quot; id=&amp;quot;h1-3-152&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm64&amp;amp;quot;
    283 <a href="#l264" class="line" id="l264">    264</a> &lt;a href=&quot;#l245&quot; class=&quot;line&quot; id=&quot;l245&quot;&gt;    245&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-153&amp;quot; id=&amp;quot;h1-3-153&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    284 <a href="#l265" class="line" id="l265">    265</a> &lt;a href=&quot;#l246&quot; class=&quot;line&quot; id=&quot;l246&quot;&gt;    246&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-154&amp;quot; id=&amp;quot;h1-3-154&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    285 <a href="#l266" class="line" id="l266">    266</a> &lt;a href=&quot;#l247&quot; class=&quot;line&quot; id=&quot;l247&quot;&gt;    247&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-155&amp;quot; id=&amp;quot;h1-3-155&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    286 <a href="#l267" class="line" id="l267">    267</a> &lt;a href=&quot;#l248&quot; class=&quot;line&quot; id=&quot;l248&quot;&gt;    248&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-156&amp;quot; id=&amp;quot;h1-3-156&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    287 <a href="#l268" class="line" id="l268">    268</a> &lt;a href=&quot;#l249&quot; class=&quot;line&quot; id=&quot;l249&quot;&gt;    249&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-157&amp;quot; id=&amp;quot;h1-3-157&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    288 <a href="#l269" class="line" id="l269">    269</a> &lt;a href=&quot;#l250&quot; class=&quot;line&quot; id=&quot;l250&quot;&gt;    250&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-158&amp;quot; id=&amp;quot;h1-3-158&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    289 <a href="#l270" class="line" id="l270">    270</a> &lt;a href=&quot;#l251&quot; class=&quot;line&quot; id=&quot;l251&quot;&gt;    251&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-159&amp;quot; id=&amp;quot;h1-3-159&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    290 <a href="#l271" class="line" id="l271">    271</a> &lt;a href=&quot;#l252&quot; class=&quot;line&quot; id=&quot;l252&quot;&gt;    252&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-160&amp;quot; id=&amp;quot;h1-3-160&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    291 <a href="#l272" class="line" id="l272">    272</a> &lt;a href=&quot;#l253&quot; class=&quot;line&quot; id=&quot;l253&quot;&gt;    253&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-161&amp;quot; id=&amp;quot;h1-3-161&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    292 <a href="#l273" class="line" id="l273">    273</a> &lt;a href=&quot;#l254&quot; class=&quot;line&quot; id=&quot;l254&quot;&gt;    254&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-162&amp;quot; id=&amp;quot;h1-3-162&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    293 <a href="#l274" class="line" id="l274">    274</a> &lt;a href=&quot;#l255&quot; class=&quot;line&quot; id=&quot;l255&quot;&gt;    255&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-163&amp;quot; id=&amp;quot;h1-3-163&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-ia32&amp;amp;quot;: {
    294 <a href="#l275" class="line" id="l275">    275</a> &lt;a href=&quot;#l256&quot; class=&quot;line&quot; id=&quot;l256&quot;&gt;    256&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-164&amp;quot; id=&amp;quot;h1-3-164&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    295 <a href="#l276" class="line" id="l276">    276</a> &lt;a href=&quot;#l257&quot; class=&quot;line&quot; id=&quot;l257&quot;&gt;    257&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-165&amp;quot; id=&amp;quot;h1-3-165&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz&amp;amp;quot;,
    296 <a href="#l277" class="line" id="l277">    277</a> &lt;a href=&quot;#l258&quot; class=&quot;line&quot; id=&quot;l258&quot;&gt;    258&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-166&amp;quot; id=&amp;quot;h1-3-166&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==&amp;amp;quot;,
    297 <a href="#l278" class="line" id="l278">    278</a> &lt;a href=&quot;#l259&quot; class=&quot;line&quot; id=&quot;l259&quot;&gt;    259&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-167&amp;quot; id=&amp;quot;h1-3-167&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    298 <a href="#l279" class="line" id="l279">    279</a> &lt;a href=&quot;#l260&quot; class=&quot;line&quot; id=&quot;l260&quot;&gt;    260&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-168&amp;quot; id=&amp;quot;h1-3-168&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;ia32&amp;amp;quot;
    299 <a href="#l280" class="line" id="l280">    280</a> &lt;a href=&quot;#l261&quot; class=&quot;line&quot; id=&quot;l261&quot;&gt;    261&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-169&amp;quot; id=&amp;quot;h1-3-169&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    300 <a href="#l281" class="line" id="l281">    281</a> &lt;a href=&quot;#l262&quot; class=&quot;line&quot; id=&quot;l262&quot;&gt;    262&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-170&amp;quot; id=&amp;quot;h1-3-170&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    301 <a href="#l282" class="line" id="l282">    282</a> &lt;a href=&quot;#l263&quot; class=&quot;line&quot; id=&quot;l263&quot;&gt;    263&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-171&amp;quot; id=&amp;quot;h1-3-171&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    302 <a href="#l283" class="line" id="l283">    283</a> &lt;a href=&quot;#l264&quot; class=&quot;line&quot; id=&quot;l264&quot;&gt;    264&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-172&amp;quot; id=&amp;quot;h1-3-172&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    303 <a href="#l284" class="line" id="l284">    284</a> &lt;a href=&quot;#l265&quot; class=&quot;line&quot; id=&quot;l265&quot;&gt;    265&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-173&amp;quot; id=&amp;quot;h1-3-173&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    304 <a href="#l285" class="line" id="l285">    285</a> &lt;a href=&quot;#l266&quot; class=&quot;line&quot; id=&quot;l266&quot;&gt;    266&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-174&amp;quot; id=&amp;quot;h1-3-174&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    305 <a href="#l286" class="line" id="l286">    286</a> &lt;a href=&quot;#l267&quot; class=&quot;line&quot; id=&quot;l267&quot;&gt;    267&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-175&amp;quot; id=&amp;quot;h1-3-175&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    306 <a href="#l287" class="line" id="l287">    287</a> &lt;a href=&quot;#l268&quot; class=&quot;line&quot; id=&quot;l268&quot;&gt;    268&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-176&amp;quot; id=&amp;quot;h1-3-176&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    307 <a href="#l288" class="line" id="l288">    288</a> &lt;a href=&quot;#l269&quot; class=&quot;line&quot; id=&quot;l269&quot;&gt;    269&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-177&amp;quot; id=&amp;quot;h1-3-177&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    308 <a href="#l289" class="line" id="l289">    289</a> &lt;a href=&quot;#l270&quot; class=&quot;line&quot; id=&quot;l270&quot;&gt;    270&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-178&amp;quot; id=&amp;quot;h1-3-178&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    309 <a href="#l290" class="line" id="l290">    290</a> &lt;a href=&quot;#l271&quot; class=&quot;line&quot; id=&quot;l271&quot;&gt;    271&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-179&amp;quot; id=&amp;quot;h1-3-179&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-loong64&amp;amp;quot;: {
    310 <a href="#l291" class="line" id="l291">    291</a> &lt;a href=&quot;#l272&quot; class=&quot;line&quot; id=&quot;l272&quot;&gt;    272&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-180&amp;quot; id=&amp;quot;h1-3-180&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    311 <a href="#l292" class="line" id="l292">    292</a> &lt;a href=&quot;#l273&quot; class=&quot;line&quot; id=&quot;l273&quot;&gt;    273&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-181&amp;quot; id=&amp;quot;h1-3-181&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz&amp;amp;quot;,
    312 <a href="#l293" class="line" id="l293">    293</a> &lt;a href=&quot;#l274&quot; class=&quot;line&quot; id=&quot;l274&quot;&gt;    274&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-182&amp;quot; id=&amp;quot;h1-3-182&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==&amp;amp;quot;,
    313 <a href="#l294" class="line" id="l294">    294</a> &lt;a href=&quot;#l275&quot; class=&quot;line&quot; id=&quot;l275&quot;&gt;    275&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-183&amp;quot; id=&amp;quot;h1-3-183&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    314 <a href="#l295" class="line" id="l295">    295</a> &lt;a href=&quot;#l276&quot; class=&quot;line&quot; id=&quot;l276&quot;&gt;    276&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-184&amp;quot; id=&amp;quot;h1-3-184&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;loong64&amp;amp;quot;
    315 <a href="#l296" class="line" id="l296">    296</a> &lt;a href=&quot;#l277&quot; class=&quot;line&quot; id=&quot;l277&quot;&gt;    277&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-185&amp;quot; id=&amp;quot;h1-3-185&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    316 <a href="#l297" class="line" id="l297">    297</a> &lt;a href=&quot;#l278&quot; class=&quot;line&quot; id=&quot;l278&quot;&gt;    278&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-186&amp;quot; id=&amp;quot;h1-3-186&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    317 <a href="#l298" class="line" id="l298">    298</a> &lt;a href=&quot;#l279&quot; class=&quot;line&quot; id=&quot;l279&quot;&gt;    279&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-187&amp;quot; id=&amp;quot;h1-3-187&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    318 <a href="#l299" class="line" id="l299">    299</a> &lt;a href=&quot;#l280&quot; class=&quot;line&quot; id=&quot;l280&quot;&gt;    280&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-188&amp;quot; id=&amp;quot;h1-3-188&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    319 <a href="#l300" class="line" id="l300">    300</a> &lt;a href=&quot;#l281&quot; class=&quot;line&quot; id=&quot;l281&quot;&gt;    281&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-189&amp;quot; id=&amp;quot;h1-3-189&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    320 <a href="#l301" class="line" id="l301">    301</a> &lt;a href=&quot;#l282&quot; class=&quot;line&quot; id=&quot;l282&quot;&gt;    282&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-190&amp;quot; id=&amp;quot;h1-3-190&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    321 <a href="#l302" class="line" id="l302">    302</a> &lt;a href=&quot;#l283&quot; class=&quot;line&quot; id=&quot;l283&quot;&gt;    283&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-191&amp;quot; id=&amp;quot;h1-3-191&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    322 <a href="#l303" class="line" id="l303">    303</a> &lt;a href=&quot;#l284&quot; class=&quot;line&quot; id=&quot;l284&quot;&gt;    284&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-192&amp;quot; id=&amp;quot;h1-3-192&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    323 <a href="#l304" class="line" id="l304">    304</a> &lt;a href=&quot;#l285&quot; class=&quot;line&quot; id=&quot;l285&quot;&gt;    285&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-193&amp;quot; id=&amp;quot;h1-3-193&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    324 <a href="#l305" class="line" id="l305">    305</a> &lt;a href=&quot;#l286&quot; class=&quot;line&quot; id=&quot;l286&quot;&gt;    286&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-194&amp;quot; id=&amp;quot;h1-3-194&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    325 <a href="#l306" class="line" id="l306">    306</a> &lt;a href=&quot;#l287&quot; class=&quot;line&quot; id=&quot;l287&quot;&gt;    287&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-195&amp;quot; id=&amp;quot;h1-3-195&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-mips64el&amp;amp;quot;: {
    326 <a href="#l307" class="line" id="l307">    307</a> &lt;a href=&quot;#l288&quot; class=&quot;line&quot; id=&quot;l288&quot;&gt;    288&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-196&amp;quot; id=&amp;quot;h1-3-196&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    327 <a href="#l308" class="line" id="l308">    308</a> &lt;a href=&quot;#l289&quot; class=&quot;line&quot; id=&quot;l289&quot;&gt;    289&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-197&amp;quot; id=&amp;quot;h1-3-197&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz&amp;amp;quot;,
    328 <a href="#l309" class="line" id="l309">    309</a> &lt;a href=&quot;#l290&quot; class=&quot;line&quot; id=&quot;l290&quot;&gt;    290&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-198&amp;quot; id=&amp;quot;h1-3-198&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==&amp;amp;quot;,
    329 <a href="#l310" class="line" id="l310">    310</a> &lt;a href=&quot;#l291&quot; class=&quot;line&quot; id=&quot;l291&quot;&gt;    291&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-199&amp;quot; id=&amp;quot;h1-3-199&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    330 <a href="#l311" class="line" id="l311">    311</a> &lt;a href=&quot;#l292&quot; class=&quot;line&quot; id=&quot;l292&quot;&gt;    292&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-200&amp;quot; id=&amp;quot;h1-3-200&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;mips64el&amp;amp;quot;
    331 <a href="#l312" class="line" id="l312">    312</a> &lt;a href=&quot;#l293&quot; class=&quot;line&quot; id=&quot;l293&quot;&gt;    293&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-201&amp;quot; id=&amp;quot;h1-3-201&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    332 <a href="#l313" class="line" id="l313">    313</a> &lt;a href=&quot;#l294&quot; class=&quot;line&quot; id=&quot;l294&quot;&gt;    294&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-202&amp;quot; id=&amp;quot;h1-3-202&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    333 <a href="#l314" class="line" id="l314">    314</a> &lt;a href=&quot;#l295&quot; class=&quot;line&quot; id=&quot;l295&quot;&gt;    295&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-203&amp;quot; id=&amp;quot;h1-3-203&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    334 <a href="#l315" class="line" id="l315">    315</a> &lt;a href=&quot;#l296&quot; class=&quot;line&quot; id=&quot;l296&quot;&gt;    296&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-204&amp;quot; id=&amp;quot;h1-3-204&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    335 <a href="#l316" class="line" id="l316">    316</a> &lt;a href=&quot;#l297&quot; class=&quot;line&quot; id=&quot;l297&quot;&gt;    297&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-205&amp;quot; id=&amp;quot;h1-3-205&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    336 <a href="#l317" class="line" id="l317">    317</a> &lt;a href=&quot;#l298&quot; class=&quot;line&quot; id=&quot;l298&quot;&gt;    298&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-206&amp;quot; id=&amp;quot;h1-3-206&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    337 <a href="#l318" class="line" id="l318">    318</a> &lt;a href=&quot;#l299&quot; class=&quot;line&quot; id=&quot;l299&quot;&gt;    299&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-207&amp;quot; id=&amp;quot;h1-3-207&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    338 <a href="#l319" class="line" id="l319">    319</a> &lt;a href=&quot;#l300&quot; class=&quot;line&quot; id=&quot;l300&quot;&gt;    300&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-208&amp;quot; id=&amp;quot;h1-3-208&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    339 <a href="#l320" class="line" id="l320">    320</a> &lt;a href=&quot;#l301&quot; class=&quot;line&quot; id=&quot;l301&quot;&gt;    301&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-209&amp;quot; id=&amp;quot;h1-3-209&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    340 <a href="#l321" class="line" id="l321">    321</a> &lt;a href=&quot;#l302&quot; class=&quot;line&quot; id=&quot;l302&quot;&gt;    302&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-210&amp;quot; id=&amp;quot;h1-3-210&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    341 <a href="#l322" class="line" id="l322">    322</a> &lt;a href=&quot;#l303&quot; class=&quot;line&quot; id=&quot;l303&quot;&gt;    303&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-211&amp;quot; id=&amp;quot;h1-3-211&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-ppc64&amp;amp;quot;: {
    342 <a href="#l323" class="line" id="l323">    323</a> &lt;a href=&quot;#l304&quot; class=&quot;line&quot; id=&quot;l304&quot;&gt;    304&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-212&amp;quot; id=&amp;quot;h1-3-212&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    343 <a href="#l324" class="line" id="l324">    324</a> &lt;a href=&quot;#l305&quot; class=&quot;line&quot; id=&quot;l305&quot;&gt;    305&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-213&amp;quot; id=&amp;quot;h1-3-213&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz&amp;amp;quot;,
    344 <a href="#l325" class="line" id="l325">    325</a> &lt;a href=&quot;#l306&quot; class=&quot;line&quot; id=&quot;l306&quot;&gt;    306&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-214&amp;quot; id=&amp;quot;h1-3-214&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==&amp;amp;quot;,
    345 <a href="#l326" class="line" id="l326">    326</a> &lt;a href=&quot;#l307&quot; class=&quot;line&quot; id=&quot;l307&quot;&gt;    307&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-215&amp;quot; id=&amp;quot;h1-3-215&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    346 <a href="#l327" class="line" id="l327">    327</a> &lt;a href=&quot;#l308&quot; class=&quot;line&quot; id=&quot;l308&quot;&gt;    308&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-216&amp;quot; id=&amp;quot;h1-3-216&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;ppc64&amp;amp;quot;
    347 <a href="#l328" class="line" id="l328">    328</a> &lt;a href=&quot;#l309&quot; class=&quot;line&quot; id=&quot;l309&quot;&gt;    309&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-217&amp;quot; id=&amp;quot;h1-3-217&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    348 <a href="#l329" class="line" id="l329">    329</a> &lt;a href=&quot;#l310&quot; class=&quot;line&quot; id=&quot;l310&quot;&gt;    310&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-218&amp;quot; id=&amp;quot;h1-3-218&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    349 <a href="#l330" class="line" id="l330">    330</a> &lt;a href=&quot;#l311&quot; class=&quot;line&quot; id=&quot;l311&quot;&gt;    311&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-219&amp;quot; id=&amp;quot;h1-3-219&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    350 <a href="#l331" class="line" id="l331">    331</a> &lt;a href=&quot;#l312&quot; class=&quot;line&quot; id=&quot;l312&quot;&gt;    312&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-220&amp;quot; id=&amp;quot;h1-3-220&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    351 <a href="#l332" class="line" id="l332">    332</a> &lt;a href=&quot;#l313&quot; class=&quot;line&quot; id=&quot;l313&quot;&gt;    313&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-221&amp;quot; id=&amp;quot;h1-3-221&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    352 <a href="#l333" class="line" id="l333">    333</a> &lt;a href=&quot;#l314&quot; class=&quot;line&quot; id=&quot;l314&quot;&gt;    314&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-222&amp;quot; id=&amp;quot;h1-3-222&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    353 <a href="#l334" class="line" id="l334">    334</a> &lt;a href=&quot;#l315&quot; class=&quot;line&quot; id=&quot;l315&quot;&gt;    315&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-223&amp;quot; id=&amp;quot;h1-3-223&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    354 <a href="#l335" class="line" id="l335">    335</a> &lt;a href=&quot;#l316&quot; class=&quot;line&quot; id=&quot;l316&quot;&gt;    316&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-224&amp;quot; id=&amp;quot;h1-3-224&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    355 <a href="#l336" class="line" id="l336">    336</a> &lt;a href=&quot;#l317&quot; class=&quot;line&quot; id=&quot;l317&quot;&gt;    317&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-225&amp;quot; id=&amp;quot;h1-3-225&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    356 <a href="#l337" class="line" id="l337">    337</a> &lt;a href=&quot;#l318&quot; class=&quot;line&quot; id=&quot;l318&quot;&gt;    318&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-226&amp;quot; id=&amp;quot;h1-3-226&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    357 <a href="#l338" class="line" id="l338">    338</a> &lt;a href=&quot;#l319&quot; class=&quot;line&quot; id=&quot;l319&quot;&gt;    319&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-227&amp;quot; id=&amp;quot;h1-3-227&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-riscv64&amp;amp;quot;: {
    358 <a href="#l339" class="line" id="l339">    339</a> &lt;a href=&quot;#l320&quot; class=&quot;line&quot; id=&quot;l320&quot;&gt;    320&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-228&amp;quot; id=&amp;quot;h1-3-228&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    359 <a href="#l340" class="line" id="l340">    340</a> &lt;a href=&quot;#l321&quot; class=&quot;line&quot; id=&quot;l321&quot;&gt;    321&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-229&amp;quot; id=&amp;quot;h1-3-229&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz&amp;amp;quot;,
    360 <a href="#l341" class="line" id="l341">    341</a> &lt;a href=&quot;#l322&quot; class=&quot;line&quot; id=&quot;l322&quot;&gt;    322&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-230&amp;quot; id=&amp;quot;h1-3-230&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==&amp;amp;quot;,
    361 <a href="#l342" class="line" id="l342">    342</a> &lt;a href=&quot;#l323&quot; class=&quot;line&quot; id=&quot;l323&quot;&gt;    323&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-231&amp;quot; id=&amp;quot;h1-3-231&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    362 <a href="#l343" class="line" id="l343">    343</a> &lt;a href=&quot;#l324&quot; class=&quot;line&quot; id=&quot;l324&quot;&gt;    324&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-232&amp;quot; id=&amp;quot;h1-3-232&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;riscv64&amp;amp;quot;
    363 <a href="#l344" class="line" id="l344">    344</a> &lt;a href=&quot;#l325&quot; class=&quot;line&quot; id=&quot;l325&quot;&gt;    325&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-233&amp;quot; id=&amp;quot;h1-3-233&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    364 <a href="#l345" class="line" id="l345">    345</a> &lt;a href=&quot;#l326&quot; class=&quot;line&quot; id=&quot;l326&quot;&gt;    326&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-234&amp;quot; id=&amp;quot;h1-3-234&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    365 <a href="#l346" class="line" id="l346">    346</a> &lt;a href=&quot;#l327&quot; class=&quot;line&quot; id=&quot;l327&quot;&gt;    327&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-235&amp;quot; id=&amp;quot;h1-3-235&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    366 <a href="#l347" class="line" id="l347">    347</a> &lt;a href=&quot;#l328&quot; class=&quot;line&quot; id=&quot;l328&quot;&gt;    328&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-236&amp;quot; id=&amp;quot;h1-3-236&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    367 <a href="#l348" class="line" id="l348">    348</a> &lt;a href=&quot;#l329&quot; class=&quot;line&quot; id=&quot;l329&quot;&gt;    329&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-237&amp;quot; id=&amp;quot;h1-3-237&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    368 <a href="#l349" class="line" id="l349">    349</a> &lt;a href=&quot;#l330&quot; class=&quot;line&quot; id=&quot;l330&quot;&gt;    330&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-238&amp;quot; id=&amp;quot;h1-3-238&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    369 <a href="#l350" class="line" id="l350">    350</a> &lt;a href=&quot;#l331&quot; class=&quot;line&quot; id=&quot;l331&quot;&gt;    331&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-239&amp;quot; id=&amp;quot;h1-3-239&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    370 <a href="#l351" class="line" id="l351">    351</a> &lt;a href=&quot;#l332&quot; class=&quot;line&quot; id=&quot;l332&quot;&gt;    332&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-240&amp;quot; id=&amp;quot;h1-3-240&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    371 <a href="#l352" class="line" id="l352">    352</a> &lt;a href=&quot;#l333&quot; class=&quot;line&quot; id=&quot;l333&quot;&gt;    333&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-241&amp;quot; id=&amp;quot;h1-3-241&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    372 <a href="#l353" class="line" id="l353">    353</a> &lt;a href=&quot;#l334&quot; class=&quot;line&quot; id=&quot;l334&quot;&gt;    334&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-242&amp;quot; id=&amp;quot;h1-3-242&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    373 <a href="#l354" class="line" id="l354">    354</a> &lt;a href=&quot;#l335&quot; class=&quot;line&quot; id=&quot;l335&quot;&gt;    335&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-243&amp;quot; id=&amp;quot;h1-3-243&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-s390x&amp;amp;quot;: {
    374 <a href="#l355" class="line" id="l355">    355</a> &lt;a href=&quot;#l336&quot; class=&quot;line&quot; id=&quot;l336&quot;&gt;    336&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-244&amp;quot; id=&amp;quot;h1-3-244&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    375 <a href="#l356" class="line" id="l356">    356</a> &lt;a href=&quot;#l337&quot; class=&quot;line&quot; id=&quot;l337&quot;&gt;    337&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-245&amp;quot; id=&amp;quot;h1-3-245&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz&amp;amp;quot;,
    376 <a href="#l357" class="line" id="l357">    357</a> &lt;a href=&quot;#l338&quot; class=&quot;line&quot; id=&quot;l338&quot;&gt;    338&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-246&amp;quot; id=&amp;quot;h1-3-246&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==&amp;amp;quot;,
    377 <a href="#l358" class="line" id="l358">    358</a> &lt;a href=&quot;#l339&quot; class=&quot;line&quot; id=&quot;l339&quot;&gt;    339&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-247&amp;quot; id=&amp;quot;h1-3-247&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    378 <a href="#l359" class="line" id="l359">    359</a> &lt;a href=&quot;#l340&quot; class=&quot;line&quot; id=&quot;l340&quot;&gt;    340&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-248&amp;quot; id=&amp;quot;h1-3-248&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;s390x&amp;amp;quot;
    379 <a href="#l360" class="line" id="l360">    360</a> &lt;a href=&quot;#l341&quot; class=&quot;line&quot; id=&quot;l341&quot;&gt;    341&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-249&amp;quot; id=&amp;quot;h1-3-249&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    380 <a href="#l361" class="line" id="l361">    361</a> &lt;a href=&quot;#l342&quot; class=&quot;line&quot; id=&quot;l342&quot;&gt;    342&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-250&amp;quot; id=&amp;quot;h1-3-250&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    381 <a href="#l362" class="line" id="l362">    362</a> &lt;a href=&quot;#l343&quot; class=&quot;line&quot; id=&quot;l343&quot;&gt;    343&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-251&amp;quot; id=&amp;quot;h1-3-251&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    382 <a href="#l363" class="line" id="l363">    363</a> &lt;a href=&quot;#l344&quot; class=&quot;line&quot; id=&quot;l344&quot;&gt;    344&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-252&amp;quot; id=&amp;quot;h1-3-252&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    383 <a href="#l364" class="line" id="l364">    364</a> &lt;a href=&quot;#l345&quot; class=&quot;line&quot; id=&quot;l345&quot;&gt;    345&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-253&amp;quot; id=&amp;quot;h1-3-253&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    384 <a href="#l365" class="line" id="l365">    365</a> &lt;a href=&quot;#l346&quot; class=&quot;line&quot; id=&quot;l346&quot;&gt;    346&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-254&amp;quot; id=&amp;quot;h1-3-254&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    385 <a href="#l366" class="line" id="l366">    366</a> &lt;a href=&quot;#l347&quot; class=&quot;line&quot; id=&quot;l347&quot;&gt;    347&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-255&amp;quot; id=&amp;quot;h1-3-255&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    386 <a href="#l367" class="line" id="l367">    367</a> &lt;a href=&quot;#l348&quot; class=&quot;line&quot; id=&quot;l348&quot;&gt;    348&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-256&amp;quot; id=&amp;quot;h1-3-256&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    387 <a href="#l368" class="line" id="l368">    368</a> &lt;a href=&quot;#l349&quot; class=&quot;line&quot; id=&quot;l349&quot;&gt;    349&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-257&amp;quot; id=&amp;quot;h1-3-257&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    388 <a href="#l369" class="line" id="l369">    369</a> &lt;a href=&quot;#l350&quot; class=&quot;line&quot; id=&quot;l350&quot;&gt;    350&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-258&amp;quot; id=&amp;quot;h1-3-258&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    389 <a href="#l370" class="line" id="l370">    370</a> &lt;a href=&quot;#l351&quot; class=&quot;line&quot; id=&quot;l351&quot;&gt;    351&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-259&amp;quot; id=&amp;quot;h1-3-259&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/linux-x64&amp;amp;quot;: {
    390 <a href="#l371" class="line" id="l371">    371</a> &lt;a href=&quot;#l352&quot; class=&quot;line&quot; id=&quot;l352&quot;&gt;    352&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-260&amp;quot; id=&amp;quot;h1-3-260&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    391 <a href="#l372" class="line" id="l372">    372</a> &lt;a href=&quot;#l353&quot; class=&quot;line&quot; id=&quot;l353&quot;&gt;    353&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-261&amp;quot; id=&amp;quot;h1-3-261&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz&amp;amp;quot;,
    392 <a href="#l373" class="line" id="l373">    373</a> &lt;a href=&quot;#l354&quot; class=&quot;line&quot; id=&quot;l354&quot;&gt;    354&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-262&amp;quot; id=&amp;quot;h1-3-262&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==&amp;amp;quot;,
    393 <a href="#l374" class="line" id="l374">    374</a> &lt;a href=&quot;#l355&quot; class=&quot;line&quot; id=&quot;l355&quot;&gt;    355&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-263&amp;quot; id=&amp;quot;h1-3-263&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    394 <a href="#l375" class="line" id="l375">    375</a> &lt;a href=&quot;#l356&quot; class=&quot;line&quot; id=&quot;l356&quot;&gt;    356&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-264&amp;quot; id=&amp;quot;h1-3-264&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;x64&amp;amp;quot;
    395 <a href="#l376" class="line" id="l376">    376</a> &lt;a href=&quot;#l357&quot; class=&quot;line&quot; id=&quot;l357&quot;&gt;    357&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-265&amp;quot; id=&amp;quot;h1-3-265&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    396 <a href="#l377" class="line" id="l377">    377</a> &lt;a href=&quot;#l358&quot; class=&quot;line&quot; id=&quot;l358&quot;&gt;    358&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-266&amp;quot; id=&amp;quot;h1-3-266&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    397 <a href="#l378" class="line" id="l378">    378</a> &lt;a href=&quot;#l359&quot; class=&quot;line&quot; id=&quot;l359&quot;&gt;    359&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-267&amp;quot; id=&amp;quot;h1-3-267&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    398 <a href="#l379" class="line" id="l379">    379</a> &lt;a href=&quot;#l360&quot; class=&quot;line&quot; id=&quot;l360&quot;&gt;    360&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-268&amp;quot; id=&amp;quot;h1-3-268&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    399 <a href="#l380" class="line" id="l380">    380</a> &lt;a href=&quot;#l361&quot; class=&quot;line&quot; id=&quot;l361&quot;&gt;    361&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-269&amp;quot; id=&amp;quot;h1-3-269&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;linux&amp;amp;quot;
    400 <a href="#l381" class="line" id="l381">    381</a> &lt;a href=&quot;#l362&quot; class=&quot;line&quot; id=&quot;l362&quot;&gt;    362&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-270&amp;quot; id=&amp;quot;h1-3-270&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    401 <a href="#l382" class="line" id="l382">    382</a> &lt;a href=&quot;#l363&quot; class=&quot;line&quot; id=&quot;l363&quot;&gt;    363&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-271&amp;quot; id=&amp;quot;h1-3-271&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    402 <a href="#l383" class="line" id="l383">    383</a> &lt;a href=&quot;#l364&quot; class=&quot;line&quot; id=&quot;l364&quot;&gt;    364&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-272&amp;quot; id=&amp;quot;h1-3-272&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    403 <a href="#l384" class="line" id="l384">    384</a> &lt;a href=&quot;#l365&quot; class=&quot;line&quot; id=&quot;l365&quot;&gt;    365&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-273&amp;quot; id=&amp;quot;h1-3-273&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    404 <a href="#l385" class="line" id="l385">    385</a> &lt;a href=&quot;#l366&quot; class=&quot;line&quot; id=&quot;l366&quot;&gt;    366&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-274&amp;quot; id=&amp;quot;h1-3-274&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    405 <a href="#l386" class="line" id="l386">    386</a> &lt;a href=&quot;#l367&quot; class=&quot;line&quot; id=&quot;l367&quot;&gt;    367&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-275&amp;quot; id=&amp;quot;h1-3-275&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/netbsd-arm64&amp;amp;quot;: {
    406 <a href="#l387" class="line" id="l387">    387</a> &lt;a href=&quot;#l368&quot; class=&quot;line&quot; id=&quot;l368&quot;&gt;    368&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-276&amp;quot; id=&amp;quot;h1-3-276&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    407 <a href="#l388" class="line" id="l388">    388</a> &lt;a href=&quot;#l369&quot; class=&quot;line&quot; id=&quot;l369&quot;&gt;    369&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-277&amp;quot; id=&amp;quot;h1-3-277&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz&amp;amp;quot;,
    408 <a href="#l389" class="line" id="l389">    389</a> &lt;a href=&quot;#l370&quot; class=&quot;line&quot; id=&quot;l370&quot;&gt;    370&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-278&amp;quot; id=&amp;quot;h1-3-278&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==&amp;amp;quot;,
    409 <a href="#l390" class="line" id="l390">    390</a> &lt;a href=&quot;#l371&quot; class=&quot;line&quot; id=&quot;l371&quot;&gt;    371&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-279&amp;quot; id=&amp;quot;h1-3-279&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    410 <a href="#l391" class="line" id="l391">    391</a> &lt;a href=&quot;#l372&quot; class=&quot;line&quot; id=&quot;l372&quot;&gt;    372&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-280&amp;quot; id=&amp;quot;h1-3-280&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm64&amp;amp;quot;
    411 <a href="#l392" class="line" id="l392">    392</a> &lt;a href=&quot;#l373&quot; class=&quot;line&quot; id=&quot;l373&quot;&gt;    373&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-281&amp;quot; id=&amp;quot;h1-3-281&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    412 <a href="#l393" class="line" id="l393">    393</a> &lt;a href=&quot;#l374&quot; class=&quot;line&quot; id=&quot;l374&quot;&gt;    374&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-282&amp;quot; id=&amp;quot;h1-3-282&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    413 <a href="#l394" class="line" id="l394">    394</a> &lt;a href=&quot;#l375&quot; class=&quot;line&quot; id=&quot;l375&quot;&gt;    375&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-283&amp;quot; id=&amp;quot;h1-3-283&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    414 <a href="#l395" class="line" id="l395">    395</a> &lt;a href=&quot;#l376&quot; class=&quot;line&quot; id=&quot;l376&quot;&gt;    376&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-284&amp;quot; id=&amp;quot;h1-3-284&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    415 <a href="#l396" class="line" id="l396">    396</a> &lt;a href=&quot;#l377&quot; class=&quot;line&quot; id=&quot;l377&quot;&gt;    377&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-285&amp;quot; id=&amp;quot;h1-3-285&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;netbsd&amp;amp;quot;
    416 <a href="#l397" class="line" id="l397">    397</a> &lt;a href=&quot;#l378&quot; class=&quot;line&quot; id=&quot;l378&quot;&gt;    378&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-286&amp;quot; id=&amp;quot;h1-3-286&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    417 <a href="#l398" class="line" id="l398">    398</a> &lt;a href=&quot;#l379&quot; class=&quot;line&quot; id=&quot;l379&quot;&gt;    379&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-287&amp;quot; id=&amp;quot;h1-3-287&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    418 <a href="#l399" class="line" id="l399">    399</a> &lt;a href=&quot;#l380&quot; class=&quot;line&quot; id=&quot;l380&quot;&gt;    380&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-288&amp;quot; id=&amp;quot;h1-3-288&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    419 <a href="#l400" class="line" id="l400">    400</a> &lt;a href=&quot;#l381&quot; class=&quot;line&quot; id=&quot;l381&quot;&gt;    381&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-289&amp;quot; id=&amp;quot;h1-3-289&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    420 <a href="#l401" class="line" id="l401">    401</a> &lt;a href=&quot;#l382&quot; class=&quot;line&quot; id=&quot;l382&quot;&gt;    382&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-290&amp;quot; id=&amp;quot;h1-3-290&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    421 <a href="#l402" class="line" id="l402">    402</a> &lt;a href=&quot;#l383&quot; class=&quot;line&quot; id=&quot;l383&quot;&gt;    383&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-291&amp;quot; id=&amp;quot;h1-3-291&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/netbsd-x64&amp;amp;quot;: {
    422 <a href="#l403" class="line" id="l403">    403</a> &lt;a href=&quot;#l384&quot; class=&quot;line&quot; id=&quot;l384&quot;&gt;    384&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-292&amp;quot; id=&amp;quot;h1-3-292&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    423 <a href="#l404" class="line" id="l404">    404</a> &lt;a href=&quot;#l385&quot; class=&quot;line&quot; id=&quot;l385&quot;&gt;    385&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-293&amp;quot; id=&amp;quot;h1-3-293&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz&amp;amp;quot;,
    424 <a href="#l405" class="line" id="l405">    405</a> &lt;a href=&quot;#l386&quot; class=&quot;line&quot; id=&quot;l386&quot;&gt;    386&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-294&amp;quot; id=&amp;quot;h1-3-294&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==&amp;amp;quot;,
    425 <a href="#l406" class="line" id="l406">    406</a> &lt;a href=&quot;#l387&quot; class=&quot;line&quot; id=&quot;l387&quot;&gt;    387&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-295&amp;quot; id=&amp;quot;h1-3-295&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    426 <a href="#l407" class="line" id="l407">    407</a> &lt;a href=&quot;#l388&quot; class=&quot;line&quot; id=&quot;l388&quot;&gt;    388&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-296&amp;quot; id=&amp;quot;h1-3-296&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;x64&amp;amp;quot;
    427 <a href="#l408" class="line" id="l408">    408</a> &lt;a href=&quot;#l389&quot; class=&quot;line&quot; id=&quot;l389&quot;&gt;    389&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-297&amp;quot; id=&amp;quot;h1-3-297&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    428 <a href="#l409" class="line" id="l409">    409</a> &lt;a href=&quot;#l390&quot; class=&quot;line&quot; id=&quot;l390&quot;&gt;    390&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-298&amp;quot; id=&amp;quot;h1-3-298&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    429 <a href="#l410" class="line" id="l410">    410</a> &lt;a href=&quot;#l391&quot; class=&quot;line&quot; id=&quot;l391&quot;&gt;    391&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-299&amp;quot; id=&amp;quot;h1-3-299&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    430 <a href="#l411" class="line" id="l411">    411</a> &lt;a href=&quot;#l392&quot; class=&quot;line&quot; id=&quot;l392&quot;&gt;    392&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-300&amp;quot; id=&amp;quot;h1-3-300&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    431 <a href="#l412" class="line" id="l412">    412</a> &lt;a href=&quot;#l393&quot; class=&quot;line&quot; id=&quot;l393&quot;&gt;    393&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-301&amp;quot; id=&amp;quot;h1-3-301&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;netbsd&amp;amp;quot;
    432 <a href="#l413" class="line" id="l413">    413</a> &lt;a href=&quot;#l394&quot; class=&quot;line&quot; id=&quot;l394&quot;&gt;    394&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-302&amp;quot; id=&amp;quot;h1-3-302&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    433 <a href="#l414" class="line" id="l414">    414</a> &lt;a href=&quot;#l395&quot; class=&quot;line&quot; id=&quot;l395&quot;&gt;    395&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-303&amp;quot; id=&amp;quot;h1-3-303&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    434 <a href="#l415" class="line" id="l415">    415</a> &lt;a href=&quot;#l396&quot; class=&quot;line&quot; id=&quot;l396&quot;&gt;    396&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-304&amp;quot; id=&amp;quot;h1-3-304&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    435 <a href="#l416" class="line" id="l416">    416</a> &lt;a href=&quot;#l397&quot; class=&quot;line&quot; id=&quot;l397&quot;&gt;    397&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-305&amp;quot; id=&amp;quot;h1-3-305&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    436 <a href="#l417" class="line" id="l417">    417</a> &lt;a href=&quot;#l398&quot; class=&quot;line&quot; id=&quot;l398&quot;&gt;    398&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-306&amp;quot; id=&amp;quot;h1-3-306&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    437 <a href="#l418" class="line" id="l418">    418</a> &lt;a href=&quot;#l399&quot; class=&quot;line&quot; id=&quot;l399&quot;&gt;    399&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-307&amp;quot; id=&amp;quot;h1-3-307&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/openbsd-arm64&amp;amp;quot;: {
    438 <a href="#l419" class="line" id="l419">    419</a> &lt;a href=&quot;#l400&quot; class=&quot;line&quot; id=&quot;l400&quot;&gt;    400&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-308&amp;quot; id=&amp;quot;h1-3-308&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    439 <a href="#l420" class="line" id="l420">    420</a> &lt;a href=&quot;#l401&quot; class=&quot;line&quot; id=&quot;l401&quot;&gt;    401&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-309&amp;quot; id=&amp;quot;h1-3-309&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz&amp;amp;quot;,
    440 <a href="#l421" class="line" id="l421">    421</a> &lt;a href=&quot;#l402&quot; class=&quot;line&quot; id=&quot;l402&quot;&gt;    402&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-310&amp;quot; id=&amp;quot;h1-3-310&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==&amp;amp;quot;,
    441 <a href="#l422" class="line" id="l422">    422</a> &lt;a href=&quot;#l403&quot; class=&quot;line&quot; id=&quot;l403&quot;&gt;    403&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-311&amp;quot; id=&amp;quot;h1-3-311&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    442 <a href="#l423" class="line" id="l423">    423</a> &lt;a href=&quot;#l404&quot; class=&quot;line&quot; id=&quot;l404&quot;&gt;    404&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-312&amp;quot; id=&amp;quot;h1-3-312&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm64&amp;amp;quot;
    443 <a href="#l424" class="line" id="l424">    424</a> &lt;a href=&quot;#l405&quot; class=&quot;line&quot; id=&quot;l405&quot;&gt;    405&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-313&amp;quot; id=&amp;quot;h1-3-313&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    444 <a href="#l425" class="line" id="l425">    425</a> &lt;a href=&quot;#l406&quot; class=&quot;line&quot; id=&quot;l406&quot;&gt;    406&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-314&amp;quot; id=&amp;quot;h1-3-314&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    445 <a href="#l426" class="line" id="l426">    426</a> &lt;a href=&quot;#l407&quot; class=&quot;line&quot; id=&quot;l407&quot;&gt;    407&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-315&amp;quot; id=&amp;quot;h1-3-315&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    446 <a href="#l427" class="line" id="l427">    427</a> &lt;a href=&quot;#l408&quot; class=&quot;line&quot; id=&quot;l408&quot;&gt;    408&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-316&amp;quot; id=&amp;quot;h1-3-316&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    447 <a href="#l428" class="line" id="l428">    428</a> &lt;a href=&quot;#l409&quot; class=&quot;line&quot; id=&quot;l409&quot;&gt;    409&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-317&amp;quot; id=&amp;quot;h1-3-317&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;openbsd&amp;amp;quot;
    448 <a href="#l429" class="line" id="l429">    429</a> &lt;a href=&quot;#l410&quot; class=&quot;line&quot; id=&quot;l410&quot;&gt;    410&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-318&amp;quot; id=&amp;quot;h1-3-318&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    449 <a href="#l430" class="line" id="l430">    430</a> &lt;a href=&quot;#l411&quot; class=&quot;line&quot; id=&quot;l411&quot;&gt;    411&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-319&amp;quot; id=&amp;quot;h1-3-319&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    450 <a href="#l431" class="line" id="l431">    431</a> &lt;a href=&quot;#l412&quot; class=&quot;line&quot; id=&quot;l412&quot;&gt;    412&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-320&amp;quot; id=&amp;quot;h1-3-320&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    451 <a href="#l432" class="line" id="l432">    432</a> &lt;a href=&quot;#l413&quot; class=&quot;line&quot; id=&quot;l413&quot;&gt;    413&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-321&amp;quot; id=&amp;quot;h1-3-321&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    452 <a href="#l433" class="line" id="l433">    433</a> &lt;a href=&quot;#l414&quot; class=&quot;line&quot; id=&quot;l414&quot;&gt;    414&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-322&amp;quot; id=&amp;quot;h1-3-322&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    453 <a href="#l434" class="line" id="l434">    434</a> &lt;a href=&quot;#l415&quot; class=&quot;line&quot; id=&quot;l415&quot;&gt;    415&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-323&amp;quot; id=&amp;quot;h1-3-323&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/openbsd-x64&amp;amp;quot;: {
    454 <a href="#l435" class="line" id="l435">    435</a> &lt;a href=&quot;#l416&quot; class=&quot;line&quot; id=&quot;l416&quot;&gt;    416&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-324&amp;quot; id=&amp;quot;h1-3-324&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    455 <a href="#l436" class="line" id="l436">    436</a> &lt;a href=&quot;#l417&quot; class=&quot;line&quot; id=&quot;l417&quot;&gt;    417&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-325&amp;quot; id=&amp;quot;h1-3-325&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz&amp;amp;quot;,
    456 <a href="#l437" class="line" id="l437">    437</a> &lt;a href=&quot;#l418&quot; class=&quot;line&quot; id=&quot;l418&quot;&gt;    418&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-326&amp;quot; id=&amp;quot;h1-3-326&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==&amp;amp;quot;,
    457 <a href="#l438" class="line" id="l438">    438</a> &lt;a href=&quot;#l419&quot; class=&quot;line&quot; id=&quot;l419&quot;&gt;    419&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-327&amp;quot; id=&amp;quot;h1-3-327&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    458 <a href="#l439" class="line" id="l439">    439</a> &lt;a href=&quot;#l420&quot; class=&quot;line&quot; id=&quot;l420&quot;&gt;    420&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-328&amp;quot; id=&amp;quot;h1-3-328&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;x64&amp;amp;quot;
    459 <a href="#l440" class="line" id="l440">    440</a> &lt;a href=&quot;#l421&quot; class=&quot;line&quot; id=&quot;l421&quot;&gt;    421&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-329&amp;quot; id=&amp;quot;h1-3-329&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    460 <a href="#l441" class="line" id="l441">    441</a> &lt;a href=&quot;#l422&quot; class=&quot;line&quot; id=&quot;l422&quot;&gt;    422&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-330&amp;quot; id=&amp;quot;h1-3-330&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    461 <a href="#l442" class="line" id="l442">    442</a> &lt;a href=&quot;#l423&quot; class=&quot;line&quot; id=&quot;l423&quot;&gt;    423&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-331&amp;quot; id=&amp;quot;h1-3-331&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    462 <a href="#l443" class="line" id="l443">    443</a> &lt;a href=&quot;#l424&quot; class=&quot;line&quot; id=&quot;l424&quot;&gt;    424&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-332&amp;quot; id=&amp;quot;h1-3-332&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    463 <a href="#l444" class="line" id="l444">    444</a> &lt;a href=&quot;#l425&quot; class=&quot;line&quot; id=&quot;l425&quot;&gt;    425&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-333&amp;quot; id=&amp;quot;h1-3-333&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;openbsd&amp;amp;quot;
    464 <a href="#l445" class="line" id="l445">    445</a> &lt;a href=&quot;#l426&quot; class=&quot;line&quot; id=&quot;l426&quot;&gt;    426&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-334&amp;quot; id=&amp;quot;h1-3-334&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    465 <a href="#l446" class="line" id="l446">    446</a> &lt;a href=&quot;#l427&quot; class=&quot;line&quot; id=&quot;l427&quot;&gt;    427&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-335&amp;quot; id=&amp;quot;h1-3-335&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    466 <a href="#l447" class="line" id="l447">    447</a> &lt;a href=&quot;#l428&quot; class=&quot;line&quot; id=&quot;l428&quot;&gt;    428&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-336&amp;quot; id=&amp;quot;h1-3-336&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    467 <a href="#l448" class="line" id="l448">    448</a> &lt;a href=&quot;#l429&quot; class=&quot;line&quot; id=&quot;l429&quot;&gt;    429&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-337&amp;quot; id=&amp;quot;h1-3-337&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    468 <a href="#l449" class="line" id="l449">    449</a> &lt;a href=&quot;#l430&quot; class=&quot;line&quot; id=&quot;l430&quot;&gt;    430&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-338&amp;quot; id=&amp;quot;h1-3-338&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    469 <a href="#l450" class="line" id="l450">    450</a> &lt;a href=&quot;#l431&quot; class=&quot;line&quot; id=&quot;l431&quot;&gt;    431&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-339&amp;quot; id=&amp;quot;h1-3-339&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/openharmony-arm64&amp;amp;quot;: {
    470 <a href="#l451" class="line" id="l451">    451</a> &lt;a href=&quot;#l432&quot; class=&quot;line&quot; id=&quot;l432&quot;&gt;    432&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-340&amp;quot; id=&amp;quot;h1-3-340&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    471 <a href="#l452" class="line" id="l452">    452</a> &lt;a href=&quot;#l433&quot; class=&quot;line&quot; id=&quot;l433&quot;&gt;    433&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-341&amp;quot; id=&amp;quot;h1-3-341&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz&amp;amp;quot;,
    472 <a href="#l453" class="line" id="l453">    453</a> &lt;a href=&quot;#l434&quot; class=&quot;line&quot; id=&quot;l434&quot;&gt;    434&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-342&amp;quot; id=&amp;quot;h1-3-342&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==&amp;amp;quot;,
    473 <a href="#l454" class="line" id="l454">    454</a> &lt;a href=&quot;#l435&quot; class=&quot;line&quot; id=&quot;l435&quot;&gt;    435&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-343&amp;quot; id=&amp;quot;h1-3-343&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    474 <a href="#l455" class="line" id="l455">    455</a> &lt;a href=&quot;#l436&quot; class=&quot;line&quot; id=&quot;l436&quot;&gt;    436&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-344&amp;quot; id=&amp;quot;h1-3-344&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm64&amp;amp;quot;
    475 <a href="#l456" class="line" id="l456">    456</a> &lt;a href=&quot;#l437&quot; class=&quot;line&quot; id=&quot;l437&quot;&gt;    437&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-345&amp;quot; id=&amp;quot;h1-3-345&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    476 <a href="#l457" class="line" id="l457">    457</a> &lt;a href=&quot;#l438&quot; class=&quot;line&quot; id=&quot;l438&quot;&gt;    438&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-346&amp;quot; id=&amp;quot;h1-3-346&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    477 <a href="#l458" class="line" id="l458">    458</a> &lt;a href=&quot;#l439&quot; class=&quot;line&quot; id=&quot;l439&quot;&gt;    439&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-347&amp;quot; id=&amp;quot;h1-3-347&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    478 <a href="#l459" class="line" id="l459">    459</a> &lt;a href=&quot;#l440&quot; class=&quot;line&quot; id=&quot;l440&quot;&gt;    440&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-348&amp;quot; id=&amp;quot;h1-3-348&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    479 <a href="#l460" class="line" id="l460">    460</a> &lt;a href=&quot;#l441&quot; class=&quot;line&quot; id=&quot;l441&quot;&gt;    441&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-349&amp;quot; id=&amp;quot;h1-3-349&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;openharmony&amp;amp;quot;
    480 <a href="#l461" class="line" id="l461">    461</a> &lt;a href=&quot;#l442&quot; class=&quot;line&quot; id=&quot;l442&quot;&gt;    442&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-350&amp;quot; id=&amp;quot;h1-3-350&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    481 <a href="#l462" class="line" id="l462">    462</a> &lt;a href=&quot;#l443&quot; class=&quot;line&quot; id=&quot;l443&quot;&gt;    443&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-351&amp;quot; id=&amp;quot;h1-3-351&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    482 <a href="#l463" class="line" id="l463">    463</a> &lt;a href=&quot;#l444&quot; class=&quot;line&quot; id=&quot;l444&quot;&gt;    444&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-352&amp;quot; id=&amp;quot;h1-3-352&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    483 <a href="#l464" class="line" id="l464">    464</a> &lt;a href=&quot;#l445&quot; class=&quot;line&quot; id=&quot;l445&quot;&gt;    445&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-353&amp;quot; id=&amp;quot;h1-3-353&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    484 <a href="#l465" class="line" id="l465">    465</a> &lt;a href=&quot;#l446&quot; class=&quot;line&quot; id=&quot;l446&quot;&gt;    446&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-354&amp;quot; id=&amp;quot;h1-3-354&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    485 <a href="#l466" class="line" id="l466">    466</a> &lt;a href=&quot;#l447&quot; class=&quot;line&quot; id=&quot;l447&quot;&gt;    447&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-355&amp;quot; id=&amp;quot;h1-3-355&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/sunos-x64&amp;amp;quot;: {
    486 <a href="#l467" class="line" id="l467">    467</a> &lt;a href=&quot;#l448&quot; class=&quot;line&quot; id=&quot;l448&quot;&gt;    448&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-356&amp;quot; id=&amp;quot;h1-3-356&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    487 <a href="#l468" class="line" id="l468">    468</a> &lt;a href=&quot;#l449&quot; class=&quot;line&quot; id=&quot;l449&quot;&gt;    449&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-357&amp;quot; id=&amp;quot;h1-3-357&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz&amp;amp;quot;,
    488 <a href="#l469" class="line" id="l469">    469</a> &lt;a href=&quot;#l450&quot; class=&quot;line&quot; id=&quot;l450&quot;&gt;    450&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-358&amp;quot; id=&amp;quot;h1-3-358&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==&amp;amp;quot;,
    489 <a href="#l470" class="line" id="l470">    470</a> &lt;a href=&quot;#l451&quot; class=&quot;line&quot; id=&quot;l451&quot;&gt;    451&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-359&amp;quot; id=&amp;quot;h1-3-359&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    490 <a href="#l471" class="line" id="l471">    471</a> &lt;a href=&quot;#l452&quot; class=&quot;line&quot; id=&quot;l452&quot;&gt;    452&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-360&amp;quot; id=&amp;quot;h1-3-360&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;x64&amp;amp;quot;
    491 <a href="#l472" class="line" id="l472">    472</a> &lt;a href=&quot;#l453&quot; class=&quot;line&quot; id=&quot;l453&quot;&gt;    453&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-361&amp;quot; id=&amp;quot;h1-3-361&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    492 <a href="#l473" class="line" id="l473">    473</a> &lt;a href=&quot;#l454&quot; class=&quot;line&quot; id=&quot;l454&quot;&gt;    454&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-362&amp;quot; id=&amp;quot;h1-3-362&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    493 <a href="#l474" class="line" id="l474">    474</a> &lt;a href=&quot;#l455&quot; class=&quot;line&quot; id=&quot;l455&quot;&gt;    455&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-363&amp;quot; id=&amp;quot;h1-3-363&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    494 <a href="#l475" class="line" id="l475">    475</a> &lt;a href=&quot;#l456&quot; class=&quot;line&quot; id=&quot;l456&quot;&gt;    456&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-364&amp;quot; id=&amp;quot;h1-3-364&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    495 <a href="#l476" class="line" id="l476">    476</a> &lt;a href=&quot;#l457&quot; class=&quot;line&quot; id=&quot;l457&quot;&gt;    457&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-365&amp;quot; id=&amp;quot;h1-3-365&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;sunos&amp;amp;quot;
    496 <a href="#l477" class="line" id="l477">    477</a> &lt;a href=&quot;#l458&quot; class=&quot;line&quot; id=&quot;l458&quot;&gt;    458&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-366&amp;quot; id=&amp;quot;h1-3-366&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    497 <a href="#l478" class="line" id="l478">    478</a> &lt;a href=&quot;#l459&quot; class=&quot;line&quot; id=&quot;l459&quot;&gt;    459&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-367&amp;quot; id=&amp;quot;h1-3-367&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    498 <a href="#l479" class="line" id="l479">    479</a> &lt;a href=&quot;#l460&quot; class=&quot;line&quot; id=&quot;l460&quot;&gt;    460&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-368&amp;quot; id=&amp;quot;h1-3-368&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    499 <a href="#l480" class="line" id="l480">    480</a> &lt;a href=&quot;#l461&quot; class=&quot;line&quot; id=&quot;l461&quot;&gt;    461&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-369&amp;quot; id=&amp;quot;h1-3-369&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    500 <a href="#l481" class="line" id="l481">    481</a> &lt;a href=&quot;#l462&quot; class=&quot;line&quot; id=&quot;l462&quot;&gt;    462&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-370&amp;quot; id=&amp;quot;h1-3-370&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    501 <a href="#l482" class="line" id="l482">    482</a> &lt;a href=&quot;#l463&quot; class=&quot;line&quot; id=&quot;l463&quot;&gt;    463&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-371&amp;quot; id=&amp;quot;h1-3-371&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/win32-arm64&amp;amp;quot;: {
    502 <a href="#l483" class="line" id="l483">    483</a> &lt;a href=&quot;#l464&quot; class=&quot;line&quot; id=&quot;l464&quot;&gt;    464&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-372&amp;quot; id=&amp;quot;h1-3-372&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    503 <a href="#l484" class="line" id="l484">    484</a> &lt;a href=&quot;#l465&quot; class=&quot;line&quot; id=&quot;l465&quot;&gt;    465&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-373&amp;quot; id=&amp;quot;h1-3-373&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz&amp;amp;quot;,
    504 <a href="#l485" class="line" id="l485">    485</a> &lt;a href=&quot;#l466&quot; class=&quot;line&quot; id=&quot;l466&quot;&gt;    466&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-374&amp;quot; id=&amp;quot;h1-3-374&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==&amp;amp;quot;,
    505 <a href="#l486" class="line" id="l486">    486</a> &lt;a href=&quot;#l467&quot; class=&quot;line&quot; id=&quot;l467&quot;&gt;    467&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-375&amp;quot; id=&amp;quot;h1-3-375&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    506 <a href="#l487" class="line" id="l487">    487</a> &lt;a href=&quot;#l468&quot; class=&quot;line&quot; id=&quot;l468&quot;&gt;    468&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-376&amp;quot; id=&amp;quot;h1-3-376&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;arm64&amp;amp;quot;
    507 <a href="#l488" class="line" id="l488">    488</a> &lt;a href=&quot;#l469&quot; class=&quot;line&quot; id=&quot;l469&quot;&gt;    469&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-377&amp;quot; id=&amp;quot;h1-3-377&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    508 <a href="#l489" class="line" id="l489">    489</a> &lt;a href=&quot;#l470&quot; class=&quot;line&quot; id=&quot;l470&quot;&gt;    470&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-378&amp;quot; id=&amp;quot;h1-3-378&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    509 <a href="#l490" class="line" id="l490">    490</a> &lt;a href=&quot;#l471&quot; class=&quot;line&quot; id=&quot;l471&quot;&gt;    471&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-379&amp;quot; id=&amp;quot;h1-3-379&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    510 <a href="#l491" class="line" id="l491">    491</a> &lt;a href=&quot;#l472&quot; class=&quot;line&quot; id=&quot;l472&quot;&gt;    472&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-380&amp;quot; id=&amp;quot;h1-3-380&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    511 <a href="#l492" class="line" id="l492">    492</a> &lt;a href=&quot;#l473&quot; class=&quot;line&quot; id=&quot;l473&quot;&gt;    473&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-381&amp;quot; id=&amp;quot;h1-3-381&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;win32&amp;amp;quot;
    512 <a href="#l493" class="line" id="l493">    493</a> &lt;a href=&quot;#l474&quot; class=&quot;line&quot; id=&quot;l474&quot;&gt;    474&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-382&amp;quot; id=&amp;quot;h1-3-382&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    513 <a href="#l494" class="line" id="l494">    494</a> &lt;a href=&quot;#l475&quot; class=&quot;line&quot; id=&quot;l475&quot;&gt;    475&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-383&amp;quot; id=&amp;quot;h1-3-383&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    514 <a href="#l495" class="line" id="l495">    495</a> &lt;a href=&quot;#l476&quot; class=&quot;line&quot; id=&quot;l476&quot;&gt;    476&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-384&amp;quot; id=&amp;quot;h1-3-384&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    515 <a href="#l496" class="line" id="l496">    496</a> &lt;a href=&quot;#l477&quot; class=&quot;line&quot; id=&quot;l477&quot;&gt;    477&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-385&amp;quot; id=&amp;quot;h1-3-385&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    516 <a href="#l497" class="line" id="l497">    497</a> &lt;a href=&quot;#l478&quot; class=&quot;line&quot; id=&quot;l478&quot;&gt;    478&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-386&amp;quot; id=&amp;quot;h1-3-386&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    517 <a href="#l498" class="line" id="l498">    498</a> &lt;a href=&quot;#l479&quot; class=&quot;line&quot; id=&quot;l479&quot;&gt;    479&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-387&amp;quot; id=&amp;quot;h1-3-387&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/win32-ia32&amp;amp;quot;: {
    518 <a href="#l499" class="line" id="l499">    499</a> &lt;a href=&quot;#l480&quot; class=&quot;line&quot; id=&quot;l480&quot;&gt;    480&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-388&amp;quot; id=&amp;quot;h1-3-388&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    519 <a href="#l500" class="line" id="l500">    500</a> &lt;a href=&quot;#l481&quot; class=&quot;line&quot; id=&quot;l481&quot;&gt;    481&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-389&amp;quot; id=&amp;quot;h1-3-389&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz&amp;amp;quot;,
    520 <a href="#l501" class="line" id="l501">    501</a> &lt;a href=&quot;#l482&quot; class=&quot;line&quot; id=&quot;l482&quot;&gt;    482&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-390&amp;quot; id=&amp;quot;h1-3-390&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==&amp;amp;quot;,
    521 <a href="#l502" class="line" id="l502">    502</a> &lt;a href=&quot;#l483&quot; class=&quot;line&quot; id=&quot;l483&quot;&gt;    483&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-391&amp;quot; id=&amp;quot;h1-3-391&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    522 <a href="#l503" class="line" id="l503">    503</a> &lt;a href=&quot;#l484&quot; class=&quot;line&quot; id=&quot;l484&quot;&gt;    484&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-392&amp;quot; id=&amp;quot;h1-3-392&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;ia32&amp;amp;quot;
    523 <a href="#l504" class="line" id="l504">    504</a> &lt;a href=&quot;#l485&quot; class=&quot;line&quot; id=&quot;l485&quot;&gt;    485&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-393&amp;quot; id=&amp;quot;h1-3-393&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    524 <a href="#l505" class="line" id="l505">    505</a> &lt;a href=&quot;#l486&quot; class=&quot;line&quot; id=&quot;l486&quot;&gt;    486&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-394&amp;quot; id=&amp;quot;h1-3-394&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    525 <a href="#l506" class="line" id="l506">    506</a> &lt;a href=&quot;#l487&quot; class=&quot;line&quot; id=&quot;l487&quot;&gt;    487&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-395&amp;quot; id=&amp;quot;h1-3-395&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    526 <a href="#l507" class="line" id="l507">    507</a> &lt;a href=&quot;#l488&quot; class=&quot;line&quot; id=&quot;l488&quot;&gt;    488&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-396&amp;quot; id=&amp;quot;h1-3-396&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    527 <a href="#l508" class="line" id="l508">    508</a> &lt;a href=&quot;#l489&quot; class=&quot;line&quot; id=&quot;l489&quot;&gt;    489&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-397&amp;quot; id=&amp;quot;h1-3-397&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;win32&amp;amp;quot;
    528 <a href="#l509" class="line" id="l509">    509</a> &lt;a href=&quot;#l490&quot; class=&quot;line&quot; id=&quot;l490&quot;&gt;    490&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-398&amp;quot; id=&amp;quot;h1-3-398&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    529 <a href="#l510" class="line" id="l510">    510</a> &lt;a href=&quot;#l491&quot; class=&quot;line&quot; id=&quot;l491&quot;&gt;    491&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-399&amp;quot; id=&amp;quot;h1-3-399&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    530 <a href="#l511" class="line" id="l511">    511</a> &lt;a href=&quot;#l492&quot; class=&quot;line&quot; id=&quot;l492&quot;&gt;    492&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-400&amp;quot; id=&amp;quot;h1-3-400&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    531 <a href="#l512" class="line" id="l512">    512</a> &lt;a href=&quot;#l493&quot; class=&quot;line&quot; id=&quot;l493&quot;&gt;    493&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-401&amp;quot; id=&amp;quot;h1-3-401&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    532 <a href="#l513" class="line" id="l513">    513</a> &lt;a href=&quot;#l494&quot; class=&quot;line&quot; id=&quot;l494&quot;&gt;    494&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-402&amp;quot; id=&amp;quot;h1-3-402&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    533 <a href="#l514" class="line" id="l514">    514</a> &lt;a href=&quot;#l495&quot; class=&quot;line&quot; id=&quot;l495&quot;&gt;    495&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-403&amp;quot; id=&amp;quot;h1-3-403&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@esbuild/win32-x64&amp;amp;quot;: {
    534 <a href="#l515" class="line" id="l515">    515</a> &lt;a href=&quot;#l496&quot; class=&quot;line&quot; id=&quot;l496&quot;&gt;    496&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-404&amp;quot; id=&amp;quot;h1-3-404&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    535 <a href="#l516" class="line" id="l516">    516</a> &lt;a href=&quot;#l497&quot; class=&quot;line&quot; id=&quot;l497&quot;&gt;    497&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-405&amp;quot; id=&amp;quot;h1-3-405&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz&amp;amp;quot;,
    536 <a href="#l517" class="line" id="l517">    517</a> &lt;a href=&quot;#l498&quot; class=&quot;line&quot; id=&quot;l498&quot;&gt;    498&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-406&amp;quot; id=&amp;quot;h1-3-406&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==&amp;amp;quot;,
    537 <a href="#l518" class="line" id="l518">    518</a> &lt;a href=&quot;#l499&quot; class=&quot;line&quot; id=&quot;l499&quot;&gt;    499&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-407&amp;quot; id=&amp;quot;h1-3-407&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;cpu&amp;amp;quot;: [
    538 <a href="#l519" class="line" id="l519">    519</a> &lt;a href=&quot;#l500&quot; class=&quot;line&quot; id=&quot;l500&quot;&gt;    500&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-408&amp;quot; id=&amp;quot;h1-3-408&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;x64&amp;amp;quot;
    539 <a href="#l520" class="line" id="l520">    520</a> &lt;a href=&quot;#l501&quot; class=&quot;line&quot; id=&quot;l501&quot;&gt;    501&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-409&amp;quot; id=&amp;quot;h1-3-409&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    540 <a href="#l521" class="line" id="l521">    521</a> &lt;a href=&quot;#l502&quot; class=&quot;line&quot; id=&quot;l502&quot;&gt;    502&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-410&amp;quot; id=&amp;quot;h1-3-410&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    541 <a href="#l522" class="line" id="l522">    522</a> &lt;a href=&quot;#l503&quot; class=&quot;line&quot; id=&quot;l503&quot;&gt;    503&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-411&amp;quot; id=&amp;quot;h1-3-411&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optional&amp;amp;quot;: true,
    542 <a href="#l523" class="line" id="l523">    523</a> &lt;a href=&quot;#l504&quot; class=&quot;line&quot; id=&quot;l504&quot;&gt;    504&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-412&amp;quot; id=&amp;quot;h1-3-412&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;os&amp;amp;quot;: [
    543 <a href="#l524" class="line" id="l524">    524</a> &lt;a href=&quot;#l505&quot; class=&quot;line&quot; id=&quot;l505&quot;&gt;    505&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-413&amp;quot; id=&amp;quot;h1-3-413&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;win32&amp;amp;quot;
    544 <a href="#l525" class="line" id="l525">    525</a> &lt;a href=&quot;#l506&quot; class=&quot;line&quot; id=&quot;l506&quot;&gt;    506&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-414&amp;quot; id=&amp;quot;h1-3-414&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ],
    545 <a href="#l526" class="line" id="l526">    526</a> &lt;a href=&quot;#l507&quot; class=&quot;line&quot; id=&quot;l507&quot;&gt;    507&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-415&amp;quot; id=&amp;quot;h1-3-415&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    546 <a href="#l527" class="line" id="l527">    527</a> &lt;a href=&quot;#l508&quot; class=&quot;line&quot; id=&quot;l508&quot;&gt;    508&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-416&amp;quot; id=&amp;quot;h1-3-416&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    547 <a href="#l528" class="line" id="l528">    528</a> &lt;a href=&quot;#l509&quot; class=&quot;line&quot; id=&quot;l509&quot;&gt;    509&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-417&amp;quot; id=&amp;quot;h1-3-417&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    548 <a href="#l529" class="line" id="l529">    529</a> &lt;a href=&quot;#l510&quot; class=&quot;line&quot; id=&quot;l510&quot;&gt;    510&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-3-418&amp;quot; id=&amp;quot;h1-3-418&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    549 <a href="#l530" class="line" id="l530">    530</a> &lt;a href=&quot;#l511&quot; class=&quot;line&quot; id=&quot;l511&quot;&gt;    511&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/@eslint-community/eslint-utils&amp;amp;quot;: {
    550 <a href="#l531" class="line" id="l531">    531</a> &lt;a href=&quot;#l512&quot; class=&quot;line&quot; id=&quot;l512&quot;&gt;    512&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;4.7.0&amp;amp;quot;,
    551 <a href="#l532" class="line" id="l532">    532</a> &lt;a href=&quot;#l513&quot; class=&quot;line&quot; id=&quot;l513&quot;&gt;    513&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz&amp;amp;quot;,
    552 <a href="#l533" class="line" id="l533">    533</a> &lt;a href=&quot;#l514&quot; class=&quot;line&quot; id=&quot;l514&quot;&gt;    514&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-4&amp;quot; id=&amp;quot;h1-4&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -934,6 +1361,11 @@
    553 <a href="#l534" class="line" id="l534">    534</a> &lt;a href=&quot;#l515&quot; class=&quot;line&quot; id=&quot;l515&quot;&gt;    515&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;url&amp;amp;quot;: &amp;amp;quot;https://opencollective.com/libvips&amp;amp;quot;
    554 <a href="#l535" class="line" id="l535">    535</a> &lt;a href=&quot;#l516&quot; class=&quot;line&quot; id=&quot;l516&quot;&gt;    516&lt;/a&gt;        }
    555 <a href="#l536" class="line" id="l536">    536</a> &lt;a href=&quot;#l517&quot; class=&quot;line&quot; id=&quot;l517&quot;&gt;    517&lt;/a&gt;      },
    556 <a href="#l537" class="line" id="l537">    537</a> &lt;a href=&quot;#l518&quot; class=&quot;line&quot; id=&quot;l518&quot;&gt;    518&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-4-3&amp;quot; id=&amp;quot;h1-4-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@japont/unicode-range&amp;amp;quot;: {
    557 <a href="#l538" class="line" id="l538">    538</a> &lt;a href=&quot;#l519&quot; class=&quot;line&quot; id=&quot;l519&quot;&gt;    519&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-4-4&amp;quot; id=&amp;quot;h1-4-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.0.0&amp;amp;quot;,
    558 <a href="#l539" class="line" id="l539">    539</a> &lt;a href=&quot;#l520&quot; class=&quot;line&quot; id=&quot;l520&quot;&gt;    520&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-4-5&amp;quot; id=&amp;quot;h1-4-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@japont/unicode-range/-/unicode-range-1.0.0.tgz&amp;amp;quot;,
    559 <a href="#l540" class="line" id="l540">    540</a> &lt;a href=&quot;#l521&quot; class=&quot;line&quot; id=&quot;l521&quot;&gt;    521&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-4-6&amp;quot; id=&amp;quot;h1-4-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-BckHvA2XdjRBVAWe2uceNuRf78lBeI28kyWEbfr/Q2pE17POkwuZ6WWY/UMv8FL9iBxhW4xfDoNLM9UVZaTeUQ==&amp;amp;quot;
    560 <a href="#l541" class="line" id="l541">    541</a> &lt;a href=&quot;#l522&quot; class=&quot;line&quot; id=&quot;l522&quot;&gt;    522&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-4-7&amp;quot; id=&amp;quot;h1-4-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    561 <a href="#l542" class="line" id="l542">    542</a> &lt;a href=&quot;#l523&quot; class=&quot;line&quot; id=&quot;l523&quot;&gt;    523&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/@netlify/functions&amp;amp;quot;: {
    562 <a href="#l543" class="line" id="l543">    543</a> &lt;a href=&quot;#l524&quot; class=&quot;line&quot; id=&quot;l524&quot;&gt;    524&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.8.2&amp;amp;quot;,
    563 <a href="#l544" class="line" id="l544">    544</a> &lt;a href=&quot;#l525&quot; class=&quot;line&quot; id=&quot;l525&quot;&gt;    525&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@netlify/functions/-/functions-2.8.2.tgz&amp;amp;quot;,
    564 <a href="#l545" class="line" id="l545">    545</a> &lt;a href=&quot;#l526&quot; class=&quot;line&quot; id=&quot;l526&quot;&gt;    526&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-5&amp;quot; id=&amp;quot;h1-5&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -1282,6 +1714,55 @@
    565 <a href="#l546" class="line" id="l546">    546</a> &lt;a href=&quot;#l527&quot; class=&quot;line&quot; id=&quot;l527&quot;&gt;    527&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;url&amp;amp;quot;: &amp;amp;quot;https://opencollective.com/parcel&amp;amp;quot;
    566 <a href="#l547" class="line" id="l547">    547</a> &lt;a href=&quot;#l528&quot; class=&quot;line&quot; id=&quot;l528&quot;&gt;    528&lt;/a&gt;        }
    567 <a href="#l548" class="line" id="l548">    548</a> &lt;a href=&quot;#l529&quot; class=&quot;line&quot; id=&quot;l529&quot;&gt;    529&lt;/a&gt;      },
    568 <a href="#l549" class="line" id="l549">    549</a> &lt;a href=&quot;#l530&quot; class=&quot;line&quot; id=&quot;l530&quot;&gt;    530&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-5-3&amp;quot; id=&amp;quot;h1-5-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@react-three/fiber&amp;amp;quot;: {
    569 <a href="#l550" class="line" id="l550">    550</a> &lt;a href=&quot;#l531&quot; class=&quot;line&quot; id=&quot;l531&quot;&gt;    531&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-4&amp;quot; id=&amp;quot;h1-5-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;9.3.0&amp;amp;quot;,
    570 <a href="#l551" class="line" id="l551">    551</a> &lt;a href=&quot;#l532&quot; class=&quot;line&quot; id=&quot;l532&quot;&gt;    532&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-5&amp;quot; id=&amp;quot;h1-5-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@react-three/fiber/-/fiber-9.3.0.tgz&amp;amp;quot;,
    571 <a href="#l552" class="line" id="l552">    552</a> &lt;a href=&quot;#l533&quot; class=&quot;line&quot; id=&quot;l533&quot;&gt;    533&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-6&amp;quot; id=&amp;quot;h1-5-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-myPe3YL/C8+Eq939/4qIVEPBW/uxV0iiUbmjfwrs9sGKYDG8ib8Dz3Okq7BQt8P+0k4igedONbjXMQy84aDFmQ==&amp;amp;quot;,
    572 <a href="#l553" class="line" id="l553">    553</a> &lt;a href=&quot;#l534&quot; class=&quot;line&quot; id=&quot;l534&quot;&gt;    534&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-7&amp;quot; id=&amp;quot;h1-5-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    573 <a href="#l554" class="line" id="l554">    554</a> &lt;a href=&quot;#l535&quot; class=&quot;line&quot; id=&quot;l535&quot;&gt;    535&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-8&amp;quot; id=&amp;quot;h1-5-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@babel/runtime&amp;amp;quot;: &amp;amp;quot;^7.17.8&amp;amp;quot;,
    574 <a href="#l555" class="line" id="l555">    555</a> &lt;a href=&quot;#l536&quot; class=&quot;line&quot; id=&quot;l536&quot;&gt;    536&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-9&amp;quot; id=&amp;quot;h1-5-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@types/react-reconciler&amp;amp;quot;: &amp;amp;quot;^0.32.0&amp;amp;quot;,
    575 <a href="#l556" class="line" id="l556">    556</a> &lt;a href=&quot;#l537&quot; class=&quot;line&quot; id=&quot;l537&quot;&gt;    537&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-10&amp;quot; id=&amp;quot;h1-5-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@types/webxr&amp;amp;quot;: &amp;amp;quot;*&amp;amp;quot;,
    576 <a href="#l557" class="line" id="l557">    557</a> &lt;a href=&quot;#l538&quot; class=&quot;line&quot; id=&quot;l538&quot;&gt;    538&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-11&amp;quot; id=&amp;quot;h1-5-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;base64-js&amp;amp;quot;: &amp;amp;quot;^1.5.1&amp;amp;quot;,
    577 <a href="#l558" class="line" id="l558">    558</a> &lt;a href=&quot;#l539&quot; class=&quot;line&quot; id=&quot;l539&quot;&gt;    539&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-12&amp;quot; id=&amp;quot;h1-5-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;buffer&amp;amp;quot;: &amp;amp;quot;^6.0.3&amp;amp;quot;,
    578 <a href="#l559" class="line" id="l559">    559</a> &lt;a href=&quot;#l540&quot; class=&quot;line&quot; id=&quot;l540&quot;&gt;    540&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-13&amp;quot; id=&amp;quot;h1-5-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;its-fine&amp;amp;quot;: &amp;amp;quot;^2.0.0&amp;amp;quot;,
    579 <a href="#l560" class="line" id="l560">    560</a> &lt;a href=&quot;#l541&quot; class=&quot;line&quot; id=&quot;l541&quot;&gt;    541&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-14&amp;quot; id=&amp;quot;h1-5-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-reconciler&amp;amp;quot;: &amp;amp;quot;^0.31.0&amp;amp;quot;,
    580 <a href="#l561" class="line" id="l561">    561</a> &lt;a href=&quot;#l542&quot; class=&quot;line&quot; id=&quot;l542&quot;&gt;    542&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-15&amp;quot; id=&amp;quot;h1-5-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-use-measure&amp;amp;quot;: &amp;amp;quot;^2.1.7&amp;amp;quot;,
    581 <a href="#l562" class="line" id="l562">    562</a> &lt;a href=&quot;#l543&quot; class=&quot;line&quot; id=&quot;l543&quot;&gt;    543&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-16&amp;quot; id=&amp;quot;h1-5-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;scheduler&amp;amp;quot;: &amp;amp;quot;^0.25.0&amp;amp;quot;,
    582 <a href="#l563" class="line" id="l563">    563</a> &lt;a href=&quot;#l544&quot; class=&quot;line&quot; id=&quot;l544&quot;&gt;    544&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-17&amp;quot; id=&amp;quot;h1-5-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;suspend-react&amp;amp;quot;: &amp;amp;quot;^0.1.3&amp;amp;quot;,
    583 <a href="#l564" class="line" id="l564">    564</a> &lt;a href=&quot;#l545&quot; class=&quot;line&quot; id=&quot;l545&quot;&gt;    545&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-18&amp;quot; id=&amp;quot;h1-5-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;use-sync-external-store&amp;amp;quot;: &amp;amp;quot;^1.4.0&amp;amp;quot;,
    584 <a href="#l565" class="line" id="l565">    565</a> &lt;a href=&quot;#l546&quot; class=&quot;line&quot; id=&quot;l546&quot;&gt;    546&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-19&amp;quot; id=&amp;quot;h1-5-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;zustand&amp;amp;quot;: &amp;amp;quot;^5.0.3&amp;amp;quot;
    585 <a href="#l566" class="line" id="l566">    566</a> &lt;a href=&quot;#l547&quot; class=&quot;line&quot; id=&quot;l547&quot;&gt;    547&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-20&amp;quot; id=&amp;quot;h1-5-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    586 <a href="#l567" class="line" id="l567">    567</a> &lt;a href=&quot;#l548&quot; class=&quot;line&quot; id=&quot;l548&quot;&gt;    548&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-21&amp;quot; id=&amp;quot;h1-5-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
    587 <a href="#l568" class="line" id="l568">    568</a> &lt;a href=&quot;#l549&quot; class=&quot;line&quot; id=&quot;l549&quot;&gt;    549&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-22&amp;quot; id=&amp;quot;h1-5-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;expo&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=43.0&amp;amp;quot;,
    588 <a href="#l569" class="line" id="l569">    569</a> &lt;a href=&quot;#l550&quot; class=&quot;line&quot; id=&quot;l550&quot;&gt;    550&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-23&amp;quot; id=&amp;quot;h1-5-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;expo-asset&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=8.4&amp;amp;quot;,
    589 <a href="#l570" class="line" id="l570">    570</a> &lt;a href=&quot;#l551&quot; class=&quot;line&quot; id=&quot;l551&quot;&gt;    551&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-24&amp;quot; id=&amp;quot;h1-5-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;expo-file-system&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=11.0&amp;amp;quot;,
    590 <a href="#l571" class="line" id="l571">    571</a> &lt;a href=&quot;#l552&quot; class=&quot;line&quot; id=&quot;l552&quot;&gt;    552&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-25&amp;quot; id=&amp;quot;h1-5-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;expo-gl&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=11.0&amp;amp;quot;,
    591 <a href="#l572" class="line" id="l572">    572</a> &lt;a href=&quot;#l553&quot; class=&quot;line&quot; id=&quot;l553&quot;&gt;    553&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-26&amp;quot; id=&amp;quot;h1-5-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;^19.0.0&amp;amp;quot;,
    592 <a href="#l573" class="line" id="l573">    573</a> &lt;a href=&quot;#l554&quot; class=&quot;line&quot; id=&quot;l554&quot;&gt;    554&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-27&amp;quot; id=&amp;quot;h1-5-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-dom&amp;amp;quot;: &amp;amp;quot;^19.0.0&amp;amp;quot;,
    593 <a href="#l574" class="line" id="l574">    574</a> &lt;a href=&quot;#l555&quot; class=&quot;line&quot; id=&quot;l555&quot;&gt;    555&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-28&amp;quot; id=&amp;quot;h1-5-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-native&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.78&amp;amp;quot;,
    594 <a href="#l575" class="line" id="l575">    575</a> &lt;a href=&quot;#l556&quot; class=&quot;line&quot; id=&quot;l556&quot;&gt;    556&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-29&amp;quot; id=&amp;quot;h1-5-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;three&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.156&amp;amp;quot;
    595 <a href="#l576" class="line" id="l576">    576</a> &lt;a href=&quot;#l557&quot; class=&quot;line&quot; id=&quot;l557&quot;&gt;    557&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-30&amp;quot; id=&amp;quot;h1-5-30&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    596 <a href="#l577" class="line" id="l577">    577</a> &lt;a href=&quot;#l558&quot; class=&quot;line&quot; id=&quot;l558&quot;&gt;    558&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-31&amp;quot; id=&amp;quot;h1-5-31&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependenciesMeta&amp;amp;quot;: {
    597 <a href="#l578" class="line" id="l578">    578</a> &lt;a href=&quot;#l559&quot; class=&quot;line&quot; id=&quot;l559&quot;&gt;    559&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-32&amp;quot; id=&amp;quot;h1-5-32&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;expo&amp;amp;quot;: {
    598 <a href="#l579" class="line" id="l579">    579</a> &lt;a href=&quot;#l560&quot; class=&quot;line&quot; id=&quot;l560&quot;&gt;    560&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-33&amp;quot; id=&amp;quot;h1-5-33&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
    599 <a href="#l580" class="line" id="l580">    580</a> &lt;a href=&quot;#l561&quot; class=&quot;line&quot; id=&quot;l561&quot;&gt;    561&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-34&amp;quot; id=&amp;quot;h1-5-34&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        },
    600 <a href="#l581" class="line" id="l581">    581</a> &lt;a href=&quot;#l562&quot; class=&quot;line&quot; id=&quot;l562&quot;&gt;    562&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-35&amp;quot; id=&amp;quot;h1-5-35&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;expo-asset&amp;amp;quot;: {
    601 <a href="#l582" class="line" id="l582">    582</a> &lt;a href=&quot;#l563&quot; class=&quot;line&quot; id=&quot;l563&quot;&gt;    563&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-36&amp;quot; id=&amp;quot;h1-5-36&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
    602 <a href="#l583" class="line" id="l583">    583</a> &lt;a href=&quot;#l564&quot; class=&quot;line&quot; id=&quot;l564&quot;&gt;    564&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-37&amp;quot; id=&amp;quot;h1-5-37&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        },
    603 <a href="#l584" class="line" id="l584">    584</a> &lt;a href=&quot;#l565&quot; class=&quot;line&quot; id=&quot;l565&quot;&gt;    565&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-38&amp;quot; id=&amp;quot;h1-5-38&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;expo-file-system&amp;amp;quot;: {
    604 <a href="#l585" class="line" id="l585">    585</a> &lt;a href=&quot;#l566&quot; class=&quot;line&quot; id=&quot;l566&quot;&gt;    566&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-39&amp;quot; id=&amp;quot;h1-5-39&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
    605 <a href="#l586" class="line" id="l586">    586</a> &lt;a href=&quot;#l567&quot; class=&quot;line&quot; id=&quot;l567&quot;&gt;    567&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-40&amp;quot; id=&amp;quot;h1-5-40&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        },
    606 <a href="#l587" class="line" id="l587">    587</a> &lt;a href=&quot;#l568&quot; class=&quot;line&quot; id=&quot;l568&quot;&gt;    568&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-41&amp;quot; id=&amp;quot;h1-5-41&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;expo-gl&amp;amp;quot;: {
    607 <a href="#l588" class="line" id="l588">    588</a> &lt;a href=&quot;#l569&quot; class=&quot;line&quot; id=&quot;l569&quot;&gt;    569&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-42&amp;quot; id=&amp;quot;h1-5-42&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
    608 <a href="#l589" class="line" id="l589">    589</a> &lt;a href=&quot;#l570&quot; class=&quot;line&quot; id=&quot;l570&quot;&gt;    570&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-43&amp;quot; id=&amp;quot;h1-5-43&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        },
    609 <a href="#l590" class="line" id="l590">    590</a> &lt;a href=&quot;#l571&quot; class=&quot;line&quot; id=&quot;l571&quot;&gt;    571&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-44&amp;quot; id=&amp;quot;h1-5-44&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-dom&amp;amp;quot;: {
    610 <a href="#l591" class="line" id="l591">    591</a> &lt;a href=&quot;#l572&quot; class=&quot;line&quot; id=&quot;l572&quot;&gt;    572&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-45&amp;quot; id=&amp;quot;h1-5-45&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
    611 <a href="#l592" class="line" id="l592">    592</a> &lt;a href=&quot;#l573&quot; class=&quot;line&quot; id=&quot;l573&quot;&gt;    573&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-46&amp;quot; id=&amp;quot;h1-5-46&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        },
    612 <a href="#l593" class="line" id="l593">    593</a> &lt;a href=&quot;#l574&quot; class=&quot;line&quot; id=&quot;l574&quot;&gt;    574&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-47&amp;quot; id=&amp;quot;h1-5-47&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-native&amp;amp;quot;: {
    613 <a href="#l594" class="line" id="l594">    594</a> &lt;a href=&quot;#l575&quot; class=&quot;line&quot; id=&quot;l575&quot;&gt;    575&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-48&amp;quot; id=&amp;quot;h1-5-48&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
    614 <a href="#l595" class="line" id="l595">    595</a> &lt;a href=&quot;#l576&quot; class=&quot;line&quot; id=&quot;l576&quot;&gt;    576&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-49&amp;quot; id=&amp;quot;h1-5-49&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        }
    615 <a href="#l596" class="line" id="l596">    596</a> &lt;a href=&quot;#l577&quot; class=&quot;line&quot; id=&quot;l577&quot;&gt;    577&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-50&amp;quot; id=&amp;quot;h1-5-50&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    616 <a href="#l597" class="line" id="l597">    597</a> &lt;a href=&quot;#l578&quot; class=&quot;line&quot; id=&quot;l578&quot;&gt;    578&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-5-51&amp;quot; id=&amp;quot;h1-5-51&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    617 <a href="#l598" class="line" id="l598">    598</a> &lt;a href=&quot;#l579&quot; class=&quot;line&quot; id=&quot;l579&quot;&gt;    579&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/@sindresorhus/slugify&amp;amp;quot;: {
    618 <a href="#l599" class="line" id="l599">    599</a> &lt;a href=&quot;#l580&quot; class=&quot;line&quot; id=&quot;l580&quot;&gt;    580&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.1.2&amp;amp;quot;,
    619 <a href="#l600" class="line" id="l600">    600</a> &lt;a href=&quot;#l581&quot; class=&quot;line&quot; id=&quot;l581&quot;&gt;    581&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz&amp;amp;quot;,
    620 <a href="#l601" class="line" id="l601">    601</a> &lt;a href=&quot;#l582&quot; class=&quot;line&quot; id=&quot;l582&quot;&gt;    582&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-6&amp;quot; id=&amp;quot;h1-6&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -1363,6 +1844,28 @@
    621 <a href="#l602" class="line" id="l602">    602</a> &lt;a href=&quot;#l583&quot; class=&quot;line&quot; id=&quot;l583&quot;&gt;    583&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==&amp;amp;quot;,
    622 <a href="#l603" class="line" id="l603">    603</a> &lt;a href=&quot;#l584&quot; class=&quot;line&quot; id=&quot;l584&quot;&gt;    584&lt;/a&gt;        &amp;amp;quot;dev&amp;amp;quot;: true
    623 <a href="#l604" class="line" id="l604">    604</a> &lt;a href=&quot;#l585&quot; class=&quot;line&quot; id=&quot;l585&quot;&gt;    585&lt;/a&gt;      },
    624 <a href="#l605" class="line" id="l605">    605</a> &lt;a href=&quot;#l586&quot; class=&quot;line&quot; id=&quot;l586&quot;&gt;    586&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-6-3&amp;quot; id=&amp;quot;h1-6-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@types/react&amp;amp;quot;: {
    625 <a href="#l606" class="line" id="l606">    606</a> &lt;a href=&quot;#l587&quot; class=&quot;line&quot; id=&quot;l587&quot;&gt;    587&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-4&amp;quot; id=&amp;quot;h1-6-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;19.1.9&amp;amp;quot;,
    626 <a href="#l607" class="line" id="l607">    607</a> &lt;a href=&quot;#l588&quot; class=&quot;line&quot; id=&quot;l588&quot;&gt;    588&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-5&amp;quot; id=&amp;quot;h1-6-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@types/react/-/react-19.1.9.tgz&amp;amp;quot;,
    627 <a href="#l608" class="line" id="l608">    608</a> &lt;a href=&quot;#l589&quot; class=&quot;line&quot; id=&quot;l589&quot;&gt;    589&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-6&amp;quot; id=&amp;quot;h1-6-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-WmdoynAX8Stew/36uTSVMcLJJ1KRh6L3IZRx1PZ7qJtBqT3dYTgyDTx8H1qoRghErydW7xw9mSJ3wS//tCRpFA==&amp;amp;quot;,
    628 <a href="#l609" class="line" id="l609">    609</a> &lt;a href=&quot;#l590&quot; class=&quot;line&quot; id=&quot;l590&quot;&gt;    590&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-7&amp;quot; id=&amp;quot;h1-6-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peer&amp;amp;quot;: true,
    629 <a href="#l610" class="line" id="l610">    610</a> &lt;a href=&quot;#l591&quot; class=&quot;line&quot; id=&quot;l591&quot;&gt;    591&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-8&amp;quot; id=&amp;quot;h1-6-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    630 <a href="#l611" class="line" id="l611">    611</a> &lt;a href=&quot;#l592&quot; class=&quot;line&quot; id=&quot;l592&quot;&gt;    592&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-9&amp;quot; id=&amp;quot;h1-6-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;csstype&amp;amp;quot;: &amp;amp;quot;^3.0.2&amp;amp;quot;
    631 <a href="#l612" class="line" id="l612">    612</a> &lt;a href=&quot;#l593&quot; class=&quot;line&quot; id=&quot;l593&quot;&gt;    593&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-10&amp;quot; id=&amp;quot;h1-6-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    632 <a href="#l613" class="line" id="l613">    613</a> &lt;a href=&quot;#l594&quot; class=&quot;line&quot; id=&quot;l594&quot;&gt;    594&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-11&amp;quot; id=&amp;quot;h1-6-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    633 <a href="#l614" class="line" id="l614">    614</a> &lt;a href=&quot;#l595&quot; class=&quot;line&quot; id=&quot;l595&quot;&gt;    595&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-12&amp;quot; id=&amp;quot;h1-6-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@types/react-reconciler&amp;amp;quot;: {
    634 <a href="#l615" class="line" id="l615">    615</a> &lt;a href=&quot;#l596&quot; class=&quot;line&quot; id=&quot;l596&quot;&gt;    596&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-13&amp;quot; id=&amp;quot;h1-6-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.32.0&amp;amp;quot;,
    635 <a href="#l616" class="line" id="l616">    616</a> &lt;a href=&quot;#l597&quot; class=&quot;line&quot; id=&quot;l597&quot;&gt;    597&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-14&amp;quot; id=&amp;quot;h1-6-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.32.0.tgz&amp;amp;quot;,
    636 <a href="#l617" class="line" id="l617">    617</a> &lt;a href=&quot;#l598&quot; class=&quot;line&quot; id=&quot;l598&quot;&gt;    598&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-15&amp;quot; id=&amp;quot;h1-6-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-+WHarFkJevhH1s655qeeSEf/yxFST0dVRsmSqUgxG8mMOKqycgYBv2wVpyubBY7MX8KiX5FQ03rNIwrxfm7Bmw==&amp;amp;quot;,
    637 <a href="#l618" class="line" id="l618">    618</a> &lt;a href=&quot;#l599&quot; class=&quot;line&quot; id=&quot;l599&quot;&gt;    599&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-16&amp;quot; id=&amp;quot;h1-6-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
    638 <a href="#l619" class="line" id="l619">    619</a> &lt;a href=&quot;#l600&quot; class=&quot;line&quot; id=&quot;l600&quot;&gt;    600&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-17&amp;quot; id=&amp;quot;h1-6-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@types/react&amp;amp;quot;: &amp;amp;quot;*&amp;amp;quot;
    639 <a href="#l620" class="line" id="l620">    620</a> &lt;a href=&quot;#l601&quot; class=&quot;line&quot; id=&quot;l601&quot;&gt;    601&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-18&amp;quot; id=&amp;quot;h1-6-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    640 <a href="#l621" class="line" id="l621">    621</a> &lt;a href=&quot;#l602&quot; class=&quot;line&quot; id=&quot;l602&quot;&gt;    602&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-19&amp;quot; id=&amp;quot;h1-6-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    641 <a href="#l622" class="line" id="l622">    622</a> &lt;a href=&quot;#l603&quot; class=&quot;line&quot; id=&quot;l603&quot;&gt;    603&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-20&amp;quot; id=&amp;quot;h1-6-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/@types/webxr&amp;amp;quot;: {
    642 <a href="#l623" class="line" id="l623">    623</a> &lt;a href=&quot;#l604&quot; class=&quot;line&quot; id=&quot;l604&quot;&gt;    604&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-21&amp;quot; id=&amp;quot;h1-6-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.5.22&amp;amp;quot;,
    643 <a href="#l624" class="line" id="l624">    624</a> &lt;a href=&quot;#l605&quot; class=&quot;line&quot; id=&quot;l605&quot;&gt;    605&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-22&amp;quot; id=&amp;quot;h1-6-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@types/webxr/-/webxr-0.5.22.tgz&amp;amp;quot;,
    644 <a href="#l625" class="line" id="l625">    625</a> &lt;a href=&quot;#l606&quot; class=&quot;line&quot; id=&quot;l606&quot;&gt;    606&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-23&amp;quot; id=&amp;quot;h1-6-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Vr6Stjv5jPRqH690f5I5GLjVk8GSsoQSYJ2FVd/3jJF7KaqfwPi3ehfBS96mlQ2kPCwZaX6U0rG2+NGHBKkA/A==&amp;amp;quot;
    645 <a href="#l626" class="line" id="l626">    626</a> &lt;a href=&quot;#l607&quot; class=&quot;line&quot; id=&quot;l607&quot;&gt;    607&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-6-24&amp;quot; id=&amp;quot;h1-6-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    646 <a href="#l627" class="line" id="l627">    627</a> &lt;a href=&quot;#l608&quot; class=&quot;line&quot; id=&quot;l608&quot;&gt;    608&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/@ungap/structured-clone&amp;amp;quot;: {
    647 <a href="#l628" class="line" id="l628">    628</a> &lt;a href=&quot;#l609&quot; class=&quot;line&quot; id=&quot;l609&quot;&gt;    609&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.3.0&amp;amp;quot;,
    648 <a href="#l629" class="line" id="l629">    629</a> &lt;a href=&quot;#l610&quot; class=&quot;line&quot; id=&quot;l610&quot;&gt;    610&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz&amp;amp;quot;,
    649 <a href="#l630" class="line" id="l630">    630</a> &lt;a href=&quot;#l611&quot; class=&quot;line&quot; id=&quot;l611&quot;&gt;    611&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-7&amp;quot; id=&amp;quot;h1-7&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -1379,7 +1882,6 @@
    650 <a href="#l631" class="line" id="l631">    631</a> &lt;a href=&quot;#l612&quot; class=&quot;line&quot; id=&quot;l612&quot;&gt;    612&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;8.15.0&amp;amp;quot;,
    651 <a href="#l632" class="line" id="l632">    632</a> &lt;a href=&quot;#l613&quot; class=&quot;line&quot; id=&quot;l613&quot;&gt;    613&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz&amp;amp;quot;,
    652 <a href="#l633" class="line" id="l633">    633</a> &lt;a href=&quot;#l614&quot; class=&quot;line&quot; id=&quot;l614&quot;&gt;    614&lt;/a&gt;        &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==&amp;amp;quot;,
    653 <a href="#l634" class="line" id="l634">    634</a> &lt;a href=&quot;#l615&quot; class=&quot;line&quot; id=&quot;l615&quot;&gt;    615&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-7-3&amp;quot; id=&amp;quot;h1-7-3&amp;quot; class=&amp;quot;d&amp;quot;&amp;gt;-      &amp;amp;quot;dev&amp;amp;quot;: true,
    654 <a href="#l635" class="line" id="l635">    635</a> &lt;a href=&quot;#l616&quot; class=&quot;line&quot; id=&quot;l616&quot;&gt;    616&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;bin&amp;amp;quot;: {
    655 <a href="#l636" class="line" id="l636">    636</a> &lt;a href=&quot;#l617&quot; class=&quot;line&quot; id=&quot;l617&quot;&gt;    617&lt;/a&gt;          &amp;amp;quot;acorn&amp;amp;quot;: &amp;amp;quot;bin/acorn&amp;amp;quot;
    656 <a href="#l637" class="line" id="l637">    637</a> &lt;a href=&quot;#l618&quot; class=&quot;line&quot; id=&quot;l618&quot;&gt;    618&lt;/a&gt;        },
    657 <a href="#l638" class="line" id="l638">    638</a> &lt;a href=&quot;#l619&quot; class=&quot;line&quot; id=&quot;l619&quot;&gt;    619&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-8&amp;quot; id=&amp;quot;h1-8&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -1396,6 +1898,17 @@
    658 <a href="#l639" class="line" id="l639">    639</a> &lt;a href=&quot;#l620&quot; class=&quot;line&quot; id=&quot;l620&quot;&gt;    620&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;acorn&amp;amp;quot;: &amp;amp;quot;^6.0.0 || ^7.0.0 || ^8.0.0&amp;amp;quot;
    659 <a href="#l640" class="line" id="l640">    640</a> &lt;a href=&quot;#l621&quot; class=&quot;line&quot; id=&quot;l621&quot;&gt;    621&lt;/a&gt;        }
    660 <a href="#l641" class="line" id="l641">    641</a> &lt;a href=&quot;#l622&quot; class=&quot;line&quot; id=&quot;l622&quot;&gt;    622&lt;/a&gt;      },
    661 <a href="#l642" class="line" id="l642">    642</a> &lt;a href=&quot;#l623&quot; class=&quot;line&quot; id=&quot;l623&quot;&gt;    623&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-8-3&amp;quot; id=&amp;quot;h1-8-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/acorn-walk&amp;amp;quot;: {
    662 <a href="#l643" class="line" id="l643">    643</a> &lt;a href=&quot;#l624&quot; class=&quot;line&quot; id=&quot;l624&quot;&gt;    624&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-4&amp;quot; id=&amp;quot;h1-8-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;8.3.4&amp;amp;quot;,
    663 <a href="#l644" class="line" id="l644">    644</a> &lt;a href=&quot;#l625&quot; class=&quot;line&quot; id=&quot;l625&quot;&gt;    625&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-5&amp;quot; id=&amp;quot;h1-8-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz&amp;amp;quot;,
    664 <a href="#l645" class="line" id="l645">    645</a> &lt;a href=&quot;#l626&quot; class=&quot;line&quot; id=&quot;l626&quot;&gt;    626&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-6&amp;quot; id=&amp;quot;h1-8-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==&amp;amp;quot;,
    665 <a href="#l646" class="line" id="l646">    646</a> &lt;a href=&quot;#l627&quot; class=&quot;line&quot; id=&quot;l627&quot;&gt;    627&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-7&amp;quot; id=&amp;quot;h1-8-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    666 <a href="#l647" class="line" id="l647">    647</a> &lt;a href=&quot;#l628&quot; class=&quot;line&quot; id=&quot;l628&quot;&gt;    628&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-8&amp;quot; id=&amp;quot;h1-8-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;acorn&amp;amp;quot;: &amp;amp;quot;^8.11.0&amp;amp;quot;
    667 <a href="#l648" class="line" id="l648">    648</a> &lt;a href=&quot;#l629&quot; class=&quot;line&quot; id=&quot;l629&quot;&gt;    629&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-9&amp;quot; id=&amp;quot;h1-8-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    668 <a href="#l649" class="line" id="l649">    649</a> &lt;a href=&quot;#l630&quot; class=&quot;line&quot; id=&quot;l630&quot;&gt;    630&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-10&amp;quot; id=&amp;quot;h1-8-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    669 <a href="#l650" class="line" id="l650">    650</a> &lt;a href=&quot;#l631&quot; class=&quot;line&quot; id=&quot;l631&quot;&gt;    631&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-11&amp;quot; id=&amp;quot;h1-8-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.4.0&amp;amp;quot;
    670 <a href="#l651" class="line" id="l651">    651</a> &lt;a href=&quot;#l632&quot; class=&quot;line&quot; id=&quot;l632&quot;&gt;    632&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-12&amp;quot; id=&amp;quot;h1-8-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    671 <a href="#l652" class="line" id="l652">    652</a> &lt;a href=&quot;#l633&quot; class=&quot;line&quot; id=&quot;l633&quot;&gt;    633&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-8-13&amp;quot; id=&amp;quot;h1-8-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    672 <a href="#l653" class="line" id="l653">    653</a> &lt;a href=&quot;#l634&quot; class=&quot;line&quot; id=&quot;l634&quot;&gt;    634&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/ajv&amp;amp;quot;: {
    673 <a href="#l654" class="line" id="l654">    654</a> &lt;a href=&quot;#l635&quot; class=&quot;line&quot; id=&quot;l635&quot;&gt;    635&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;6.12.6&amp;amp;quot;,
    674 <a href="#l655" class="line" id="l655">    655</a> &lt;a href=&quot;#l636&quot; class=&quot;line&quot; id=&quot;l636&quot;&gt;    636&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz&amp;amp;quot;,
    675 <a href="#l656" class="line" id="l656">    656</a> &lt;a href=&quot;#l637&quot; class=&quot;line&quot; id=&quot;l637&quot;&gt;    637&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-9&amp;quot; id=&amp;quot;h1-9&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -2022,6 +2535,11 @@
    676 <a href="#l657" class="line" id="l657">    657</a> &lt;a href=&quot;#l638&quot; class=&quot;line&quot; id=&quot;l638&quot;&gt;    638&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==&amp;amp;quot;,
    677 <a href="#l658" class="line" id="l658">    658</a> &lt;a href=&quot;#l639&quot; class=&quot;line&quot; id=&quot;l639&quot;&gt;    639&lt;/a&gt;        &amp;amp;quot;dev&amp;amp;quot;: true
    678 <a href="#l659" class="line" id="l659">    659</a> &lt;a href=&quot;#l640&quot; class=&quot;line&quot; id=&quot;l640&quot;&gt;    640&lt;/a&gt;      },
    679 <a href="#l660" class="line" id="l660">    660</a> &lt;a href=&quot;#l641&quot; class=&quot;line&quot; id=&quot;l641&quot;&gt;    641&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-9-3&amp;quot; id=&amp;quot;h1-9-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/colorjs.io&amp;amp;quot;: {
    680 <a href="#l661" class="line" id="l661">    661</a> &lt;a href=&quot;#l642&quot; class=&quot;line&quot; id=&quot;l642&quot;&gt;    642&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-9-4&amp;quot; id=&amp;quot;h1-9-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.5.2&amp;amp;quot;,
    681 <a href="#l662" class="line" id="l662">    662</a> &lt;a href=&quot;#l643&quot; class=&quot;line&quot; id=&quot;l643&quot;&gt;    643&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-9-5&amp;quot; id=&amp;quot;h1-9-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz&amp;amp;quot;,
    682 <a href="#l663" class="line" id="l663">    663</a> &lt;a href=&quot;#l644&quot; class=&quot;line&quot; id=&quot;l644&quot;&gt;    644&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-9-6&amp;quot; id=&amp;quot;h1-9-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==&amp;amp;quot;
    683 <a href="#l664" class="line" id="l664">    664</a> &lt;a href=&quot;#l645&quot; class=&quot;line&quot; id=&quot;l645&quot;&gt;    645&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-9-7&amp;quot; id=&amp;quot;h1-9-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    684 <a href="#l665" class="line" id="l665">    665</a> &lt;a href=&quot;#l646&quot; class=&quot;line&quot; id=&quot;l646&quot;&gt;    646&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/commander&amp;amp;quot;: {
    685 <a href="#l666" class="line" id="l666">    666</a> &lt;a href=&quot;#l647&quot; class=&quot;line&quot; id=&quot;l647&quot;&gt;    647&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;10.0.1&amp;amp;quot;,
    686 <a href="#l667" class="line" id="l667">    667</a> &lt;a href=&quot;#l648&quot; class=&quot;line&quot; id=&quot;l648&quot;&gt;    648&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/commander/-/commander-10.0.1.tgz&amp;amp;quot;,
    687 <a href="#l668" class="line" id="l668">    668</a> &lt;a href=&quot;#l649&quot; class=&quot;line&quot; id=&quot;l649&quot;&gt;    649&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-10&amp;quot; id=&amp;quot;h1-10&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -2257,6 +2775,12 @@
    688 <a href="#l669" class="line" id="l669">    669</a> &lt;a href=&quot;#l650&quot; class=&quot;line&quot; id=&quot;l650&quot;&gt;    650&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==&amp;amp;quot;,
    689 <a href="#l670" class="line" id="l670">    670</a> &lt;a href=&quot;#l651&quot; class=&quot;line&quot; id=&quot;l651&quot;&gt;    651&lt;/a&gt;        &amp;amp;quot;dev&amp;amp;quot;: true
    690 <a href="#l671" class="line" id="l671">    671</a> &lt;a href=&quot;#l652&quot; class=&quot;line&quot; id=&quot;l652&quot;&gt;    652&lt;/a&gt;      },
    691 <a href="#l672" class="line" id="l672">    672</a> &lt;a href=&quot;#l653&quot; class=&quot;line&quot; id=&quot;l653&quot;&gt;    653&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-10-3&amp;quot; id=&amp;quot;h1-10-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/csstype&amp;amp;quot;: {
    692 <a href="#l673" class="line" id="l673">    673</a> &lt;a href=&quot;#l654&quot; class=&quot;line&quot; id=&quot;l654&quot;&gt;    654&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-10-4&amp;quot; id=&amp;quot;h1-10-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;3.1.3&amp;amp;quot;,
    693 <a href="#l674" class="line" id="l674">    674</a> &lt;a href=&quot;#l655&quot; class=&quot;line&quot; id=&quot;l655&quot;&gt;    655&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-10-5&amp;quot; id=&amp;quot;h1-10-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz&amp;amp;quot;,
    694 <a href="#l675" class="line" id="l675">    675</a> &lt;a href=&quot;#l656&quot; class=&quot;line&quot; id=&quot;l656&quot;&gt;    656&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-10-6&amp;quot; id=&amp;quot;h1-10-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==&amp;amp;quot;,
    695 <a href="#l676" class="line" id="l676">    676</a> &lt;a href=&quot;#l657&quot; class=&quot;line&quot; id=&quot;l657&quot;&gt;    657&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-10-7&amp;quot; id=&amp;quot;h1-10-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peer&amp;amp;quot;: true
    696 <a href="#l677" class="line" id="l677">    677</a> &lt;a href=&quot;#l658&quot; class=&quot;line&quot; id=&quot;l658&quot;&gt;    658&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-10-8&amp;quot; id=&amp;quot;h1-10-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    697 <a href="#l678" class="line" id="l678">    678</a> &lt;a href=&quot;#l659&quot; class=&quot;line&quot; id=&quot;l659&quot;&gt;    659&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/date-fns&amp;amp;quot;: {
    698 <a href="#l679" class="line" id="l679">    679</a> &lt;a href=&quot;#l660&quot; class=&quot;line&quot; id=&quot;l660&quot;&gt;    660&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.30.0&amp;amp;quot;,
    699 <a href="#l680" class="line" id="l680">    680</a> &lt;a href=&quot;#l661&quot; class=&quot;line&quot; id=&quot;l661&quot;&gt;    661&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz&amp;amp;quot;,
    700 <a href="#l681" class="line" id="l681">    681</a> &lt;a href=&quot;#l662&quot; class=&quot;line&quot; id=&quot;l662&quot;&gt;    662&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-11&amp;quot; id=&amp;quot;h1-11&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -2568,6 +3092,47 @@
    701 <a href="#l682" class="line" id="l682">    682</a> &lt;a href=&quot;#l663&quot; class=&quot;line&quot; id=&quot;l663&quot;&gt;    663&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;= 0.4&amp;amp;quot;
    702 <a href="#l683" class="line" id="l683">    683</a> &lt;a href=&quot;#l664&quot; class=&quot;line&quot; id=&quot;l664&quot;&gt;    664&lt;/a&gt;        }
    703 <a href="#l684" class="line" id="l684">    684</a> &lt;a href=&quot;#l665&quot; class=&quot;line&quot; id=&quot;l665&quot;&gt;    665&lt;/a&gt;      },
    704 <a href="#l685" class="line" id="l685">    685</a> &lt;a href=&quot;#l666&quot; class=&quot;line&quot; id=&quot;l666&quot;&gt;    666&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-11-3&amp;quot; id=&amp;quot;h1-11-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/esbuild&amp;amp;quot;: {
    705 <a href="#l686" class="line" id="l686">    686</a> &lt;a href=&quot;#l667&quot; class=&quot;line&quot; id=&quot;l667&quot;&gt;    667&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-4&amp;quot; id=&amp;quot;h1-11-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    706 <a href="#l687" class="line" id="l687">    687</a> &lt;a href=&quot;#l668&quot; class=&quot;line&quot; id=&quot;l668&quot;&gt;    668&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-5&amp;quot; id=&amp;quot;h1-11-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz&amp;amp;quot;,
    707 <a href="#l688" class="line" id="l688">    688</a> &lt;a href=&quot;#l669&quot; class=&quot;line&quot; id=&quot;l669&quot;&gt;    669&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-6&amp;quot; id=&amp;quot;h1-11-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==&amp;amp;quot;,
    708 <a href="#l689" class="line" id="l689">    689</a> &lt;a href=&quot;#l670&quot; class=&quot;line&quot; id=&quot;l670&quot;&gt;    670&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-7&amp;quot; id=&amp;quot;h1-11-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dev&amp;amp;quot;: true,
    709 <a href="#l690" class="line" id="l690">    690</a> &lt;a href=&quot;#l671&quot; class=&quot;line&quot; id=&quot;l671&quot;&gt;    671&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-8&amp;quot; id=&amp;quot;h1-11-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;hasInstallScript&amp;amp;quot;: true,
    710 <a href="#l691" class="line" id="l691">    691</a> &lt;a href=&quot;#l672&quot; class=&quot;line&quot; id=&quot;l672&quot;&gt;    672&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-9&amp;quot; id=&amp;quot;h1-11-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;bin&amp;amp;quot;: {
    711 <a href="#l692" class="line" id="l692">    692</a> &lt;a href=&quot;#l673&quot; class=&quot;line&quot; id=&quot;l673&quot;&gt;    673&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-10&amp;quot; id=&amp;quot;h1-11-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;esbuild&amp;amp;quot;: &amp;amp;quot;bin/esbuild&amp;amp;quot;
    712 <a href="#l693" class="line" id="l693">    693</a> &lt;a href=&quot;#l674&quot; class=&quot;line&quot; id=&quot;l674&quot;&gt;    674&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-11&amp;quot; id=&amp;quot;h1-11-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    713 <a href="#l694" class="line" id="l694">    694</a> &lt;a href=&quot;#l675&quot; class=&quot;line&quot; id=&quot;l675&quot;&gt;    675&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-12&amp;quot; id=&amp;quot;h1-11-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    714 <a href="#l695" class="line" id="l695">    695</a> &lt;a href=&quot;#l676&quot; class=&quot;line&quot; id=&quot;l676&quot;&gt;    676&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-13&amp;quot; id=&amp;quot;h1-11-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18&amp;amp;quot;
    715 <a href="#l696" class="line" id="l696">    696</a> &lt;a href=&quot;#l677&quot; class=&quot;line&quot; id=&quot;l677&quot;&gt;    677&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-14&amp;quot; id=&amp;quot;h1-11-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    716 <a href="#l697" class="line" id="l697">    697</a> &lt;a href=&quot;#l678&quot; class=&quot;line&quot; id=&quot;l678&quot;&gt;    678&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-15&amp;quot; id=&amp;quot;h1-11-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optionalDependencies&amp;amp;quot;: {
    717 <a href="#l698" class="line" id="l698">    698</a> &lt;a href=&quot;#l679&quot; class=&quot;line&quot; id=&quot;l679&quot;&gt;    679&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-16&amp;quot; id=&amp;quot;h1-11-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/aix-ppc64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    718 <a href="#l699" class="line" id="l699">    699</a> &lt;a href=&quot;#l680&quot; class=&quot;line&quot; id=&quot;l680&quot;&gt;    680&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-17&amp;quot; id=&amp;quot;h1-11-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/android-arm&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    719 <a href="#l700" class="line" id="l700">    700</a> &lt;a href=&quot;#l681&quot; class=&quot;line&quot; id=&quot;l681&quot;&gt;    681&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-18&amp;quot; id=&amp;quot;h1-11-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/android-arm64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    720 <a href="#l701" class="line" id="l701">    701</a> &lt;a href=&quot;#l682&quot; class=&quot;line&quot; id=&quot;l682&quot;&gt;    682&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-19&amp;quot; id=&amp;quot;h1-11-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/android-x64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    721 <a href="#l702" class="line" id="l702">    702</a> &lt;a href=&quot;#l683&quot; class=&quot;line&quot; id=&quot;l683&quot;&gt;    683&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-20&amp;quot; id=&amp;quot;h1-11-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/darwin-arm64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    722 <a href="#l703" class="line" id="l703">    703</a> &lt;a href=&quot;#l684&quot; class=&quot;line&quot; id=&quot;l684&quot;&gt;    684&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-21&amp;quot; id=&amp;quot;h1-11-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/darwin-x64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    723 <a href="#l704" class="line" id="l704">    704</a> &lt;a href=&quot;#l685&quot; class=&quot;line&quot; id=&quot;l685&quot;&gt;    685&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-22&amp;quot; id=&amp;quot;h1-11-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/freebsd-arm64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    724 <a href="#l705" class="line" id="l705">    705</a> &lt;a href=&quot;#l686&quot; class=&quot;line&quot; id=&quot;l686&quot;&gt;    686&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-23&amp;quot; id=&amp;quot;h1-11-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/freebsd-x64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    725 <a href="#l706" class="line" id="l706">    706</a> &lt;a href=&quot;#l687&quot; class=&quot;line&quot; id=&quot;l687&quot;&gt;    687&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-24&amp;quot; id=&amp;quot;h1-11-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-arm&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    726 <a href="#l707" class="line" id="l707">    707</a> &lt;a href=&quot;#l688&quot; class=&quot;line&quot; id=&quot;l688&quot;&gt;    688&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-25&amp;quot; id=&amp;quot;h1-11-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-arm64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    727 <a href="#l708" class="line" id="l708">    708</a> &lt;a href=&quot;#l689&quot; class=&quot;line&quot; id=&quot;l689&quot;&gt;    689&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-26&amp;quot; id=&amp;quot;h1-11-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-ia32&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    728 <a href="#l709" class="line" id="l709">    709</a> &lt;a href=&quot;#l690&quot; class=&quot;line&quot; id=&quot;l690&quot;&gt;    690&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-27&amp;quot; id=&amp;quot;h1-11-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-loong64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    729 <a href="#l710" class="line" id="l710">    710</a> &lt;a href=&quot;#l691&quot; class=&quot;line&quot; id=&quot;l691&quot;&gt;    691&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-28&amp;quot; id=&amp;quot;h1-11-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-mips64el&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    730 <a href="#l711" class="line" id="l711">    711</a> &lt;a href=&quot;#l692&quot; class=&quot;line&quot; id=&quot;l692&quot;&gt;    692&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-29&amp;quot; id=&amp;quot;h1-11-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-ppc64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    731 <a href="#l712" class="line" id="l712">    712</a> &lt;a href=&quot;#l693&quot; class=&quot;line&quot; id=&quot;l693&quot;&gt;    693&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-30&amp;quot; id=&amp;quot;h1-11-30&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-riscv64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    732 <a href="#l713" class="line" id="l713">    713</a> &lt;a href=&quot;#l694&quot; class=&quot;line&quot; id=&quot;l694&quot;&gt;    694&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-31&amp;quot; id=&amp;quot;h1-11-31&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-s390x&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    733 <a href="#l714" class="line" id="l714">    714</a> &lt;a href=&quot;#l695&quot; class=&quot;line&quot; id=&quot;l695&quot;&gt;    695&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-32&amp;quot; id=&amp;quot;h1-11-32&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/linux-x64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    734 <a href="#l715" class="line" id="l715">    715</a> &lt;a href=&quot;#l696&quot; class=&quot;line&quot; id=&quot;l696&quot;&gt;    696&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-33&amp;quot; id=&amp;quot;h1-11-33&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/netbsd-arm64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    735 <a href="#l716" class="line" id="l716">    716</a> &lt;a href=&quot;#l697&quot; class=&quot;line&quot; id=&quot;l697&quot;&gt;    697&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-34&amp;quot; id=&amp;quot;h1-11-34&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/netbsd-x64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    736 <a href="#l717" class="line" id="l717">    717</a> &lt;a href=&quot;#l698&quot; class=&quot;line&quot; id=&quot;l698&quot;&gt;    698&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-35&amp;quot; id=&amp;quot;h1-11-35&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/openbsd-arm64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    737 <a href="#l718" class="line" id="l718">    718</a> &lt;a href=&quot;#l699&quot; class=&quot;line&quot; id=&quot;l699&quot;&gt;    699&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-36&amp;quot; id=&amp;quot;h1-11-36&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/openbsd-x64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    738 <a href="#l719" class="line" id="l719">    719</a> &lt;a href=&quot;#l700&quot; class=&quot;line&quot; id=&quot;l700&quot;&gt;    700&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-37&amp;quot; id=&amp;quot;h1-11-37&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/openharmony-arm64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    739 <a href="#l720" class="line" id="l720">    720</a> &lt;a href=&quot;#l701&quot; class=&quot;line&quot; id=&quot;l701&quot;&gt;    701&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-38&amp;quot; id=&amp;quot;h1-11-38&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/sunos-x64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    740 <a href="#l721" class="line" id="l721">    721</a> &lt;a href=&quot;#l702&quot; class=&quot;line&quot; id=&quot;l702&quot;&gt;    702&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-39&amp;quot; id=&amp;quot;h1-11-39&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/win32-arm64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    741 <a href="#l722" class="line" id="l722">    722</a> &lt;a href=&quot;#l703&quot; class=&quot;line&quot; id=&quot;l703&quot;&gt;    703&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-40&amp;quot; id=&amp;quot;h1-11-40&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/win32-ia32&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;,
    742 <a href="#l723" class="line" id="l723">    723</a> &lt;a href=&quot;#l704&quot; class=&quot;line&quot; id=&quot;l704&quot;&gt;    704&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-41&amp;quot; id=&amp;quot;h1-11-41&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@esbuild/win32-x64&amp;amp;quot;: &amp;amp;quot;0.25.8&amp;amp;quot;
    743 <a href="#l724" class="line" id="l724">    724</a> &lt;a href=&quot;#l705&quot; class=&quot;line&quot; id=&quot;l705&quot;&gt;    705&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-42&amp;quot; id=&amp;quot;h1-11-42&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    744 <a href="#l725" class="line" id="l725">    725</a> &lt;a href=&quot;#l706&quot; class=&quot;line&quot; id=&quot;l706&quot;&gt;    706&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-11-43&amp;quot; id=&amp;quot;h1-11-43&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    745 <a href="#l726" class="line" id="l726">    726</a> &lt;a href=&quot;#l707&quot; class=&quot;line&quot; id=&quot;l707&quot;&gt;    707&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/escalade&amp;amp;quot;: {
    746 <a href="#l727" class="line" id="l727">    727</a> &lt;a href=&quot;#l708&quot; class=&quot;line&quot; id=&quot;l708&quot;&gt;    708&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;3.2.0&amp;amp;quot;,
    747 <a href="#l728" class="line" id="l728">    728</a> &lt;a href=&quot;#l709&quot; class=&quot;line&quot; id=&quot;l709&quot;&gt;    709&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz&amp;amp;quot;,
    748 <a href="#l729" class="line" id="l729">    729</a> &lt;a href=&quot;#l710&quot; class=&quot;line&quot; id=&quot;l710&quot;&gt;    710&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-12&amp;quot; id=&amp;quot;h1-12&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -2594,6 +3159,26 @@
    749 <a href="#l730" class="line" id="l730">    730</a> &lt;a href=&quot;#l711&quot; class=&quot;line&quot; id=&quot;l711&quot;&gt;    711&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;url&amp;amp;quot;: &amp;amp;quot;https://github.com/sponsors/sindresorhus&amp;amp;quot;
    750 <a href="#l731" class="line" id="l731">    731</a> &lt;a href=&quot;#l712&quot; class=&quot;line&quot; id=&quot;l712&quot;&gt;    712&lt;/a&gt;        }
    751 <a href="#l732" class="line" id="l732">    732</a> &lt;a href=&quot;#l713&quot; class=&quot;line&quot; id=&quot;l713&quot;&gt;    713&lt;/a&gt;      },
    752 <a href="#l733" class="line" id="l733">    733</a> &lt;a href=&quot;#l714&quot; class=&quot;line&quot; id=&quot;l714&quot;&gt;    714&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-12-3&amp;quot; id=&amp;quot;h1-12-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/escodegen&amp;amp;quot;: {
    753 <a href="#l734" class="line" id="l734">    734</a> &lt;a href=&quot;#l715&quot; class=&quot;line&quot; id=&quot;l715&quot;&gt;    715&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-4&amp;quot; id=&amp;quot;h1-12-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.1.0&amp;amp;quot;,
    754 <a href="#l735" class="line" id="l735">    735</a> &lt;a href=&quot;#l716&quot; class=&quot;line&quot; id=&quot;l716&quot;&gt;    716&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-5&amp;quot; id=&amp;quot;h1-12-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz&amp;amp;quot;,
    755 <a href="#l736" class="line" id="l736">    736</a> &lt;a href=&quot;#l717&quot; class=&quot;line&quot; id=&quot;l717&quot;&gt;    717&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-6&amp;quot; id=&amp;quot;h1-12-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==&amp;amp;quot;,
    756 <a href="#l737" class="line" id="l737">    737</a> &lt;a href=&quot;#l718&quot; class=&quot;line&quot; id=&quot;l718&quot;&gt;    718&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-7&amp;quot; id=&amp;quot;h1-12-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    757 <a href="#l738" class="line" id="l738">    738</a> &lt;a href=&quot;#l719&quot; class=&quot;line&quot; id=&quot;l719&quot;&gt;    719&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-8&amp;quot; id=&amp;quot;h1-12-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;esprima&amp;amp;quot;: &amp;amp;quot;^4.0.1&amp;amp;quot;,
    758 <a href="#l739" class="line" id="l739">    739</a> &lt;a href=&quot;#l720&quot; class=&quot;line&quot; id=&quot;l720&quot;&gt;    720&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-9&amp;quot; id=&amp;quot;h1-12-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;estraverse&amp;amp;quot;: &amp;amp;quot;^5.2.0&amp;amp;quot;,
    759 <a href="#l740" class="line" id="l740">    740</a> &lt;a href=&quot;#l721&quot; class=&quot;line&quot; id=&quot;l721&quot;&gt;    721&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-10&amp;quot; id=&amp;quot;h1-12-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;esutils&amp;amp;quot;: &amp;amp;quot;^2.0.2&amp;amp;quot;
    760 <a href="#l741" class="line" id="l741">    741</a> &lt;a href=&quot;#l722&quot; class=&quot;line&quot; id=&quot;l722&quot;&gt;    722&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-11&amp;quot; id=&amp;quot;h1-12-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    761 <a href="#l742" class="line" id="l742">    742</a> &lt;a href=&quot;#l723&quot; class=&quot;line&quot; id=&quot;l723&quot;&gt;    723&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-12&amp;quot; id=&amp;quot;h1-12-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;bin&amp;amp;quot;: {
    762 <a href="#l743" class="line" id="l743">    743</a> &lt;a href=&quot;#l724&quot; class=&quot;line&quot; id=&quot;l724&quot;&gt;    724&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-13&amp;quot; id=&amp;quot;h1-12-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;escodegen&amp;amp;quot;: &amp;amp;quot;bin/escodegen.js&amp;amp;quot;,
    763 <a href="#l744" class="line" id="l744">    744</a> &lt;a href=&quot;#l725&quot; class=&quot;line&quot; id=&quot;l725&quot;&gt;    725&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-14&amp;quot; id=&amp;quot;h1-12-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;esgenerate&amp;amp;quot;: &amp;amp;quot;bin/esgenerate.js&amp;amp;quot;
    764 <a href="#l745" class="line" id="l745">    745</a> &lt;a href=&quot;#l726&quot; class=&quot;line&quot; id=&quot;l726&quot;&gt;    726&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-15&amp;quot; id=&amp;quot;h1-12-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    765 <a href="#l746" class="line" id="l746">    746</a> &lt;a href=&quot;#l727&quot; class=&quot;line&quot; id=&quot;l727&quot;&gt;    727&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-16&amp;quot; id=&amp;quot;h1-12-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    766 <a href="#l747" class="line" id="l747">    747</a> &lt;a href=&quot;#l728&quot; class=&quot;line&quot; id=&quot;l728&quot;&gt;    728&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-17&amp;quot; id=&amp;quot;h1-12-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=6.0&amp;amp;quot;
    767 <a href="#l748" class="line" id="l748">    748</a> &lt;a href=&quot;#l729&quot; class=&quot;line&quot; id=&quot;l729&quot;&gt;    729&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-18&amp;quot; id=&amp;quot;h1-12-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    768 <a href="#l749" class="line" id="l749">    749</a> &lt;a href=&quot;#l730&quot; class=&quot;line&quot; id=&quot;l730&quot;&gt;    730&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-19&amp;quot; id=&amp;quot;h1-12-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;optionalDependencies&amp;amp;quot;: {
    769 <a href="#l750" class="line" id="l750">    750</a> &lt;a href=&quot;#l731&quot; class=&quot;line&quot; id=&quot;l731&quot;&gt;    731&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-20&amp;quot; id=&amp;quot;h1-12-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;source-map&amp;amp;quot;: &amp;amp;quot;~0.6.1&amp;amp;quot;
    770 <a href="#l751" class="line" id="l751">    751</a> &lt;a href=&quot;#l732&quot; class=&quot;line&quot; id=&quot;l732&quot;&gt;    732&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-21&amp;quot; id=&amp;quot;h1-12-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    771 <a href="#l752" class="line" id="l752">    752</a> &lt;a href=&quot;#l733&quot; class=&quot;line&quot; id=&quot;l733&quot;&gt;    733&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-12-22&amp;quot; id=&amp;quot;h1-12-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    772 <a href="#l753" class="line" id="l753">    753</a> &lt;a href=&quot;#l734&quot; class=&quot;line&quot; id=&quot;l734&quot;&gt;    734&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/eslint&amp;amp;quot;: {
    773 <a href="#l754" class="line" id="l754">    754</a> &lt;a href=&quot;#l735&quot; class=&quot;line&quot; id=&quot;l735&quot;&gt;    735&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;8.57.1&amp;amp;quot;,
    774 <a href="#l755" class="line" id="l755">    755</a> &lt;a href=&quot;#l736&quot; class=&quot;line&quot; id=&quot;l736&quot;&gt;    736&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz&amp;amp;quot;,
    775 <a href="#l756" class="line" id="l756">    756</a> &lt;a href=&quot;#l737&quot; class=&quot;line&quot; id=&quot;l737&quot;&gt;    737&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-13&amp;quot; id=&amp;quot;h1-13&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -2711,7 +3296,6 @@
    776 <a href="#l757" class="line" id="l757">    757</a> &lt;a href=&quot;#l738&quot; class=&quot;line&quot; id=&quot;l738&quot;&gt;    738&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;4.0.1&amp;amp;quot;,
    777 <a href="#l758" class="line" id="l758">    758</a> &lt;a href=&quot;#l739&quot; class=&quot;line&quot; id=&quot;l739&quot;&gt;    739&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz&amp;amp;quot;,
    778 <a href="#l759" class="line" id="l759">    759</a> &lt;a href=&quot;#l740&quot; class=&quot;line&quot; id=&quot;l740&quot;&gt;    740&lt;/a&gt;        &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==&amp;amp;quot;,
    779 <a href="#l760" class="line" id="l760">    760</a> &lt;a href=&quot;#l741&quot; class=&quot;line&quot; id=&quot;l741&quot;&gt;    741&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-13-3&amp;quot; id=&amp;quot;h1-13-3&amp;quot; class=&amp;quot;d&amp;quot;&amp;gt;-      &amp;amp;quot;dev&amp;amp;quot;: true,
    780 <a href="#l761" class="line" id="l761">    761</a> &lt;a href=&quot;#l742&quot; class=&quot;line&quot; id=&quot;l742&quot;&gt;    742&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;bin&amp;amp;quot;: {
    781 <a href="#l762" class="line" id="l762">    762</a> &lt;a href=&quot;#l743&quot; class=&quot;line&quot; id=&quot;l743&quot;&gt;    743&lt;/a&gt;          &amp;amp;quot;esparse&amp;amp;quot;: &amp;amp;quot;bin/esparse.js&amp;amp;quot;,
    782 <a href="#l763" class="line" id="l763">    763</a> &lt;a href=&quot;#l744&quot; class=&quot;line&quot; id=&quot;l744&quot;&gt;    744&lt;/a&gt;          &amp;amp;quot;esvalidate&amp;amp;quot;: &amp;amp;quot;bin/esvalidate.js&amp;amp;quot;
    783 <a href="#l764" class="line" id="l764">    764</a> &lt;a href=&quot;#l745&quot; class=&quot;line&quot; id=&quot;l745&quot;&gt;    745&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-14&amp;quot; id=&amp;quot;h1-14&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -2748,7 +3332,6 @@
    784 <a href="#l765" class="line" id="l765">    765</a> &lt;a href=&quot;#l746&quot; class=&quot;line&quot; id=&quot;l746&quot;&gt;    746&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;5.3.0&amp;amp;quot;,
    785 <a href="#l766" class="line" id="l766">    766</a> &lt;a href=&quot;#l747&quot; class=&quot;line&quot; id=&quot;l747&quot;&gt;    747&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz&amp;amp;quot;,
    786 <a href="#l767" class="line" id="l767">    767</a> &lt;a href=&quot;#l748&quot; class=&quot;line&quot; id=&quot;l748&quot;&gt;    748&lt;/a&gt;        &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==&amp;amp;quot;,
    787 <a href="#l768" class="line" id="l768">    768</a> &lt;a href=&quot;#l749&quot; class=&quot;line&quot; id=&quot;l749&quot;&gt;    749&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-14-3&amp;quot; id=&amp;quot;h1-14-3&amp;quot; class=&amp;quot;d&amp;quot;&amp;gt;-      &amp;amp;quot;dev&amp;amp;quot;: true,
    788 <a href="#l769" class="line" id="l769">    769</a> &lt;a href=&quot;#l750&quot; class=&quot;line&quot; id=&quot;l750&quot;&gt;    750&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;engines&amp;amp;quot;: {
    789 <a href="#l770" class="line" id="l770">    770</a> &lt;a href=&quot;#l751&quot; class=&quot;line&quot; id=&quot;l751&quot;&gt;    751&lt;/a&gt;          &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=4.0&amp;amp;quot;
    790 <a href="#l771" class="line" id="l771">    771</a> &lt;a href=&quot;#l752&quot; class=&quot;line&quot; id=&quot;l752&quot;&gt;    752&lt;/a&gt;        }
    791 <a href="#l772" class="line" id="l772">    772</a> &lt;a href=&quot;#l753&quot; class=&quot;line&quot; id=&quot;l753&quot;&gt;    753&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-15&amp;quot; id=&amp;quot;h1-15&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -2757,7 +3340,6 @@
    792 <a href="#l773" class="line" id="l773">    773</a> &lt;a href=&quot;#l754&quot; class=&quot;line&quot; id=&quot;l754&quot;&gt;    754&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.0.3&amp;amp;quot;,
    793 <a href="#l774" class="line" id="l774">    774</a> &lt;a href=&quot;#l755&quot; class=&quot;line&quot; id=&quot;l755&quot;&gt;    755&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz&amp;amp;quot;,
    794 <a href="#l775" class="line" id="l775">    775</a> &lt;a href=&quot;#l756&quot; class=&quot;line&quot; id=&quot;l756&quot;&gt;    756&lt;/a&gt;        &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==&amp;amp;quot;,
    795 <a href="#l776" class="line" id="l776">    776</a> &lt;a href=&quot;#l757&quot; class=&quot;line&quot; id=&quot;l757&quot;&gt;    757&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-15-3&amp;quot; id=&amp;quot;h1-15-3&amp;quot; class=&amp;quot;d&amp;quot;&amp;gt;-      &amp;amp;quot;dev&amp;amp;quot;: true,
    796 <a href="#l777" class="line" id="l777">    777</a> &lt;a href=&quot;#l758&quot; class=&quot;line&quot; id=&quot;l758&quot;&gt;    758&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;engines&amp;amp;quot;: {
    797 <a href="#l778" class="line" id="l778">    778</a> &lt;a href=&quot;#l759&quot; class=&quot;line&quot; id=&quot;l759&quot;&gt;    759&lt;/a&gt;          &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.10.0&amp;amp;quot;
    798 <a href="#l779" class="line" id="l779">    779</a> &lt;a href=&quot;#l760&quot; class=&quot;line&quot; id=&quot;l760&quot;&gt;    760&lt;/a&gt;        }
    799 <a href="#l780" class="line" id="l780">    780</a> &lt;a href=&quot;#l761&quot; class=&quot;line&quot; id=&quot;l761&quot;&gt;    761&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-16&amp;quot; id=&amp;quot;h1-16&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -2886,6 +3468,11 @@
    800 <a href="#l781" class="line" id="l781">    781</a> &lt;a href=&quot;#l762&quot; class=&quot;line&quot; id=&quot;l762&quot;&gt;    762&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;^10.12.0 || &amp;amp;gt;=12.0.0&amp;amp;quot;
    801 <a href="#l782" class="line" id="l782">    782</a> &lt;a href=&quot;#l763&quot; class=&quot;line&quot; id=&quot;l763&quot;&gt;    763&lt;/a&gt;        }
    802 <a href="#l783" class="line" id="l783">    783</a> &lt;a href=&quot;#l764&quot; class=&quot;line&quot; id=&quot;l764&quot;&gt;    764&lt;/a&gt;      },
    803 <a href="#l784" class="line" id="l784">    784</a> &lt;a href=&quot;#l765&quot; class=&quot;line&quot; id=&quot;l765&quot;&gt;    765&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-16-3&amp;quot; id=&amp;quot;h1-16-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/file-saver&amp;amp;quot;: {
    804 <a href="#l785" class="line" id="l785">    785</a> &lt;a href=&quot;#l766&quot; class=&quot;line&quot; id=&quot;l766&quot;&gt;    766&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-16-4&amp;quot; id=&amp;quot;h1-16-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.3.8&amp;amp;quot;,
    805 <a href="#l786" class="line" id="l786">    786</a> &lt;a href=&quot;#l767&quot; class=&quot;line&quot; id=&quot;l767&quot;&gt;    767&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-16-5&amp;quot; id=&amp;quot;h1-16-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/file-saver/-/file-saver-1.3.8.tgz&amp;amp;quot;,
    806 <a href="#l787" class="line" id="l787">    787</a> &lt;a href=&quot;#l768&quot; class=&quot;line&quot; id=&quot;l768&quot;&gt;    768&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-16-6&amp;quot; id=&amp;quot;h1-16-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-spKHSBQIxxS81N/O21WmuXA2F6wppUCsutpzenOeZzOCCJ5gEfcbqJP983IrpLXzYmXnMUa6J03SubcNPdKrlg==&amp;amp;quot;
    807 <a href="#l788" class="line" id="l788">    788</a> &lt;a href=&quot;#l769&quot; class=&quot;line&quot; id=&quot;l769&quot;&gt;    769&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-16-7&amp;quot; id=&amp;quot;h1-16-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    808 <a href="#l789" class="line" id="l789">    789</a> &lt;a href=&quot;#l770&quot; class=&quot;line&quot; id=&quot;l770&quot;&gt;    770&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/filelist&amp;amp;quot;: {
    809 <a href="#l790" class="line" id="l790">    790</a> &lt;a href=&quot;#l771&quot; class=&quot;line&quot; id=&quot;l771&quot;&gt;    771&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.0.4&amp;amp;quot;,
    810 <a href="#l791" class="line" id="l791">    791</a> &lt;a href=&quot;#l772&quot; class=&quot;line&quot; id=&quot;l772&quot;&gt;    772&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz&amp;amp;quot;,
    811 <a href="#l792" class="line" id="l792">    792</a> &lt;a href=&quot;#l773&quot; class=&quot;line&quot; id=&quot;l773&quot;&gt;    773&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-17&amp;quot; id=&amp;quot;h1-17&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -3138,6 +3725,11 @@
    812 <a href="#l793" class="line" id="l793">    793</a> &lt;a href=&quot;#l774&quot; class=&quot;line&quot; id=&quot;l774&quot;&gt;    774&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;= 0.4&amp;amp;quot;
    813 <a href="#l794" class="line" id="l794">    794</a> &lt;a href=&quot;#l775&quot; class=&quot;line&quot; id=&quot;l775&quot;&gt;    775&lt;/a&gt;        }
    814 <a href="#l795" class="line" id="l795">    795</a> &lt;a href=&quot;#l776&quot; class=&quot;line&quot; id=&quot;l776&quot;&gt;    776&lt;/a&gt;      },
    815 <a href="#l796" class="line" id="l796">    796</a> &lt;a href=&quot;#l777&quot; class=&quot;line&quot; id=&quot;l777&quot;&gt;    777&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-17-3&amp;quot; id=&amp;quot;h1-17-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/gifenc&amp;amp;quot;: {
    816 <a href="#l797" class="line" id="l797">    797</a> &lt;a href=&quot;#l778&quot; class=&quot;line&quot; id=&quot;l778&quot;&gt;    778&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-17-4&amp;quot; id=&amp;quot;h1-17-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.0.3&amp;amp;quot;,
    817 <a href="#l798" class="line" id="l798">    798</a> &lt;a href=&quot;#l779&quot; class=&quot;line&quot; id=&quot;l779&quot;&gt;    779&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-17-5&amp;quot; id=&amp;quot;h1-17-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/gifenc/-/gifenc-1.0.3.tgz&amp;amp;quot;,
    818 <a href="#l799" class="line" id="l799">    799</a> &lt;a href=&quot;#l780&quot; class=&quot;line&quot; id=&quot;l780&quot;&gt;    780&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-17-6&amp;quot; id=&amp;quot;h1-17-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-xdr6AdrfGBcfzncONUOlXMBuc5wJDtOueE3c5rdG0oNgtINLD+f2iFZltrBRZYzACRbKr+mSVU/x98zv2u3jmw==&amp;amp;quot;
    819 <a href="#l800" class="line" id="l800">    800</a> &lt;a href=&quot;#l781&quot; class=&quot;line&quot; id=&quot;l781&quot;&gt;    781&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-17-7&amp;quot; id=&amp;quot;h1-17-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    820 <a href="#l801" class="line" id="l801">    801</a> &lt;a href=&quot;#l782&quot; class=&quot;line&quot; id=&quot;l782&quot;&gt;    782&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/github-from-package&amp;amp;quot;: {
    821 <a href="#l802" class="line" id="l802">    802</a> &lt;a href=&quot;#l783&quot; class=&quot;line&quot; id=&quot;l783&quot;&gt;    783&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.0.0&amp;amp;quot;,
    822 <a href="#l803" class="line" id="l803">    803</a> &lt;a href=&quot;#l784&quot; class=&quot;line&quot; id=&quot;l784&quot;&gt;    784&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz&amp;amp;quot;,
    823 <a href="#l804" class="line" id="l804">    804</a> &lt;a href=&quot;#l785&quot; class=&quot;line&quot; id=&quot;l785&quot;&gt;    785&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-18&amp;quot; id=&amp;quot;h1-18&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -3577,6 +4169,22 @@
    824 <a href="#l805" class="line" id="l805">    805</a> &lt;a href=&quot;#l786&quot; class=&quot;line&quot; id=&quot;l786&quot;&gt;    786&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;= 0.10&amp;amp;quot;
    825 <a href="#l806" class="line" id="l806">    806</a> &lt;a href=&quot;#l787&quot; class=&quot;line&quot; id=&quot;l787&quot;&gt;    787&lt;/a&gt;        }
    826 <a href="#l807" class="line" id="l807">    807</a> &lt;a href=&quot;#l788&quot; class=&quot;line&quot; id=&quot;l788&quot;&gt;    788&lt;/a&gt;      },
    827 <a href="#l808" class="line" id="l808">    808</a> &lt;a href=&quot;#l789&quot; class=&quot;line&quot; id=&quot;l789&quot;&gt;    789&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-18-3&amp;quot; id=&amp;quot;h1-18-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/i18next&amp;amp;quot;: {
    828 <a href="#l809" class="line" id="l809">    809</a> &lt;a href=&quot;#l790&quot; class=&quot;line&quot; id=&quot;l790&quot;&gt;    790&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-4&amp;quot; id=&amp;quot;h1-18-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;19.9.2&amp;amp;quot;,
    829 <a href="#l810" class="line" id="l810">    810</a> &lt;a href=&quot;#l791&quot; class=&quot;line&quot; id=&quot;l791&quot;&gt;    791&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-5&amp;quot; id=&amp;quot;h1-18-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/i18next/-/i18next-19.9.2.tgz&amp;amp;quot;,
    830 <a href="#l811" class="line" id="l811">    811</a> &lt;a href=&quot;#l792&quot; class=&quot;line&quot; id=&quot;l792&quot;&gt;    792&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-6&amp;quot; id=&amp;quot;h1-18-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-0i6cuo6ER6usEOtKajUUDj92zlG+KArFia0857xxiEHAQcUwh/RtOQocui1LPJwunSYT574Pk64aNva1kwtxZg==&amp;amp;quot;,
    831 <a href="#l812" class="line" id="l812">    812</a> &lt;a href=&quot;#l793&quot; class=&quot;line&quot; id=&quot;l793&quot;&gt;    793&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-7&amp;quot; id=&amp;quot;h1-18-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    832 <a href="#l813" class="line" id="l813">    813</a> &lt;a href=&quot;#l794&quot; class=&quot;line&quot; id=&quot;l794&quot;&gt;    794&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-8&amp;quot; id=&amp;quot;h1-18-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@babel/runtime&amp;amp;quot;: &amp;amp;quot;^7.12.0&amp;amp;quot;
    833 <a href="#l814" class="line" id="l814">    814</a> &lt;a href=&quot;#l795&quot; class=&quot;line&quot; id=&quot;l795&quot;&gt;    795&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-9&amp;quot; id=&amp;quot;h1-18-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    834 <a href="#l815" class="line" id="l815">    815</a> &lt;a href=&quot;#l796&quot; class=&quot;line&quot; id=&quot;l796&quot;&gt;    796&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-10&amp;quot; id=&amp;quot;h1-18-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    835 <a href="#l816" class="line" id="l816">    816</a> &lt;a href=&quot;#l797&quot; class=&quot;line&quot; id=&quot;l797&quot;&gt;    797&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-11&amp;quot; id=&amp;quot;h1-18-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/i18next-browser-languagedetector&amp;amp;quot;: {
    836 <a href="#l817" class="line" id="l817">    817</a> &lt;a href=&quot;#l798&quot; class=&quot;line&quot; id=&quot;l798&quot;&gt;    798&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-12&amp;quot; id=&amp;quot;h1-18-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;4.3.1&amp;amp;quot;,
    837 <a href="#l818" class="line" id="l818">    818</a> &lt;a href=&quot;#l799&quot; class=&quot;line&quot; id=&quot;l799&quot;&gt;    799&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-13&amp;quot; id=&amp;quot;h1-18-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-4.3.1.tgz&amp;amp;quot;,
    838 <a href="#l819" class="line" id="l819">    819</a> &lt;a href=&quot;#l800&quot; class=&quot;line&quot; id=&quot;l800&quot;&gt;    800&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-14&amp;quot; id=&amp;quot;h1-18-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-KIToAzf8zwWvacgnRwJp63ase26o24AuNUlfNVJ5YZAFmdGhsJpmFClxXPuk9rv1FMI4lnc8zLSqgZPEZMrW4g==&amp;amp;quot;,
    839 <a href="#l820" class="line" id="l820">    820</a> &lt;a href=&quot;#l801&quot; class=&quot;line&quot; id=&quot;l801&quot;&gt;    801&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-15&amp;quot; id=&amp;quot;h1-18-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    840 <a href="#l821" class="line" id="l821">    821</a> &lt;a href=&quot;#l802&quot; class=&quot;line&quot; id=&quot;l802&quot;&gt;    802&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-16&amp;quot; id=&amp;quot;h1-18-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@babel/runtime&amp;amp;quot;: &amp;amp;quot;^7.5.5&amp;amp;quot;
    841 <a href="#l822" class="line" id="l822">    822</a> &lt;a href=&quot;#l803&quot; class=&quot;line&quot; id=&quot;l803&quot;&gt;    803&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-17&amp;quot; id=&amp;quot;h1-18-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    842 <a href="#l823" class="line" id="l823">    823</a> &lt;a href=&quot;#l804&quot; class=&quot;line&quot; id=&quot;l804&quot;&gt;    804&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-18-18&amp;quot; id=&amp;quot;h1-18-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    843 <a href="#l824" class="line" id="l824">    824</a> &lt;a href=&quot;#l805&quot; class=&quot;line&quot; id=&quot;l805&quot;&gt;    805&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/iconv-lite&amp;amp;quot;: {
    844 <a href="#l825" class="line" id="l825">    825</a> &lt;a href=&quot;#l806&quot; class=&quot;line&quot; id=&quot;l806&quot;&gt;    806&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.6.3&amp;amp;quot;,
    845 <a href="#l826" class="line" id="l826">    826</a> &lt;a href=&quot;#l807&quot; class=&quot;line&quot; id=&quot;l807&quot;&gt;    807&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz&amp;amp;quot;,
    846 <a href="#l827" class="line" id="l827">    827</a> &lt;a href=&quot;#l808&quot; class=&quot;line&quot; id=&quot;l808&quot;&gt;    808&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-19&amp;quot; id=&amp;quot;h1-19&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -3959,6 +4567,25 @@
    847 <a href="#l828" class="line" id="l828">    828</a> &lt;a href=&quot;#l809&quot; class=&quot;line&quot; id=&quot;l809&quot;&gt;    809&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.10.0&amp;amp;quot;
    848 <a href="#l829" class="line" id="l829">    829</a> &lt;a href=&quot;#l810&quot; class=&quot;line&quot; id=&quot;l810&quot;&gt;    810&lt;/a&gt;        }
    849 <a href="#l830" class="line" id="l830">    830</a> &lt;a href=&quot;#l811&quot; class=&quot;line&quot; id=&quot;l811&quot;&gt;    811&lt;/a&gt;      },
    850 <a href="#l831" class="line" id="l831">    831</a> &lt;a href=&quot;#l812&quot; class=&quot;line&quot; id=&quot;l812&quot;&gt;    812&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-19-3&amp;quot; id=&amp;quot;h1-19-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/its-fine&amp;amp;quot;: {
    851 <a href="#l832" class="line" id="l832">    832</a> &lt;a href=&quot;#l813&quot; class=&quot;line&quot; id=&quot;l813&quot;&gt;    813&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-4&amp;quot; id=&amp;quot;h1-19-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.0.0&amp;amp;quot;,
    852 <a href="#l833" class="line" id="l833">    833</a> &lt;a href=&quot;#l814&quot; class=&quot;line&quot; id=&quot;l814&quot;&gt;    814&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-5&amp;quot; id=&amp;quot;h1-19-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/its-fine/-/its-fine-2.0.0.tgz&amp;amp;quot;,
    853 <a href="#l834" class="line" id="l834">    834</a> &lt;a href=&quot;#l815&quot; class=&quot;line&quot; id=&quot;l815&quot;&gt;    815&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-6&amp;quot; id=&amp;quot;h1-19-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng==&amp;amp;quot;,
    854 <a href="#l835" class="line" id="l835">    835</a> &lt;a href=&quot;#l816&quot; class=&quot;line&quot; id=&quot;l816&quot;&gt;    816&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-7&amp;quot; id=&amp;quot;h1-19-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    855 <a href="#l836" class="line" id="l836">    836</a> &lt;a href=&quot;#l817&quot; class=&quot;line&quot; id=&quot;l817&quot;&gt;    817&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-8&amp;quot; id=&amp;quot;h1-19-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@types/react-reconciler&amp;amp;quot;: &amp;amp;quot;^0.28.9&amp;amp;quot;
    856 <a href="#l837" class="line" id="l837">    837</a> &lt;a href=&quot;#l818&quot; class=&quot;line&quot; id=&quot;l818&quot;&gt;    818&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-9&amp;quot; id=&amp;quot;h1-19-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    857 <a href="#l838" class="line" id="l838">    838</a> &lt;a href=&quot;#l819&quot; class=&quot;line&quot; id=&quot;l819&quot;&gt;    819&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-10&amp;quot; id=&amp;quot;h1-19-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
    858 <a href="#l839" class="line" id="l839">    839</a> &lt;a href=&quot;#l820&quot; class=&quot;line&quot; id=&quot;l820&quot;&gt;    820&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-11&amp;quot; id=&amp;quot;h1-19-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;^19.0.0&amp;amp;quot;
    859 <a href="#l840" class="line" id="l840">    840</a> &lt;a href=&quot;#l821&quot; class=&quot;line&quot; id=&quot;l821&quot;&gt;    821&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-12&amp;quot; id=&amp;quot;h1-19-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    860 <a href="#l841" class="line" id="l841">    841</a> &lt;a href=&quot;#l822&quot; class=&quot;line&quot; id=&quot;l822&quot;&gt;    822&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-13&amp;quot; id=&amp;quot;h1-19-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    861 <a href="#l842" class="line" id="l842">    842</a> &lt;a href=&quot;#l823&quot; class=&quot;line&quot; id=&quot;l823&quot;&gt;    823&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-14&amp;quot; id=&amp;quot;h1-19-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/its-fine/node_modules/@types/react-reconciler&amp;amp;quot;: {
    862 <a href="#l843" class="line" id="l843">    843</a> &lt;a href=&quot;#l824&quot; class=&quot;line&quot; id=&quot;l824&quot;&gt;    824&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-15&amp;quot; id=&amp;quot;h1-19-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.28.9&amp;amp;quot;,
    863 <a href="#l844" class="line" id="l844">    844</a> &lt;a href=&quot;#l825&quot; class=&quot;line&quot; id=&quot;l825&quot;&gt;    825&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-16&amp;quot; id=&amp;quot;h1-19-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.9.tgz&amp;amp;quot;,
    864 <a href="#l845" class="line" id="l845">    845</a> &lt;a href=&quot;#l826&quot; class=&quot;line&quot; id=&quot;l826&quot;&gt;    826&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-17&amp;quot; id=&amp;quot;h1-19-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==&amp;amp;quot;,
    865 <a href="#l846" class="line" id="l846">    846</a> &lt;a href=&quot;#l827&quot; class=&quot;line&quot; id=&quot;l827&quot;&gt;    827&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-18&amp;quot; id=&amp;quot;h1-19-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
    866 <a href="#l847" class="line" id="l847">    847</a> &lt;a href=&quot;#l828&quot; class=&quot;line&quot; id=&quot;l828&quot;&gt;    828&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-19&amp;quot; id=&amp;quot;h1-19-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@types/react&amp;amp;quot;: &amp;amp;quot;*&amp;amp;quot;
    867 <a href="#l848" class="line" id="l848">    848</a> &lt;a href=&quot;#l829&quot; class=&quot;line&quot; id=&quot;l829&quot;&gt;    829&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-20&amp;quot; id=&amp;quot;h1-19-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    868 <a href="#l849" class="line" id="l849">    849</a> &lt;a href=&quot;#l830&quot; class=&quot;line&quot; id=&quot;l830&quot;&gt;    830&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-19-21&amp;quot; id=&amp;quot;h1-19-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    869 <a href="#l850" class="line" id="l850">    850</a> &lt;a href=&quot;#l831&quot; class=&quot;line&quot; id=&quot;l831&quot;&gt;    831&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/jake&amp;amp;quot;: {
    870 <a href="#l851" class="line" id="l851">    851</a> &lt;a href=&quot;#l832&quot; class=&quot;line&quot; id=&quot;l832&quot;&gt;    832&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;10.9.2&amp;amp;quot;,
    871 <a href="#l852" class="line" id="l852">    852</a> &lt;a href=&quot;#l833&quot; class=&quot;line&quot; id=&quot;l833&quot;&gt;    833&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/jake/-/jake-10.9.2.tgz&amp;amp;quot;,
    872 <a href="#l853" class="line" id="l853">    853</a> &lt;a href=&quot;#l834&quot; class=&quot;line&quot; id=&quot;l834&quot;&gt;    834&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-20&amp;quot; id=&amp;quot;h1-20&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -4091,6 +4718,11 @@
    873 <a href="#l854" class="line" id="l854">    854</a> &lt;a href=&quot;#l835&quot; class=&quot;line&quot; id=&quot;l835&quot;&gt;    835&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;= 0.8.0&amp;amp;quot;
    874 <a href="#l855" class="line" id="l855">    855</a> &lt;a href=&quot;#l836&quot; class=&quot;line&quot; id=&quot;l836&quot;&gt;    836&lt;/a&gt;        }
    875 <a href="#l856" class="line" id="l856">    856</a> &lt;a href=&quot;#l837&quot; class=&quot;line&quot; id=&quot;l837&quot;&gt;    837&lt;/a&gt;      },
    876 <a href="#l857" class="line" id="l857">    857</a> &lt;a href=&quot;#l838&quot; class=&quot;line&quot; id=&quot;l838&quot;&gt;    838&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-20-3&amp;quot; id=&amp;quot;h1-20-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/libtess&amp;amp;quot;: {
    877 <a href="#l858" class="line" id="l858">    858</a> &lt;a href=&quot;#l839&quot; class=&quot;line&quot; id=&quot;l839&quot;&gt;    839&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-20-4&amp;quot; id=&amp;quot;h1-20-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.2.2&amp;amp;quot;,
    878 <a href="#l859" class="line" id="l859">    859</a> &lt;a href=&quot;#l840&quot; class=&quot;line&quot; id=&quot;l840&quot;&gt;    840&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-20-5&amp;quot; id=&amp;quot;h1-20-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/libtess/-/libtess-1.2.2.tgz&amp;amp;quot;,
    879 <a href="#l860" class="line" id="l860">    860</a> &lt;a href=&quot;#l841&quot; class=&quot;line&quot; id=&quot;l841&quot;&gt;    841&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-20-6&amp;quot; id=&amp;quot;h1-20-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Nps8HPeVVcsmJxUvFLKVJcCgcz+1ajPTXDVAVPs6+giOQP4AHV31uZFFkh+CKow/bkB7GbZWKmwmit7myaqDSw==&amp;amp;quot;
    880 <a href="#l861" class="line" id="l861">    861</a> &lt;a href=&quot;#l842&quot; class=&quot;line&quot; id=&quot;l842&quot;&gt;    842&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-20-7&amp;quot; id=&amp;quot;h1-20-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    881 <a href="#l862" class="line" id="l862">    862</a> &lt;a href=&quot;#l843&quot; class=&quot;line&quot; id=&quot;l843&quot;&gt;    843&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/liftoff&amp;amp;quot;: {
    882 <a href="#l863" class="line" id="l863">    863</a> &lt;a href=&quot;#l844&quot; class=&quot;line&quot; id=&quot;l844&quot;&gt;    844&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;5.0.1&amp;amp;quot;,
    883 <a href="#l864" class="line" id="l864">    864</a> &lt;a href=&quot;#l845&quot; class=&quot;line&quot; id=&quot;l845&quot;&gt;    845&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/liftoff/-/liftoff-5.0.1.tgz&amp;amp;quot;,
    884 <a href="#l865" class="line" id="l865">    865</a> &lt;a href=&quot;#l846&quot; class=&quot;line&quot; id=&quot;l846&quot;&gt;    846&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-21&amp;quot; id=&amp;quot;h1-21&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -4660,6 +5292,11 @@
    885 <a href="#l866" class="line" id="l866">    866</a> &lt;a href=&quot;#l847&quot; class=&quot;line&quot; id=&quot;l847&quot;&gt;    847&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.10.0&amp;amp;quot;
    886 <a href="#l867" class="line" id="l867">    867</a> &lt;a href=&quot;#l848&quot; class=&quot;line&quot; id=&quot;l848&quot;&gt;    848&lt;/a&gt;        }
    887 <a href="#l868" class="line" id="l868">    868</a> &lt;a href=&quot;#l849&quot; class=&quot;line&quot; id=&quot;l849&quot;&gt;    849&lt;/a&gt;      },
    888 <a href="#l869" class="line" id="l869">    869</a> &lt;a href=&quot;#l850&quot; class=&quot;line&quot; id=&quot;l850&quot;&gt;    850&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-21-3&amp;quot; id=&amp;quot;h1-21-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/omggif&amp;amp;quot;: {
    889 <a href="#l870" class="line" id="l870">    870</a> &lt;a href=&quot;#l851&quot; class=&quot;line&quot; id=&quot;l851&quot;&gt;    851&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-21-4&amp;quot; id=&amp;quot;h1-21-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.0.10&amp;amp;quot;,
    890 <a href="#l871" class="line" id="l871">    871</a> &lt;a href=&quot;#l852&quot; class=&quot;line&quot; id=&quot;l852&quot;&gt;    852&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-21-5&amp;quot; id=&amp;quot;h1-21-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz&amp;amp;quot;,
    891 <a href="#l872" class="line" id="l872">    872</a> &lt;a href=&quot;#l853&quot; class=&quot;line&quot; id=&quot;l853&quot;&gt;    853&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-21-6&amp;quot; id=&amp;quot;h1-21-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==&amp;amp;quot;
    892 <a href="#l873" class="line" id="l873">    873</a> &lt;a href=&quot;#l854&quot; class=&quot;line&quot; id=&quot;l854&quot;&gt;    854&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-21-7&amp;quot; id=&amp;quot;h1-21-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    893 <a href="#l874" class="line" id="l874">    874</a> &lt;a href=&quot;#l855&quot; class=&quot;line&quot; id=&quot;l855&quot;&gt;    855&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/on-finished&amp;amp;quot;: {
    894 <a href="#l875" class="line" id="l875">    875</a> &lt;a href=&quot;#l856&quot; class=&quot;line&quot; id=&quot;l856&quot;&gt;    856&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.4.1&amp;amp;quot;,
    895 <a href="#l876" class="line" id="l876">    876</a> &lt;a href=&quot;#l857&quot; class=&quot;line&quot; id=&quot;l857&quot;&gt;    857&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz&amp;amp;quot;,
    896 <a href="#l877" class="line" id="l877">    877</a> &lt;a href=&quot;#l858&quot; class=&quot;line&quot; id=&quot;l858&quot;&gt;    858&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-22&amp;quot; id=&amp;quot;h1-22&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -4761,6 +5398,33 @@
    897 <a href="#l878" class="line" id="l878">    878</a> &lt;a href=&quot;#l859&quot; class=&quot;line&quot; id=&quot;l859&quot;&gt;    859&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=8&amp;amp;quot;
    898 <a href="#l879" class="line" id="l879">    879</a> &lt;a href=&quot;#l860&quot; class=&quot;line&quot; id=&quot;l860&quot;&gt;    860&lt;/a&gt;        }
    899 <a href="#l880" class="line" id="l880">    880</a> &lt;a href=&quot;#l861&quot; class=&quot;line&quot; id=&quot;l861&quot;&gt;    861&lt;/a&gt;      },
    900 <a href="#l881" class="line" id="l881">    881</a> &lt;a href=&quot;#l862&quot; class=&quot;line&quot; id=&quot;l862&quot;&gt;    862&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-22-3&amp;quot; id=&amp;quot;h1-22-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/p5&amp;amp;quot;: {
    901 <a href="#l882" class="line" id="l882">    882</a> &lt;a href=&quot;#l863&quot; class=&quot;line&quot; id=&quot;l863&quot;&gt;    863&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-4&amp;quot; id=&amp;quot;h1-22-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.0.3&amp;amp;quot;,
    902 <a href="#l883" class="line" id="l883">    883</a> &lt;a href=&quot;#l864&quot; class=&quot;line&quot; id=&quot;l864&quot;&gt;    864&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-5&amp;quot; id=&amp;quot;h1-22-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/p5/-/p5-2.0.3.tgz&amp;amp;quot;,
    903 <a href="#l884" class="line" id="l884">    884</a> &lt;a href=&quot;#l865&quot; class=&quot;line&quot; id=&quot;l865&quot;&gt;    865&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-6&amp;quot; id=&amp;quot;h1-22-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-MA2fyH4qWWcUGgBnkyz6/B6Uhmr/cF/t+xryeAO6bt/bJoWc8/U6nRVbdP87GMBG5w2H9ej9pUcRqoQEzhtusA==&amp;amp;quot;,
    904 <a href="#l885" class="line" id="l885">    885</a> &lt;a href=&quot;#l866&quot; class=&quot;line&quot; id=&quot;l866&quot;&gt;    866&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-7&amp;quot; id=&amp;quot;h1-22-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    905 <a href="#l886" class="line" id="l886">    886</a> &lt;a href=&quot;#l867&quot; class=&quot;line&quot; id=&quot;l867&quot;&gt;    867&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-8&amp;quot; id=&amp;quot;h1-22-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@davepagurek/bezier-path&amp;amp;quot;: &amp;amp;quot;^0.0.2&amp;amp;quot;,
    906 <a href="#l887" class="line" id="l887">    887</a> &lt;a href=&quot;#l868&quot; class=&quot;line&quot; id=&quot;l868&quot;&gt;    868&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-9&amp;quot; id=&amp;quot;h1-22-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@japont/unicode-range&amp;amp;quot;: &amp;amp;quot;^1.0.0&amp;amp;quot;,
    907 <a href="#l888" class="line" id="l888">    888</a> &lt;a href=&quot;#l869&quot; class=&quot;line&quot; id=&quot;l869&quot;&gt;    869&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-10&amp;quot; id=&amp;quot;h1-22-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;acorn&amp;amp;quot;: &amp;amp;quot;^8.12.1&amp;amp;quot;,
    908 <a href="#l889" class="line" id="l889">    889</a> &lt;a href=&quot;#l870&quot; class=&quot;line&quot; id=&quot;l870&quot;&gt;    870&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-11&amp;quot; id=&amp;quot;h1-22-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;acorn-walk&amp;amp;quot;: &amp;amp;quot;^8.3.4&amp;amp;quot;,
    909 <a href="#l890" class="line" id="l890">    890</a> &lt;a href=&quot;#l871&quot; class=&quot;line&quot; id=&quot;l871&quot;&gt;    871&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-12&amp;quot; id=&amp;quot;h1-22-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;colorjs.io&amp;amp;quot;: &amp;amp;quot;^0.5.2&amp;amp;quot;,
    910 <a href="#l891" class="line" id="l891">    891</a> &lt;a href=&quot;#l872&quot; class=&quot;line&quot; id=&quot;l872&quot;&gt;    872&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-13&amp;quot; id=&amp;quot;h1-22-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;escodegen&amp;amp;quot;: &amp;amp;quot;^2.1.0&amp;amp;quot;,
    911 <a href="#l892" class="line" id="l892">    892</a> &lt;a href=&quot;#l873&quot; class=&quot;line&quot; id=&quot;l873&quot;&gt;    873&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-14&amp;quot; id=&amp;quot;h1-22-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;file-saver&amp;amp;quot;: &amp;amp;quot;^1.3.8&amp;amp;quot;,
    912 <a href="#l893" class="line" id="l893">    893</a> &lt;a href=&quot;#l874&quot; class=&quot;line&quot; id=&quot;l874&quot;&gt;    874&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-15&amp;quot; id=&amp;quot;h1-22-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;gifenc&amp;amp;quot;: &amp;amp;quot;^1.0.3&amp;amp;quot;,
    913 <a href="#l894" class="line" id="l894">    894</a> &lt;a href=&quot;#l875&quot; class=&quot;line&quot; id=&quot;l875&quot;&gt;    875&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-16&amp;quot; id=&amp;quot;h1-22-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;i18next&amp;amp;quot;: &amp;amp;quot;^19.0.2&amp;amp;quot;,
    914 <a href="#l895" class="line" id="l895">    895</a> &lt;a href=&quot;#l876&quot; class=&quot;line&quot; id=&quot;l876&quot;&gt;    876&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-17&amp;quot; id=&amp;quot;h1-22-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;i18next-browser-languagedetector&amp;amp;quot;: &amp;amp;quot;^4.0.1&amp;amp;quot;,
    915 <a href="#l896" class="line" id="l896">    896</a> &lt;a href=&quot;#l877&quot; class=&quot;line&quot; id=&quot;l877&quot;&gt;    877&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-18&amp;quot; id=&amp;quot;h1-22-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;libtess&amp;amp;quot;: &amp;amp;quot;^1.2.2&amp;amp;quot;,
    916 <a href="#l897" class="line" id="l897">    897</a> &lt;a href=&quot;#l878&quot; class=&quot;line&quot; id=&quot;l878&quot;&gt;    878&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-19&amp;quot; id=&amp;quot;h1-22-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;omggif&amp;amp;quot;: &amp;amp;quot;^1.0.10&amp;amp;quot;,
    917 <a href="#l898" class="line" id="l898">    898</a> &lt;a href=&quot;#l879&quot; class=&quot;line&quot; id=&quot;l879&quot;&gt;    879&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-20&amp;quot; id=&amp;quot;h1-22-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;pako&amp;amp;quot;: &amp;amp;quot;^2.1.0&amp;amp;quot;,
    918 <a href="#l899" class="line" id="l899">    899</a> &lt;a href=&quot;#l880&quot; class=&quot;line&quot; id=&quot;l880&quot;&gt;    880&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-21&amp;quot; id=&amp;quot;h1-22-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;pixelmatch&amp;amp;quot;: &amp;amp;quot;^7.1.0&amp;amp;quot;,
    919 <a href="#l900" class="line" id="l900">    900</a> &lt;a href=&quot;#l881&quot; class=&quot;line&quot; id=&quot;l881&quot;&gt;    881&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-22&amp;quot; id=&amp;quot;h1-22-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;zod&amp;amp;quot;: &amp;amp;quot;^3.23.8&amp;amp;quot;
    920 <a href="#l901" class="line" id="l901">    901</a> &lt;a href=&quot;#l882&quot; class=&quot;line&quot; id=&quot;l882&quot;&gt;    882&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-23&amp;quot; id=&amp;quot;h1-22-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    921 <a href="#l902" class="line" id="l902">    902</a> &lt;a href=&quot;#l883&quot; class=&quot;line&quot; id=&quot;l883&quot;&gt;    883&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-24&amp;quot; id=&amp;quot;h1-22-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    922 <a href="#l903" class="line" id="l903">    903</a> &lt;a href=&quot;#l884&quot; class=&quot;line&quot; id=&quot;l884&quot;&gt;    884&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-25&amp;quot; id=&amp;quot;h1-22-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/pako&amp;amp;quot;: {
    923 <a href="#l904" class="line" id="l904">    904</a> &lt;a href=&quot;#l885&quot; class=&quot;line&quot; id=&quot;l885&quot;&gt;    885&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-26&amp;quot; id=&amp;quot;h1-22-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.1.0&amp;amp;quot;,
    924 <a href="#l905" class="line" id="l905">    905</a> &lt;a href=&quot;#l886&quot; class=&quot;line&quot; id=&quot;l886&quot;&gt;    886&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-27&amp;quot; id=&amp;quot;h1-22-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/pako/-/pako-2.1.0.tgz&amp;amp;quot;,
    925 <a href="#l906" class="line" id="l906">    906</a> &lt;a href=&quot;#l887&quot; class=&quot;line&quot; id=&quot;l887&quot;&gt;    887&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-28&amp;quot; id=&amp;quot;h1-22-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==&amp;amp;quot;
    926 <a href="#l907" class="line" id="l907">    907</a> &lt;a href=&quot;#l888&quot; class=&quot;line&quot; id=&quot;l888&quot;&gt;    888&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-22-29&amp;quot; id=&amp;quot;h1-22-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    927 <a href="#l908" class="line" id="l908">    908</a> &lt;a href=&quot;#l889&quot; class=&quot;line&quot; id=&quot;l889&quot;&gt;    889&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/parent-module&amp;amp;quot;: {
    928 <a href="#l909" class="line" id="l909">    909</a> &lt;a href=&quot;#l890&quot; class=&quot;line&quot; id=&quot;l890&quot;&gt;    890&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.0.1&amp;amp;quot;,
    929 <a href="#l910" class="line" id="l910">    910</a> &lt;a href=&quot;#l891&quot; class=&quot;line&quot; id=&quot;l891&quot;&gt;    891&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz&amp;amp;quot;,
    930 <a href="#l911" class="line" id="l911">    911</a> &lt;a href=&quot;#l892&quot; class=&quot;line&quot; id=&quot;l892&quot;&gt;    892&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-23&amp;quot; id=&amp;quot;h1-23&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -4899,6 +5563,17 @@
    931 <a href="#l912" class="line" id="l912">    912</a> &lt;a href=&quot;#l893&quot; class=&quot;line&quot; id=&quot;l893&quot;&gt;    893&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.10.0&amp;amp;quot;
    932 <a href="#l913" class="line" id="l913">    913</a> &lt;a href=&quot;#l894&quot; class=&quot;line&quot; id=&quot;l894&quot;&gt;    894&lt;/a&gt;        }
    933 <a href="#l914" class="line" id="l914">    914</a> &lt;a href=&quot;#l895&quot; class=&quot;line&quot; id=&quot;l895&quot;&gt;    895&lt;/a&gt;      },
    934 <a href="#l915" class="line" id="l915">    915</a> &lt;a href=&quot;#l896&quot; class=&quot;line&quot; id=&quot;l896&quot;&gt;    896&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-23-3&amp;quot; id=&amp;quot;h1-23-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/pixelmatch&amp;amp;quot;: {
    935 <a href="#l916" class="line" id="l916">    916</a> &lt;a href=&quot;#l897&quot; class=&quot;line&quot; id=&quot;l897&quot;&gt;    897&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-4&amp;quot; id=&amp;quot;h1-23-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;7.1.0&amp;amp;quot;,
    936 <a href="#l917" class="line" id="l917">    917</a> &lt;a href=&quot;#l898&quot; class=&quot;line&quot; id=&quot;l898&quot;&gt;    898&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-5&amp;quot; id=&amp;quot;h1-23-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/pixelmatch/-/pixelmatch-7.1.0.tgz&amp;amp;quot;,
    937 <a href="#l918" class="line" id="l918">    918</a> &lt;a href=&quot;#l899&quot; class=&quot;line&quot; id=&quot;l899&quot;&gt;    899&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-6&amp;quot; id=&amp;quot;h1-23-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-1wrVzJ2STrpmONHKBy228LM1b84msXDUoAzVEl0R8Mz4Ce6EPr+IVtxm8+yvrqLYMHswREkjYFaMxnyGnaY3Ng==&amp;amp;quot;,
    938 <a href="#l919" class="line" id="l919">    919</a> &lt;a href=&quot;#l900&quot; class=&quot;line&quot; id=&quot;l900&quot;&gt;    900&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-7&amp;quot; id=&amp;quot;h1-23-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    939 <a href="#l920" class="line" id="l920">    920</a> &lt;a href=&quot;#l901&quot; class=&quot;line&quot; id=&quot;l901&quot;&gt;    901&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-8&amp;quot; id=&amp;quot;h1-23-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;pngjs&amp;amp;quot;: &amp;amp;quot;^7.0.0&amp;amp;quot;
    940 <a href="#l921" class="line" id="l921">    921</a> &lt;a href=&quot;#l902&quot; class=&quot;line&quot; id=&quot;l902&quot;&gt;    902&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-9&amp;quot; id=&amp;quot;h1-23-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    941 <a href="#l922" class="line" id="l922">    922</a> &lt;a href=&quot;#l903&quot; class=&quot;line&quot; id=&quot;l903&quot;&gt;    903&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-10&amp;quot; id=&amp;quot;h1-23-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;bin&amp;amp;quot;: {
    942 <a href="#l923" class="line" id="l923">    923</a> &lt;a href=&quot;#l904&quot; class=&quot;line&quot; id=&quot;l904&quot;&gt;    904&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-11&amp;quot; id=&amp;quot;h1-23-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;pixelmatch&amp;amp;quot;: &amp;amp;quot;bin/pixelmatch&amp;amp;quot;
    943 <a href="#l924" class="line" id="l924">    924</a> &lt;a href=&quot;#l905&quot; class=&quot;line&quot; id=&quot;l905&quot;&gt;    905&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-12&amp;quot; id=&amp;quot;h1-23-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    944 <a href="#l925" class="line" id="l925">    925</a> &lt;a href=&quot;#l906&quot; class=&quot;line&quot; id=&quot;l906&quot;&gt;    906&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-23-13&amp;quot; id=&amp;quot;h1-23-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    945 <a href="#l926" class="line" id="l926">    926</a> &lt;a href=&quot;#l907&quot; class=&quot;line&quot; id=&quot;l907&quot;&gt;    907&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/please-upgrade-node&amp;amp;quot;: {
    946 <a href="#l927" class="line" id="l927">    927</a> &lt;a href=&quot;#l908&quot; class=&quot;line&quot; id=&quot;l908&quot;&gt;    908&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;3.2.0&amp;amp;quot;,
    947 <a href="#l928" class="line" id="l928">    928</a> &lt;a href=&quot;#l909&quot; class=&quot;line&quot; id=&quot;l909&quot;&gt;    909&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz&amp;amp;quot;,
    948 <a href="#l929" class="line" id="l929">    929</a> &lt;a href=&quot;#l910&quot; class=&quot;line&quot; id=&quot;l910&quot;&gt;    910&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-24&amp;quot; id=&amp;quot;h1-24&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -4923,6 +5598,14 @@
    949 <a href="#l930" class="line" id="l930">    930</a> &lt;a href=&quot;#l911&quot; class=&quot;line&quot; id=&quot;l911&quot;&gt;    911&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;= 0.10&amp;amp;quot;
    950 <a href="#l931" class="line" id="l931">    931</a> &lt;a href=&quot;#l912&quot; class=&quot;line&quot; id=&quot;l912&quot;&gt;    912&lt;/a&gt;        }
    951 <a href="#l932" class="line" id="l932">    932</a> &lt;a href=&quot;#l913&quot; class=&quot;line&quot; id=&quot;l913&quot;&gt;    913&lt;/a&gt;      },
    952 <a href="#l933" class="line" id="l933">    933</a> &lt;a href=&quot;#l914&quot; class=&quot;line&quot; id=&quot;l914&quot;&gt;    914&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-24-3&amp;quot; id=&amp;quot;h1-24-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/pngjs&amp;amp;quot;: {
    953 <a href="#l934" class="line" id="l934">    934</a> &lt;a href=&quot;#l915&quot; class=&quot;line&quot; id=&quot;l915&quot;&gt;    915&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-24-4&amp;quot; id=&amp;quot;h1-24-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;7.0.0&amp;amp;quot;,
    954 <a href="#l935" class="line" id="l935">    935</a> &lt;a href=&quot;#l916&quot; class=&quot;line&quot; id=&quot;l916&quot;&gt;    916&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-24-5&amp;quot; id=&amp;quot;h1-24-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz&amp;amp;quot;,
    955 <a href="#l936" class="line" id="l936">    936</a> &lt;a href=&quot;#l917&quot; class=&quot;line&quot; id=&quot;l917&quot;&gt;    917&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-24-6&amp;quot; id=&amp;quot;h1-24-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==&amp;amp;quot;,
    956 <a href="#l937" class="line" id="l937">    937</a> &lt;a href=&quot;#l918&quot; class=&quot;line&quot; id=&quot;l918&quot;&gt;    918&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-24-7&amp;quot; id=&amp;quot;h1-24-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    957 <a href="#l938" class="line" id="l938">    938</a> &lt;a href=&quot;#l919&quot; class=&quot;line&quot; id=&quot;l919&quot;&gt;    919&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-24-8&amp;quot; id=&amp;quot;h1-24-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=14.19.0&amp;amp;quot;
    958 <a href="#l939" class="line" id="l939">    939</a> &lt;a href=&quot;#l920&quot; class=&quot;line&quot; id=&quot;l920&quot;&gt;    920&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-24-9&amp;quot; id=&amp;quot;h1-24-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    959 <a href="#l940" class="line" id="l940">    940</a> &lt;a href=&quot;#l921&quot; class=&quot;line&quot; id=&quot;l921&quot;&gt;    921&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-24-10&amp;quot; id=&amp;quot;h1-24-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    960 <a href="#l941" class="line" id="l941">    941</a> &lt;a href=&quot;#l922&quot; class=&quot;line&quot; id=&quot;l922&quot;&gt;    922&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/postcss&amp;amp;quot;: {
    961 <a href="#l942" class="line" id="l942">    942</a> &lt;a href=&quot;#l923&quot; class=&quot;line&quot; id=&quot;l923&quot;&gt;    923&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;8.5.6&amp;amp;quot;,
    962 <a href="#l943" class="line" id="l943">    943</a> &lt;a href=&quot;#l924&quot; class=&quot;line&quot; id=&quot;l924&quot;&gt;    924&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz&amp;amp;quot;,
    963 <a href="#l944" class="line" id="l944">    944</a> &lt;a href=&quot;#l925&quot; class=&quot;line&quot; id=&quot;l925&quot;&gt;    925&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-25&amp;quot; id=&amp;quot;h1-25&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -5967,6 +6650,58 @@
    964 <a href="#l945" class="line" id="l945">    945</a> &lt;a href=&quot;#l926&quot; class=&quot;line&quot; id=&quot;l926&quot;&gt;    926&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.10.0&amp;amp;quot;
    965 <a href="#l946" class="line" id="l946">    946</a> &lt;a href=&quot;#l927&quot; class=&quot;line&quot; id=&quot;l927&quot;&gt;    927&lt;/a&gt;        }
    966 <a href="#l947" class="line" id="l947">    947</a> &lt;a href=&quot;#l928&quot; class=&quot;line&quot; id=&quot;l928&quot;&gt;    928&lt;/a&gt;      },
    967 <a href="#l948" class="line" id="l948">    948</a> &lt;a href=&quot;#l929&quot; class=&quot;line&quot; id=&quot;l929&quot;&gt;    929&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-25-3&amp;quot; id=&amp;quot;h1-25-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/react&amp;amp;quot;: {
    968 <a href="#l949" class="line" id="l949">    949</a> &lt;a href=&quot;#l930&quot; class=&quot;line&quot; id=&quot;l930&quot;&gt;    930&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-4&amp;quot; id=&amp;quot;h1-25-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;19.1.1&amp;amp;quot;,
    969 <a href="#l950" class="line" id="l950">    950</a> &lt;a href=&quot;#l931&quot; class=&quot;line&quot; id=&quot;l931&quot;&gt;    931&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-5&amp;quot; id=&amp;quot;h1-25-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/react/-/react-19.1.1.tgz&amp;amp;quot;,
    970 <a href="#l951" class="line" id="l951">    951</a> &lt;a href=&quot;#l932&quot; class=&quot;line&quot; id=&quot;l932&quot;&gt;    932&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-6&amp;quot; id=&amp;quot;h1-25-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==&amp;amp;quot;,
    971 <a href="#l952" class="line" id="l952">    952</a> &lt;a href=&quot;#l933&quot; class=&quot;line&quot; id=&quot;l933&quot;&gt;    933&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-7&amp;quot; id=&amp;quot;h1-25-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    972 <a href="#l953" class="line" id="l953">    953</a> &lt;a href=&quot;#l934&quot; class=&quot;line&quot; id=&quot;l934&quot;&gt;    934&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-8&amp;quot; id=&amp;quot;h1-25-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.10.0&amp;amp;quot;
    973 <a href="#l954" class="line" id="l954">    954</a> &lt;a href=&quot;#l935&quot; class=&quot;line&quot; id=&quot;l935&quot;&gt;    935&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-9&amp;quot; id=&amp;quot;h1-25-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    974 <a href="#l955" class="line" id="l955">    955</a> &lt;a href=&quot;#l936&quot; class=&quot;line&quot; id=&quot;l936&quot;&gt;    936&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-10&amp;quot; id=&amp;quot;h1-25-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    975 <a href="#l956" class="line" id="l956">    956</a> &lt;a href=&quot;#l937&quot; class=&quot;line&quot; id=&quot;l937&quot;&gt;    937&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-11&amp;quot; id=&amp;quot;h1-25-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/react-dom&amp;amp;quot;: {
    976 <a href="#l957" class="line" id="l957">    957</a> &lt;a href=&quot;#l938&quot; class=&quot;line&quot; id=&quot;l938&quot;&gt;    938&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-12&amp;quot; id=&amp;quot;h1-25-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;19.1.1&amp;amp;quot;,
    977 <a href="#l958" class="line" id="l958">    958</a> &lt;a href=&quot;#l939&quot; class=&quot;line&quot; id=&quot;l939&quot;&gt;    939&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-13&amp;quot; id=&amp;quot;h1-25-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz&amp;amp;quot;,
    978 <a href="#l959" class="line" id="l959">    959</a> &lt;a href=&quot;#l940&quot; class=&quot;line&quot; id=&quot;l940&quot;&gt;    940&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-14&amp;quot; id=&amp;quot;h1-25-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==&amp;amp;quot;,
    979 <a href="#l960" class="line" id="l960">    960</a> &lt;a href=&quot;#l941&quot; class=&quot;line&quot; id=&quot;l941&quot;&gt;    941&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-15&amp;quot; id=&amp;quot;h1-25-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    980 <a href="#l961" class="line" id="l961">    961</a> &lt;a href=&quot;#l942&quot; class=&quot;line&quot; id=&quot;l942&quot;&gt;    942&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-16&amp;quot; id=&amp;quot;h1-25-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;scheduler&amp;amp;quot;: &amp;amp;quot;^0.26.0&amp;amp;quot;
    981 <a href="#l962" class="line" id="l962">    962</a> &lt;a href=&quot;#l943&quot; class=&quot;line&quot; id=&quot;l943&quot;&gt;    943&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-17&amp;quot; id=&amp;quot;h1-25-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    982 <a href="#l963" class="line" id="l963">    963</a> &lt;a href=&quot;#l944&quot; class=&quot;line&quot; id=&quot;l944&quot;&gt;    944&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-18&amp;quot; id=&amp;quot;h1-25-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
    983 <a href="#l964" class="line" id="l964">    964</a> &lt;a href=&quot;#l945&quot; class=&quot;line&quot; id=&quot;l945&quot;&gt;    945&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-19&amp;quot; id=&amp;quot;h1-25-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;^19.1.1&amp;amp;quot;
    984 <a href="#l965" class="line" id="l965">    965</a> &lt;a href=&quot;#l946&quot; class=&quot;line&quot; id=&quot;l946&quot;&gt;    946&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-20&amp;quot; id=&amp;quot;h1-25-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
    985 <a href="#l966" class="line" id="l966">    966</a> &lt;a href=&quot;#l947&quot; class=&quot;line&quot; id=&quot;l947&quot;&gt;    947&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-21&amp;quot; id=&amp;quot;h1-25-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    986 <a href="#l967" class="line" id="l967">    967</a> &lt;a href=&quot;#l948&quot; class=&quot;line&quot; id=&quot;l948&quot;&gt;    948&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-22&amp;quot; id=&amp;quot;h1-25-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/react-dom/node_modules/scheduler&amp;amp;quot;: {
    987 <a href="#l968" class="line" id="l968">    968</a> &lt;a href=&quot;#l949&quot; class=&quot;line&quot; id=&quot;l949&quot;&gt;    949&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-23&amp;quot; id=&amp;quot;h1-25-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.26.0&amp;amp;quot;,
    988 <a href="#l969" class="line" id="l969">    969</a> &lt;a href=&quot;#l950&quot; class=&quot;line&quot; id=&quot;l950&quot;&gt;    950&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-24&amp;quot; id=&amp;quot;h1-25-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz&amp;amp;quot;,
    989 <a href="#l970" class="line" id="l970">    970</a> &lt;a href=&quot;#l951&quot; class=&quot;line&quot; id=&quot;l951&quot;&gt;    951&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-25&amp;quot; id=&amp;quot;h1-25-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==&amp;amp;quot;
    990 <a href="#l971" class="line" id="l971">    971</a> &lt;a href=&quot;#l952&quot; class=&quot;line&quot; id=&quot;l952&quot;&gt;    952&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-26&amp;quot; id=&amp;quot;h1-25-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
    991 <a href="#l972" class="line" id="l972">    972</a> &lt;a href=&quot;#l953&quot; class=&quot;line&quot; id=&quot;l953&quot;&gt;    953&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-27&amp;quot; id=&amp;quot;h1-25-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/react-reconciler&amp;amp;quot;: {
    992 <a href="#l973" class="line" id="l973">    973</a> &lt;a href=&quot;#l954&quot; class=&quot;line&quot; id=&quot;l954&quot;&gt;    954&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-28&amp;quot; id=&amp;quot;h1-25-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.31.0&amp;amp;quot;,
    993 <a href="#l974" class="line" id="l974">    974</a> &lt;a href=&quot;#l955&quot; class=&quot;line&quot; id=&quot;l955&quot;&gt;    955&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-29&amp;quot; id=&amp;quot;h1-25-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.31.0.tgz&amp;amp;quot;,
    994 <a href="#l975" class="line" id="l975">    975</a> &lt;a href=&quot;#l956&quot; class=&quot;line&quot; id=&quot;l956&quot;&gt;    956&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-30&amp;quot; id=&amp;quot;h1-25-30&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-7Ob7Z+URmesIsIVRjnLoDGwBEG/tVitidU0nMsqX/eeJaLY89RISO/10ERe0MqmzuKUUB1rmY+h1itMbUHg9BQ==&amp;amp;quot;,
    995 <a href="#l976" class="line" id="l976">    976</a> &lt;a href=&quot;#l957&quot; class=&quot;line&quot; id=&quot;l957&quot;&gt;    957&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-31&amp;quot; id=&amp;quot;h1-25-31&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;dependencies&amp;amp;quot;: {
    996 <a href="#l977" class="line" id="l977">    977</a> &lt;a href=&quot;#l958&quot; class=&quot;line&quot; id=&quot;l958&quot;&gt;    958&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-32&amp;quot; id=&amp;quot;h1-25-32&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;scheduler&amp;amp;quot;: &amp;amp;quot;^0.25.0&amp;amp;quot;
    997 <a href="#l978" class="line" id="l978">    978</a> &lt;a href=&quot;#l959&quot; class=&quot;line&quot; id=&quot;l959&quot;&gt;    959&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-33&amp;quot; id=&amp;quot;h1-25-33&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
    998 <a href="#l979" class="line" id="l979">    979</a> &lt;a href=&quot;#l960&quot; class=&quot;line&quot; id=&quot;l960&quot;&gt;    960&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-34&amp;quot; id=&amp;quot;h1-25-34&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
    999 <a href="#l980" class="line" id="l980">    980</a> &lt;a href=&quot;#l961&quot; class=&quot;line&quot; id=&quot;l961&quot;&gt;    961&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-35&amp;quot; id=&amp;quot;h1-25-35&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.10.0&amp;amp;quot;
   1000 <a href="#l981" class="line" id="l981">    981</a> &lt;a href=&quot;#l962&quot; class=&quot;line&quot; id=&quot;l962&quot;&gt;    962&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-36&amp;quot; id=&amp;quot;h1-25-36&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
   1001 <a href="#l982" class="line" id="l982">    982</a> &lt;a href=&quot;#l963&quot; class=&quot;line&quot; id=&quot;l963&quot;&gt;    963&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-37&amp;quot; id=&amp;quot;h1-25-37&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
   1002 <a href="#l983" class="line" id="l983">    983</a> &lt;a href=&quot;#l964&quot; class=&quot;line&quot; id=&quot;l964&quot;&gt;    964&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-38&amp;quot; id=&amp;quot;h1-25-38&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;^19.0.0&amp;amp;quot;
   1003 <a href="#l984" class="line" id="l984">    984</a> &lt;a href=&quot;#l965&quot; class=&quot;line&quot; id=&quot;l965&quot;&gt;    965&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-39&amp;quot; id=&amp;quot;h1-25-39&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   1004 <a href="#l985" class="line" id="l985">    985</a> &lt;a href=&quot;#l966&quot; class=&quot;line&quot; id=&quot;l966&quot;&gt;    966&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-40&amp;quot; id=&amp;quot;h1-25-40&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
   1005 <a href="#l986" class="line" id="l986">    986</a> &lt;a href=&quot;#l967&quot; class=&quot;line&quot; id=&quot;l967&quot;&gt;    967&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-41&amp;quot; id=&amp;quot;h1-25-41&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/react-use-measure&amp;amp;quot;: {
   1006 <a href="#l987" class="line" id="l987">    987</a> &lt;a href=&quot;#l968&quot; class=&quot;line&quot; id=&quot;l968&quot;&gt;    968&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-42&amp;quot; id=&amp;quot;h1-25-42&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;2.1.7&amp;amp;quot;,
   1007 <a href="#l988" class="line" id="l988">    988</a> &lt;a href=&quot;#l969&quot; class=&quot;line&quot; id=&quot;l969&quot;&gt;    969&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-43&amp;quot; id=&amp;quot;h1-25-43&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.7.tgz&amp;amp;quot;,
   1008 <a href="#l989" class="line" id="l989">    989</a> &lt;a href=&quot;#l970&quot; class=&quot;line&quot; id=&quot;l970&quot;&gt;    970&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-44&amp;quot; id=&amp;quot;h1-25-44&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==&amp;amp;quot;,
   1009 <a href="#l990" class="line" id="l990">    990</a> &lt;a href=&quot;#l971&quot; class=&quot;line&quot; id=&quot;l971&quot;&gt;    971&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-45&amp;quot; id=&amp;quot;h1-25-45&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
   1010 <a href="#l991" class="line" id="l991">    991</a> &lt;a href=&quot;#l972&quot; class=&quot;line&quot; id=&quot;l972&quot;&gt;    972&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-46&amp;quot; id=&amp;quot;h1-25-46&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=16.13&amp;amp;quot;,
   1011 <a href="#l992" class="line" id="l992">    992</a> &lt;a href=&quot;#l973&quot; class=&quot;line&quot; id=&quot;l973&quot;&gt;    973&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-47&amp;quot; id=&amp;quot;h1-25-47&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-dom&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=16.13&amp;amp;quot;
   1012 <a href="#l993" class="line" id="l993">    993</a> &lt;a href=&quot;#l974&quot; class=&quot;line&quot; id=&quot;l974&quot;&gt;    974&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-48&amp;quot; id=&amp;quot;h1-25-48&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
   1013 <a href="#l994" class="line" id="l994">    994</a> &lt;a href=&quot;#l975&quot; class=&quot;line&quot; id=&quot;l975&quot;&gt;    975&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-49&amp;quot; id=&amp;quot;h1-25-49&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependenciesMeta&amp;amp;quot;: {
   1014 <a href="#l995" class="line" id="l995">    995</a> &lt;a href=&quot;#l976&quot; class=&quot;line&quot; id=&quot;l976&quot;&gt;    976&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-50&amp;quot; id=&amp;quot;h1-25-50&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react-dom&amp;amp;quot;: {
   1015 <a href="#l996" class="line" id="l996">    996</a> &lt;a href=&quot;#l977&quot; class=&quot;line&quot; id=&quot;l977&quot;&gt;    977&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-51&amp;quot; id=&amp;quot;h1-25-51&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
   1016 <a href="#l997" class="line" id="l997">    997</a> &lt;a href=&quot;#l978&quot; class=&quot;line&quot; id=&quot;l978&quot;&gt;    978&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-52&amp;quot; id=&amp;quot;h1-25-52&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        }
   1017 <a href="#l998" class="line" id="l998">    998</a> &lt;a href=&quot;#l979&quot; class=&quot;line&quot; id=&quot;l979&quot;&gt;    979&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-53&amp;quot; id=&amp;quot;h1-25-53&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   1018 <a href="#l999" class="line" id="l999">    999</a> &lt;a href=&quot;#l980&quot; class=&quot;line&quot; id=&quot;l980&quot;&gt;    980&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-25-54&amp;quot; id=&amp;quot;h1-25-54&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
   1019 <a href="#l1000" class="line" id="l1000">   1000</a> &lt;a href=&quot;#l981&quot; class=&quot;line&quot; id=&quot;l981&quot;&gt;    981&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/readable-stream&amp;amp;quot;: {
   1020 <a href="#l1001" class="line" id="l1001">   1001</a> &lt;a href=&quot;#l982&quot; class=&quot;line&quot; id=&quot;l982&quot;&gt;    982&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;3.6.2&amp;amp;quot;,
   1021 <a href="#l1002" class="line" id="l1002">   1002</a> &lt;a href=&quot;#l983&quot; class=&quot;line&quot; id=&quot;l983&quot;&gt;    983&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz&amp;amp;quot;,
   1022 <a href="#l1003" class="line" id="l1003">   1003</a> &lt;a href=&quot;#l984&quot; class=&quot;line&quot; id=&quot;l984&quot;&gt;    984&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-26&amp;quot; id=&amp;quot;h1-26&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -6239,6 +6974,11 @@
   1023 <a href="#l1004" class="line" id="l1004">   1004</a> &lt;a href=&quot;#l985&quot; class=&quot;line&quot; id=&quot;l985&quot;&gt;    985&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;url&amp;amp;quot;: &amp;amp;quot;https://paulmillr.com/funding/&amp;amp;quot;
   1024 <a href="#l1005" class="line" id="l1005">   1005</a> &lt;a href=&quot;#l986&quot; class=&quot;line&quot; id=&quot;l986&quot;&gt;    986&lt;/a&gt;        }
   1025 <a href="#l1006" class="line" id="l1006">   1006</a> &lt;a href=&quot;#l987&quot; class=&quot;line&quot; id=&quot;l987&quot;&gt;    987&lt;/a&gt;      },
   1026 <a href="#l1007" class="line" id="l1007">   1007</a> &lt;a href=&quot;#l988&quot; class=&quot;line&quot; id=&quot;l988&quot;&gt;    988&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-26-3&amp;quot; id=&amp;quot;h1-26-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/scheduler&amp;amp;quot;: {
   1027 <a href="#l1008" class="line" id="l1008">   1008</a> &lt;a href=&quot;#l989&quot; class=&quot;line&quot; id=&quot;l989&quot;&gt;    989&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-26-4&amp;quot; id=&amp;quot;h1-26-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.25.0&amp;amp;quot;,
   1028 <a href="#l1009" class="line" id="l1009">   1009</a> &lt;a href=&quot;#l990&quot; class=&quot;line&quot; id=&quot;l990&quot;&gt;    990&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-26-5&amp;quot; id=&amp;quot;h1-26-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz&amp;amp;quot;,
   1029 <a href="#l1010" class="line" id="l1010">   1010</a> &lt;a href=&quot;#l991&quot; class=&quot;line&quot; id=&quot;l991&quot;&gt;    991&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-26-6&amp;quot; id=&amp;quot;h1-26-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA==&amp;amp;quot;
   1030 <a href="#l1011" class="line" id="l1011">   1011</a> &lt;a href=&quot;#l992&quot; class=&quot;line&quot; id=&quot;l992&quot;&gt;    992&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-26-7&amp;quot; id=&amp;quot;h1-26-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
   1031 <a href="#l1012" class="line" id="l1012">   1012</a> &lt;a href=&quot;#l993&quot; class=&quot;line&quot; id=&quot;l993&quot;&gt;    993&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/section-matter&amp;amp;quot;: {
   1032 <a href="#l1013" class="line" id="l1013">   1013</a> &lt;a href=&quot;#l994&quot; class=&quot;line&quot; id=&quot;l994&quot;&gt;    994&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.0.0&amp;amp;quot;,
   1033 <a href="#l1014" class="line" id="l1014">   1014</a> &lt;a href=&quot;#l995&quot; class=&quot;line&quot; id=&quot;l995&quot;&gt;    995&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz&amp;amp;quot;,
   1034 <a href="#l1015" class="line" id="l1015">   1015</a> &lt;a href=&quot;#l996&quot; class=&quot;line&quot; id=&quot;l996&quot;&gt;    996&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-27&amp;quot; id=&amp;quot;h1-27&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -6451,7 +7191,7 @@
   1035 <a href="#l1016" class="line" id="l1016">   1016</a> &lt;a href=&quot;#l997&quot; class=&quot;line&quot; id=&quot;l997&quot;&gt;    997&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.6.1&amp;amp;quot;,
   1036 <a href="#l1017" class="line" id="l1017">   1017</a> &lt;a href=&quot;#l998&quot; class=&quot;line&quot; id=&quot;l998&quot;&gt;    998&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz&amp;amp;quot;,
   1037 <a href="#l1018" class="line" id="l1018">   1018</a> &lt;a href=&quot;#l999&quot; class=&quot;line&quot; id=&quot;l999&quot;&gt;    999&lt;/a&gt;        &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==&amp;amp;quot;,
   1038 <a href="#l1019" class="line" id="l1019">   1019</a> &lt;a href=&quot;#l1000&quot; class=&quot;line&quot; id=&quot;l1000&quot;&gt;   1000&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-27-3&amp;quot; id=&amp;quot;h1-27-3&amp;quot; class=&amp;quot;d&amp;quot;&amp;gt;-      &amp;amp;quot;dev&amp;amp;quot;: true,
   1039 <a href="#l1020" class="line" id="l1020">   1020</a> &lt;a href=&quot;#l1001&quot; class=&quot;line&quot; id=&quot;l1001&quot;&gt;   1001&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-27-4&amp;quot; id=&amp;quot;h1-27-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;devOptional&amp;amp;quot;: true,
   1040 <a href="#l1021" class="line" id="l1021">   1021</a> &lt;a href=&quot;#l1002&quot; class=&quot;line&quot; id=&quot;l1002&quot;&gt;   1002&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;engines&amp;amp;quot;: {
   1041 <a href="#l1022" class="line" id="l1022">   1022</a> &lt;a href=&quot;#l1003&quot; class=&quot;line&quot; id=&quot;l1003&quot;&gt;   1003&lt;/a&gt;          &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=0.10.0&amp;amp;quot;
   1042 <a href="#l1023" class="line" id="l1023">   1023</a> &lt;a href=&quot;#l1004&quot; class=&quot;line&quot; id=&quot;l1004&quot;&gt;   1004&lt;/a&gt;        }
   1043 <a href="#l1024" class="line" id="l1024">   1024</a> &lt;a href=&quot;#l1005&quot; class=&quot;line&quot; id=&quot;l1005&quot;&gt;   1005&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-28&amp;quot; id=&amp;quot;h1-28&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -6635,6 +7375,14 @@
   1044 <a href="#l1025" class="line" id="l1025">   1025</a> &lt;a href=&quot;#l1006&quot; class=&quot;line&quot; id=&quot;l1006&quot;&gt;   1006&lt;/a&gt; &amp;lt;/a&amp;gt;         &amp;amp;quot;url&amp;amp;quot;: &amp;amp;quot;https://github.com/sponsors/ljharb&amp;amp;quot;
   1045 <a href="#l1026" class="line" id="l1026">   1026</a> &lt;a href=&quot;#l1007&quot; class=&quot;line&quot; id=&quot;l1007&quot;&gt;   1007&lt;/a&gt;        }
   1046 <a href="#l1027" class="line" id="l1027">   1027</a> &lt;a href=&quot;#l1008&quot; class=&quot;line&quot; id=&quot;l1008&quot;&gt;   1008&lt;/a&gt;      },
   1047 <a href="#l1028" class="line" id="l1028">   1028</a> &lt;a href=&quot;#l1009&quot; class=&quot;line&quot; id=&quot;l1009&quot;&gt;   1009&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-28-3&amp;quot; id=&amp;quot;h1-28-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/suspend-react&amp;amp;quot;: {
   1048 <a href="#l1029" class="line" id="l1029">   1029</a> &lt;a href=&quot;#l1010&quot; class=&quot;line&quot; id=&quot;l1010&quot;&gt;   1010&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-28-4&amp;quot; id=&amp;quot;h1-28-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.1.3&amp;amp;quot;,
   1049 <a href="#l1030" class="line" id="l1030">   1030</a> &lt;a href=&quot;#l1011&quot; class=&quot;line&quot; id=&quot;l1011&quot;&gt;   1011&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-28-5&amp;quot; id=&amp;quot;h1-28-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/suspend-react/-/suspend-react-0.1.3.tgz&amp;amp;quot;,
   1050 <a href="#l1031" class="line" id="l1031">   1031</a> &lt;a href=&quot;#l1012&quot; class=&quot;line&quot; id=&quot;l1012&quot;&gt;   1012&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-28-6&amp;quot; id=&amp;quot;h1-28-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==&amp;amp;quot;,
   1051 <a href="#l1032" class="line" id="l1032">   1032</a> &lt;a href=&quot;#l1013&quot; class=&quot;line&quot; id=&quot;l1013&quot;&gt;   1013&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-28-7&amp;quot; id=&amp;quot;h1-28-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
   1052 <a href="#l1033" class="line" id="l1033">   1033</a> &lt;a href=&quot;#l1014&quot; class=&quot;line&quot; id=&quot;l1014&quot;&gt;   1014&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-28-8&amp;quot; id=&amp;quot;h1-28-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=17.0&amp;amp;quot;
   1053 <a href="#l1034" class="line" id="l1034">   1034</a> &lt;a href=&quot;#l1015&quot; class=&quot;line&quot; id=&quot;l1015&quot;&gt;   1015&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-28-9&amp;quot; id=&amp;quot;h1-28-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   1054 <a href="#l1035" class="line" id="l1035">   1035</a> &lt;a href=&quot;#l1016&quot; class=&quot;line&quot; id=&quot;l1016&quot;&gt;   1016&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-28-10&amp;quot; id=&amp;quot;h1-28-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
   1055 <a href="#l1036" class="line" id="l1036">   1036</a> &lt;a href=&quot;#l1017&quot; class=&quot;line&quot; id=&quot;l1017&quot;&gt;   1017&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/sver&amp;amp;quot;: {
   1056 <a href="#l1037" class="line" id="l1037">   1037</a> &lt;a href=&quot;#l1018&quot; class=&quot;line&quot; id=&quot;l1018&quot;&gt;   1018&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.8.4&amp;amp;quot;,
   1057 <a href="#l1038" class="line" id="l1038">   1038</a> &lt;a href=&quot;#l1019&quot; class=&quot;line&quot; id=&quot;l1019&quot;&gt;   1019&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/sver/-/sver-1.8.4.tgz&amp;amp;quot;,
   1058 <a href="#l1039" class="line" id="l1039">   1039</a> &lt;a href=&quot;#l1020&quot; class=&quot;line&quot; id=&quot;l1020&quot;&gt;   1020&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-29&amp;quot; id=&amp;quot;h1-29&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -6831,6 +7579,11 @@
   1059 <a href="#l1040" class="line" id="l1040">   1040</a> &lt;a href=&quot;#l1021&quot; class=&quot;line&quot; id=&quot;l1021&quot;&gt;   1021&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==&amp;amp;quot;,
   1060 <a href="#l1041" class="line" id="l1041">   1041</a> &lt;a href=&quot;#l1022&quot; class=&quot;line&quot; id=&quot;l1022&quot;&gt;   1022&lt;/a&gt;        &amp;amp;quot;dev&amp;amp;quot;: true
   1061 <a href="#l1042" class="line" id="l1042">   1042</a> &lt;a href=&quot;#l1023&quot; class=&quot;line&quot; id=&quot;l1023&quot;&gt;   1023&lt;/a&gt;      },
   1062 <a href="#l1043" class="line" id="l1043">   1043</a> &lt;a href=&quot;#l1024&quot; class=&quot;line&quot; id=&quot;l1024&quot;&gt;   1024&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-29-3&amp;quot; id=&amp;quot;h1-29-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/three&amp;amp;quot;: {
   1063 <a href="#l1044" class="line" id="l1044">   1044</a> &lt;a href=&quot;#l1025&quot; class=&quot;line&quot; id=&quot;l1025&quot;&gt;   1025&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-29-4&amp;quot; id=&amp;quot;h1-29-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;0.179.1&amp;amp;quot;,
   1064 <a href="#l1045" class="line" id="l1045">   1045</a> &lt;a href=&quot;#l1026&quot; class=&quot;line&quot; id=&quot;l1026&quot;&gt;   1026&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-29-5&amp;quot; id=&amp;quot;h1-29-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/three/-/three-0.179.1.tgz&amp;amp;quot;,
   1065 <a href="#l1046" class="line" id="l1046">   1046</a> &lt;a href=&quot;#l1027&quot; class=&quot;line&quot; id=&quot;l1027&quot;&gt;   1027&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-29-6&amp;quot; id=&amp;quot;h1-29-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-5y/elSIQbrvKOISxpwXCR4sQqHtGiOI+MKLc3SsBdDXA2hz3Mdp3X59aUp8DyybMa34aeBwbFTpdoLJaUDEWSw==&amp;amp;quot;
   1066 <a href="#l1047" class="line" id="l1047">   1047</a> &lt;a href=&quot;#l1028&quot; class=&quot;line&quot; id=&quot;l1028&quot;&gt;   1028&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-29-7&amp;quot; id=&amp;quot;h1-29-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
   1067 <a href="#l1048" class="line" id="l1048">   1048</a> &lt;a href=&quot;#l1029&quot; class=&quot;line&quot; id=&quot;l1029&quot;&gt;   1029&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/time-stamp&amp;amp;quot;: {
   1068 <a href="#l1049" class="line" id="l1049">   1049</a> &lt;a href=&quot;#l1030&quot; class=&quot;line&quot; id=&quot;l1030&quot;&gt;   1030&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.1.0&amp;amp;quot;,
   1069 <a href="#l1050" class="line" id="l1050">   1050</a> &lt;a href=&quot;#l1031&quot; class=&quot;line&quot; id=&quot;l1031&quot;&gt;   1031&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz&amp;amp;quot;,
   1070 <a href="#l1051" class="line" id="l1051">   1051</a> &lt;a href=&quot;#l1032&quot; class=&quot;line&quot; id=&quot;l1032&quot;&gt;   1032&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-30&amp;quot; id=&amp;quot;h1-30&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -7036,6 +7789,14 @@
   1071 <a href="#l1052" class="line" id="l1052">   1052</a> &lt;a href=&quot;#l1033&quot; class=&quot;line&quot; id=&quot;l1033&quot;&gt;   1033&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz&amp;amp;quot;,
   1072 <a href="#l1053" class="line" id="l1053">   1053</a> &lt;a href=&quot;#l1034&quot; class=&quot;line&quot; id=&quot;l1034&quot;&gt;   1034&lt;/a&gt;        &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==&amp;amp;quot;
   1073 <a href="#l1054" class="line" id="l1054">   1054</a> &lt;a href=&quot;#l1035&quot; class=&quot;line&quot; id=&quot;l1035&quot;&gt;   1035&lt;/a&gt;      },
   1074 <a href="#l1055" class="line" id="l1055">   1055</a> &lt;a href=&quot;#l1036&quot; class=&quot;line&quot; id=&quot;l1036&quot;&gt;   1036&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-30-3&amp;quot; id=&amp;quot;h1-30-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/use-sync-external-store&amp;amp;quot;: {
   1075 <a href="#l1056" class="line" id="l1056">   1056</a> &lt;a href=&quot;#l1037&quot; class=&quot;line&quot; id=&quot;l1037&quot;&gt;   1037&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-30-4&amp;quot; id=&amp;quot;h1-30-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.5.0&amp;amp;quot;,
   1076 <a href="#l1057" class="line" id="l1057">   1057</a> &lt;a href=&quot;#l1038&quot; class=&quot;line&quot; id=&quot;l1038&quot;&gt;   1038&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-30-5&amp;quot; id=&amp;quot;h1-30-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz&amp;amp;quot;,
   1077 <a href="#l1058" class="line" id="l1058">   1058</a> &lt;a href=&quot;#l1039&quot; class=&quot;line&quot; id=&quot;l1039&quot;&gt;   1039&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-30-6&amp;quot; id=&amp;quot;h1-30-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==&amp;amp;quot;,
   1078 <a href="#l1059" class="line" id="l1059">   1059</a> &lt;a href=&quot;#l1040&quot; class=&quot;line&quot; id=&quot;l1040&quot;&gt;   1040&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-30-7&amp;quot; id=&amp;quot;h1-30-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
   1079 <a href="#l1060" class="line" id="l1060">   1060</a> &lt;a href=&quot;#l1041&quot; class=&quot;line&quot; id=&quot;l1041&quot;&gt;   1041&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-30-8&amp;quot; id=&amp;quot;h1-30-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0&amp;amp;quot;
   1080 <a href="#l1061" class="line" id="l1061">   1061</a> &lt;a href=&quot;#l1042&quot; class=&quot;line&quot; id=&quot;l1042&quot;&gt;   1042&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-30-9&amp;quot; id=&amp;quot;h1-30-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   1081 <a href="#l1062" class="line" id="l1062">   1062</a> &lt;a href=&quot;#l1043&quot; class=&quot;line&quot; id=&quot;l1043&quot;&gt;   1043&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-30-10&amp;quot; id=&amp;quot;h1-30-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
   1082 <a href="#l1063" class="line" id="l1063">   1063</a> &lt;a href=&quot;#l1044&quot; class=&quot;line&quot; id=&quot;l1044&quot;&gt;   1044&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;node_modules/util-deprecate&amp;amp;quot;: {
   1083 <a href="#l1064" class="line" id="l1064">   1064</a> &lt;a href=&quot;#l1045&quot; class=&quot;line&quot; id=&quot;l1045&quot;&gt;   1045&lt;/a&gt;        &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;1.0.2&amp;amp;quot;,
   1084 <a href="#l1065" class="line" id="l1065">   1065</a> &lt;a href=&quot;#l1046&quot; class=&quot;line&quot; id=&quot;l1046&quot;&gt;   1046&lt;/a&gt;        &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz&amp;amp;quot;,
   1085 <a href="#l1066" class="line" id="l1066">   1066</a> &lt;a href=&quot;#l1047&quot; class=&quot;line&quot; id=&quot;l1047&quot;&gt;   1047&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-31&amp;quot; id=&amp;quot;h1-31&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -7310,6 +8071,42 @@
   1086 <a href="#l1067" class="line" id="l1067">   1067</a> &lt;a href=&quot;#l1048&quot; class=&quot;line&quot; id=&quot;l1048&quot;&gt;   1048&lt;/a&gt; &amp;lt;/a&amp;gt;       &amp;amp;quot;funding&amp;amp;quot;: {
   1087 <a href="#l1068" class="line" id="l1068">   1068</a> &lt;a href=&quot;#l1049&quot; class=&quot;line&quot; id=&quot;l1049&quot;&gt;   1049&lt;/a&gt;          &amp;amp;quot;url&amp;amp;quot;: &amp;amp;quot;https://github.com/sponsors/sindresorhus&amp;amp;quot;
   1088 <a href="#l1069" class="line" id="l1069">   1069</a> &lt;a href=&quot;#l1050&quot; class=&quot;line&quot; id=&quot;l1050&quot;&gt;   1050&lt;/a&gt;        }
   1089 <a href="#l1070" class="line" id="l1070">   1070</a> &lt;a href=&quot;#l1051&quot; class=&quot;line&quot; id=&quot;l1051&quot;&gt;   1051&lt;/a&gt; &amp;lt;a href=&amp;quot;#h1-31-3&amp;quot; id=&amp;quot;h1-31-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
   1090 <a href="#l1071" class="line" id="l1071">   1071</a> &lt;a href=&quot;#l1052&quot; class=&quot;line&quot; id=&quot;l1052&quot;&gt;   1052&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-4&amp;quot; id=&amp;quot;h1-31-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/zod&amp;amp;quot;: {
   1091 <a href="#l1072" class="line" id="l1072">   1072</a> &lt;a href=&quot;#l1053&quot; class=&quot;line&quot; id=&quot;l1053&quot;&gt;   1053&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-5&amp;quot; id=&amp;quot;h1-31-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;3.25.76&amp;amp;quot;,
   1092 <a href="#l1073" class="line" id="l1073">   1073</a> &lt;a href=&quot;#l1054&quot; class=&quot;line&quot; id=&quot;l1054&quot;&gt;   1054&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-6&amp;quot; id=&amp;quot;h1-31-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/zod/-/zod-3.25.76.tgz&amp;amp;quot;,
   1093 <a href="#l1074" class="line" id="l1074">   1074</a> &lt;a href=&quot;#l1055&quot; class=&quot;line&quot; id=&quot;l1055&quot;&gt;   1055&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-7&amp;quot; id=&amp;quot;h1-31-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==&amp;amp;quot;,
   1094 <a href="#l1075" class="line" id="l1075">   1075</a> &lt;a href=&quot;#l1056&quot; class=&quot;line&quot; id=&quot;l1056&quot;&gt;   1056&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-8&amp;quot; id=&amp;quot;h1-31-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;funding&amp;amp;quot;: {
   1095 <a href="#l1076" class="line" id="l1076">   1076</a> &lt;a href=&quot;#l1057&quot; class=&quot;line&quot; id=&quot;l1057&quot;&gt;   1057&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-9&amp;quot; id=&amp;quot;h1-31-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;url&amp;amp;quot;: &amp;amp;quot;https://github.com/sponsors/colinhacks&amp;amp;quot;
   1096 <a href="#l1077" class="line" id="l1077">   1077</a> &lt;a href=&quot;#l1058&quot; class=&quot;line&quot; id=&quot;l1058&quot;&gt;   1058&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-10&amp;quot; id=&amp;quot;h1-31-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   1097 <a href="#l1078" class="line" id="l1078">   1078</a> &lt;a href=&quot;#l1059&quot; class=&quot;line&quot; id=&quot;l1059&quot;&gt;   1059&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-11&amp;quot; id=&amp;quot;h1-31-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    },
   1098 <a href="#l1079" class="line" id="l1079">   1079</a> &lt;a href=&quot;#l1060&quot; class=&quot;line&quot; id=&quot;l1060&quot;&gt;   1060&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-12&amp;quot; id=&amp;quot;h1-31-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;node_modules/zustand&amp;amp;quot;: {
   1099 <a href="#l1080" class="line" id="l1080">   1080</a> &lt;a href=&quot;#l1061&quot; class=&quot;line&quot; id=&quot;l1061&quot;&gt;   1061&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-13&amp;quot; id=&amp;quot;h1-31-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;version&amp;amp;quot;: &amp;amp;quot;5.0.7&amp;amp;quot;,
   1100 <a href="#l1081" class="line" id="l1081">   1081</a> &lt;a href=&quot;#l1062&quot; class=&quot;line&quot; id=&quot;l1062&quot;&gt;   1062&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-14&amp;quot; id=&amp;quot;h1-31-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;resolved&amp;amp;quot;: &amp;amp;quot;https://registry.npmjs.org/zustand/-/zustand-5.0.7.tgz&amp;amp;quot;,
   1101 <a href="#l1082" class="line" id="l1082">   1082</a> &lt;a href=&quot;#l1063&quot; class=&quot;line&quot; id=&quot;l1063&quot;&gt;   1063&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-15&amp;quot; id=&amp;quot;h1-31-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;integrity&amp;amp;quot;: &amp;amp;quot;sha512-Ot6uqHDW/O2VdYsKLLU8GQu8sCOM1LcoE8RwvLv9uuRT9s6SOHCKs0ZEOhxg+I1Ld+A1Q5lwx+UlKXXUoCZITg==&amp;amp;quot;,
   1102 <a href="#l1083" class="line" id="l1083">   1083</a> &lt;a href=&quot;#l1064&quot; class=&quot;line&quot; id=&quot;l1064&quot;&gt;   1064&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-16&amp;quot; id=&amp;quot;h1-31-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;engines&amp;amp;quot;: {
   1103 <a href="#l1084" class="line" id="l1084">   1084</a> &lt;a href=&quot;#l1065&quot; class=&quot;line&quot; id=&quot;l1065&quot;&gt;   1065&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-17&amp;quot; id=&amp;quot;h1-31-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;node&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=12.20.0&amp;amp;quot;
   1104 <a href="#l1085" class="line" id="l1085">   1085</a> &lt;a href=&quot;#l1066&quot; class=&quot;line&quot; id=&quot;l1066&quot;&gt;   1066&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-18&amp;quot; id=&amp;quot;h1-31-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
   1105 <a href="#l1086" class="line" id="l1086">   1086</a> &lt;a href=&quot;#l1067&quot; class=&quot;line&quot; id=&quot;l1067&quot;&gt;   1067&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-19&amp;quot; id=&amp;quot;h1-31-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependencies&amp;amp;quot;: {
   1106 <a href="#l1087" class="line" id="l1087">   1087</a> &lt;a href=&quot;#l1068&quot; class=&quot;line&quot; id=&quot;l1068&quot;&gt;   1068&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-20&amp;quot; id=&amp;quot;h1-31-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@types/react&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18.0.0&amp;amp;quot;,
   1107 <a href="#l1088" class="line" id="l1088">   1088</a> &lt;a href=&quot;#l1069&quot; class=&quot;line&quot; id=&quot;l1069&quot;&gt;   1069&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-21&amp;quot; id=&amp;quot;h1-31-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;immer&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=9.0.6&amp;amp;quot;,
   1108 <a href="#l1089" class="line" id="l1089">   1089</a> &lt;a href=&quot;#l1070&quot; class=&quot;line&quot; id=&quot;l1070&quot;&gt;   1070&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-22&amp;quot; id=&amp;quot;h1-31-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=18.0.0&amp;amp;quot;,
   1109 <a href="#l1090" class="line" id="l1090">   1090</a> &lt;a href=&quot;#l1071&quot; class=&quot;line&quot; id=&quot;l1071&quot;&gt;   1071&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-23&amp;quot; id=&amp;quot;h1-31-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;use-sync-external-store&amp;amp;quot;: &amp;amp;quot;&amp;amp;gt;=1.2.0&amp;amp;quot;
   1110 <a href="#l1091" class="line" id="l1091">   1091</a> &lt;a href=&quot;#l1072&quot; class=&quot;line&quot; id=&quot;l1072&quot;&gt;   1072&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-24&amp;quot; id=&amp;quot;h1-31-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      },
   1111 <a href="#l1092" class="line" id="l1092">   1092</a> &lt;a href=&quot;#l1073&quot; class=&quot;line&quot; id=&quot;l1073&quot;&gt;   1073&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-25&amp;quot; id=&amp;quot;h1-31-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;quot;peerDependenciesMeta&amp;amp;quot;: {
   1112 <a href="#l1093" class="line" id="l1093">   1093</a> &lt;a href=&quot;#l1074&quot; class=&quot;line&quot; id=&quot;l1074&quot;&gt;   1074&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-26&amp;quot; id=&amp;quot;h1-31-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;@types/react&amp;amp;quot;: {
   1113 <a href="#l1094" class="line" id="l1094">   1094</a> &lt;a href=&quot;#l1075&quot; class=&quot;line&quot; id=&quot;l1075&quot;&gt;   1075&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-27&amp;quot; id=&amp;quot;h1-31-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
   1114 <a href="#l1095" class="line" id="l1095">   1095</a> &lt;a href=&quot;#l1076&quot; class=&quot;line&quot; id=&quot;l1076&quot;&gt;   1076&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-28&amp;quot; id=&amp;quot;h1-31-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        },
   1115 <a href="#l1096" class="line" id="l1096">   1096</a> &lt;a href=&quot;#l1077&quot; class=&quot;line&quot; id=&quot;l1077&quot;&gt;   1077&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-29&amp;quot; id=&amp;quot;h1-31-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;immer&amp;amp;quot;: {
   1116 <a href="#l1097" class="line" id="l1097">   1097</a> &lt;a href=&quot;#l1078&quot; class=&quot;line&quot; id=&quot;l1078&quot;&gt;   1078&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-30&amp;quot; id=&amp;quot;h1-31-30&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
   1117 <a href="#l1098" class="line" id="l1098">   1098</a> &lt;a href=&quot;#l1079&quot; class=&quot;line&quot; id=&quot;l1079&quot;&gt;   1079&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-31&amp;quot; id=&amp;quot;h1-31-31&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        },
   1118 <a href="#l1099" class="line" id="l1099">   1099</a> &lt;a href=&quot;#l1080&quot; class=&quot;line&quot; id=&quot;l1080&quot;&gt;   1080&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-32&amp;quot; id=&amp;quot;h1-31-32&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;react&amp;amp;quot;: {
   1119 <a href="#l1100" class="line" id="l1100">   1100</a> &lt;a href=&quot;#l1081&quot; class=&quot;line&quot; id=&quot;l1081&quot;&gt;   1081&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-33&amp;quot; id=&amp;quot;h1-31-33&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
   1120 <a href="#l1101" class="line" id="l1101">   1101</a> &lt;a href=&quot;#l1082&quot; class=&quot;line&quot; id=&quot;l1082&quot;&gt;   1082&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-34&amp;quot; id=&amp;quot;h1-31-34&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        },
   1121 <a href="#l1102" class="line" id="l1102">   1102</a> &lt;a href=&quot;#l1083&quot; class=&quot;line&quot; id=&quot;l1083&quot;&gt;   1083&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-35&amp;quot; id=&amp;quot;h1-31-35&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        &amp;amp;quot;use-sync-external-store&amp;amp;quot;: {
   1122 <a href="#l1103" class="line" id="l1103">   1103</a> &lt;a href=&quot;#l1084&quot; class=&quot;line&quot; id=&quot;l1084&quot;&gt;   1084&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-36&amp;quot; id=&amp;quot;h1-31-36&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          &amp;amp;quot;optional&amp;amp;quot;: true
   1123 <a href="#l1104" class="line" id="l1104">   1104</a> &lt;a href=&quot;#l1085&quot; class=&quot;line&quot; id=&quot;l1085&quot;&gt;   1085&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-37&amp;quot; id=&amp;quot;h1-31-37&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        }
   1124 <a href="#l1105" class="line" id="l1105">   1105</a> &lt;a href=&quot;#l1086&quot; class=&quot;line&quot; id=&quot;l1086&quot;&gt;   1086&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h1-31-38&amp;quot; id=&amp;quot;h1-31-38&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   1125 <a href="#l1106" class="line" id="l1106">   1106</a> &lt;a href=&quot;#l1087&quot; class=&quot;line&quot; id=&quot;l1087&quot;&gt;   1087&lt;/a&gt; &amp;lt;/a&amp;gt;     }
   1126 <a href="#l1107" class="line" id="l1107">   1107</a> &lt;a href=&quot;#l1088&quot; class=&quot;line&quot; id=&quot;l1088&quot;&gt;   1088&lt;/a&gt;    }
   1127 <a href="#l1108" class="line" id="l1108">   1108</a> &lt;a href=&quot;#l1089&quot; class=&quot;line&quot; id=&quot;l1089&quot;&gt;   1089&lt;/a&gt;  }
   1128 <a href="#l1109" class="line" id="l1109">   1109</a> &lt;a href=&quot;#l1090&quot; class=&quot;line&quot; id=&quot;l1090&quot;&gt;   1090&lt;/a&gt; &amp;lt;b&amp;gt;diff --git a/&amp;lt;a id=&amp;quot;h2&amp;quot; href=&amp;quot;../file/package.json.html&amp;quot;&amp;gt;package.json&amp;lt;/a&amp;gt; b/&amp;lt;a href=&amp;quot;../file/package.json.html&amp;quot;&amp;gt;package.json&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;
   1129 <a href="#l1110" class="line" id="l1110">   1110</a> &lt;a href=&quot;#l1091&quot; class=&quot;line&quot; id=&quot;l1091&quot;&gt;   1091&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-0&amp;quot; id=&amp;quot;h2-0&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -8,7 +8,9 @@
   1130 <a href="#l1111" class="line" id="l1111">   1111</a> &lt;a href=&quot;#l1092&quot; class=&quot;line&quot; id=&quot;l1092&quot;&gt;   1092&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;production&amp;amp;quot;: &amp;amp;quot;NODE_ENV=production gulp &amp;amp;amp;&amp;amp;amp; NODE_ENV=production eleventy&amp;amp;quot;,
   1131 <a href="#l1112" class="line" id="l1112">   1112</a> &lt;a href=&quot;#l1093&quot; class=&quot;line&quot; id=&quot;l1093&quot;&gt;   1093&lt;/a&gt;      &amp;amp;quot;prettier:format&amp;amp;quot;: &amp;amp;quot;prettier --write .&amp;amp;quot;,
   1132 <a href="#l1113" class="line" id="l1113">   1113</a> &lt;a href=&quot;#l1094&quot; class=&quot;line&quot; id=&quot;l1094&quot;&gt;   1094&lt;/a&gt;      &amp;amp;quot;prettier:check&amp;amp;quot;: &amp;amp;quot;prettier --check .&amp;amp;quot;,
   1133 <a href="#l1114" class="line" id="l1114">   1114</a> &lt;a href=&quot;#l1095&quot; class=&quot;line&quot; id=&quot;l1095&quot;&gt;   1095&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-0-3&amp;quot; id=&amp;quot;h2-0-3&amp;quot; class=&amp;quot;d&amp;quot;&amp;gt;-    &amp;amp;quot;eslint&amp;amp;quot;: &amp;amp;quot;npx eslint .&amp;amp;quot;
   1134 <a href="#l1115" class="line" id="l1115">   1115</a> &lt;a href=&quot;#l1096&quot; class=&quot;line&quot; id=&quot;l1096&quot;&gt;   1096&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h2-0-4&amp;quot; id=&amp;quot;h2-0-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;eslint&amp;amp;quot;: &amp;amp;quot;npx eslint .&amp;amp;quot;,
   1135 <a href="#l1116" class="line" id="l1116">   1116</a> &lt;a href=&quot;#l1097&quot; class=&quot;line&quot; id=&quot;l1097&quot;&gt;   1097&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h2-0-5&amp;quot; id=&amp;quot;h2-0-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;build:js&amp;amp;quot;: &amp;amp;quot;esbuild src/js/sketch.js --bundle --outfile=src/assets/js/sketch.bundle.js --minify&amp;amp;quot;,
   1136 <a href="#l1117" class="line" id="l1117">   1117</a> &lt;a href=&quot;#l1098&quot; class=&quot;line&quot; id=&quot;l1098&quot;&gt;   1098&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h2-0-6&amp;quot; id=&amp;quot;h2-0-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;build:r3f&amp;amp;quot;: &amp;amp;quot;esbuild src/js/r3f.jsx --bundle --outfile=src/assets/js/r3f.bundle.js --minify --loader:.js=jsx&amp;amp;quot;
   1137 <a href="#l1118" class="line" id="l1118">   1118</a> &lt;a href=&quot;#l1099&quot; class=&quot;line&quot; id=&quot;l1099&quot;&gt;   1099&lt;/a&gt; &amp;lt;/a&amp;gt;   },
   1138 <a href="#l1119" class="line" id="l1119">   1119</a> &lt;a href=&quot;#l1100&quot; class=&quot;line&quot; id=&quot;l1100&quot;&gt;   1100&lt;/a&gt;    &amp;amp;quot;repository&amp;amp;quot;: {
   1139 <a href="#l1120" class="line" id="l1120">   1120</a> &lt;a href=&quot;#l1101&quot; class=&quot;line&quot; id=&quot;l1101&quot;&gt;   1101&lt;/a&gt;      &amp;amp;quot;type&amp;amp;quot;: &amp;amp;quot;git&amp;amp;quot;,
   1140 <a href="#l1121" class="line" id="l1121">   1121</a> &lt;a href=&quot;#l1102&quot; class=&quot;line&quot; id=&quot;l1102&quot;&gt;   1102&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-1&amp;quot; id=&amp;quot;h2-1&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -26,18 +28,23 @@
   1141 <a href="#l1122" class="line" id="l1122">   1122</a> &lt;a href=&quot;#l1103&quot; class=&quot;line&quot; id=&quot;l1103&quot;&gt;   1103&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;@11ty/eleventy-navigation&amp;amp;quot;: &amp;amp;quot;^0.3.2&amp;amp;quot;,
   1142 <a href="#l1123" class="line" id="l1123">   1123</a> &lt;a href=&quot;#l1104&quot; class=&quot;line&quot; id=&quot;l1104&quot;&gt;   1104&lt;/a&gt;      &amp;amp;quot;@11ty/eleventy-plugin-rss&amp;amp;quot;: &amp;amp;quot;^1.1.2&amp;amp;quot;,
   1143 <a href="#l1124" class="line" id="l1124">   1124</a> &lt;a href=&quot;#l1105&quot; class=&quot;line&quot; id=&quot;l1105&quot;&gt;   1105&lt;/a&gt;      &amp;amp;quot;@netlify/functions&amp;amp;quot;: &amp;amp;quot;^2.8.1&amp;amp;quot;,
   1144 <a href="#l1125" class="line" id="l1125">   1125</a> &lt;a href=&quot;#l1106&quot; class=&quot;line&quot; id=&quot;l1106&quot;&gt;   1106&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-1-3&amp;quot; id=&amp;quot;h2-1-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;@react-three/fiber&amp;amp;quot;: &amp;amp;quot;^9.3.0&amp;amp;quot;,
   1145 <a href="#l1126" class="line" id="l1126">   1126</a> &lt;a href=&quot;#l1107&quot; class=&quot;line&quot; id=&quot;l1107&quot;&gt;   1107&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;concurrently&amp;amp;quot;: &amp;amp;quot;^6.3.0&amp;amp;quot;,
   1146 <a href="#l1127" class="line" id="l1127">   1127</a> &lt;a href=&quot;#l1108&quot; class=&quot;line&quot; id=&quot;l1108&quot;&gt;   1108&lt;/a&gt;      &amp;amp;quot;dotenv&amp;amp;quot;: &amp;amp;quot;^16.4.5&amp;amp;quot;,
   1147 <a href="#l1128" class="line" id="l1128">   1128</a> &lt;a href=&quot;#l1109&quot; class=&quot;line&quot; id=&quot;l1109&quot;&gt;   1109&lt;/a&gt;      &amp;amp;quot;gorko&amp;amp;quot;: &amp;amp;quot;^0.8.0&amp;amp;quot;,
   1148 <a href="#l1129" class="line" id="l1129">   1129</a> &lt;a href=&quot;#l1110&quot; class=&quot;line&quot; id=&quot;l1110&quot;&gt;   1110&lt;/a&gt;      &amp;amp;quot;gulp&amp;amp;quot;: &amp;amp;quot;^5.0.1&amp;amp;quot;,
   1149 <a href="#l1130" class="line" id="l1130">   1130</a> &lt;a href=&quot;#l1111&quot; class=&quot;line&quot; id=&quot;l1111&quot;&gt;   1111&lt;/a&gt;      &amp;amp;quot;luxon&amp;amp;quot;: &amp;amp;quot;^2.1.0&amp;amp;quot;,
   1150 <a href="#l1131" class="line" id="l1131">   1131</a> &lt;a href=&quot;#l1112&quot; class=&quot;line&quot; id=&quot;l1112&quot;&gt;   1112&lt;/a&gt;      &amp;amp;quot;markdown-it&amp;amp;quot;: &amp;amp;quot;^12.3.0&amp;amp;quot;,
   1151 <a href="#l1132" class="line" id="l1132">   1132</a> &lt;a href=&quot;#l1113&quot; class=&quot;line&quot; id=&quot;l1113&quot;&gt;   1113&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-1-10&amp;quot; id=&amp;quot;h2-1-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;p5&amp;amp;quot;: &amp;amp;quot;^2.0.3&amp;amp;quot;,
   1152 <a href="#l1133" class="line" id="l1133">   1133</a> &lt;a href=&quot;#l1114&quot; class=&quot;line&quot; id=&quot;l1114&quot;&gt;   1114&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;postcss-color-hexa&amp;amp;quot;: &amp;amp;quot;^1.2.4&amp;amp;quot;,
   1153 <a href="#l1134" class="line" id="l1134">   1134</a> &lt;a href=&quot;#l1115&quot; class=&quot;line&quot; id=&quot;l1115&quot;&gt;   1115&lt;/a&gt;      &amp;amp;quot;prismjs&amp;amp;quot;: &amp;amp;quot;^1.29.0&amp;amp;quot;,
   1154 <a href="#l1135" class="line" id="l1135">   1135</a> &lt;a href=&quot;#l1116&quot; class=&quot;line&quot; id=&quot;l1116&quot;&gt;   1116&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-1-13&amp;quot; id=&amp;quot;h2-1-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;react&amp;amp;quot;: &amp;amp;quot;^19.1.1&amp;amp;quot;,
   1155 <a href="#l1136" class="line" id="l1136">   1136</a> &lt;a href=&quot;#l1117&quot; class=&quot;line&quot; id=&quot;l1117&quot;&gt;   1117&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h2-1-14&amp;quot; id=&amp;quot;h2-1-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;react-dom&amp;amp;quot;: &amp;amp;quot;^19.1.1&amp;amp;quot;,
   1156 <a href="#l1137" class="line" id="l1137">   1137</a> &lt;a href=&quot;#l1118&quot; class=&quot;line&quot; id=&quot;l1118&quot;&gt;   1118&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;sass&amp;amp;quot;: &amp;amp;quot;^1.43.4&amp;amp;quot;,
   1157 <a href="#l1138" class="line" id="l1138">   1138</a> &lt;a href=&quot;#l1119&quot; class=&quot;line&quot; id=&quot;l1119&quot;&gt;   1119&lt;/a&gt;      &amp;amp;quot;sharp&amp;amp;quot;: &amp;amp;quot;^0.34.3&amp;amp;quot;,
   1158 <a href="#l1139" class="line" id="l1139">   1139</a> &lt;a href=&quot;#l1120&quot; class=&quot;line&quot; id=&quot;l1120&quot;&gt;   1120&lt;/a&gt;      &amp;amp;quot;slugify&amp;amp;quot;: &amp;amp;quot;^1.6.5&amp;amp;quot;,
   1159 <a href="#l1140" class="line" id="l1140">   1140</a> &lt;a href=&quot;#l1121&quot; class=&quot;line&quot; id=&quot;l1121&quot;&gt;   1121&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-1-18&amp;quot; id=&amp;quot;h2-1-18&amp;quot; class=&amp;quot;d&amp;quot;&amp;gt;-    &amp;amp;quot;speedlify-score&amp;amp;quot;: &amp;amp;quot;^2.0.2&amp;amp;quot;
   1160 <a href="#l1141" class="line" id="l1141">   1141</a> &lt;a href=&quot;#l1122&quot; class=&quot;line&quot; id=&quot;l1122&quot;&gt;   1122&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h2-1-19&amp;quot; id=&amp;quot;h2-1-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;speedlify-score&amp;amp;quot;: &amp;amp;quot;^2.0.2&amp;amp;quot;,
   1161 <a href="#l1142" class="line" id="l1142">   1142</a> &lt;a href=&quot;#l1123&quot; class=&quot;line&quot; id=&quot;l1123&quot;&gt;   1123&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h2-1-20&amp;quot; id=&amp;quot;h2-1-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;three&amp;amp;quot;: &amp;amp;quot;^0.179.1&amp;amp;quot;
   1162 <a href="#l1143" class="line" id="l1143">   1143</a> &lt;a href=&quot;#l1124&quot; class=&quot;line&quot; id=&quot;l1124&quot;&gt;   1124&lt;/a&gt; &amp;lt;/a&amp;gt;   },
   1163 <a href="#l1144" class="line" id="l1144">   1144</a> &lt;a href=&quot;#l1125&quot; class=&quot;line&quot; id=&quot;l1125&quot;&gt;   1125&lt;/a&gt;    &amp;amp;quot;devDependencies&amp;amp;quot;: {
   1164 <a href="#l1145" class="line" id="l1145">   1145</a> &lt;a href=&quot;#l1126&quot; class=&quot;line&quot; id=&quot;l1126&quot;&gt;   1126&lt;/a&gt;      &amp;amp;quot;@11ty/eleventy&amp;amp;quot;: &amp;amp;quot;^2.0.1&amp;amp;quot;,
   1165 <a href="#l1146" class="line" id="l1146">   1146</a> &lt;a href=&quot;#l1127&quot; class=&quot;line&quot; id=&quot;l1127&quot;&gt;   1127&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-2&amp;quot; id=&amp;quot;h2-2&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -46,6 +53,7 @@
   1166 <a href="#l1147" class="line" id="l1147">   1147</a> &lt;a href=&quot;#l1128&quot; class=&quot;line&quot; id=&quot;l1128&quot;&gt;   1128&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;@11ty/eleventy-plugin-syntaxhighlight&amp;amp;quot;: &amp;amp;quot;^4.2.0&amp;amp;quot;,
   1167 <a href="#l1148" class="line" id="l1148">   1148</a> &lt;a href=&quot;#l1129&quot; class=&quot;line&quot; id=&quot;l1129&quot;&gt;   1129&lt;/a&gt;      &amp;amp;quot;@11ty/is-land&amp;amp;quot;: &amp;amp;quot;^2.0.3&amp;amp;quot;,
   1168 <a href="#l1149" class="line" id="l1149">   1149</a> &lt;a href=&quot;#l1130&quot; class=&quot;line&quot; id=&quot;l1130&quot;&gt;   1130&lt;/a&gt;      &amp;amp;quot;cssnano&amp;amp;quot;: &amp;amp;quot;^5.1.14&amp;amp;quot;,
   1169 <a href="#l1150" class="line" id="l1150">   1150</a> &lt;a href=&quot;#l1131&quot; class=&quot;line&quot; id=&quot;l1131&quot;&gt;   1131&lt;/a&gt; &amp;lt;a href=&amp;quot;#h2-2-3&amp;quot; id=&amp;quot;h2-2-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;quot;esbuild&amp;amp;quot;: &amp;amp;quot;^0.25.8&amp;amp;quot;,
   1170 <a href="#l1151" class="line" id="l1151">   1151</a> &lt;a href=&quot;#l1132&quot; class=&quot;line&quot; id=&quot;l1132&quot;&gt;   1132&lt;/a&gt; &amp;lt;/a&amp;gt;     &amp;amp;quot;eslint&amp;amp;quot;: &amp;amp;quot;^8.28.0&amp;amp;quot;,
   1171 <a href="#l1152" class="line" id="l1152">   1152</a> &lt;a href=&quot;#l1133&quot; class=&quot;line&quot; id=&quot;l1133&quot;&gt;   1133&lt;/a&gt;      &amp;amp;quot;gulp-postcss&amp;amp;quot;: &amp;amp;quot;^9.0.1&amp;amp;quot;,
   1172 <a href="#l1153" class="line" id="l1153">   1153</a> &lt;a href=&quot;#l1134&quot; class=&quot;line&quot; id=&quot;l1134&quot;&gt;   1134&lt;/a&gt;      &amp;amp;quot;gulp-sass&amp;amp;quot;: &amp;amp;quot;^5.1.0&amp;amp;quot;,
   1173 <a href="#l1154" class="line" id="l1154">   1154</a> &lt;a href=&quot;#l1135&quot; class=&quot;line&quot; id=&quot;l1135&quot;&gt;   1135&lt;/a&gt; &amp;lt;b&amp;gt;diff --git a/&amp;lt;a id=&amp;quot;h3&amp;quot; href=&amp;quot;../file/src/assets/js/r3f.bundle.js.html&amp;quot;&amp;gt;src/assets/js/r3f.bundle.js&amp;lt;/a&amp;gt; b/&amp;lt;a href=&amp;quot;../file/src/assets/js/r3f.bundle.js.html&amp;quot;&amp;gt;src/assets/js/r3f.bundle.js&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;
   1174 <a href="#l1155" class="line" id="l1155">   1155</a> &lt;a href=&quot;#l1136&quot; class=&quot;line&quot; id=&quot;l1136&quot;&gt;   1136&lt;/a&gt; &amp;lt;a href=&amp;quot;#h3-0&amp;quot; id=&amp;quot;h3-0&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -0,0 +1,3961 @@
   1175 <a href="#l1156" class="line" id="l1156">   1156</a> &lt;a href=&quot;#l1137&quot; class=&quot;line&quot; id=&quot;l1137&quot;&gt;   1137&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-0&amp;quot; id=&amp;quot;h3-0-0&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+(()=&amp;amp;gt;{var v4=Object.create;var uM=Object.defineProperty;var y4=Object.getOwnPropertyDescriptor;var _4=Object.getOwnPropertyNames;var x4=Object.getPrototypeOf,S4=Object.prototype.hasOwnProperty;var In=(n,t)=&amp;amp;gt;()=&amp;amp;gt;(t||n((t={exports:{}}).exports,t),t.exports),M4=(n,t)=&amp;amp;gt;{for(var e in t)uM(n,e,{get:t[e],enumerable:!0})},E4=(n,t,e,i)=&amp;amp;gt;{if(t&amp;amp;amp;&amp;amp;amp;typeof t==&amp;amp;quot;object&amp;amp;quot;||typeof t==&amp;amp;quot;function&amp;amp;quot;)for(let a of _4(t))!S4.call(n,a)&amp;amp;amp;&amp;amp;amp;a!==e&amp;amp;amp;&amp;amp;amp;uM(n,a,{get:()=&amp;amp;gt;t[a],enumerable:!(i=y4(t,a))||i.enumerable});return n};var Ti=(n,t,e)=&amp;amp;gt;(e=n!=null?v4(x4(n)):{},E4(t||!n||!n.__esModule?uM(e,&amp;amp;quot;default&amp;amp;quot;,{value:n,enumerable:!0}):e,n));var KR=In(Se=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;var fM=Symbol.for(&amp;amp;quot;react.transitional.element&amp;amp;quot;),b4=Symbol.for(&amp;amp;quot;react.portal&amp;amp;quot;),T4=Symbol.for(&amp;amp;quot;react.fragment&amp;amp;quot;),A4=Symbol.for(&amp;amp;quot;react.strict_mode&amp;amp;quot;),R4=Symbol.for(&amp;amp;quot;react.profiler&amp;amp;quot;),C4=Symbol.for(&amp;amp;quot;react.consumer&amp;amp;quot;),w4=Symbol.for(&amp;amp;quot;react.context&amp;amp;quot;),D4=Symbol.for(&amp;amp;quot;react.forward_ref&amp;amp;quot;),U4=Symbol.for(&amp;amp;quot;react.suspense&amp;amp;quot;),N4=Symbol.for(&amp;amp;quot;react.memo&amp;amp;quot;),YR=Symbol.for(&amp;amp;quot;react.lazy&amp;amp;quot;),FR=Symbol.iterator;function O4(n){return n===null||typeof n!=&amp;amp;quot;object&amp;amp;quot;?null:(n=FR&amp;amp;amp;&amp;amp;amp;n[FR]||n[&amp;amp;quot;@@iterator&amp;amp;quot;],typeof n==&amp;amp;quot;function&amp;amp;quot;?n:null)}var WR={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},kR=Object.assign,ZR={};function Sc(n,t,e){this.props=n,this.context=t,this.refs=ZR,this.updater=e||WR}Sc.prototype.isReactComponent={};Sc.prototype.setState=function(n,t){if(typeof n!=&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof n!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!=null)throw Error(&amp;amp;quot;takes an object of state variables to update or a function which returns an object of state variables.&amp;amp;quot;);this.updater.enqueueSetState(this,n,t,&amp;amp;quot;setState&amp;amp;quot;)};Sc.prototype.forceUpdate=function(n){this.updater.enqueueForceUpdate(this,n,&amp;amp;quot;forceUpdate&amp;amp;quot;)};function jR(){}jR.prototype=Sc.prototype;function hM(n,t,e){this.props=n,this.context=t,this.refs=ZR,this.updater=e||WR}var dM=hM.prototype=new jR;dM.constructor=hM;kR(dM,Sc.prototype);dM.isPureReactComponent=!0;var VR=Array.isArray,mn={H:null,A:null,T:null,S:null,V:null},QR=Object.prototype.hasOwnProperty;function pM(n,t,e,i,a,s){return e=s.ref,{$$typeof:fM,type:n,key:t,ref:e!==void 0?e:null,props:s}}function L4(n,t){return pM(n.type,t,void 0,void 0,void 0,n.props)}function mM(n){return typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!==null&amp;amp;amp;&amp;amp;amp;n.$$typeof===fM}function z4(n){var t={&amp;amp;quot;=&amp;amp;quot;:&amp;amp;quot;=0&amp;amp;quot;,&amp;amp;quot;:&amp;amp;quot;:&amp;amp;quot;=2&amp;amp;quot;};return&amp;amp;quot;$&amp;amp;quot;+n.replace(/[=:]/g,function(e){return t[e]})}var GR=/\/+/g;function cM(n,t){return typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!==null&amp;amp;amp;&amp;amp;amp;n.key!=null?z4(&amp;amp;quot;&amp;amp;quot;+n.key):t.toString(36)}function XR(){}function B4(n){switch(n.status){case&amp;amp;quot;fulfilled&amp;amp;quot;:return n.value;case&amp;amp;quot;rejected&amp;amp;quot;:throw n.reason;default:switch(typeof n.status==&amp;amp;quot;string&amp;amp;quot;?n.then(XR,XR):(n.status=&amp;amp;quot;pending&amp;amp;quot;,n.then(function(t){n.status===&amp;amp;quot;pending&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.status=&amp;amp;quot;fulfilled&amp;amp;quot;,n.value=t)},function(t){n.status===&amp;amp;quot;pending&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.status=&amp;amp;quot;rejected&amp;amp;quot;,n.reason=t)})),n.status){case&amp;amp;quot;fulfilled&amp;amp;quot;:return n.value;case&amp;amp;quot;rejected&amp;amp;quot;:throw n.reason}}throw n}function xc(n,t,e,i,a){var s=typeof n;(s===&amp;amp;quot;undefined&amp;amp;quot;||s===&amp;amp;quot;boolean&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(n=null);var o=!1;if(n===null)o=!0;else switch(s){case&amp;amp;quot;bigint&amp;amp;quot;:case&amp;amp;quot;string&amp;amp;quot;:case&amp;amp;quot;number&amp;amp;quot;:o=!0;break;case&amp;amp;quot;object&amp;amp;quot;:switch(n.$$typeof){case fM:case b4:o=!0;break;case YR:return o=n._init,xc(o(n._payload),t,e,i,a)}}if(o)return a=a(n),o=i===&amp;amp;quot;&amp;amp;quot;?&amp;amp;quot;.&amp;amp;quot;+cM(n,0):i,VR(a)?(e=&amp;amp;quot;&amp;amp;quot;,o!=null&amp;amp;amp;&amp;amp;amp;(e=o.replace(GR,&amp;amp;quot;$&amp;amp;amp;/&amp;amp;quot;)+&amp;amp;quot;/&amp;amp;quot;),xc(a,t,e,&amp;amp;quot;&amp;amp;quot;,function(h){return h})):a!=null&amp;amp;amp;&amp;amp;amp;(mM(a)&amp;amp;amp;&amp;amp;amp;(a=L4(a,e+(a.key==null||n&amp;amp;amp;&amp;amp;amp;n.key===a.key?&amp;amp;quot;&amp;amp;quot;:(&amp;amp;quot;&amp;amp;quot;+a.key).replace(GR,&amp;amp;quot;$&amp;amp;amp;/&amp;amp;quot;)+&amp;amp;quot;/&amp;amp;quot;)+o)),t.push(a)),1;o=0;var u=i===&amp;amp;quot;&amp;amp;quot;?&amp;amp;quot;.&amp;amp;quot;:i+&amp;amp;quot;:&amp;amp;quot;;if(VR(n))for(var c=0;c&amp;amp;lt;n.length;c++)i=n[c],s=u+cM(i,c),o+=xc(i,t,e,s,a);else if(c=O4(n),typeof c==&amp;amp;quot;function&amp;amp;quot;)for(n=c.call(n),c=0;!(i=n.next()).done;)i=i.value,s=u+cM(i,c++),o+=xc(i,t,e,s,a);else if(s===&amp;amp;quot;object&amp;amp;quot;){if(typeof n.then==&amp;amp;quot;function&amp;amp;quot;)return xc(B4(n),t,e,i,a);throw t=String(n),Error(&amp;amp;quot;Objects are not valid as a React child (found: &amp;amp;quot;+(t===&amp;amp;quot;[object Object]&amp;amp;quot;?&amp;amp;quot;object with keys {&amp;amp;quot;+Object.keys(n).join(&amp;amp;quot;, &amp;amp;quot;)+&amp;amp;quot;}&amp;amp;quot;:t)+&amp;amp;quot;). If you meant to render a collection of children, use an array instead.&amp;amp;quot;)}return o}function w0(n,t,e){if(n==null)return n;var i=[],a=0;return xc(n,i,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,function(s){return t.call(e,s,a++)}),i}function P4(n){if(n._status===-1){var t=n._result;t=t(),t.then(function(e){(n._status===0||n._status===-1)&amp;amp;amp;&amp;amp;amp;(n._status=1,n._result=e)},function(e){(n._status===0||n._status===-1)&amp;amp;amp;&amp;amp;amp;(n._status=2,n._result=e)}),n._status===-1&amp;amp;amp;&amp;amp;amp;(n._status=0,n._result=t)}if(n._status===1)return n._result.default;throw n._result}var qR=typeof reportError==&amp;amp;quot;function&amp;amp;quot;?reportError:function(n){if(typeof window==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof window.ErrorEvent==&amp;amp;quot;function&amp;amp;quot;){var t=new window.ErrorEvent(&amp;amp;quot;error&amp;amp;quot;,{bubbles:!0,cancelable:!0,message:typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!==null&amp;amp;amp;&amp;amp;amp;typeof n.message==&amp;amp;quot;string&amp;amp;quot;?String(n.message):String(n),error:n});if(!window.dispatchEvent(t))return}else if(typeof process==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof process.emit==&amp;amp;quot;function&amp;amp;quot;){process.emit(&amp;amp;quot;uncaughtException&amp;amp;quot;,n);return}console.error(n)};function I4(){}Se.Children={map:w0,forEach:function(n,t,e){w0(n,function(){t.apply(this,arguments)},e)},count:function(n){var t=0;return w0(n,function(){t++}),t},toArray:function(n){return w0(n,function(t){return t})||[]},only:function(n){if(!mM(n))throw Error(&amp;amp;quot;React.Children.only expected to receive a single React element child.&amp;amp;quot;);return n}};Se.Component=Sc;Se.Fragment=T4;Se.Profiler=R4;Se.PureComponent=hM;Se.StrictMode=A4;Se.Suspense=U4;Se.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=mn;Se.__COMPILER_RUNTIME={__proto__:null,c:function(n){return mn.H.useMemoCache(n)}};Se.cache=function(n){return function(){return n.apply(null,arguments)}};Se.cloneElement=function(n,t,e){if(n==null)throw Error(&amp;amp;quot;The argument must be a React element, but you passed &amp;amp;quot;+n+&amp;amp;quot;.&amp;amp;quot;);var i=kR({},n.props),a=n.key,s=void 0;if(t!=null)for(o in t.ref!==void 0&amp;amp;amp;&amp;amp;amp;(s=void 0),t.key!==void 0&amp;amp;amp;&amp;amp;amp;(a=&amp;amp;quot;&amp;amp;quot;+t.key),t)!QR.call(t,o)||o===&amp;amp;quot;key&amp;amp;quot;||o===&amp;amp;quot;__self&amp;amp;quot;||o===&amp;amp;quot;__source&amp;amp;quot;||o===&amp;amp;quot;ref&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.ref===void 0||(i[o]=t[o]);var o=arguments.length-2;if(o===1)i.children=e;else if(1&amp;amp;lt;o){for(var u=Array(o),c=0;c&amp;amp;lt;o;c++)u[c]=arguments[c+2];i.children=u}return pM(n.type,a,void 0,void 0,s,i)};Se.createContext=function(n){return n={$$typeof:w4,_currentValue:n,_currentValue2:n,_threadCount:0,Provider:null,Consumer:null},n.Provider=n,n.Consumer={$$typeof:C4,_context:n},n};Se.createElement=function(n,t,e){var i,a={},s=null;if(t!=null)for(i in t.key!==void 0&amp;amp;amp;&amp;amp;amp;(s=&amp;amp;quot;&amp;amp;quot;+t.key),t)QR.call(t,i)&amp;amp;amp;&amp;amp;amp;i!==&amp;amp;quot;key&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i!==&amp;amp;quot;__self&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i!==&amp;amp;quot;__source&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a[i]=t[i]);var o=arguments.length-2;if(o===1)a.children=e;else if(1&amp;amp;lt;o){for(var u=Array(o),c=0;c&amp;amp;lt;o;c++)u[c]=arguments[c+2];a.children=u}if(n&amp;amp;amp;&amp;amp;amp;n.defaultProps)for(i in o=n.defaultProps,o)a[i]===void 0&amp;amp;amp;&amp;amp;amp;(a[i]=o[i]);return pM(n,s,void 0,void 0,null,a)};Se.createRef=function(){return{current:null}};Se.forwardRef=function(n){return{$$typeof:D4,render:n}};Se.isValidElement=mM;Se.lazy=function(n){return{$$typeof:YR,_payload:{_status:-1,_result:n},_init:P4}};Se.memo=function(n,t){return{$$typeof:N4,type:n,compare:t===void 0?null:t}};Se.startTransition=function(n){var t=mn.T,e={};mn.T=e;try{var i=n(),a=mn.S;a!==null&amp;amp;amp;&amp;amp;amp;a(e,i),typeof i==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i!==null&amp;amp;amp;&amp;amp;amp;typeof i.then==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.then(I4,qR)}catch(s){qR(s)}finally{mn.T=t}};Se.unstable_useCacheRefresh=function(){return mn.H.useCacheRefresh()};Se.use=function(n){return mn.H.use(n)};Se.useActionState=function(n,t,e){return mn.H.useActionState(n,t,e)};Se.useCallback=function(n,t){return mn.H.useCallback(n,t)};Se.useContext=function(n){return mn.H.useContext(n)};Se.useDebugValue=function(){};Se.useDeferredValue=function(n,t){return mn.H.useDeferredValue(n,t)};Se.useEffect=function(n,t,e){var i=mn.H;if(typeof e==&amp;amp;quot;function&amp;amp;quot;)throw Error(&amp;amp;quot;useEffect CRUD overload is not enabled in this build of React.&amp;amp;quot;);return i.useEffect(n,t)};Se.useId=function(){return mn.H.useId()};Se.useImperativeHandle=function(n,t,e){return mn.H.useImperativeHandle(n,t,e)};Se.useInsertionEffect=function(n,t){return mn.H.useInsertionEffect(n,t)};Se.useLayoutEffect=function(n,t){return mn.H.useLayoutEffect(n,t)};Se.useMemo=function(n,t){return mn.H.useMemo(n,t)};Se.useOptimistic=function(n,t){return mn.H.useOptimistic(n,t)};Se.useReducer=function(n,t,e){return mn.H.useReducer(n,t,e)};Se.useRef=function(n){return mn.H.useRef(n)};Se.useState=function(n){return mn.H.useState(n)};Se.useSyncExternalStore=function(n,t,e){return mn.H.useSyncExternalStore(n,t,e)};Se.useTransition=function(){return mn.H.useTransition()};Se.version=&amp;amp;quot;19.1.1&amp;amp;quot;});var ja=In((F7,JR)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;JR.exports=KR()});var lC=In(gn=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;function _M(n,t){var e=n.length;n.push(t);t:for(;0&amp;amp;lt;e;){var i=e-1&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1,a=n[i];if(0&amp;amp;lt;D0(a,t))n[i]=t,n[e]=a,e=i;else break t}}function Gs(n){return n.length===0?null:n[0]}function N0(n){if(n.length===0)return null;var t=n[0],e=n.pop();if(e!==t){n[0]=e;t:for(var i=0,a=n.length,s=a&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1;i&amp;amp;lt;s;){var o=2*(i+1)-1,u=n[o],c=o+1,h=n[c];if(0&amp;amp;gt;D0(u,e))c&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;0&amp;amp;gt;D0(h,u)?(n[i]=h,n[c]=e,i=c):(n[i]=u,n[o]=e,i=o);else if(c&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;0&amp;amp;gt;D0(h,e))n[i]=h,n[c]=e,i=c;else break t}}return t}function D0(n,t){var e=n.sortIndex-t.sortIndex;return e!==0?e:n.id-t.id}gn.unstable_now=void 0;typeof performance==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof performance.now==&amp;amp;quot;function&amp;amp;quot;?($R=performance,gn.unstable_now=function(){return $R.now()}):(gM=Date,tC=gM.now(),gn.unstable_now=function(){return gM.now()-tC});var $R,gM,tC,Mr=[],xo=[],H4=1,Qa=null,Ai=3,xM=!1,fd=!1,hd=!1,SM=!1,iC=typeof setTimeout==&amp;amp;quot;function&amp;amp;quot;?setTimeout:null,aC=typeof clearTimeout==&amp;amp;quot;function&amp;amp;quot;?clearTimeout:null,eC=typeof setImmediate&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?setImmediate:null;function U0(n){for(var t=Gs(xo);t!==null;){if(t.callback===null)N0(xo);else if(t.startTime&amp;amp;lt;=n)N0(xo),t.sortIndex=t.expirationTime,_M(Mr,t);else break;t=Gs(xo)}}function MM(n){if(hd=!1,U0(n),!fd)if(Gs(Mr)!==null)fd=!0,Ec||(Ec=!0,Mc());else{var t=Gs(xo);t!==null&amp;amp;amp;&amp;amp;amp;EM(MM,t.startTime-n)}}var Ec=!1,dd=-1,sC=5,rC=-1;function oC(){return SM?!0:!(gn.unstable_now()-rC&amp;amp;lt;sC)}function vM(){if(SM=!1,Ec){var n=gn.unstable_now();rC=n;var t=!0;try{t:{fd=!1,hd&amp;amp;amp;&amp;amp;amp;(hd=!1,aC(dd),dd=-1),xM=!0;var e=Ai;try{e:{for(U0(n),Qa=Gs(Mr);Qa!==null&amp;amp;amp;&amp;amp;amp;!(Qa.expirationTime&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;oC());){var i=Qa.callback;if(typeof i==&amp;amp;quot;function&amp;amp;quot;){Qa.callback=null,Ai=Qa.priorityLevel;var a=i(Qa.expirationTime&amp;amp;lt;=n);if(n=gn.unstable_now(),typeof a==&amp;amp;quot;function&amp;amp;quot;){Qa.callback=a,U0(n),t=!0;break e}Qa===Gs(Mr)&amp;amp;amp;&amp;amp;amp;N0(Mr),U0(n)}else N0(Mr);Qa=Gs(Mr)}if(Qa!==null)t=!0;else{var s=Gs(xo);s!==null&amp;amp;amp;&amp;amp;amp;EM(MM,s.startTime-n),t=!1}}break t}finally{Qa=null,Ai=e,xM=!1}t=void 0}}finally{t?Mc():Ec=!1}}}var Mc;typeof eC==&amp;amp;quot;function&amp;amp;quot;?Mc=function(){eC(vM)}:typeof MessageChannel&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(yM=new MessageChannel,nC=yM.port2,yM.port1.onmessage=vM,Mc=function(){nC.postMessage(null)}):Mc=function(){iC(vM,0)};var yM,nC;function EM(n,t){dd=iC(function(){n(gn.unstable_now())},t)}gn.unstable_IdlePriority=5;gn.unstable_ImmediatePriority=1;gn.unstable_LowPriority=4;gn.unstable_NormalPriority=3;gn.unstable_Profiling=null;gn.unstable_UserBlockingPriority=2;gn.unstable_cancelCallback=function(n){n.callback=null};gn.unstable_forceFrameRate=function(n){0&amp;amp;gt;n||125&amp;amp;lt;n?console.error(&amp;amp;quot;forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported&amp;amp;quot;):sC=0&amp;amp;lt;n?Math.floor(1e3/n):5};gn.unstable_getCurrentPriorityLevel=function(){return Ai};gn.unstable_next=function(n){switch(Ai){case 1:case 2:case 3:var t=3;break;default:t=Ai}var e=Ai;Ai=t;try{return n()}finally{Ai=e}};gn.unstable_requestPaint=function(){SM=!0};gn.unstable_runWithPriority=function(n,t){switch(n){case 1:case 2:case 3:case 4:case 5:break;default:n=3}var e=Ai;Ai=n;try{return t()}finally{Ai=e}};gn.unstable_scheduleCallback=function(n,t,e){var i=gn.unstable_now();switch(typeof e==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e!==null?(e=e.delay,e=typeof e==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;e?i+e:i):e=i,n){case 1:var a=-1;break;case 2:a=250;break;case 5:a=1073741823;break;case 4:a=1e4;break;default:a=5e3}return a=e+a,n={id:H4++,callback:t,priorityLevel:n,startTime:e,expirationTime:a,sortIndex:-1},e&amp;amp;gt;i?(n.sortIndex=e,_M(xo,n),Gs(Mr)===null&amp;amp;amp;&amp;amp;amp;n===Gs(xo)&amp;amp;amp;&amp;amp;amp;(hd?(aC(dd),dd=-1):hd=!0,EM(MM,e-i))):(n.sortIndex=a,_M(Mr,n),fd||xM||(fd=!0,Ec||(Ec=!0,Mc()))),n};gn.unstable_shouldYield=oC;gn.unstable_wrapCallback=function(n){var t=Ai;return function(){var e=Ai;Ai=t;try{return n.apply(this,arguments)}finally{Ai=e}}}});var cC=In((G7,uC)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;uC.exports=lC()});var hC=In(Fi=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;var F4=ja();function fC(n){var t=&amp;amp;quot;https://react.dev/errors/&amp;amp;quot;+n;if(1&amp;amp;lt;arguments.length){t+=&amp;amp;quot;?args[]=&amp;amp;quot;+encodeURIComponent(arguments[1]);for(var e=2;e&amp;amp;lt;arguments.length;e++)t+=&amp;amp;quot;&amp;amp;amp;args[]=&amp;amp;quot;+encodeURIComponent(arguments[e])}return&amp;amp;quot;Minified React error #&amp;amp;quot;+n+&amp;amp;quot;; visit &amp;amp;quot;+t+&amp;amp;quot; for the full message or use the non-minified dev environment for full errors and additional helpful warnings.&amp;amp;quot;}function So(){}var Hi={d:{f:So,r:function(){throw Error(fC(522))},D:So,C:So,L:So,m:So,X:So,S:So,M:So},p:0,findDOMNode:null},V4=Symbol.for(&amp;amp;quot;react.portal&amp;amp;quot;);function G4(n,t,e){var i=3&amp;amp;lt;arguments.length&amp;amp;amp;&amp;amp;amp;arguments[3]!==void 0?arguments[3]:null;return{$$typeof:V4,key:i==null?null:&amp;amp;quot;&amp;amp;quot;+i,children:n,containerInfo:t,implementation:e}}var pd=F4.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function O0(n,t){if(n===&amp;amp;quot;font&amp;amp;quot;)return&amp;amp;quot;&amp;amp;quot;;if(typeof t==&amp;amp;quot;string&amp;amp;quot;)return t===&amp;amp;quot;use-credentials&amp;amp;quot;?t:&amp;amp;quot;&amp;amp;quot;}Fi.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=Hi;Fi.createPortal=function(n,t){var e=2&amp;amp;lt;arguments.length&amp;amp;amp;&amp;amp;amp;arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&amp;amp;amp;&amp;amp;amp;t.nodeType!==9&amp;amp;amp;&amp;amp;amp;t.nodeType!==11)throw Error(fC(299));return G4(n,t,null,e)};Fi.flushSync=function(n){var t=pd.T,e=Hi.p;try{if(pd.T=null,Hi.p=2,n)return n()}finally{pd.T=t,Hi.p=e,Hi.d.f()}};Fi.preconnect=function(n,t){typeof n==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t?(t=t.crossOrigin,t=typeof t==&amp;amp;quot;string&amp;amp;quot;?t===&amp;amp;quot;use-credentials&amp;amp;quot;?t:&amp;amp;quot;&amp;amp;quot;:void 0):t=null,Hi.d.C(n,t))};Fi.prefetchDNS=function(n){typeof n==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Hi.d.D(n)};Fi.preinit=function(n,t){if(typeof n==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;typeof t.as==&amp;amp;quot;string&amp;amp;quot;){var e=t.as,i=O0(e,t.crossOrigin),a=typeof t.integrity==&amp;amp;quot;string&amp;amp;quot;?t.integrity:void 0,s=typeof t.fetchPriority==&amp;amp;quot;string&amp;amp;quot;?t.fetchPriority:void 0;e===&amp;amp;quot;style&amp;amp;quot;?Hi.d.S(n,typeof t.precedence==&amp;amp;quot;string&amp;amp;quot;?t.precedence:void 0,{crossOrigin:i,integrity:a,fetchPriority:s}):e===&amp;amp;quot;script&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Hi.d.X(n,{crossOrigin:i,integrity:a,fetchPriority:s,nonce:typeof t.nonce==&amp;amp;quot;string&amp;amp;quot;?t.nonce:void 0})}};Fi.preinitModule=function(n,t){if(typeof n==&amp;amp;quot;string&amp;amp;quot;)if(typeof t==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t!==null){if(t.as==null||t.as===&amp;amp;quot;script&amp;amp;quot;){var e=O0(t.as,t.crossOrigin);Hi.d.M(n,{crossOrigin:e,integrity:typeof t.integrity==&amp;amp;quot;string&amp;amp;quot;?t.integrity:void 0,nonce:typeof t.nonce==&amp;amp;quot;string&amp;amp;quot;?t.nonce:void 0})}}else t==null&amp;amp;amp;&amp;amp;amp;Hi.d.M(n)};Fi.preload=function(n,t){if(typeof n==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof t==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t!==null&amp;amp;amp;&amp;amp;amp;typeof t.as==&amp;amp;quot;string&amp;amp;quot;){var e=t.as,i=O0(e,t.crossOrigin);Hi.d.L(n,e,{crossOrigin:i,integrity:typeof t.integrity==&amp;amp;quot;string&amp;amp;quot;?t.integrity:void 0,nonce:typeof t.nonce==&amp;amp;quot;string&amp;amp;quot;?t.nonce:void 0,type:typeof t.type==&amp;amp;quot;string&amp;amp;quot;?t.type:void 0,fetchPriority:typeof t.fetchPriority==&amp;amp;quot;string&amp;amp;quot;?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==&amp;amp;quot;string&amp;amp;quot;?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==&amp;amp;quot;string&amp;amp;quot;?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==&amp;amp;quot;string&amp;amp;quot;?t.imageSizes:void 0,media:typeof t.media==&amp;amp;quot;string&amp;amp;quot;?t.media:void 0})}};Fi.preloadModule=function(n,t){if(typeof n==&amp;amp;quot;string&amp;amp;quot;)if(t){var e=O0(t.as,t.crossOrigin);Hi.d.m(n,{as:typeof t.as==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.as!==&amp;amp;quot;script&amp;amp;quot;?t.as:void 0,crossOrigin:e,integrity:typeof t.integrity==&amp;amp;quot;string&amp;amp;quot;?t.integrity:void 0})}else Hi.d.m(n)};Fi.requestFormReset=function(n){Hi.d.r(n)};Fi.unstable_batchedUpdates=function(n,t){return n(t)};Fi.useFormState=function(n,t,e){return pd.H.useFormState(n,t,e)};Fi.useFormStatus=function(){return pd.H.useHostTransitionStatus()};Fi.version=&amp;amp;quot;19.1.1&amp;amp;quot;});var mC=In((q7,pC)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;function dC(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=&amp;amp;quot;function&amp;amp;quot;))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(dC)}catch(n){console.error(n)}}dC(),pC.exports=hC()});var vU=In(ey=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;var kn=cC(),Pw=ja(),X4=mC();function ft(n){var t=&amp;amp;quot;https://react.dev/errors/&amp;amp;quot;+n;if(1&amp;amp;lt;arguments.length){t+=&amp;amp;quot;?args[]=&amp;amp;quot;+encodeURIComponent(arguments[1]);for(var e=2;e&amp;amp;lt;arguments.length;e++)t+=&amp;amp;quot;&amp;amp;amp;args[]=&amp;amp;quot;+encodeURIComponent(arguments[e])}return&amp;amp;quot;Minified React error #&amp;amp;quot;+n+&amp;amp;quot;; visit &amp;amp;quot;+t+&amp;amp;quot; for the full message or use the non-minified dev environment for full errors and additional helpful warnings.&amp;amp;quot;}function Iw(n){return!(!n||n.nodeType!==1&amp;amp;amp;&amp;amp;amp;n.nodeType!==9&amp;amp;amp;&amp;amp;amp;n.nodeType!==11)}function ep(n){var t=n,e=n;if(n.alternate)for(;t.return;)t=t.return;else{n=t;do t=n,(t.flags&amp;amp;amp;4098)!==0&amp;amp;amp;&amp;amp;amp;(e=t.return),n=t.return;while(n)}return t.tag===3?e:null}function Hw(n){if(n.tag===13){var t=n.memoizedState;if(t===null&amp;amp;amp;&amp;amp;amp;(n=n.alternate,n!==null&amp;amp;amp;&amp;amp;amp;(t=n.memoizedState)),t!==null)return t.dehydrated}return null}function gC(n){if(ep(n)!==n)throw Error(ft(188))}function q4(n){var t=n.alternate;if(!t){if(t=ep(n),t===null)throw Error(ft(188));return t!==n?null:n}for(var e=n,i=t;;){var a=e.return;if(a===null)break;var s=a.alternate;if(s===null){if(i=a.return,i!==null){e=i;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===e)return gC(a),n;if(s===i)return gC(a),t;s=s.sibling}throw Error(ft(188))}if(e.return!==i.return)e=a,i=s;else{for(var o=!1,u=a.child;u;){if(u===e){o=!0,e=a,i=s;break}if(u===i){o=!0,i=a,e=s;break}u=u.sibling}if(!o){for(u=s.child;u;){if(u===e){o=!0,e=s,i=a;break}if(u===i){o=!0,i=s,e=a;break}u=u.sibling}if(!o)throw Error(ft(189))}}if(e.alternate!==i)throw Error(ft(190))}if(e.tag!==3)throw Error(ft(188));return e.stateNode.current===e?n:t}function Fw(n){var t=n.tag;if(t===5||t===26||t===27||t===6)return n;for(n=n.child;n!==null;){if(t=Fw(n),t!==null)return t;n=n.sibling}return null}var pn=Object.assign,Y4=Symbol.for(&amp;amp;quot;react.element&amp;amp;quot;),L0=Symbol.for(&amp;amp;quot;react.transitional.element&amp;amp;quot;),Ed=Symbol.for(&amp;amp;quot;react.portal&amp;amp;quot;),Dc=Symbol.for(&amp;amp;quot;react.fragment&amp;amp;quot;),Vw=Symbol.for(&amp;amp;quot;react.strict_mode&amp;amp;quot;),e1=Symbol.for(&amp;amp;quot;react.profiler&amp;amp;quot;),W4=Symbol.for(&amp;amp;quot;react.provider&amp;amp;quot;),Gw=Symbol.for(&amp;amp;quot;react.consumer&amp;amp;quot;),Rr=Symbol.for(&amp;amp;quot;react.context&amp;amp;quot;),Q1=Symbol.for(&amp;amp;quot;react.forward_ref&amp;amp;quot;),n1=Symbol.for(&amp;amp;quot;react.suspense&amp;amp;quot;),i1=Symbol.for(&amp;amp;quot;react.suspense_list&amp;amp;quot;),K1=Symbol.for(&amp;amp;quot;react.memo&amp;amp;quot;),bo=Symbol.for(&amp;amp;quot;react.lazy&amp;amp;quot;);Symbol.for(&amp;amp;quot;react.scope&amp;amp;quot;);var a1=Symbol.for(&amp;amp;quot;react.activity&amp;amp;quot;);Symbol.for(&amp;amp;quot;react.legacy_hidden&amp;amp;quot;);Symbol.for(&amp;amp;quot;react.tracing_marker&amp;amp;quot;);var k4=Symbol.for(&amp;amp;quot;react.memo_cache_sentinel&amp;amp;quot;);Symbol.for(&amp;amp;quot;react.view_transition&amp;amp;quot;);var vC=Symbol.iterator;function md(n){return n===null||typeof n!=&amp;amp;quot;object&amp;amp;quot;?null:(n=vC&amp;amp;amp;&amp;amp;amp;n[vC]||n[&amp;amp;quot;@@iterator&amp;amp;quot;],typeof n==&amp;amp;quot;function&amp;amp;quot;?n:null)}var Z4=Symbol.for(&amp;amp;quot;react.client.reference&amp;amp;quot;);function s1(n){if(n==null)return null;if(typeof n==&amp;amp;quot;function&amp;amp;quot;)return n.$$typeof===Z4?null:n.displayName||n.name||null;if(typeof n==&amp;amp;quot;string&amp;amp;quot;)return n;switch(n){case Dc:return&amp;amp;quot;Fragment&amp;amp;quot;;case e1:return&amp;amp;quot;Profiler&amp;amp;quot;;case Vw:return&amp;amp;quot;StrictMode&amp;amp;quot;;case n1:return&amp;amp;quot;Suspense&amp;amp;quot;;case i1:return&amp;amp;quot;SuspenseList&amp;amp;quot;;case a1:return&amp;amp;quot;Activity&amp;amp;quot;}if(typeof n==&amp;amp;quot;object&amp;amp;quot;)switch(n.$$typeof){case Ed:return&amp;amp;quot;Portal&amp;amp;quot;;case Rr:return(n.displayName||&amp;amp;quot;Context&amp;amp;quot;)+&amp;amp;quot;.Provider&amp;amp;quot;;case Gw:return(n._context.displayName||&amp;amp;quot;Context&amp;amp;quot;)+&amp;amp;quot;.Consumer&amp;amp;quot;;case Q1:var t=n.render;return n=n.displayName,n||(n=t.displayName||t.name||&amp;amp;quot;&amp;amp;quot;,n=n!==&amp;amp;quot;&amp;amp;quot;?&amp;amp;quot;ForwardRef(&amp;amp;quot;+n+&amp;amp;quot;)&amp;amp;quot;:&amp;amp;quot;ForwardRef&amp;amp;quot;),n;case K1:return t=n.displayName||null,t!==null?t:s1(n.type)||&amp;amp;quot;Memo&amp;amp;quot;;case bo:t=n._payload,n=n._init;try{return s1(n(t))}catch{}}return null}var bd=Array.isArray,ce=Pw.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Ge=X4.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,Vl={pending:!1,data:null,method:null,action:null},r1=[],Uc=-1;function js(n){return{current:n}}function ai(n){0&amp;amp;gt;Uc||(n.current=r1[Uc],r1[Uc]=null,Uc--)}function yn(n,t){Uc++,r1[Uc]=n.current,n.current=t}var Ws=js(null),Vd=js(null),Lo=js(null),cv=js(null);function fv(n,t){switch(yn(Lo,t),yn(Vd,n),yn(Ws,null),t.nodeType){case 9:case 11:n=(n=t.documentElement)&amp;amp;amp;&amp;amp;amp;(n=n.namespaceURI)?Ew(n):0;break;default:if(n=t.tagName,t=t.namespaceURI)t=Ew(t),n=sU(t,n);else switch(n){case&amp;amp;quot;svg&amp;amp;quot;:n=1;break;case&amp;amp;quot;math&amp;amp;quot;:n=2;break;default:n=0}}ai(Ws),yn(Ws,n)}function Qc(){ai(Ws),ai(Vd),ai(Lo)}function o1(n){n.memoizedState!==null&amp;amp;amp;&amp;amp;amp;yn(cv,n);var t=Ws.current,e=sU(t,n.type);t!==e&amp;amp;amp;&amp;amp;amp;(yn(Vd,n),yn(Ws,e))}function hv(n){Vd.current===n&amp;amp;amp;&amp;amp;amp;(ai(Ws),ai(Vd)),cv.current===n&amp;amp;amp;&amp;amp;amp;(ai(cv),Kd._currentValue=Vl)}var l1=Object.prototype.hasOwnProperty,J1=kn.unstable_scheduleCallback,bM=kn.unstable_cancelCallback,j4=kn.unstable_shouldYield,Q4=kn.unstable_requestPaint,ks=kn.unstable_now,K4=kn.unstable_getCurrentPriorityLevel,Xw=kn.unstable_ImmediatePriority,qw=kn.unstable_UserBlockingPriority,dv=kn.unstable_NormalPriority,J4=kn.unstable_LowPriority,Yw=kn.unstable_IdlePriority,$4=kn.log,tP=kn.unstable_setDisableYieldValue,np=null,ba=null;function Do(n){if(typeof $4==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;tP(n),ba&amp;amp;amp;&amp;amp;amp;typeof ba.setStrictMode==&amp;amp;quot;function&amp;amp;quot;)try{ba.setStrictMode(np,n)}catch{}}var Ta=Math.clz32?Math.clz32:iP,eP=Math.log,nP=Math.LN2;function iP(n){return n&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=0,n===0?32:31-(eP(n)/nP|0)|0}var z0=256,B0=4194304;function Il(n){var t=n&amp;amp;amp;42;if(t!==0)return t;switch(n&amp;amp;amp;-n){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n&amp;amp;amp;4194048;case 4194304:case 8388608:case 16777216:case 33554432:return n&amp;amp;amp;62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return n}}function Fv(n,t,e){var i=n.pendingLanes;if(i===0)return 0;var a=0,s=n.suspendedLanes,o=n.pingedLanes;n=n.warmLanes;var u=i&amp;amp;amp;134217727;return u!==0?(i=u&amp;amp;amp;~s,i!==0?a=Il(i):(o&amp;amp;amp;=u,o!==0?a=Il(o):e||(e=u&amp;amp;amp;~n,e!==0&amp;amp;amp;&amp;amp;amp;(a=Il(e))))):(u=i&amp;amp;amp;~s,u!==0?a=Il(u):o!==0?a=Il(o):e||(e=i&amp;amp;amp;~n,e!==0&amp;amp;amp;&amp;amp;amp;(a=Il(e)))),a===0?0:t!==0&amp;amp;amp;&amp;amp;amp;t!==a&amp;amp;amp;&amp;amp;amp;(t&amp;amp;amp;s)===0&amp;amp;amp;&amp;amp;amp;(s=a&amp;amp;amp;-a,e=t&amp;amp;amp;-t,s&amp;amp;gt;=e||s===32&amp;amp;amp;&amp;amp;amp;(e&amp;amp;amp;4194048)!==0)?t:a}function ip(n,t){return(n.pendingLanes&amp;amp;amp;~(n.suspendedLanes&amp;amp;amp;~n.pingedLanes)&amp;amp;amp;t)===0}function aP(n,t){switch(n){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ww(){var n=z0;return z0&amp;amp;lt;&amp;amp;lt;=1,(z0&amp;amp;amp;4194048)===0&amp;amp;amp;&amp;amp;amp;(z0=256),n}function kw(){var n=B0;return B0&amp;amp;lt;&amp;amp;lt;=1,(B0&amp;amp;amp;62914560)===0&amp;amp;amp;&amp;amp;amp;(B0=4194304),n}function TM(n){for(var t=[],e=0;31&amp;amp;gt;e;e++)t.push(n);return t}function ap(n,t){n.pendingLanes|=t,t!==268435456&amp;amp;amp;&amp;amp;amp;(n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0)}function sP(n,t,e,i,a,s){var o=n.pendingLanes;n.pendingLanes=e,n.suspendedLanes=0,n.pingedLanes=0,n.warmLanes=0,n.expiredLanes&amp;amp;amp;=e,n.entangledLanes&amp;amp;amp;=e,n.errorRecoveryDisabledLanes&amp;amp;amp;=e,n.shellSuspendCounter=0;var u=n.entanglements,c=n.expirationTimes,h=n.hiddenUpdates;for(e=o&amp;amp;amp;~e;0&amp;amp;lt;e;){var d=31-Ta(e),m=1&amp;amp;lt;&amp;amp;lt;d;u[d]=0,c[d]=-1;var g=h[d];if(g!==null)for(h[d]=null,d=0;d&amp;amp;lt;g.length;d++){var y=g[d];y!==null&amp;amp;amp;&amp;amp;amp;(y.lane&amp;amp;amp;=-536870913)}e&amp;amp;amp;=~m}i!==0&amp;amp;amp;&amp;amp;amp;Zw(n,i,0),s!==0&amp;amp;amp;&amp;amp;amp;a===0&amp;amp;amp;&amp;amp;amp;n.tag!==0&amp;amp;amp;&amp;amp;amp;(n.suspendedLanes|=s&amp;amp;amp;~(o&amp;amp;amp;~t))}function Zw(n,t,e){n.pendingLanes|=t,n.suspendedLanes&amp;amp;amp;=~t;var i=31-Ta(t);n.entangledLanes|=t,n.entanglements[i]=n.entanglements[i]|1073741824|e&amp;amp;amp;4194090}function jw(n,t){var e=n.entangledLanes|=t;for(n=n.entanglements;e;){var i=31-Ta(e),a=1&amp;amp;lt;&amp;amp;lt;i;a&amp;amp;amp;t|n[i]&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;(n[i]|=t),e&amp;amp;amp;=~a}}function $1(n){switch(n){case 2:n=1;break;case 8:n=4;break;case 32:n=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:n=128;break;case 268435456:n=134217728;break;default:n=0}return n}function tE(n){return n&amp;amp;amp;=-n,2&amp;amp;lt;n?8&amp;amp;lt;n?(n&amp;amp;amp;134217727)!==0?32:268435456:8:2}function Qw(){var n=Ge.p;return n!==0?n:(n=window.event,n===void 0?32:mU(n.type))}function rP(n,t){var e=Ge.p;try{return Ge.p=n,t()}finally{Ge.p=e}}var Yo=Math.random().toString(36).slice(2),Ri=&amp;amp;quot;__reactFiber$&amp;amp;quot;+Yo,ta=&amp;amp;quot;__reactProps$&amp;amp;quot;+Yo,lf=&amp;amp;quot;__reactContainer$&amp;amp;quot;+Yo,u1=&amp;amp;quot;__reactEvents$&amp;amp;quot;+Yo,oP=&amp;amp;quot;__reactListeners$&amp;amp;quot;+Yo,lP=&amp;amp;quot;__reactHandles$&amp;amp;quot;+Yo,yC=&amp;amp;quot;__reactResources$&amp;amp;quot;+Yo,sp=&amp;amp;quot;__reactMarker$&amp;amp;quot;+Yo;function eE(n){delete n[Ri],delete n[ta],delete n[u1],delete n[oP],delete n[lP]}function Nc(n){var t=n[Ri];if(t)return t;for(var e=n.parentNode;e;){if(t=e[lf]||e[Ri]){if(e=t.alternate,t.child!==null||e!==null&amp;amp;amp;&amp;amp;amp;e.child!==null)for(n=Aw(n);n!==null;){if(e=n[Ri])return e;n=Aw(n)}return t}n=e,e=n.parentNode}return null}function uf(n){if(n=n[Ri]||n[lf]){var t=n.tag;if(t===5||t===6||t===13||t===26||t===27||t===3)return n}return null}function Td(n){var t=n.tag;if(t===5||t===26||t===27||t===6)return n.stateNode;throw Error(ft(33))}function Gc(n){var t=n[yC];return t||(t=n[yC]={hoistableStyles:new Map,hoistableScripts:new Map}),t}function ni(n){n[sp]=!0}var Kw=new Set,Jw={};function Jl(n,t){Kc(n,t),Kc(n+&amp;amp;quot;Capture&amp;amp;quot;,t)}function Kc(n,t){for(Jw[n]=t,n=0;n&amp;amp;lt;t.length;n++)Kw.add(t[n])}var uP=RegExp(&amp;amp;quot;^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$&amp;amp;quot;),_C={},xC={};function cP(n){return l1.call(xC,n)?!0:l1.call(_C,n)?!1:uP.test(n)?xC[n]=!0:(_C[n]=!0,!1)}function K0(n,t,e){if(cP(t))if(e===null)n.removeAttribute(t);else{switch(typeof e){case&amp;amp;quot;undefined&amp;amp;quot;:case&amp;amp;quot;function&amp;amp;quot;:case&amp;amp;quot;symbol&amp;amp;quot;:n.removeAttribute(t);return;case&amp;amp;quot;boolean&amp;amp;quot;:var i=t.toLowerCase().slice(0,5);if(i!==&amp;amp;quot;data-&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i!==&amp;amp;quot;aria-&amp;amp;quot;){n.removeAttribute(t);return}}n.setAttribute(t,&amp;amp;quot;&amp;amp;quot;+e)}}function P0(n,t,e){if(e===null)n.removeAttribute(t);else{switch(typeof e){case&amp;amp;quot;undefined&amp;amp;quot;:case&amp;amp;quot;function&amp;amp;quot;:case&amp;amp;quot;symbol&amp;amp;quot;:case&amp;amp;quot;boolean&amp;amp;quot;:n.removeAttribute(t);return}n.setAttribute(t,&amp;amp;quot;&amp;amp;quot;+e)}}function Er(n,t,e,i){if(i===null)n.removeAttribute(e);else{switch(typeof i){case&amp;amp;quot;undefined&amp;amp;quot;:case&amp;amp;quot;function&amp;amp;quot;:case&amp;amp;quot;symbol&amp;amp;quot;:case&amp;amp;quot;boolean&amp;amp;quot;:n.removeAttribute(e);return}n.setAttributeNS(t,e,&amp;amp;quot;&amp;amp;quot;+i)}}var AM,SC;function Rc(n){if(AM===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);AM=t&amp;amp;amp;&amp;amp;amp;t[1]||&amp;amp;quot;&amp;amp;quot;,SC=-1&amp;amp;lt;e.stack.indexOf(`
   1176 <a href="#l1157" class="line" id="l1157">   1157</a> &lt;a href=&quot;#l1138&quot; class=&quot;line&quot; id=&quot;l1138&quot;&gt;   1138&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1&amp;quot; id=&amp;quot;h3-0-1&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    at`)?&amp;amp;quot; (&amp;amp;lt;anonymous&amp;amp;gt;)&amp;amp;quot;:-1&amp;amp;lt;e.stack.indexOf(&amp;amp;quot;@&amp;amp;quot;)?&amp;amp;quot;@unknown:0:0&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;}return`
   1177 <a href="#l1158" class="line" id="l1158">   1158</a> &lt;a href=&quot;#l1139&quot; class=&quot;line&quot; id=&quot;l1139&quot;&gt;   1139&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2&amp;quot; id=&amp;quot;h3-0-2&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+AM+n+SC}var RM=!1;function CM(n,t){if(!n||RM)return&amp;amp;quot;&amp;amp;quot;;RM=!0;var e=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var i={DetermineComponentFrameRoot:function(){try{if(t){var m=function(){throw Error()};if(Object.defineProperty(m.prototype,&amp;amp;quot;props&amp;amp;quot;,{set:function(){throw Error()}}),typeof Reflect==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Reflect.construct){try{Reflect.construct(m,[])}catch(y){var g=y}Reflect.construct(n,[],m)}else{try{m.call()}catch(y){g=y}n.call(m.prototype)}}else{try{throw Error()}catch(y){g=y}(m=n())&amp;amp;amp;&amp;amp;amp;typeof m.catch==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;m.catch(function(){})}}catch(y){if(y&amp;amp;amp;&amp;amp;amp;g&amp;amp;amp;&amp;amp;amp;typeof y.stack==&amp;amp;quot;string&amp;amp;quot;)return[y.stack,g.stack]}return[null,null]}};i.DetermineComponentFrameRoot.displayName=&amp;amp;quot;DetermineComponentFrameRoot&amp;amp;quot;;var a=Object.getOwnPropertyDescriptor(i.DetermineComponentFrameRoot,&amp;amp;quot;name&amp;amp;quot;);a&amp;amp;amp;&amp;amp;amp;a.configurable&amp;amp;amp;&amp;amp;amp;Object.defineProperty(i.DetermineComponentFrameRoot,&amp;amp;quot;name&amp;amp;quot;,{value:&amp;amp;quot;DetermineComponentFrameRoot&amp;amp;quot;});var s=i.DetermineComponentFrameRoot(),o=s[0],u=s[1];if(o&amp;amp;amp;&amp;amp;amp;u){var c=o.split(`
   1178 <a href="#l1159" class="line" id="l1159">   1159</a> &lt;a href=&quot;#l1140&quot; class=&quot;line&quot; id=&quot;l1140&quot;&gt;   1140&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3&amp;quot; id=&amp;quot;h3-0-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),h=u.split(`
   1179 <a href="#l1160" class="line" id="l1160">   1160</a> &lt;a href=&quot;#l1141&quot; class=&quot;line&quot; id=&quot;l1141&quot;&gt;   1141&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-4&amp;quot; id=&amp;quot;h3-0-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);for(a=i=0;i&amp;amp;lt;c.length&amp;amp;amp;&amp;amp;amp;!c[i].includes(&amp;amp;quot;DetermineComponentFrameRoot&amp;amp;quot;);)i++;for(;a&amp;amp;lt;h.length&amp;amp;amp;&amp;amp;amp;!h[a].includes(&amp;amp;quot;DetermineComponentFrameRoot&amp;amp;quot;);)a++;if(i===c.length||a===h.length)for(i=c.length-1,a=h.length-1;1&amp;amp;lt;=i&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;=a&amp;amp;amp;&amp;amp;amp;c[i]!==h[a];)a--;for(;1&amp;amp;lt;=i&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;=a;i--,a--)if(c[i]!==h[a]){if(i!==1||a!==1)do if(i--,a--,0&amp;amp;gt;a||c[i]!==h[a]){var d=`
   1180 <a href="#l1161" class="line" id="l1161">   1161</a> &lt;a href=&quot;#l1142&quot; class=&quot;line&quot; id=&quot;l1142&quot;&gt;   1142&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-5&amp;quot; id=&amp;quot;h3-0-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+c[i].replace(&amp;amp;quot; at new &amp;amp;quot;,&amp;amp;quot; at &amp;amp;quot;);return n.displayName&amp;amp;amp;&amp;amp;amp;d.includes(&amp;amp;quot;&amp;amp;lt;anonymous&amp;amp;gt;&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(d=d.replace(&amp;amp;quot;&amp;amp;lt;anonymous&amp;amp;gt;&amp;amp;quot;,n.displayName)),d}while(1&amp;amp;lt;=i&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;=a);break}}}finally{RM=!1,Error.prepareStackTrace=e}return(e=n?n.displayName||n.name:&amp;amp;quot;&amp;amp;quot;)?Rc(e):&amp;amp;quot;&amp;amp;quot;}function fP(n){switch(n.tag){case 26:case 27:case 5:return Rc(n.type);case 16:return Rc(&amp;amp;quot;Lazy&amp;amp;quot;);case 13:return Rc(&amp;amp;quot;Suspense&amp;amp;quot;);case 19:return Rc(&amp;amp;quot;SuspenseList&amp;amp;quot;);case 0:case 15:return CM(n.type,!1);case 11:return CM(n.type.render,!1);case 1:return CM(n.type,!0);case 31:return Rc(&amp;amp;quot;Activity&amp;amp;quot;);default:return&amp;amp;quot;&amp;amp;quot;}}function MC(n){try{var t=&amp;amp;quot;&amp;amp;quot;;do t+=fP(n),n=n.return;while(n);return t}catch(e){return`
   1181 <a href="#l1162" class="line" id="l1162">   1162</a> &lt;a href=&quot;#l1143&quot; class=&quot;line&quot; id=&quot;l1143&quot;&gt;   1143&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-6&amp;quot; id=&amp;quot;h3-0-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Error generating stack: `+e.message+`
   1182 <a href="#l1163" class="line" id="l1163">   1163</a> &lt;a href=&quot;#l1144&quot; class=&quot;line&quot; id=&quot;l1144&quot;&gt;   1144&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-7&amp;quot; id=&amp;quot;h3-0-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+e.stack}}function Ja(n){switch(typeof n){case&amp;amp;quot;bigint&amp;amp;quot;:case&amp;amp;quot;boolean&amp;amp;quot;:case&amp;amp;quot;number&amp;amp;quot;:case&amp;amp;quot;string&amp;amp;quot;:case&amp;amp;quot;undefined&amp;amp;quot;:return n;case&amp;amp;quot;object&amp;amp;quot;:return n;default:return&amp;amp;quot;&amp;amp;quot;}}function $w(n){var t=n.type;return(n=n.nodeName)&amp;amp;amp;&amp;amp;amp;n.toLowerCase()===&amp;amp;quot;input&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===&amp;amp;quot;checkbox&amp;amp;quot;||t===&amp;amp;quot;radio&amp;amp;quot;)}function hP(n){var t=$w(n)?&amp;amp;quot;checked&amp;amp;quot;:&amp;amp;quot;value&amp;amp;quot;,e=Object.getOwnPropertyDescriptor(n.constructor.prototype,t),i=&amp;amp;quot;&amp;amp;quot;+n[t];if(!n.hasOwnProperty(t)&amp;amp;amp;&amp;amp;amp;typeof e&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e.get==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e.set==&amp;amp;quot;function&amp;amp;quot;){var a=e.get,s=e.set;return Object.defineProperty(n,t,{configurable:!0,get:function(){return a.call(this)},set:function(o){i=&amp;amp;quot;&amp;amp;quot;+o,s.call(this,o)}}),Object.defineProperty(n,t,{enumerable:e.enumerable}),{getValue:function(){return i},setValue:function(o){i=&amp;amp;quot;&amp;amp;quot;+o},stopTracking:function(){n._valueTracker=null,delete n[t]}}}}function pv(n){n._valueTracker||(n._valueTracker=hP(n))}function t3(n){if(!n)return!1;var t=n._valueTracker;if(!t)return!0;var e=t.getValue(),i=&amp;amp;quot;&amp;amp;quot;;return n&amp;amp;amp;&amp;amp;amp;(i=$w(n)?n.checked?&amp;amp;quot;true&amp;amp;quot;:&amp;amp;quot;false&amp;amp;quot;:n.value),n=i,n!==e?(t.setValue(n),!0):!1}function mv(n){if(n=n||(typeof document&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?document:void 0),typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return null;try{return n.activeElement||n.body}catch{return n.body}}var dP=/[\n&amp;amp;quot;\\]/g;function es(n){return n.replace(dP,function(t){return&amp;amp;quot;\\&amp;amp;quot;+t.charCodeAt(0).toString(16)+&amp;amp;quot; &amp;amp;quot;})}function c1(n,t,e,i,a,s,o,u){n.name=&amp;amp;quot;&amp;amp;quot;,o!=null&amp;amp;amp;&amp;amp;amp;typeof o!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof o!=&amp;amp;quot;symbol&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof o!=&amp;amp;quot;boolean&amp;amp;quot;?n.type=o:n.removeAttribute(&amp;amp;quot;type&amp;amp;quot;),t!=null?o===&amp;amp;quot;number&amp;amp;quot;?(t===0&amp;amp;amp;&amp;amp;amp;n.value===&amp;amp;quot;&amp;amp;quot;||n.value!=t)&amp;amp;amp;&amp;amp;amp;(n.value=&amp;amp;quot;&amp;amp;quot;+Ja(t)):n.value!==&amp;amp;quot;&amp;amp;quot;+Ja(t)&amp;amp;amp;&amp;amp;amp;(n.value=&amp;amp;quot;&amp;amp;quot;+Ja(t)):o!==&amp;amp;quot;submit&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o!==&amp;amp;quot;reset&amp;amp;quot;||n.removeAttribute(&amp;amp;quot;value&amp;amp;quot;),t!=null?f1(n,o,Ja(t)):e!=null?f1(n,o,Ja(e)):i!=null&amp;amp;amp;&amp;amp;amp;n.removeAttribute(&amp;amp;quot;value&amp;amp;quot;),a==null&amp;amp;amp;&amp;amp;amp;s!=null&amp;amp;amp;&amp;amp;amp;(n.defaultChecked=!!s),a!=null&amp;amp;amp;&amp;amp;amp;(n.checked=a&amp;amp;amp;&amp;amp;amp;typeof a!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof a!=&amp;amp;quot;symbol&amp;amp;quot;),u!=null&amp;amp;amp;&amp;amp;amp;typeof u!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof u!=&amp;amp;quot;symbol&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof u!=&amp;amp;quot;boolean&amp;amp;quot;?n.name=&amp;amp;quot;&amp;amp;quot;+Ja(u):n.removeAttribute(&amp;amp;quot;name&amp;amp;quot;)}function e3(n,t,e,i,a,s,o,u){if(s!=null&amp;amp;amp;&amp;amp;amp;typeof s!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s!=&amp;amp;quot;symbol&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s!=&amp;amp;quot;boolean&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.type=s),t!=null||e!=null){if(!(s!==&amp;amp;quot;submit&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s!==&amp;amp;quot;reset&amp;amp;quot;||t!=null))return;e=e!=null?&amp;amp;quot;&amp;amp;quot;+Ja(e):&amp;amp;quot;&amp;amp;quot;,t=t!=null?&amp;amp;quot;&amp;amp;quot;+Ja(t):e,u||t===n.value||(n.value=t),n.defaultValue=t}i=i??a,i=typeof i!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;symbol&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!!i,n.checked=u?n.checked:!!i,n.defaultChecked=!!i,o!=null&amp;amp;amp;&amp;amp;amp;typeof o!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof o!=&amp;amp;quot;symbol&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof o!=&amp;amp;quot;boolean&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.name=o)}function f1(n,t,e){t===&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;mv(n.ownerDocument)===n||n.defaultValue===&amp;amp;quot;&amp;amp;quot;+e||(n.defaultValue=&amp;amp;quot;&amp;amp;quot;+e)}function Xc(n,t,e,i){if(n=n.options,t){t={};for(var a=0;a&amp;amp;lt;e.length;a++)t[&amp;amp;quot;$&amp;amp;quot;+e[a]]=!0;for(e=0;e&amp;amp;lt;n.length;e++)a=t.hasOwnProperty(&amp;amp;quot;$&amp;amp;quot;+n[e].value),n[e].selected!==a&amp;amp;amp;&amp;amp;amp;(n[e].selected=a),a&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;(n[e].defaultSelected=!0)}else{for(e=&amp;amp;quot;&amp;amp;quot;+Ja(e),t=null,a=0;a&amp;amp;lt;n.length;a++){if(n[a].value===e){n[a].selected=!0,i&amp;amp;amp;&amp;amp;amp;(n[a].defaultSelected=!0);return}t!==null||n[a].disabled||(t=n[a])}t!==null&amp;amp;amp;&amp;amp;amp;(t.selected=!0)}}function n3(n,t,e){if(t!=null&amp;amp;amp;&amp;amp;amp;(t=&amp;amp;quot;&amp;amp;quot;+Ja(t),t!==n.value&amp;amp;amp;&amp;amp;amp;(n.value=t),e==null)){n.defaultValue!==t&amp;amp;amp;&amp;amp;amp;(n.defaultValue=t);return}n.defaultValue=e!=null?&amp;amp;quot;&amp;amp;quot;+Ja(e):&amp;amp;quot;&amp;amp;quot;}function i3(n,t,e,i){if(t==null){if(i!=null){if(e!=null)throw Error(ft(92));if(bd(i)){if(1&amp;amp;lt;i.length)throw Error(ft(93));i=i[0]}e=i}e==null&amp;amp;amp;&amp;amp;amp;(e=&amp;amp;quot;&amp;amp;quot;),t=e}e=Ja(t),n.defaultValue=e,i=n.textContent,i===e&amp;amp;amp;&amp;amp;amp;i!==&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i!==null&amp;amp;amp;&amp;amp;amp;(n.value=i)}function Jc(n,t){if(t){var e=n.firstChild;if(e&amp;amp;amp;&amp;amp;amp;e===n.lastChild&amp;amp;amp;&amp;amp;amp;e.nodeType===3){e.nodeValue=t;return}}n.textContent=t}var pP=new Set(&amp;amp;quot;animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;));function EC(n,t,e){var i=t.indexOf(&amp;amp;quot;--&amp;amp;quot;)===0;e==null||typeof e==&amp;amp;quot;boolean&amp;amp;quot;||e===&amp;amp;quot;&amp;amp;quot;?i?n.setProperty(t,&amp;amp;quot;&amp;amp;quot;):t===&amp;amp;quot;float&amp;amp;quot;?n.cssFloat=&amp;amp;quot;&amp;amp;quot;:n[t]=&amp;amp;quot;&amp;amp;quot;:i?n.setProperty(t,e):typeof e!=&amp;amp;quot;number&amp;amp;quot;||e===0||pP.has(t)?t===&amp;amp;quot;float&amp;amp;quot;?n.cssFloat=e:n[t]=(&amp;amp;quot;&amp;amp;quot;+e).trim():n[t]=e+&amp;amp;quot;px&amp;amp;quot;}function a3(n,t,e){if(t!=null&amp;amp;amp;&amp;amp;amp;typeof t!=&amp;amp;quot;object&amp;amp;quot;)throw Error(ft(62));if(n=n.style,e!=null){for(var i in e)!e.hasOwnProperty(i)||t!=null&amp;amp;amp;&amp;amp;amp;t.hasOwnProperty(i)||(i.indexOf(&amp;amp;quot;--&amp;amp;quot;)===0?n.setProperty(i,&amp;amp;quot;&amp;amp;quot;):i===&amp;amp;quot;float&amp;amp;quot;?n.cssFloat=&amp;amp;quot;&amp;amp;quot;:n[i]=&amp;amp;quot;&amp;amp;quot;);for(var a in t)i=t[a],t.hasOwnProperty(a)&amp;amp;amp;&amp;amp;amp;e[a]!==i&amp;amp;amp;&amp;amp;amp;EC(n,a,i)}else for(var s in t)t.hasOwnProperty(s)&amp;amp;amp;&amp;amp;amp;EC(n,s,t[s])}function nE(n){if(n.indexOf(&amp;amp;quot;-&amp;amp;quot;)===-1)return!1;switch(n){case&amp;amp;quot;annotation-xml&amp;amp;quot;:case&amp;amp;quot;color-profile&amp;amp;quot;:case&amp;amp;quot;font-face&amp;amp;quot;:case&amp;amp;quot;font-face-src&amp;amp;quot;:case&amp;amp;quot;font-face-uri&amp;amp;quot;:case&amp;amp;quot;font-face-format&amp;amp;quot;:case&amp;amp;quot;font-face-name&amp;amp;quot;:case&amp;amp;quot;missing-glyph&amp;amp;quot;:return!1;default:return!0}}var mP=new Map([[&amp;amp;quot;acceptCharset&amp;amp;quot;,&amp;amp;quot;accept-charset&amp;amp;quot;],[&amp;amp;quot;htmlFor&amp;amp;quot;,&amp;amp;quot;for&amp;amp;quot;],[&amp;amp;quot;httpEquiv&amp;amp;quot;,&amp;amp;quot;http-equiv&amp;amp;quot;],[&amp;amp;quot;crossOrigin&amp;amp;quot;,&amp;amp;quot;crossorigin&amp;amp;quot;],[&amp;amp;quot;accentHeight&amp;amp;quot;,&amp;amp;quot;accent-height&amp;amp;quot;],[&amp;amp;quot;alignmentBaseline&amp;amp;quot;,&amp;amp;quot;alignment-baseline&amp;amp;quot;],[&amp;amp;quot;arabicForm&amp;amp;quot;,&amp;amp;quot;arabic-form&amp;amp;quot;],[&amp;amp;quot;baselineShift&amp;amp;quot;,&amp;amp;quot;baseline-shift&amp;amp;quot;],[&amp;amp;quot;capHeight&amp;amp;quot;,&amp;amp;quot;cap-height&amp;amp;quot;],[&amp;amp;quot;clipPath&amp;amp;quot;,&amp;amp;quot;clip-path&amp;amp;quot;],[&amp;amp;quot;clipRule&amp;amp;quot;,&amp;amp;quot;clip-rule&amp;amp;quot;],[&amp;amp;quot;colorInterpolation&amp;amp;quot;,&amp;amp;quot;color-interpolation&amp;amp;quot;],[&amp;amp;quot;colorInterpolationFilters&amp;amp;quot;,&amp;amp;quot;color-interpolation-filters&amp;amp;quot;],[&amp;amp;quot;colorProfile&amp;amp;quot;,&amp;amp;quot;color-profile&amp;amp;quot;],[&amp;amp;quot;colorRendering&amp;amp;quot;,&amp;amp;quot;color-rendering&amp;amp;quot;],[&amp;amp;quot;dominantBaseline&amp;amp;quot;,&amp;amp;quot;dominant-baseline&amp;amp;quot;],[&amp;amp;quot;enableBackground&amp;amp;quot;,&amp;amp;quot;enable-background&amp;amp;quot;],[&amp;amp;quot;fillOpacity&amp;amp;quot;,&amp;amp;quot;fill-opacity&amp;amp;quot;],[&amp;amp;quot;fillRule&amp;amp;quot;,&amp;amp;quot;fill-rule&amp;amp;quot;],[&amp;amp;quot;floodColor&amp;amp;quot;,&amp;amp;quot;flood-color&amp;amp;quot;],[&amp;amp;quot;floodOpacity&amp;amp;quot;,&amp;amp;quot;flood-opacity&amp;amp;quot;],[&amp;amp;quot;fontFamily&amp;amp;quot;,&amp;amp;quot;font-family&amp;amp;quot;],[&amp;amp;quot;fontSize&amp;amp;quot;,&amp;amp;quot;font-size&amp;amp;quot;],[&amp;amp;quot;fontSizeAdjust&amp;amp;quot;,&amp;amp;quot;font-size-adjust&amp;amp;quot;],[&amp;amp;quot;fontStretch&amp;amp;quot;,&amp;amp;quot;font-stretch&amp;amp;quot;],[&amp;amp;quot;fontStyle&amp;amp;quot;,&amp;amp;quot;font-style&amp;amp;quot;],[&amp;amp;quot;fontVariant&amp;amp;quot;,&amp;amp;quot;font-variant&amp;amp;quot;],[&amp;amp;quot;fontWeight&amp;amp;quot;,&amp;amp;quot;font-weight&amp;amp;quot;],[&amp;amp;quot;glyphName&amp;amp;quot;,&amp;amp;quot;glyph-name&amp;amp;quot;],[&amp;amp;quot;glyphOrientationHorizontal&amp;amp;quot;,&amp;amp;quot;glyph-orientation-horizontal&amp;amp;quot;],[&amp;amp;quot;glyphOrientationVertical&amp;amp;quot;,&amp;amp;quot;glyph-orientation-vertical&amp;amp;quot;],[&amp;amp;quot;horizAdvX&amp;amp;quot;,&amp;amp;quot;horiz-adv-x&amp;amp;quot;],[&amp;amp;quot;horizOriginX&amp;amp;quot;,&amp;amp;quot;horiz-origin-x&amp;amp;quot;],[&amp;amp;quot;imageRendering&amp;amp;quot;,&amp;amp;quot;image-rendering&amp;amp;quot;],[&amp;amp;quot;letterSpacing&amp;amp;quot;,&amp;amp;quot;letter-spacing&amp;amp;quot;],[&amp;amp;quot;lightingColor&amp;amp;quot;,&amp;amp;quot;lighting-color&amp;amp;quot;],[&amp;amp;quot;markerEnd&amp;amp;quot;,&amp;amp;quot;marker-end&amp;amp;quot;],[&amp;amp;quot;markerMid&amp;amp;quot;,&amp;amp;quot;marker-mid&amp;amp;quot;],[&amp;amp;quot;markerStart&amp;amp;quot;,&amp;amp;quot;marker-start&amp;amp;quot;],[&amp;amp;quot;overlinePosition&amp;amp;quot;,&amp;amp;quot;overline-position&amp;amp;quot;],[&amp;amp;quot;overlineThickness&amp;amp;quot;,&amp;amp;quot;overline-thickness&amp;amp;quot;],[&amp;amp;quot;paintOrder&amp;amp;quot;,&amp;amp;quot;paint-order&amp;amp;quot;],[&amp;amp;quot;panose-1&amp;amp;quot;,&amp;amp;quot;panose-1&amp;amp;quot;],[&amp;amp;quot;pointerEvents&amp;amp;quot;,&amp;amp;quot;pointer-events&amp;amp;quot;],[&amp;amp;quot;renderingIntent&amp;amp;quot;,&amp;amp;quot;rendering-intent&amp;amp;quot;],[&amp;amp;quot;shapeRendering&amp;amp;quot;,&amp;amp;quot;shape-rendering&amp;amp;quot;],[&amp;amp;quot;stopColor&amp;amp;quot;,&amp;amp;quot;stop-color&amp;amp;quot;],[&amp;amp;quot;stopOpacity&amp;amp;quot;,&amp;amp;quot;stop-opacity&amp;amp;quot;],[&amp;amp;quot;strikethroughPosition&amp;amp;quot;,&amp;amp;quot;strikethrough-position&amp;amp;quot;],[&amp;amp;quot;strikethroughThickness&amp;amp;quot;,&amp;amp;quot;strikethrough-thickness&amp;amp;quot;],[&amp;amp;quot;strokeDasharray&amp;amp;quot;,&amp;amp;quot;stroke-dasharray&amp;amp;quot;],[&amp;amp;quot;strokeDashoffset&amp;amp;quot;,&amp;amp;quot;stroke-dashoffset&amp;amp;quot;],[&amp;amp;quot;strokeLinecap&amp;amp;quot;,&amp;amp;quot;stroke-linecap&amp;amp;quot;],[&amp;amp;quot;strokeLinejoin&amp;amp;quot;,&amp;amp;quot;stroke-linejoin&amp;amp;quot;],[&amp;amp;quot;strokeMiterlimit&amp;amp;quot;,&amp;amp;quot;stroke-miterlimit&amp;amp;quot;],[&amp;amp;quot;strokeOpacity&amp;amp;quot;,&amp;amp;quot;stroke-opacity&amp;amp;quot;],[&amp;amp;quot;strokeWidth&amp;amp;quot;,&amp;amp;quot;stroke-width&amp;amp;quot;],[&amp;amp;quot;textAnchor&amp;amp;quot;,&amp;amp;quot;text-anchor&amp;amp;quot;],[&amp;amp;quot;textDecoration&amp;amp;quot;,&amp;amp;quot;text-decoration&amp;amp;quot;],[&amp;amp;quot;textRendering&amp;amp;quot;,&amp;amp;quot;text-rendering&amp;amp;quot;],[&amp;amp;quot;transformOrigin&amp;amp;quot;,&amp;amp;quot;transform-origin&amp;amp;quot;],[&amp;amp;quot;underlinePosition&amp;amp;quot;,&amp;amp;quot;underline-position&amp;amp;quot;],[&amp;amp;quot;underlineThickness&amp;amp;quot;,&amp;amp;quot;underline-thickness&amp;amp;quot;],[&amp;amp;quot;unicodeBidi&amp;amp;quot;,&amp;amp;quot;unicode-bidi&amp;amp;quot;],[&amp;amp;quot;unicodeRange&amp;amp;quot;,&amp;amp;quot;unicode-range&amp;amp;quot;],[&amp;amp;quot;unitsPerEm&amp;amp;quot;,&amp;amp;quot;units-per-em&amp;amp;quot;],[&amp;amp;quot;vAlphabetic&amp;amp;quot;,&amp;amp;quot;v-alphabetic&amp;amp;quot;],[&amp;amp;quot;vHanging&amp;amp;quot;,&amp;amp;quot;v-hanging&amp;amp;quot;],[&amp;amp;quot;vIdeographic&amp;amp;quot;,&amp;amp;quot;v-ideographic&amp;amp;quot;],[&amp;amp;quot;vMathematical&amp;amp;quot;,&amp;amp;quot;v-mathematical&amp;amp;quot;],[&amp;amp;quot;vectorEffect&amp;amp;quot;,&amp;amp;quot;vector-effect&amp;amp;quot;],[&amp;amp;quot;vertAdvY&amp;amp;quot;,&amp;amp;quot;vert-adv-y&amp;amp;quot;],[&amp;amp;quot;vertOriginX&amp;amp;quot;,&amp;amp;quot;vert-origin-x&amp;amp;quot;],[&amp;amp;quot;vertOriginY&amp;amp;quot;,&amp;amp;quot;vert-origin-y&amp;amp;quot;],[&amp;amp;quot;wordSpacing&amp;amp;quot;,&amp;amp;quot;word-spacing&amp;amp;quot;],[&amp;amp;quot;writingMode&amp;amp;quot;,&amp;amp;quot;writing-mode&amp;amp;quot;],[&amp;amp;quot;xmlnsXlink&amp;amp;quot;,&amp;amp;quot;xmlns:xlink&amp;amp;quot;],[&amp;amp;quot;xHeight&amp;amp;quot;,&amp;amp;quot;x-height&amp;amp;quot;]]),gP=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function J0(n){return gP.test(&amp;amp;quot;&amp;amp;quot;+n)?&amp;amp;quot;javascript:throw new Error(&amp;amp;#39;React has blocked a javascript: URL as a security precaution.&amp;amp;#39;)&amp;amp;quot;:n}var h1=null;function iE(n){return n=n.target||n.srcElement||window,n.correspondingUseElement&amp;amp;amp;&amp;amp;amp;(n=n.correspondingUseElement),n.nodeType===3?n.parentNode:n}var Oc=null,qc=null;function bC(n){var t=uf(n);if(t&amp;amp;amp;&amp;amp;amp;(n=t.stateNode)){var e=n[ta]||null;t:switch(n=t.stateNode,t.type){case&amp;amp;quot;input&amp;amp;quot;:if(c1(n,e.value,e.defaultValue,e.defaultValue,e.checked,e.defaultChecked,e.type,e.name),t=e.name,e.type===&amp;amp;quot;radio&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t!=null){for(e=n;e.parentNode;)e=e.parentNode;for(e=e.querySelectorAll(&amp;amp;#39;input[name=&amp;amp;quot;&amp;amp;#39;+es(&amp;amp;quot;&amp;amp;quot;+t)+&amp;amp;#39;&amp;amp;quot;][type=&amp;amp;quot;radio&amp;amp;quot;]&amp;amp;#39;),t=0;t&amp;amp;lt;e.length;t++){var i=e[t];if(i!==n&amp;amp;amp;&amp;amp;amp;i.form===n.form){var a=i[ta]||null;if(!a)throw Error(ft(90));c1(i,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t&amp;amp;lt;e.length;t++)i=e[t],i.form===n.form&amp;amp;amp;&amp;amp;amp;t3(i)}break t;case&amp;amp;quot;textarea&amp;amp;quot;:n3(n,e.value,e.defaultValue);break t;case&amp;amp;quot;select&amp;amp;quot;:t=e.value,t!=null&amp;amp;amp;&amp;amp;amp;Xc(n,!!e.multiple,t,!1)}}}var wM=!1;function s3(n,t,e){if(wM)return n(t,e);wM=!0;try{var i=n(t);return i}finally{if(wM=!1,(Oc!==null||qc!==null)&amp;amp;amp;&amp;amp;amp;(Qv(),Oc&amp;amp;amp;&amp;amp;amp;(t=Oc,n=qc,qc=Oc=null,bC(t),n)))for(t=0;t&amp;amp;lt;n.length;t++)bC(n[t])}}function Gd(n,t){var e=n.stateNode;if(e===null)return null;var i=e[ta]||null;if(i===null)return null;e=i[t];t:switch(t){case&amp;amp;quot;onClick&amp;amp;quot;:case&amp;amp;quot;onClickCapture&amp;amp;quot;:case&amp;amp;quot;onDoubleClick&amp;amp;quot;:case&amp;amp;quot;onDoubleClickCapture&amp;amp;quot;:case&amp;amp;quot;onMouseDown&amp;amp;quot;:case&amp;amp;quot;onMouseDownCapture&amp;amp;quot;:case&amp;amp;quot;onMouseMove&amp;amp;quot;:case&amp;amp;quot;onMouseMoveCapture&amp;amp;quot;:case&amp;amp;quot;onMouseUp&amp;amp;quot;:case&amp;amp;quot;onMouseUpCapture&amp;amp;quot;:case&amp;amp;quot;onMouseEnter&amp;amp;quot;:(i=!i.disabled)||(n=n.type,i=!(n===&amp;amp;quot;button&amp;amp;quot;||n===&amp;amp;quot;input&amp;amp;quot;||n===&amp;amp;quot;select&amp;amp;quot;||n===&amp;amp;quot;textarea&amp;amp;quot;)),n=!i;break t;default:n=!1}if(n)return null;if(e&amp;amp;amp;&amp;amp;amp;typeof e!=&amp;amp;quot;function&amp;amp;quot;)throw Error(ft(231,t,typeof e));return e}var Lr=!(typeof window&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||typeof window.document&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||typeof window.document.createElement&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;),d1=!1;if(Lr)try{bc={},Object.defineProperty(bc,&amp;amp;quot;passive&amp;amp;quot;,{get:function(){d1=!0}}),window.addEventListener(&amp;amp;quot;test&amp;amp;quot;,bc,bc),window.removeEventListener(&amp;amp;quot;test&amp;amp;quot;,bc,bc)}catch{d1=!1}var bc,Uo=null,aE=null,$0=null;function r3(){if($0)return $0;var n,t=aE,e=t.length,i,a=&amp;amp;quot;value&amp;amp;quot;in Uo?Uo.value:Uo.textContent,s=a.length;for(n=0;n&amp;amp;lt;e&amp;amp;amp;&amp;amp;amp;t[n]===a[n];n++);var o=e-n;for(i=1;i&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;t[e-i]===a[s-i];i++);return $0=a.slice(n,1&amp;amp;lt;i?1-i:void 0)}function tv(n){var t=n.keyCode;return&amp;amp;quot;charCode&amp;amp;quot;in n?(n=n.charCode,n===0&amp;amp;amp;&amp;amp;amp;t===13&amp;amp;amp;&amp;amp;amp;(n=13)):n=t,n===10&amp;amp;amp;&amp;amp;amp;(n=13),32&amp;amp;lt;=n||n===13?n:0}function I0(){return!0}function TC(){return!1}function ea(n){function t(e,i,a,s,o){this._reactName=e,this._targetInst=a,this.type=i,this.nativeEvent=s,this.target=o,this.currentTarget=null;for(var u in n)n.hasOwnProperty(u)&amp;amp;amp;&amp;amp;amp;(e=n[u],this[u]=e?e(s):s[u]);return this.isDefaultPrevented=(s.defaultPrevented!=null?s.defaultPrevented:s.returnValue===!1)?I0:TC,this.isPropagationStopped=TC,this}return pn(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&amp;amp;amp;&amp;amp;amp;(e.preventDefault?e.preventDefault():typeof e.returnValue!=&amp;amp;quot;unknown&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(e.returnValue=!1),this.isDefaultPrevented=I0)},stopPropagation:function(){var e=this.nativeEvent;e&amp;amp;amp;&amp;amp;amp;(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=&amp;amp;quot;unknown&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(e.cancelBubble=!0),this.isPropagationStopped=I0)},persist:function(){},isPersistent:I0}),t}var $l={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(n){return n.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Vv=ea($l),rp=pn({},$l,{view:0,detail:0}),vP=ea(rp),DM,UM,gd,Gv=pn({},rp,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:sE,button:0,buttons:0,relatedTarget:function(n){return n.relatedTarget===void 0?n.fromElement===n.srcElement?n.toElement:n.fromElement:n.relatedTarget},movementX:function(n){return&amp;amp;quot;movementX&amp;amp;quot;in n?n.movementX:(n!==gd&amp;amp;amp;&amp;amp;amp;(gd&amp;amp;amp;&amp;amp;amp;n.type===&amp;amp;quot;mousemove&amp;amp;quot;?(DM=n.screenX-gd.screenX,UM=n.screenY-gd.screenY):UM=DM=0,gd=n),DM)},movementY:function(n){return&amp;amp;quot;movementY&amp;amp;quot;in n?n.movementY:UM}}),AC=ea(Gv),yP=pn({},Gv,{dataTransfer:0}),_P=ea(yP),xP=pn({},rp,{relatedTarget:0}),NM=ea(xP),SP=pn({},$l,{animationName:0,elapsedTime:0,pseudoElement:0}),MP=ea(SP),EP=pn({},$l,{clipboardData:function(n){return&amp;amp;quot;clipboardData&amp;amp;quot;in n?n.clipboardData:window.clipboardData}}),bP=ea(EP),TP=pn({},$l,{data:0}),RC=ea(TP),AP={Esc:&amp;amp;quot;Escape&amp;amp;quot;,Spacebar:&amp;amp;quot; &amp;amp;quot;,Left:&amp;amp;quot;ArrowLeft&amp;amp;quot;,Up:&amp;amp;quot;ArrowUp&amp;amp;quot;,Right:&amp;amp;quot;ArrowRight&amp;amp;quot;,Down:&amp;amp;quot;ArrowDown&amp;amp;quot;,Del:&amp;amp;quot;Delete&amp;amp;quot;,Win:&amp;amp;quot;OS&amp;amp;quot;,Menu:&amp;amp;quot;ContextMenu&amp;amp;quot;,Apps:&amp;amp;quot;ContextMenu&amp;amp;quot;,Scroll:&amp;amp;quot;ScrollLock&amp;amp;quot;,MozPrintableKey:&amp;amp;quot;Unidentified&amp;amp;quot;},RP={8:&amp;amp;quot;Backspace&amp;amp;quot;,9:&amp;amp;quot;Tab&amp;amp;quot;,12:&amp;amp;quot;Clear&amp;amp;quot;,13:&amp;amp;quot;Enter&amp;amp;quot;,16:&amp;amp;quot;Shift&amp;amp;quot;,17:&amp;amp;quot;Control&amp;amp;quot;,18:&amp;amp;quot;Alt&amp;amp;quot;,19:&amp;amp;quot;Pause&amp;amp;quot;,20:&amp;amp;quot;CapsLock&amp;amp;quot;,27:&amp;amp;quot;Escape&amp;amp;quot;,32:&amp;amp;quot; &amp;amp;quot;,33:&amp;amp;quot;PageUp&amp;amp;quot;,34:&amp;amp;quot;PageDown&amp;amp;quot;,35:&amp;amp;quot;End&amp;amp;quot;,36:&amp;amp;quot;Home&amp;amp;quot;,37:&amp;amp;quot;ArrowLeft&amp;amp;quot;,38:&amp;amp;quot;ArrowUp&amp;amp;quot;,39:&amp;amp;quot;ArrowRight&amp;amp;quot;,40:&amp;amp;quot;ArrowDown&amp;amp;quot;,45:&amp;amp;quot;Insert&amp;amp;quot;,46:&amp;amp;quot;Delete&amp;amp;quot;,112:&amp;amp;quot;F1&amp;amp;quot;,113:&amp;amp;quot;F2&amp;amp;quot;,114:&amp;amp;quot;F3&amp;amp;quot;,115:&amp;amp;quot;F4&amp;amp;quot;,116:&amp;amp;quot;F5&amp;amp;quot;,117:&amp;amp;quot;F6&amp;amp;quot;,118:&amp;amp;quot;F7&amp;amp;quot;,119:&amp;amp;quot;F8&amp;amp;quot;,120:&amp;amp;quot;F9&amp;amp;quot;,121:&amp;amp;quot;F10&amp;amp;quot;,122:&amp;amp;quot;F11&amp;amp;quot;,123:&amp;amp;quot;F12&amp;amp;quot;,144:&amp;amp;quot;NumLock&amp;amp;quot;,145:&amp;amp;quot;ScrollLock&amp;amp;quot;,224:&amp;amp;quot;Meta&amp;amp;quot;},CP={Alt:&amp;amp;quot;altKey&amp;amp;quot;,Control:&amp;amp;quot;ctrlKey&amp;amp;quot;,Meta:&amp;amp;quot;metaKey&amp;amp;quot;,Shift:&amp;amp;quot;shiftKey&amp;amp;quot;};function wP(n){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(n):(n=CP[n])?!!t[n]:!1}function sE(){return wP}var DP=pn({},rp,{key:function(n){if(n.key){var t=AP[n.key]||n.key;if(t!==&amp;amp;quot;Unidentified&amp;amp;quot;)return t}return n.type===&amp;amp;quot;keypress&amp;amp;quot;?(n=tv(n),n===13?&amp;amp;quot;Enter&amp;amp;quot;:String.fromCharCode(n)):n.type===&amp;amp;quot;keydown&amp;amp;quot;||n.type===&amp;amp;quot;keyup&amp;amp;quot;?RP[n.keyCode]||&amp;amp;quot;Unidentified&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:sE,charCode:function(n){return n.type===&amp;amp;quot;keypress&amp;amp;quot;?tv(n):0},keyCode:function(n){return n.type===&amp;amp;quot;keydown&amp;amp;quot;||n.type===&amp;amp;quot;keyup&amp;amp;quot;?n.keyCode:0},which:function(n){return n.type===&amp;amp;quot;keypress&amp;amp;quot;?tv(n):n.type===&amp;amp;quot;keydown&amp;amp;quot;||n.type===&amp;amp;quot;keyup&amp;amp;quot;?n.keyCode:0}}),UP=ea(DP),NP=pn({},Gv,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),CC=ea(NP),OP=pn({},rp,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:sE}),LP=ea(OP),zP=pn({},$l,{propertyName:0,elapsedTime:0,pseudoElement:0}),BP=ea(zP),PP=pn({},Gv,{deltaX:function(n){return&amp;amp;quot;deltaX&amp;amp;quot;in n?n.deltaX:&amp;amp;quot;wheelDeltaX&amp;amp;quot;in n?-n.wheelDeltaX:0},deltaY:function(n){return&amp;amp;quot;deltaY&amp;amp;quot;in n?n.deltaY:&amp;amp;quot;wheelDeltaY&amp;amp;quot;in n?-n.wheelDeltaY:&amp;amp;quot;wheelDelta&amp;amp;quot;in n?-n.wheelDelta:0},deltaZ:0,deltaMode:0}),IP=ea(PP),HP=pn({},$l,{newState:0,oldState:0}),FP=ea(HP),VP=[9,13,27,32],rE=Lr&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;CompositionEvent&amp;amp;quot;in window,Rd=null;Lr&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;documentMode&amp;amp;quot;in document&amp;amp;amp;&amp;amp;amp;(Rd=document.documentMode);var GP=Lr&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;TextEvent&amp;amp;quot;in window&amp;amp;amp;&amp;amp;amp;!Rd,o3=Lr&amp;amp;amp;&amp;amp;amp;(!rE||Rd&amp;amp;amp;&amp;amp;amp;8&amp;amp;lt;Rd&amp;amp;amp;&amp;amp;amp;11&amp;amp;gt;=Rd),wC=&amp;amp;quot; &amp;amp;quot;,DC=!1;function l3(n,t){switch(n){case&amp;amp;quot;keyup&amp;amp;quot;:return VP.indexOf(t.keyCode)!==-1;case&amp;amp;quot;keydown&amp;amp;quot;:return t.keyCode!==229;case&amp;amp;quot;keypress&amp;amp;quot;:case&amp;amp;quot;mousedown&amp;amp;quot;:case&amp;amp;quot;focusout&amp;amp;quot;:return!0;default:return!1}}function u3(n){return n=n.detail,typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;data&amp;amp;quot;in n?n.data:null}var Lc=!1;function XP(n,t){switch(n){case&amp;amp;quot;compositionend&amp;amp;quot;:return u3(t);case&amp;amp;quot;keypress&amp;amp;quot;:return t.which!==32?null:(DC=!0,wC);case&amp;amp;quot;textInput&amp;amp;quot;:return n=t.data,n===wC&amp;amp;amp;&amp;amp;amp;DC?null:n;default:return null}}function qP(n,t){if(Lc)return n===&amp;amp;quot;compositionend&amp;amp;quot;||!rE&amp;amp;amp;&amp;amp;amp;l3(n,t)?(n=r3(),$0=aE=Uo=null,Lc=!1,n):null;switch(n){case&amp;amp;quot;paste&amp;amp;quot;:return null;case&amp;amp;quot;keypress&amp;amp;quot;:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&amp;amp;amp;&amp;amp;amp;t.altKey){if(t.char&amp;amp;amp;&amp;amp;amp;1&amp;amp;lt;t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case&amp;amp;quot;compositionend&amp;amp;quot;:return o3&amp;amp;amp;&amp;amp;amp;t.locale!==&amp;amp;quot;ko&amp;amp;quot;?null:t.data;default:return null}}var YP={color:!0,date:!0,datetime:!0,&amp;amp;quot;datetime-local&amp;amp;quot;:!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function UC(n){var t=n&amp;amp;amp;&amp;amp;amp;n.nodeName&amp;amp;amp;&amp;amp;amp;n.nodeName.toLowerCase();return t===&amp;amp;quot;input&amp;amp;quot;?!!YP[n.type]:t===&amp;amp;quot;textarea&amp;amp;quot;}function c3(n,t,e,i){Oc?qc?qc.push(i):qc=[i]:Oc=i,t=Ov(t,&amp;amp;quot;onChange&amp;amp;quot;),0&amp;amp;lt;t.length&amp;amp;amp;&amp;amp;amp;(e=new Vv(&amp;amp;quot;onChange&amp;amp;quot;,&amp;amp;quot;change&amp;amp;quot;,null,e,i),n.push({event:e,listeners:t}))}var Cd=null,Xd=null;function WP(n){nU(n,0)}function Xv(n){var t=Td(n);if(t3(t))return n}function NC(n,t){if(n===&amp;amp;quot;change&amp;amp;quot;)return t}var f3=!1;Lr&amp;amp;amp;&amp;amp;amp;(Lr?(F0=&amp;amp;quot;oninput&amp;amp;quot;in document,F0||(OM=document.createElement(&amp;amp;quot;div&amp;amp;quot;),OM.setAttribute(&amp;amp;quot;oninput&amp;amp;quot;,&amp;amp;quot;return;&amp;amp;quot;),F0=typeof OM.oninput==&amp;amp;quot;function&amp;amp;quot;),H0=F0):H0=!1,f3=H0&amp;amp;amp;&amp;amp;amp;(!document.documentMode||9&amp;amp;lt;document.documentMode));var H0,F0,OM;function OC(){Cd&amp;amp;amp;&amp;amp;amp;(Cd.detachEvent(&amp;amp;quot;onpropertychange&amp;amp;quot;,h3),Xd=Cd=null)}function h3(n){if(n.propertyName===&amp;amp;quot;value&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Xv(Xd)){var t=[];c3(t,Xd,n,iE(n)),s3(WP,t)}}function kP(n,t,e){n===&amp;amp;quot;focusin&amp;amp;quot;?(OC(),Cd=t,Xd=e,Cd.attachEvent(&amp;amp;quot;onpropertychange&amp;amp;quot;,h3)):n===&amp;amp;quot;focusout&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;OC()}function ZP(n){if(n===&amp;amp;quot;selectionchange&amp;amp;quot;||n===&amp;amp;quot;keyup&amp;amp;quot;||n===&amp;amp;quot;keydown&amp;amp;quot;)return Xv(Xd)}function jP(n,t){if(n===&amp;amp;quot;click&amp;amp;quot;)return Xv(t)}function QP(n,t){if(n===&amp;amp;quot;input&amp;amp;quot;||n===&amp;amp;quot;change&amp;amp;quot;)return Xv(t)}function KP(n,t){return n===t&amp;amp;amp;&amp;amp;amp;(n!==0||1/n===1/t)||n!==n&amp;amp;amp;&amp;amp;amp;t!==t}var Ca=typeof Object.is==&amp;amp;quot;function&amp;amp;quot;?Object.is:KP;function qd(n,t){if(Ca(n,t))return!0;if(typeof n!=&amp;amp;quot;object&amp;amp;quot;||n===null||typeof t!=&amp;amp;quot;object&amp;amp;quot;||t===null)return!1;var e=Object.keys(n),i=Object.keys(t);if(e.length!==i.length)return!1;for(i=0;i&amp;amp;lt;e.length;i++){var a=e[i];if(!l1.call(t,a)||!Ca(n[a],t[a]))return!1}return!0}function LC(n){for(;n&amp;amp;amp;&amp;amp;amp;n.firstChild;)n=n.firstChild;return n}function zC(n,t){var e=LC(n);n=0;for(var i;e;){if(e.nodeType===3){if(i=n+e.textContent.length,n&amp;amp;lt;=t&amp;amp;amp;&amp;amp;amp;i&amp;amp;gt;=t)return{node:e,offset:t-n};n=i}t:{for(;e;){if(e.nextSibling){e=e.nextSibling;break t}e=e.parentNode}e=void 0}e=LC(e)}}function d3(n,t){return n&amp;amp;amp;&amp;amp;amp;t?n===t?!0:n&amp;amp;amp;&amp;amp;amp;n.nodeType===3?!1:t&amp;amp;amp;&amp;amp;amp;t.nodeType===3?d3(n,t.parentNode):&amp;amp;quot;contains&amp;amp;quot;in n?n.contains(t):n.compareDocumentPosition?!!(n.compareDocumentPosition(t)&amp;amp;amp;16):!1:!1}function p3(n){n=n!=null&amp;amp;amp;&amp;amp;amp;n.ownerDocument!=null&amp;amp;amp;&amp;amp;amp;n.ownerDocument.defaultView!=null?n.ownerDocument.defaultView:window;for(var t=mv(n.document);t instanceof n.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href==&amp;amp;quot;string&amp;amp;quot;}catch{e=!1}if(e)n=t.contentWindow;else break;t=mv(n.document)}return t}function oE(n){var t=n&amp;amp;amp;&amp;amp;amp;n.nodeName&amp;amp;amp;&amp;amp;amp;n.nodeName.toLowerCase();return t&amp;amp;amp;&amp;amp;amp;(t===&amp;amp;quot;input&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.type===&amp;amp;quot;text&amp;amp;quot;||n.type===&amp;amp;quot;search&amp;amp;quot;||n.type===&amp;amp;quot;tel&amp;amp;quot;||n.type===&amp;amp;quot;url&amp;amp;quot;||n.type===&amp;amp;quot;password&amp;amp;quot;)||t===&amp;amp;quot;textarea&amp;amp;quot;||n.contentEditable===&amp;amp;quot;true&amp;amp;quot;)}var JP=Lr&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;documentMode&amp;amp;quot;in document&amp;amp;amp;&amp;amp;amp;11&amp;amp;gt;=document.documentMode,zc=null,p1=null,wd=null,m1=!1;function BC(n,t,e){var i=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;m1||zc==null||zc!==mv(i)||(i=zc,&amp;amp;quot;selectionStart&amp;amp;quot;in i&amp;amp;amp;&amp;amp;amp;oE(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&amp;amp;amp;&amp;amp;amp;i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),wd&amp;amp;amp;&amp;amp;amp;qd(wd,i)||(wd=i,i=Ov(p1,&amp;amp;quot;onSelect&amp;amp;quot;),0&amp;amp;lt;i.length&amp;amp;amp;&amp;amp;amp;(t=new Vv(&amp;amp;quot;onSelect&amp;amp;quot;,&amp;amp;quot;select&amp;amp;quot;,null,t,e),n.push({event:t,listeners:i}),t.target=zc)))}function Pl(n,t){var e={};return e[n.toLowerCase()]=t.toLowerCase(),e[&amp;amp;quot;Webkit&amp;amp;quot;+n]=&amp;amp;quot;webkit&amp;amp;quot;+t,e[&amp;amp;quot;Moz&amp;amp;quot;+n]=&amp;amp;quot;moz&amp;amp;quot;+t,e}var Bc={animationend:Pl(&amp;amp;quot;Animation&amp;amp;quot;,&amp;amp;quot;AnimationEnd&amp;amp;quot;),animationiteration:Pl(&amp;amp;quot;Animation&amp;amp;quot;,&amp;amp;quot;AnimationIteration&amp;amp;quot;),animationstart:Pl(&amp;amp;quot;Animation&amp;amp;quot;,&amp;amp;quot;AnimationStart&amp;amp;quot;),transitionrun:Pl(&amp;amp;quot;Transition&amp;amp;quot;,&amp;amp;quot;TransitionRun&amp;amp;quot;),transitionstart:Pl(&amp;amp;quot;Transition&amp;amp;quot;,&amp;amp;quot;TransitionStart&amp;amp;quot;),transitioncancel:Pl(&amp;amp;quot;Transition&amp;amp;quot;,&amp;amp;quot;TransitionCancel&amp;amp;quot;),transitionend:Pl(&amp;amp;quot;Transition&amp;amp;quot;,&amp;amp;quot;TransitionEnd&amp;amp;quot;)},LM={},m3={};Lr&amp;amp;amp;&amp;amp;amp;(m3=document.createElement(&amp;amp;quot;div&amp;amp;quot;).style,&amp;amp;quot;AnimationEvent&amp;amp;quot;in window||(delete Bc.animationend.animation,delete Bc.animationiteration.animation,delete Bc.animationstart.animation),&amp;amp;quot;TransitionEvent&amp;amp;quot;in window||delete Bc.transitionend.transition);function tu(n){if(LM[n])return LM[n];if(!Bc[n])return n;var t=Bc[n],e;for(e in t)if(t.hasOwnProperty(e)&amp;amp;amp;&amp;amp;amp;e in m3)return LM[n]=t[e];return n}var g3=tu(&amp;amp;quot;animationend&amp;amp;quot;),v3=tu(&amp;amp;quot;animationiteration&amp;amp;quot;),y3=tu(&amp;amp;quot;animationstart&amp;amp;quot;),$P=tu(&amp;amp;quot;transitionrun&amp;amp;quot;),tI=tu(&amp;amp;quot;transitionstart&amp;amp;quot;),eI=tu(&amp;amp;quot;transitioncancel&amp;amp;quot;),_3=tu(&amp;amp;quot;transitionend&amp;amp;quot;),x3=new Map,g1=&amp;amp;quot;abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;);g1.push(&amp;amp;quot;scrollEnd&amp;amp;quot;);function _s(n,t){x3.set(n,t),Jl(t,[n])}var PC=new WeakMap;function ns(n,t){if(typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!==null){var e=PC.get(n);return e!==void 0?e:(t={value:n,source:t,stack:MC(t)},PC.set(n,t),t)}return{value:n,source:t,stack:MC(t)}}var Ka=[],Pc=0,lE=0;function qv(){for(var n=Pc,t=lE=Pc=0;t&amp;amp;lt;n;){var e=Ka[t];Ka[t++]=null;var i=Ka[t];Ka[t++]=null;var a=Ka[t];Ka[t++]=null;var s=Ka[t];if(Ka[t++]=null,i!==null&amp;amp;amp;&amp;amp;amp;a!==null){var o=i.pending;o===null?a.next=a:(a.next=o.next,o.next=a),i.pending=a}s!==0&amp;amp;amp;&amp;amp;amp;S3(e,a,s)}}function Yv(n,t,e,i){Ka[Pc++]=n,Ka[Pc++]=t,Ka[Pc++]=e,Ka[Pc++]=i,lE|=i,n.lanes|=i,n=n.alternate,n!==null&amp;amp;amp;&amp;amp;amp;(n.lanes|=i)}function uE(n,t,e,i){return Yv(n,t,e,i),gv(n)}function cf(n,t){return Yv(n,null,null,t),gv(n)}function S3(n,t,e){n.lanes|=e;var i=n.alternate;i!==null&amp;amp;amp;&amp;amp;amp;(i.lanes|=e);for(var a=!1,s=n.return;s!==null;)s.childLanes|=e,i=s.alternate,i!==null&amp;amp;amp;&amp;amp;amp;(i.childLanes|=e),s.tag===22&amp;amp;amp;&amp;amp;amp;(n=s.stateNode,n===null||n._visibility&amp;amp;amp;1||(a=!0)),n=s,s=s.return;return n.tag===3?(s=n.stateNode,a&amp;amp;amp;&amp;amp;amp;t!==null&amp;amp;amp;&amp;amp;amp;(a=31-Ta(e),n=s.hiddenUpdates,i=n[a],i===null?n[a]=[t]:i.push(t),t.lane=e|536870912),s):null}function gv(n){if(50&amp;amp;lt;Hd)throw Hd=0,P1=null,Error(ft(185));for(var t=n.return;t!==null;)n=t,t=n.return;return n.tag===3?n.stateNode:null}var Ic={};function nI(n,t,e,i){this.tag=n,this.key=e,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ea(n,t,e,i){return new nI(n,t,e,i)}function cE(n){return n=n.prototype,!(!n||!n.isReactComponent)}function Nr(n,t){var e=n.alternate;return e===null?(e=Ea(n.tag,t,n.key,n.mode),e.elementType=n.elementType,e.type=n.type,e.stateNode=n.stateNode,e.alternate=n,n.alternate=e):(e.pendingProps=t,e.type=n.type,e.flags=0,e.subtreeFlags=0,e.deletions=null),e.flags=n.flags&amp;amp;amp;65011712,e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},e.sibling=n.sibling,e.index=n.index,e.ref=n.ref,e.refCleanup=n.refCleanup,e}function M3(n,t){n.flags&amp;amp;amp;=65011714;var e=n.alternate;return e===null?(n.childLanes=0,n.lanes=t,n.child=null,n.subtreeFlags=0,n.memoizedProps=null,n.memoizedState=null,n.updateQueue=null,n.dependencies=null,n.stateNode=null):(n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.subtreeFlags=0,n.deletions=null,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,n.type=e.type,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),n}function ev(n,t,e,i,a,s){var o=0;if(i=n,typeof n==&amp;amp;quot;function&amp;amp;quot;)cE(n)&amp;amp;amp;&amp;amp;amp;(o=1);else if(typeof n==&amp;amp;quot;string&amp;amp;quot;)o=nH(n,e,Ws.current)?26:n===&amp;amp;quot;html&amp;amp;quot;||n===&amp;amp;quot;head&amp;amp;quot;||n===&amp;amp;quot;body&amp;amp;quot;?27:5;else t:switch(n){case a1:return n=Ea(31,e,t,a),n.elementType=a1,n.lanes=s,n;case Dc:return Gl(e.children,a,s,t);case Vw:o=8,a|=24;break;case e1:return n=Ea(12,e,t,a|2),n.elementType=e1,n.lanes=s,n;case n1:return n=Ea(13,e,t,a),n.elementType=n1,n.lanes=s,n;case i1:return n=Ea(19,e,t,a),n.elementType=i1,n.lanes=s,n;default:if(typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!==null)switch(n.$$typeof){case W4:case Rr:o=10;break t;case Gw:o=9;break t;case Q1:o=11;break t;case K1:o=14;break t;case bo:o=16,i=null;break t}o=29,e=Error(ft(130,n===null?&amp;amp;quot;null&amp;amp;quot;:typeof n,&amp;amp;quot;&amp;amp;quot;)),i=null}return t=Ea(o,e,t,a),t.elementType=n,t.type=i,t.lanes=s,t}function Gl(n,t,e,i){return n=Ea(7,n,i,t),n.lanes=e,n}function zM(n,t,e){return n=Ea(6,n,null,t),n.lanes=e,n}function BM(n,t,e){return t=Ea(4,n.children!==null?n.children:[],n.key,t),t.lanes=e,t.stateNode={containerInfo:n.containerInfo,pendingChildren:null,implementation:n.implementation},t}var Hc=[],Fc=0,vv=null,yv=0,$a=[],ts=0,Xl=null,Cr=1,wr=&amp;amp;quot;&amp;amp;quot;;function Hl(n,t){Hc[Fc++]=yv,Hc[Fc++]=vv,vv=n,yv=t}function E3(n,t,e){$a[ts++]=Cr,$a[ts++]=wr,$a[ts++]=Xl,Xl=n;var i=Cr;n=wr;var a=32-Ta(i)-1;i&amp;amp;amp;=~(1&amp;amp;lt;&amp;amp;lt;a),e+=1;var s=32-Ta(t)+a;if(30&amp;amp;lt;s){var o=a-a%5;s=(i&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;o)-1).toString(32),i&amp;amp;gt;&amp;amp;gt;=o,a-=o,Cr=1&amp;amp;lt;&amp;amp;lt;32-Ta(t)+a|e&amp;amp;lt;&amp;amp;lt;a|i,wr=s+n}else Cr=1&amp;amp;lt;&amp;amp;lt;s|e&amp;amp;lt;&amp;amp;lt;a|i,wr=n}function fE(n){n.return!==null&amp;amp;amp;&amp;amp;amp;(Hl(n,1),E3(n,1,0))}function hE(n){for(;n===vv;)vv=Hc[--Fc],Hc[Fc]=null,yv=Hc[--Fc],Hc[Fc]=null;for(;n===Xl;)Xl=$a[--ts],$a[ts]=null,wr=$a[--ts],$a[ts]=null,Cr=$a[--ts],$a[ts]=null}var Vi=null,Cn=null,Ve=!1,ql=null,qs=!1,v1=Error(ft(519));function Zl(n){var t=Error(ft(418,&amp;amp;quot;&amp;amp;quot;));throw Yd(ns(t,n)),v1}function IC(n){var t=n.stateNode,e=n.type,i=n.memoizedProps;switch(t[Ri]=n,t[ta]=i,e){case&amp;amp;quot;dialog&amp;amp;quot;:Re(&amp;amp;quot;cancel&amp;amp;quot;,t),Re(&amp;amp;quot;close&amp;amp;quot;,t);break;case&amp;amp;quot;iframe&amp;amp;quot;:case&amp;amp;quot;object&amp;amp;quot;:case&amp;amp;quot;embed&amp;amp;quot;:Re(&amp;amp;quot;load&amp;amp;quot;,t);break;case&amp;amp;quot;video&amp;amp;quot;:case&amp;amp;quot;audio&amp;amp;quot;:for(e=0;e&amp;amp;lt;Zd.length;e++)Re(Zd[e],t);break;case&amp;amp;quot;source&amp;amp;quot;:Re(&amp;amp;quot;error&amp;amp;quot;,t);break;case&amp;amp;quot;img&amp;amp;quot;:case&amp;amp;quot;image&amp;amp;quot;:case&amp;amp;quot;link&amp;amp;quot;:Re(&amp;amp;quot;error&amp;amp;quot;,t),Re(&amp;amp;quot;load&amp;amp;quot;,t);break;case&amp;amp;quot;details&amp;amp;quot;:Re(&amp;amp;quot;toggle&amp;amp;quot;,t);break;case&amp;amp;quot;input&amp;amp;quot;:Re(&amp;amp;quot;invalid&amp;amp;quot;,t),e3(t,i.value,i.defaultValue,i.checked,i.defaultChecked,i.type,i.name,!0),pv(t);break;case&amp;amp;quot;select&amp;amp;quot;:Re(&amp;amp;quot;invalid&amp;amp;quot;,t);break;case&amp;amp;quot;textarea&amp;amp;quot;:Re(&amp;amp;quot;invalid&amp;amp;quot;,t),i3(t,i.value,i.defaultValue,i.children),pv(t)}e=i.children,typeof e!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e!=&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e!=&amp;amp;quot;bigint&amp;amp;quot;||t.textContent===&amp;amp;quot;&amp;amp;quot;+e||i.suppressHydrationWarning===!0||aU(t.textContent,e)?(i.popover!=null&amp;amp;amp;&amp;amp;amp;(Re(&amp;amp;quot;beforetoggle&amp;amp;quot;,t),Re(&amp;amp;quot;toggle&amp;amp;quot;,t)),i.onScroll!=null&amp;amp;amp;&amp;amp;amp;Re(&amp;amp;quot;scroll&amp;amp;quot;,t),i.onScrollEnd!=null&amp;amp;amp;&amp;amp;amp;Re(&amp;amp;quot;scrollend&amp;amp;quot;,t),i.onClick!=null&amp;amp;amp;&amp;amp;amp;(t.onclick=$v),t=!0):t=!1,t||Zl(n)}function HC(n){for(Vi=n.return;Vi;)switch(Vi.tag){case 5:case 13:qs=!1;return;case 27:case 3:qs=!0;return;default:Vi=Vi.return}}function vd(n){if(n!==Vi)return!1;if(!Ve)return HC(n),Ve=!0,!1;var t=n.tag,e;if((e=t!==3&amp;amp;amp;&amp;amp;amp;t!==27)&amp;amp;amp;&amp;amp;amp;((e=t===5)&amp;amp;amp;&amp;amp;amp;(e=n.type,e=!(e!==&amp;amp;quot;form&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e!==&amp;amp;quot;button&amp;amp;quot;)||X1(n.type,n.memoizedProps)),e=!e),e&amp;amp;amp;&amp;amp;amp;Cn&amp;amp;amp;&amp;amp;amp;Zl(n),HC(n),t===13){if(n=n.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(ft(317));t:{for(n=n.nextSibling,t=0;n;){if(n.nodeType===8)if(e=n.data,e===&amp;amp;quot;/$&amp;amp;quot;){if(t===0){Cn=ys(n.nextSibling);break t}t--}else e!==&amp;amp;quot;$&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e!==&amp;amp;quot;$!&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e!==&amp;amp;quot;$?&amp;amp;quot;||t++;n=n.nextSibling}Cn=null}}else t===27?(t=Cn,Wo(n.type)?(n=W1,W1=null,Cn=n):Cn=t):Cn=Vi?ys(n.stateNode.nextSibling):null;return!0}function op(){Cn=Vi=null,Ve=!1}function FC(){var n=ql;return n!==null&amp;amp;amp;&amp;amp;amp;($i===null?$i=n:$i.push.apply($i,n),ql=null),n}function Yd(n){ql===null?ql=[n]:ql.push(n)}var y1=js(null),eu=null,Dr=null;function Ao(n,t,e){yn(y1,t._currentValue),t._currentValue=e}function Or(n){n._currentValue=y1.current,ai(y1)}function _1(n,t,e){for(;n!==null;){var i=n.alternate;if((n.childLanes&amp;amp;amp;t)!==t?(n.childLanes|=t,i!==null&amp;amp;amp;&amp;amp;amp;(i.childLanes|=t)):i!==null&amp;amp;amp;&amp;amp;amp;(i.childLanes&amp;amp;amp;t)!==t&amp;amp;amp;&amp;amp;amp;(i.childLanes|=t),n===e)break;n=n.return}}function x1(n,t,e,i){var a=n.child;for(a!==null&amp;amp;amp;&amp;amp;amp;(a.return=n);a!==null;){var s=a.dependencies;if(s!==null){var o=a.child;s=s.firstContext;t:for(;s!==null;){var u=s;s=a;for(var c=0;c&amp;amp;lt;t.length;c++)if(u.context===t[c]){s.lanes|=e,u=s.alternate,u!==null&amp;amp;amp;&amp;amp;amp;(u.lanes|=e),_1(s.return,e,n),i||(o=null);break t}s=u.next}}else if(a.tag===18){if(o=a.return,o===null)throw Error(ft(341));o.lanes|=e,s=o.alternate,s!==null&amp;amp;amp;&amp;amp;amp;(s.lanes|=e),_1(o,e,n),o=null}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===n){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}}function lp(n,t,e,i){n=null;for(var a=t,s=!1;a!==null;){if(!s){if((a.flags&amp;amp;amp;524288)!==0)s=!0;else if((a.flags&amp;amp;amp;262144)!==0)break}if(a.tag===10){var o=a.alternate;if(o===null)throw Error(ft(387));if(o=o.memoizedProps,o!==null){var u=a.type;Ca(a.pendingProps.value,o.value)||(n!==null?n.push(u):n=[u])}}else if(a===cv.current){if(o=a.alternate,o===null)throw Error(ft(387));o.memoizedState.memoizedState!==a.memoizedState.memoizedState&amp;amp;amp;&amp;amp;amp;(n!==null?n.push(Kd):n=[Kd])}a=a.return}n!==null&amp;amp;amp;&amp;amp;amp;x1(t,n,e,i),t.flags|=262144}function _v(n){for(n=n.firstContext;n!==null;){if(!Ca(n.context._currentValue,n.memoizedValue))return!0;n=n.next}return!1}function jl(n){eu=n,Dr=null,n=n.dependencies,n!==null&amp;amp;amp;&amp;amp;amp;(n.firstContext=null)}function Ci(n){return b3(eu,n)}function V0(n,t){return eu===null&amp;amp;amp;&amp;amp;amp;jl(n),b3(n,t)}function b3(n,t){var e=t._currentValue;if(t={context:t,memoizedValue:e,next:null},Dr===null){if(n===null)throw Error(ft(308));Dr=t,n.dependencies={lanes:0,firstContext:t},n.flags|=524288}else Dr=Dr.next=t;return e}var iI=typeof AbortController&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?AbortController:function(){var n=[],t=this.signal={aborted:!1,addEventListener:function(e,i){n.push(i)}};this.abort=function(){t.aborted=!0,n.forEach(function(e){return e()})}},aI=kn.unstable_scheduleCallback,sI=kn.unstable_NormalPriority,Yn={$$typeof:Rr,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function dE(){return{controller:new iI,data:new Map,refCount:0}}function up(n){n.refCount--,n.refCount===0&amp;amp;amp;&amp;amp;amp;aI(sI,function(){n.controller.abort()})}var Dd=null,S1=0,$c=0,Yc=null;function rI(n,t){if(Dd===null){var e=Dd=[];S1=0,$c=BE(),Yc={status:&amp;amp;quot;pending&amp;amp;quot;,value:void 0,then:function(i){e.push(i)}}}return S1++,t.then(VC,VC),t}function VC(){if(--S1===0&amp;amp;amp;&amp;amp;amp;Dd!==null){Yc!==null&amp;amp;amp;&amp;amp;amp;(Yc.status=&amp;amp;quot;fulfilled&amp;amp;quot;);var n=Dd;Dd=null,$c=0,Yc=null;for(var t=0;t&amp;amp;lt;n.length;t++)(0,n[t])()}}function oI(n,t){var e=[],i={status:&amp;amp;quot;pending&amp;amp;quot;,value:null,reason:null,then:function(a){e.push(a)}};return n.then(function(){i.status=&amp;amp;quot;fulfilled&amp;amp;quot;,i.value=t;for(var a=0;a&amp;amp;lt;e.length;a++)(0,e[a])(t)},function(a){for(i.status=&amp;amp;quot;rejected&amp;amp;quot;,i.reason=a,a=0;a&amp;amp;lt;e.length;a++)(0,e[a])(void 0)}),i}var GC=ce.S;ce.S=function(n,t){typeof t==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t!==null&amp;amp;amp;&amp;amp;amp;typeof t.then==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;rI(n,t),GC!==null&amp;amp;amp;&amp;amp;amp;GC(n,t)};var Yl=js(null);function pE(){var n=Yl.current;return n!==null?n:fn.pooledCache}function nv(n,t){t===null?yn(Yl,Yl.current):yn(Yl,t.pool)}function T3(){var n=pE();return n===null?null:{parent:Yn._currentValue,pool:n}}var cp=Error(ft(460)),A3=Error(ft(474)),Wv=Error(ft(542)),M1={then:function(){}};function XC(n){return n=n.status,n===&amp;amp;quot;fulfilled&amp;amp;quot;||n===&amp;amp;quot;rejected&amp;amp;quot;}function G0(){}function R3(n,t,e){switch(e=n[e],e===void 0?n.push(t):e!==t&amp;amp;amp;&amp;amp;amp;(t.then(G0,G0),t=e),t.status){case&amp;amp;quot;fulfilled&amp;amp;quot;:return t.value;case&amp;amp;quot;rejected&amp;amp;quot;:throw n=t.reason,YC(n),n;default:if(typeof t.status==&amp;amp;quot;string&amp;amp;quot;)t.then(G0,G0);else{if(n=fn,n!==null&amp;amp;amp;&amp;amp;amp;100&amp;amp;lt;n.shellSuspendCounter)throw Error(ft(482));n=t,n.status=&amp;amp;quot;pending&amp;amp;quot;,n.then(function(i){if(t.status===&amp;amp;quot;pending&amp;amp;quot;){var a=t;a.status=&amp;amp;quot;fulfilled&amp;amp;quot;,a.value=i}},function(i){if(t.status===&amp;amp;quot;pending&amp;amp;quot;){var a=t;a.status=&amp;amp;quot;rejected&amp;amp;quot;,a.reason=i}})}switch(t.status){case&amp;amp;quot;fulfilled&amp;amp;quot;:return t.value;case&amp;amp;quot;rejected&amp;amp;quot;:throw n=t.reason,YC(n),n}throw Ud=t,cp}}var Ud=null;function qC(){if(Ud===null)throw Error(ft(459));var n=Ud;return Ud=null,n}function YC(n){if(n===cp||n===Wv)throw Error(ft(483))}var To=!1;function mE(n){n.updateQueue={baseState:n.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function E1(n,t){n=n.updateQueue,t.updateQueue===n&amp;amp;amp;&amp;amp;amp;(t.updateQueue={baseState:n.baseState,firstBaseUpdate:n.firstBaseUpdate,lastBaseUpdate:n.lastBaseUpdate,shared:n.shared,callbacks:null})}function zo(n){return{lane:n,tag:0,payload:null,callback:null,next:null}}function Bo(n,t,e){var i=n.updateQueue;if(i===null)return null;if(i=i.shared,(Ke&amp;amp;amp;2)!==0){var a=i.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),i.pending=t,t=gv(n),S3(n,null,e),t}return Yv(n,i,t,e),gv(n)}function Nd(n,t,e){if(t=t.updateQueue,t!==null&amp;amp;amp;&amp;amp;amp;(t=t.shared,(e&amp;amp;amp;4194048)!==0)){var i=t.lanes;i&amp;amp;amp;=n.pendingLanes,e|=i,t.lanes=e,jw(n,e)}}function PM(n,t){var e=n.updateQueue,i=n.alternate;if(i!==null&amp;amp;amp;&amp;amp;amp;(i=i.updateQueue,e===i)){var a=null,s=null;if(e=e.firstBaseUpdate,e!==null){do{var o={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};s===null?a=s=o:s=s.next=o,e=e.next}while(e!==null);s===null?a=s=t:s=s.next=t}else a=s=t;e={baseState:i.baseState,firstBaseUpdate:a,lastBaseUpdate:s,shared:i.shared,callbacks:i.callbacks},n.updateQueue=e;return}n=e.lastBaseUpdate,n===null?e.firstBaseUpdate=t:n.next=t,e.lastBaseUpdate=t}var b1=!1;function Od(){if(b1){var n=Yc;if(n!==null)throw n}}function Ld(n,t,e,i){b1=!1;var a=n.updateQueue;To=!1;var s=a.firstBaseUpdate,o=a.lastBaseUpdate,u=a.shared.pending;if(u!==null){a.shared.pending=null;var c=u,h=c.next;c.next=null,o===null?s=h:o.next=h,o=c;var d=n.alternate;d!==null&amp;amp;amp;&amp;amp;amp;(d=d.updateQueue,u=d.lastBaseUpdate,u!==o&amp;amp;amp;&amp;amp;amp;(u===null?d.firstBaseUpdate=h:u.next=h,d.lastBaseUpdate=c))}if(s!==null){var m=a.baseState;o=0,d=h=c=null,u=s;do{var g=u.lane&amp;amp;amp;-536870913,y=g!==u.lane;if(y?(Ne&amp;amp;amp;g)===g:(i&amp;amp;amp;g)===g){g!==0&amp;amp;amp;&amp;amp;amp;g===$c&amp;amp;amp;&amp;amp;amp;(b1=!0),d!==null&amp;amp;amp;&amp;amp;amp;(d=d.next={lane:0,tag:u.tag,payload:u.payload,callback:null,next:null});t:{var x=n,b=u;g=t;var M=e;switch(b.tag){case 1:if(x=b.payload,typeof x==&amp;amp;quot;function&amp;amp;quot;){m=x.call(M,m,g);break t}m=x;break t;case 3:x.flags=x.flags&amp;amp;amp;-65537|128;case 0:if(x=b.payload,g=typeof x==&amp;amp;quot;function&amp;amp;quot;?x.call(M,m,g):x,g==null)break t;m=pn({},m,g);break t;case 2:To=!0}}g=u.callback,g!==null&amp;amp;amp;&amp;amp;amp;(n.flags|=64,y&amp;amp;amp;&amp;amp;amp;(n.flags|=8192),y=a.callbacks,y===null?a.callbacks=[g]:y.push(g))}else y={lane:g,tag:u.tag,payload:u.payload,callback:u.callback,next:null},d===null?(h=d=y,c=m):d=d.next=y,o|=g;if(u=u.next,u===null){if(u=a.shared.pending,u===null)break;y=u,u=y.next,y.next=null,a.lastBaseUpdate=y,a.shared.pending=null}}while(!0);d===null&amp;amp;amp;&amp;amp;amp;(c=m),a.baseState=c,a.firstBaseUpdate=h,a.lastBaseUpdate=d,s===null&amp;amp;amp;&amp;amp;amp;(a.shared.lanes=0),qo|=o,n.lanes=o,n.memoizedState=m}}function C3(n,t){if(typeof n!=&amp;amp;quot;function&amp;amp;quot;)throw Error(ft(191,n));n.call(t)}function w3(n,t){var e=n.callbacks;if(e!==null)for(n.callbacks=null,n=0;n&amp;amp;lt;e.length;n++)C3(e[n],t)}var tf=js(null),xv=js(0);function WC(n,t){n=Pr,yn(xv,n),yn(tf,t),Pr=n|t.baseLanes}function T1(){yn(xv,Pr),yn(tf,tf.current)}function gE(){Pr=xv.current,ai(tf),ai(xv)}var Go=0,be=null,en=null,Hn=null,Sv=!1,Wc=!1,Ql=!1,Mv=0,Wd=0,kc=null,lI=0;function Nn(){throw Error(ft(321))}function vE(n,t){if(t===null)return!1;for(var e=0;e&amp;amp;lt;t.length&amp;amp;amp;&amp;amp;amp;e&amp;amp;lt;n.length;e++)if(!Ca(n[e],t[e]))return!1;return!0}function yE(n,t,e,i,a,s){return Go=s,be=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ce.H=n===null||n.memoizedState===null?rD:oD,Ql=!1,s=e(i,a),Ql=!1,Wc&amp;amp;amp;&amp;amp;amp;(s=U3(t,e,i,a)),D3(n),s}function D3(n){ce.H=Ev;var t=en!==null&amp;amp;amp;&amp;amp;amp;en.next!==null;if(Go=0,Hn=en=be=null,Sv=!1,Wd=0,kc=null,t)throw Error(ft(300));n===null||ii||(n=n.dependencies,n!==null&amp;amp;amp;&amp;amp;amp;_v(n)&amp;amp;amp;&amp;amp;amp;(ii=!0))}function U3(n,t,e,i){be=n;var a=0;do{if(Wc&amp;amp;amp;&amp;amp;amp;(kc=null),Wd=0,Wc=!1,25&amp;amp;lt;=a)throw Error(ft(301));if(a+=1,Hn=en=null,n.updateQueue!=null){var s=n.updateQueue;s.lastEffect=null,s.events=null,s.stores=null,s.memoCache!=null&amp;amp;amp;&amp;amp;amp;(s.memoCache.index=0)}ce.H=mI,s=t(e,i)}while(Wc);return s}function uI(){var n=ce.H,t=n.useState()[0];return t=typeof t.then==&amp;amp;quot;function&amp;amp;quot;?fp(t):t,n=n.useState()[0],(en!==null?en.memoizedState:null)!==n&amp;amp;amp;&amp;amp;amp;(be.flags|=1024),t}function _E(){var n=Mv!==0;return Mv=0,n}function xE(n,t,e){t.updateQueue=n.updateQueue,t.flags&amp;amp;amp;=-2053,n.lanes&amp;amp;amp;=~e}function SE(n){if(Sv){for(n=n.memoizedState;n!==null;){var t=n.queue;t!==null&amp;amp;amp;&amp;amp;amp;(t.pending=null),n=n.next}Sv=!1}Go=0,Hn=en=be=null,Wc=!1,Wd=Mv=0,kc=null}function Ki(){var n={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Hn===null?be.memoizedState=Hn=n:Hn=Hn.next=n,Hn}function Fn(){if(en===null){var n=be.alternate;n=n!==null?n.memoizedState:null}else n=en.next;var t=Hn===null?be.memoizedState:Hn.next;if(t!==null)Hn=t,en=n;else{if(n===null)throw be.alternate===null?Error(ft(467)):Error(ft(310));en=n,n={memoizedState:en.memoizedState,baseState:en.baseState,baseQueue:en.baseQueue,queue:en.queue,next:null},Hn===null?be.memoizedState=Hn=n:Hn=Hn.next=n}return Hn}function ME(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function fp(n){var t=Wd;return Wd+=1,kc===null&amp;amp;amp;&amp;amp;amp;(kc=[]),n=R3(kc,n,t),t=be,(Hn===null?t.memoizedState:Hn.next)===null&amp;amp;amp;&amp;amp;amp;(t=t.alternate,ce.H=t===null||t.memoizedState===null?rD:oD),n}function kv(n){if(n!==null&amp;amp;amp;&amp;amp;amp;typeof n==&amp;amp;quot;object&amp;amp;quot;){if(typeof n.then==&amp;amp;quot;function&amp;amp;quot;)return fp(n);if(n.$$typeof===Rr)return Ci(n)}throw Error(ft(438,String(n)))}function EE(n){var t=null,e=be.updateQueue;if(e!==null&amp;amp;amp;&amp;amp;amp;(t=e.memoCache),t==null){var i=be.alternate;i!==null&amp;amp;amp;&amp;amp;amp;(i=i.updateQueue,i!==null&amp;amp;amp;&amp;amp;amp;(i=i.memoCache,i!=null&amp;amp;amp;&amp;amp;amp;(t={data:i.data.map(function(a){return a.slice()}),index:0})))}if(t==null&amp;amp;amp;&amp;amp;amp;(t={data:[],index:0}),e===null&amp;amp;amp;&amp;amp;amp;(e=ME(),be.updateQueue=e),e.memoCache=t,e=t.data[t.index],e===void 0)for(e=t.data[t.index]=Array(n),i=0;i&amp;amp;lt;n;i++)e[i]=k4;return t.index++,e}function zr(n,t){return typeof t==&amp;amp;quot;function&amp;amp;quot;?t(n):t}function iv(n){var t=Fn();return bE(t,en,n)}function bE(n,t,e){var i=n.queue;if(i===null)throw Error(ft(311));i.lastRenderedReducer=e;var a=n.baseQueue,s=i.pending;if(s!==null){if(a!==null){var o=a.next;a.next=s.next,s.next=o}t.baseQueue=a=s,i.pending=null}if(s=n.baseState,a===null)n.memoizedState=s;else{t=a.next;var u=o=null,c=null,h=t,d=!1;do{var m=h.lane&amp;amp;amp;-536870913;if(m!==h.lane?(Ne&amp;amp;amp;m)===m:(Go&amp;amp;amp;m)===m){var g=h.revertLane;if(g===0)c!==null&amp;amp;amp;&amp;amp;amp;(c=c.next={lane:0,revertLane:0,action:h.action,hasEagerState:h.hasEagerState,eagerState:h.eagerState,next:null}),m===$c&amp;amp;amp;&amp;amp;amp;(d=!0);else if((Go&amp;amp;amp;g)===g){h=h.next,g===$c&amp;amp;amp;&amp;amp;amp;(d=!0);continue}else m={lane:0,revertLane:h.revertLane,action:h.action,hasEagerState:h.hasEagerState,eagerState:h.eagerState,next:null},c===null?(u=c=m,o=s):c=c.next=m,be.lanes|=g,qo|=g;m=h.action,Ql&amp;amp;amp;&amp;amp;amp;e(s,m),s=h.hasEagerState?h.eagerState:e(s,m)}else g={lane:m,revertLane:h.revertLane,action:h.action,hasEagerState:h.hasEagerState,eagerState:h.eagerState,next:null},c===null?(u=c=g,o=s):c=c.next=g,be.lanes|=m,qo|=m;h=h.next}while(h!==null&amp;amp;amp;&amp;amp;amp;h!==t);if(c===null?o=s:c.next=u,!Ca(s,n.memoizedState)&amp;amp;amp;&amp;amp;amp;(ii=!0,d&amp;amp;amp;&amp;amp;amp;(e=Yc,e!==null)))throw e;n.memoizedState=s,n.baseState=o,n.baseQueue=c,i.lastRenderedState=s}return a===null&amp;amp;amp;&amp;amp;amp;(i.lanes=0),[n.memoizedState,i.dispatch]}function IM(n){var t=Fn(),e=t.queue;if(e===null)throw Error(ft(311));e.lastRenderedReducer=n;var i=e.dispatch,a=e.pending,s=t.memoizedState;if(a!==null){e.pending=null;var o=a=a.next;do s=n(s,o.action),o=o.next;while(o!==a);Ca(s,t.memoizedState)||(ii=!0),t.memoizedState=s,t.baseQueue===null&amp;amp;amp;&amp;amp;amp;(t.baseState=s),e.lastRenderedState=s}return[s,i]}function N3(n,t,e){var i=be,a=Fn(),s=Ve;if(s){if(e===void 0)throw Error(ft(407));e=e()}else e=t();var o=!Ca((en||a).memoizedState,e);o&amp;amp;amp;&amp;amp;amp;(a.memoizedState=e,ii=!0),a=a.queue;var u=z3.bind(null,i,a,n);if(hp(2048,8,u,[n]),a.getSnapshot!==t||o||Hn!==null&amp;amp;amp;&amp;amp;amp;Hn.memoizedState.tag&amp;amp;amp;1){if(i.flags|=2048,ef(9,Zv(),L3.bind(null,i,a,e,t),null),fn===null)throw Error(ft(349));s||(Go&amp;amp;amp;124)!==0||O3(i,t,e)}return e}function O3(n,t,e){n.flags|=16384,n={getSnapshot:t,value:e},t=be.updateQueue,t===null?(t=ME(),be.updateQueue=t,t.stores=[n]):(e=t.stores,e===null?t.stores=[n]:e.push(n))}function L3(n,t,e,i){t.value=e,t.getSnapshot=i,B3(t)&amp;amp;amp;&amp;amp;amp;P3(n)}function z3(n,t,e){return e(function(){B3(t)&amp;amp;amp;&amp;amp;amp;P3(n)})}function B3(n){var t=n.getSnapshot;n=n.value;try{var e=t();return!Ca(n,e)}catch{return!0}}function P3(n){var t=cf(n,2);t!==null&amp;amp;amp;&amp;amp;amp;Ra(t,n,2)}function A1(n){var t=Ki();if(typeof n==&amp;amp;quot;function&amp;amp;quot;){var e=n;if(n=e(),Ql){Do(!0);try{e()}finally{Do(!1)}}}return t.memoizedState=t.baseState=n,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:zr,lastRenderedState:n},t}function I3(n,t,e,i){return n.baseState=e,bE(n,en,typeof i==&amp;amp;quot;function&amp;amp;quot;?i:zr)}function cI(n,t,e,i,a){if(jv(n))throw Error(ft(485));if(n=t.action,n!==null){var s={payload:a,action:n,next:null,isTransition:!0,status:&amp;amp;quot;pending&amp;amp;quot;,value:null,reason:null,listeners:[],then:function(o){s.listeners.push(o)}};ce.T!==null?e(!0):s.isTransition=!1,i(s),e=t.pending,e===null?(s.next=t.pending=s,H3(t,s)):(s.next=e.next,t.pending=e.next=s)}}function H3(n,t){var e=t.action,i=t.payload,a=n.state;if(t.isTransition){var s=ce.T,o={};ce.T=o;try{var u=e(a,i),c=ce.S;c!==null&amp;amp;amp;&amp;amp;amp;c(o,u),kC(n,t,u)}catch(h){R1(n,t,h)}finally{ce.T=s}}else try{s=e(a,i),kC(n,t,s)}catch(h){R1(n,t,h)}}function kC(n,t,e){e!==null&amp;amp;amp;&amp;amp;amp;typeof e==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e.then==&amp;amp;quot;function&amp;amp;quot;?e.then(function(i){ZC(n,t,i)},function(i){return R1(n,t,i)}):ZC(n,t,e)}function ZC(n,t,e){t.status=&amp;amp;quot;fulfilled&amp;amp;quot;,t.value=e,F3(t),n.state=e,t=n.pending,t!==null&amp;amp;amp;&amp;amp;amp;(e=t.next,e===t?n.pending=null:(e=e.next,t.next=e,H3(n,e)))}function R1(n,t,e){var i=n.pending;if(n.pending=null,i!==null){i=i.next;do t.status=&amp;amp;quot;rejected&amp;amp;quot;,t.reason=e,F3(t),t=t.next;while(t!==i)}n.action=null}function F3(n){n=n.listeners;for(var t=0;t&amp;amp;lt;n.length;t++)(0,n[t])()}function V3(n,t){return t}function jC(n,t){if(Ve){var e=fn.formState;if(e!==null){t:{var i=be;if(Ve){if(Cn){e:{for(var a=Cn,s=qs;a.nodeType!==8;){if(!s){a=null;break e}if(a=ys(a.nextSibling),a===null){a=null;break e}}s=a.data,a=s===&amp;amp;quot;F!&amp;amp;quot;||s===&amp;amp;quot;F&amp;amp;quot;?a:null}if(a){Cn=ys(a.nextSibling),i=a.data===&amp;amp;quot;F!&amp;amp;quot;;break t}}Zl(i)}i=!1}i&amp;amp;amp;&amp;amp;amp;(t=e[0])}}return e=Ki(),e.memoizedState=e.baseState=t,i={pending:null,lanes:0,dispatch:null,lastRenderedReducer:V3,lastRenderedState:t},e.queue=i,e=iD.bind(null,be,i),i.dispatch=e,i=A1(!1),s=CE.bind(null,be,!1,i.queue),i=Ki(),a={state:t,dispatch:null,action:n,pending:null},i.queue=a,e=cI.bind(null,be,a,s,e),a.dispatch=e,i.memoizedState=n,[t,e,!1]}function QC(n){var t=Fn();return G3(t,en,n)}function G3(n,t,e){if(t=bE(n,t,V3)[0],n=iv(zr)[0],typeof t==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t!==null&amp;amp;amp;&amp;amp;amp;typeof t.then==&amp;amp;quot;function&amp;amp;quot;)try{var i=fp(t)}catch(o){throw o===cp?Wv:o}else i=t;t=Fn();var a=t.queue,s=a.dispatch;return e!==t.memoizedState&amp;amp;amp;&amp;amp;amp;(be.flags|=2048,ef(9,Zv(),fI.bind(null,a,e),null)),[i,s,n]}function fI(n,t){n.action=t}function KC(n){var t=Fn(),e=en;if(e!==null)return G3(t,e,n);Fn(),t=t.memoizedState,e=Fn();var i=e.queue.dispatch;return e.memoizedState=n,[t,i,!1]}function ef(n,t,e,i){return n={tag:n,create:e,deps:i,inst:t,next:null},t=be.updateQueue,t===null&amp;amp;amp;&amp;amp;amp;(t=ME(),be.updateQueue=t),e=t.lastEffect,e===null?t.lastEffect=n.next=n:(i=e.next,e.next=n,n.next=i,t.lastEffect=n),n}function Zv(){return{destroy:void 0,resource:void 0}}function X3(){return Fn().memoizedState}function av(n,t,e,i){var a=Ki();i=i===void 0?null:i,be.flags|=n,a.memoizedState=ef(1|t,Zv(),e,i)}function hp(n,t,e,i){var a=Fn();i=i===void 0?null:i;var s=a.memoizedState.inst;en!==null&amp;amp;amp;&amp;amp;amp;i!==null&amp;amp;amp;&amp;amp;amp;vE(i,en.memoizedState.deps)?a.memoizedState=ef(t,s,e,i):(be.flags|=n,a.memoizedState=ef(1|t,s,e,i))}function JC(n,t){av(8390656,8,n,t)}function q3(n,t){hp(2048,8,n,t)}function Y3(n,t){return hp(4,2,n,t)}function W3(n,t){return hp(4,4,n,t)}function k3(n,t){if(typeof t==&amp;amp;quot;function&amp;amp;quot;){n=n();var e=t(n);return function(){typeof e==&amp;amp;quot;function&amp;amp;quot;?e():t(null)}}if(t!=null)return n=n(),t.current=n,function(){t.current=null}}function Z3(n,t,e){e=e!=null?e.concat([n]):null,hp(4,4,k3.bind(null,t,n),e)}function TE(){}function j3(n,t){var e=Fn();t=t===void 0?null:t;var i=e.memoizedState;return t!==null&amp;amp;amp;&amp;amp;amp;vE(t,i[1])?i[0]:(e.memoizedState=[n,t],n)}function Q3(n,t){var e=Fn();t=t===void 0?null:t;var i=e.memoizedState;if(t!==null&amp;amp;amp;&amp;amp;amp;vE(t,i[1]))return i[0];if(i=n(),Ql){Do(!0);try{n()}finally{Do(!1)}}return e.memoizedState=[i,t],i}function AE(n,t,e){return e===void 0||(Go&amp;amp;amp;1073741824)!==0?n.memoizedState=t:(n.memoizedState=e,n=FD(),be.lanes|=n,qo|=n,e)}function K3(n,t,e,i){return Ca(e,t)?e:tf.current!==null?(n=AE(n,e,i),Ca(n,t)||(ii=!0),n):(Go&amp;amp;amp;42)===0?(ii=!0,n.memoizedState=e):(n=FD(),be.lanes|=n,qo|=n,t)}function J3(n,t,e,i,a){var s=Ge.p;Ge.p=s!==0&amp;amp;amp;&amp;amp;amp;8&amp;amp;gt;s?s:8;var o=ce.T,u={};ce.T=u,CE(n,!1,t,e);try{var c=a(),h=ce.S;if(h!==null&amp;amp;amp;&amp;amp;amp;h(u,c),c!==null&amp;amp;amp;&amp;amp;amp;typeof c==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof c.then==&amp;amp;quot;function&amp;amp;quot;){var d=oI(c,i);zd(n,t,d,Aa(n))}else zd(n,t,i,Aa(n))}catch(m){zd(n,t,{then:function(){},status:&amp;amp;quot;rejected&amp;amp;quot;,reason:m},Aa())}finally{Ge.p=s,ce.T=o}}function hI(){}function C1(n,t,e,i){if(n.tag!==5)throw Error(ft(476));var a=$3(n).queue;J3(n,a,t,Vl,e===null?hI:function(){return tD(n),e(i)})}function $3(n){var t=n.memoizedState;if(t!==null)return t;t={memoizedState:Vl,baseState:Vl,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zr,lastRenderedState:Vl},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:zr,lastRenderedState:e},next:null},n.memoizedState=t,n=n.alternate,n!==null&amp;amp;amp;&amp;amp;amp;(n.memoizedState=t),t}function tD(n){var t=$3(n).next.queue;zd(n,t,{},Aa())}function RE(){return Ci(Kd)}function eD(){return Fn().memoizedState}function nD(){return Fn().memoizedState}function dI(n){for(var t=n.return;t!==null;){switch(t.tag){case 24:case 3:var e=Aa();n=zo(e);var i=Bo(t,n,e);i!==null&amp;amp;amp;&amp;amp;amp;(Ra(i,t,e),Nd(i,t,e)),t={cache:dE()},n.payload=t;return}t=t.return}}function pI(n,t,e){var i=Aa();e={lane:i,revertLane:0,action:e,hasEagerState:!1,eagerState:null,next:null},jv(n)?aD(t,e):(e=uE(n,t,e,i),e!==null&amp;amp;amp;&amp;amp;amp;(Ra(e,n,i),sD(e,t,i)))}function iD(n,t,e){var i=Aa();zd(n,t,e,i)}function zd(n,t,e,i){var a={lane:i,revertLane:0,action:e,hasEagerState:!1,eagerState:null,next:null};if(jv(n))aD(t,a);else{var s=n.alternate;if(n.lanes===0&amp;amp;amp;&amp;amp;amp;(s===null||s.lanes===0)&amp;amp;amp;&amp;amp;amp;(s=t.lastRenderedReducer,s!==null))try{var o=t.lastRenderedState,u=s(o,e);if(a.hasEagerState=!0,a.eagerState=u,Ca(u,o))return Yv(n,t,a,0),fn===null&amp;amp;amp;&amp;amp;amp;qv(),!1}catch{}finally{}if(e=uE(n,t,a,i),e!==null)return Ra(e,n,i),sD(e,t,i),!0}return!1}function CE(n,t,e,i){if(i={lane:2,revertLane:BE(),action:i,hasEagerState:!1,eagerState:null,next:null},jv(n)){if(t)throw Error(ft(479))}else t=uE(n,e,i,2),t!==null&amp;amp;amp;&amp;amp;amp;Ra(t,n,2)}function jv(n){var t=n.alternate;return n===be||t!==null&amp;amp;amp;&amp;amp;amp;t===be}function aD(n,t){Wc=Sv=!0;var e=n.pending;e===null?t.next=t:(t.next=e.next,e.next=t),n.pending=t}function sD(n,t,e){if((e&amp;amp;amp;4194048)!==0){var i=t.lanes;i&amp;amp;amp;=n.pendingLanes,e|=i,t.lanes=e,jw(n,e)}}var Ev={readContext:Ci,use:kv,useCallback:Nn,useContext:Nn,useEffect:Nn,useImperativeHandle:Nn,useLayoutEffect:Nn,useInsertionEffect:Nn,useMemo:Nn,useReducer:Nn,useRef:Nn,useState:Nn,useDebugValue:Nn,useDeferredValue:Nn,useTransition:Nn,useSyncExternalStore:Nn,useId:Nn,useHostTransitionStatus:Nn,useFormState:Nn,useActionState:Nn,useOptimistic:Nn,useMemoCache:Nn,useCacheRefresh:Nn},rD={readContext:Ci,use:kv,useCallback:function(n,t){return Ki().memoizedState=[n,t===void 0?null:t],n},useContext:Ci,useEffect:JC,useImperativeHandle:function(n,t,e){e=e!=null?e.concat([n]):null,av(4194308,4,k3.bind(null,t,n),e)},useLayoutEffect:function(n,t){return av(4194308,4,n,t)},useInsertionEffect:function(n,t){av(4,2,n,t)},useMemo:function(n,t){var e=Ki();t=t===void 0?null:t;var i=n();if(Ql){Do(!0);try{n()}finally{Do(!1)}}return e.memoizedState=[i,t],i},useReducer:function(n,t,e){var i=Ki();if(e!==void 0){var a=e(t);if(Ql){Do(!0);try{e(t)}finally{Do(!1)}}}else a=t;return i.memoizedState=i.baseState=a,n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:n,lastRenderedState:a},i.queue=n,n=n.dispatch=pI.bind(null,be,n),[i.memoizedState,n]},useRef:function(n){var t=Ki();return n={current:n},t.memoizedState=n},useState:function(n){n=A1(n);var t=n.queue,e=iD.bind(null,be,t);return t.dispatch=e,[n.memoizedState,e]},useDebugValue:TE,useDeferredValue:function(n,t){var e=Ki();return AE(e,n,t)},useTransition:function(){var n=A1(!1);return n=J3.bind(null,be,n.queue,!0,!1),Ki().memoizedState=n,[!1,n]},useSyncExternalStore:function(n,t,e){var i=be,a=Ki();if(Ve){if(e===void 0)throw Error(ft(407));e=e()}else{if(e=t(),fn===null)throw Error(ft(349));(Ne&amp;amp;amp;124)!==0||O3(i,t,e)}a.memoizedState=e;var s={value:e,getSnapshot:t};return a.queue=s,JC(z3.bind(null,i,s,n),[n]),i.flags|=2048,ef(9,Zv(),L3.bind(null,i,s,e,t),null),e},useId:function(){var n=Ki(),t=fn.identifierPrefix;if(Ve){var e=wr,i=Cr;e=(i&amp;amp;amp;~(1&amp;amp;lt;&amp;amp;lt;32-Ta(i)-1)).toString(32)+e,t=&amp;amp;quot;\xAB&amp;amp;quot;+t+&amp;amp;quot;R&amp;amp;quot;+e,e=Mv++,0&amp;amp;lt;e&amp;amp;amp;&amp;amp;amp;(t+=&amp;amp;quot;H&amp;amp;quot;+e.toString(32)),t+=&amp;amp;quot;\xBB&amp;amp;quot;}else e=lI++,t=&amp;amp;quot;\xAB&amp;amp;quot;+t+&amp;amp;quot;r&amp;amp;quot;+e.toString(32)+&amp;amp;quot;\xBB&amp;amp;quot;;return n.memoizedState=t},useHostTransitionStatus:RE,useFormState:jC,useActionState:jC,useOptimistic:function(n){var t=Ki();t.memoizedState=t.baseState=n;var e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=e,t=CE.bind(null,be,!0,e),e.dispatch=t,[n,t]},useMemoCache:EE,useCacheRefresh:function(){return Ki().memoizedState=dI.bind(null,be)}},oD={readContext:Ci,use:kv,useCallback:j3,useContext:Ci,useEffect:q3,useImperativeHandle:Z3,useInsertionEffect:Y3,useLayoutEffect:W3,useMemo:Q3,useReducer:iv,useRef:X3,useState:function(){return iv(zr)},useDebugValue:TE,useDeferredValue:function(n,t){var e=Fn();return K3(e,en.memoizedState,n,t)},useTransition:function(){var n=iv(zr)[0],t=Fn().memoizedState;return[typeof n==&amp;amp;quot;boolean&amp;amp;quot;?n:fp(n),t]},useSyncExternalStore:N3,useId:eD,useHostTransitionStatus:RE,useFormState:QC,useActionState:QC,useOptimistic:function(n,t){var e=Fn();return I3(e,en,n,t)},useMemoCache:EE,useCacheRefresh:nD},mI={readContext:Ci,use:kv,useCallback:j3,useContext:Ci,useEffect:q3,useImperativeHandle:Z3,useInsertionEffect:Y3,useLayoutEffect:W3,useMemo:Q3,useReducer:IM,useRef:X3,useState:function(){return IM(zr)},useDebugValue:TE,useDeferredValue:function(n,t){var e=Fn();return en===null?AE(e,n,t):K3(e,en.memoizedState,n,t)},useTransition:function(){var n=IM(zr)[0],t=Fn().memoizedState;return[typeof n==&amp;amp;quot;boolean&amp;amp;quot;?n:fp(n),t]},useSyncExternalStore:N3,useId:eD,useHostTransitionStatus:RE,useFormState:KC,useActionState:KC,useOptimistic:function(n,t){var e=Fn();return en!==null?I3(e,en,n,t):(e.baseState=n,[n,e.queue.dispatch])},useMemoCache:EE,useCacheRefresh:nD},Zc=null,kd=0;function X0(n){var t=kd;return kd+=1,Zc===null&amp;amp;amp;&amp;amp;amp;(Zc=[]),R3(Zc,n,t)}function yd(n,t){t=t.props.ref,n.ref=t!==void 0?t:null}function q0(n,t){throw t.$$typeof===Y4?Error(ft(525)):(n=Object.prototype.toString.call(t),Error(ft(31,n===&amp;amp;quot;[object Object]&amp;amp;quot;?&amp;amp;quot;object with keys {&amp;amp;quot;+Object.keys(t).join(&amp;amp;quot;, &amp;amp;quot;)+&amp;amp;quot;}&amp;amp;quot;:n)))}function $C(n){var t=n._init;return t(n._payload)}function lD(n){function t(v,S){if(n){var E=v.deletions;E===null?(v.deletions=[S],v.flags|=16):E.push(S)}}function e(v,S){if(!n)return null;for(;S!==null;)t(v,S),S=S.sibling;return null}function i(v){for(var S=new Map;v!==null;)v.key!==null?S.set(v.key,v):S.set(v.index,v),v=v.sibling;return S}function a(v,S){return v=Nr(v,S),v.index=0,v.sibling=null,v}function s(v,S,E){return v.index=E,n?(E=v.alternate,E!==null?(E=E.index,E&amp;amp;lt;S?(v.flags|=67108866,S):E):(v.flags|=67108866,S)):(v.flags|=1048576,S)}function o(v){return n&amp;amp;amp;&amp;amp;amp;v.alternate===null&amp;amp;amp;&amp;amp;amp;(v.flags|=67108866),v}function u(v,S,E,T){return S===null||S.tag!==6?(S=zM(E,v.mode,T),S.return=v,S):(S=a(S,E),S.return=v,S)}function c(v,S,E,T){var w=E.type;return w===Dc?d(v,S,E.props.children,T,E.key):S!==null&amp;amp;amp;&amp;amp;amp;(S.elementType===w||typeof w==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;w!==null&amp;amp;amp;&amp;amp;amp;w.$$typeof===bo&amp;amp;amp;&amp;amp;amp;$C(w)===S.type)?(S=a(S,E.props),yd(S,E),S.return=v,S):(S=ev(E.type,E.key,E.props,null,v.mode,T),yd(S,E),S.return=v,S)}function h(v,S,E,T){return S===null||S.tag!==4||S.stateNode.containerInfo!==E.containerInfo||S.stateNode.implementation!==E.implementation?(S=BM(E,v.mode,T),S.return=v,S):(S=a(S,E.children||[]),S.return=v,S)}function d(v,S,E,T,w){return S===null||S.tag!==7?(S=Gl(E,v.mode,T,w),S.return=v,S):(S=a(S,E),S.return=v,S)}function m(v,S,E){if(typeof S==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;S!==&amp;amp;quot;&amp;amp;quot;||typeof S==&amp;amp;quot;number&amp;amp;quot;||typeof S==&amp;amp;quot;bigint&amp;amp;quot;)return S=zM(&amp;amp;quot;&amp;amp;quot;+S,v.mode,E),S.return=v,S;if(typeof S==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;S!==null){switch(S.$$typeof){case L0:return E=ev(S.type,S.key,S.props,null,v.mode,E),yd(E,S),E.return=v,E;case Ed:return S=BM(S,v.mode,E),S.return=v,S;case bo:var T=S._init;return S=T(S._payload),m(v,S,E)}if(bd(S)||md(S))return S=Gl(S,v.mode,E,null),S.return=v,S;if(typeof S.then==&amp;amp;quot;function&amp;amp;quot;)return m(v,X0(S),E);if(S.$$typeof===Rr)return m(v,V0(v,S),E);q0(v,S)}return null}function g(v,S,E,T){var w=S!==null?S.key:null;if(typeof E==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;E!==&amp;amp;quot;&amp;amp;quot;||typeof E==&amp;amp;quot;number&amp;amp;quot;||typeof E==&amp;amp;quot;bigint&amp;amp;quot;)return w!==null?null:u(v,S,&amp;amp;quot;&amp;amp;quot;+E,T);if(typeof E==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;E!==null){switch(E.$$typeof){case L0:return E.key===w?c(v,S,E,T):null;case Ed:return E.key===w?h(v,S,E,T):null;case bo:return w=E._init,E=w(E._payload),g(v,S,E,T)}if(bd(E)||md(E))return w!==null?null:d(v,S,E,T,null);if(typeof E.then==&amp;amp;quot;function&amp;amp;quot;)return g(v,S,X0(E),T);if(E.$$typeof===Rr)return g(v,S,V0(v,E),T);q0(v,E)}return null}function y(v,S,E,T,w){if(typeof T==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;T!==&amp;amp;quot;&amp;amp;quot;||typeof T==&amp;amp;quot;number&amp;amp;quot;||typeof T==&amp;amp;quot;bigint&amp;amp;quot;)return v=v.get(E)||null,u(S,v,&amp;amp;quot;&amp;amp;quot;+T,w);if(typeof T==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;T!==null){switch(T.$$typeof){case L0:return v=v.get(T.key===null?E:T.key)||null,c(S,v,T,w);case Ed:return v=v.get(T.key===null?E:T.key)||null,h(S,v,T,w);case bo:var U=T._init;return T=U(T._payload),y(v,S,E,T,w)}if(bd(T)||md(T))return v=v.get(E)||null,d(S,v,T,w,null);if(typeof T.then==&amp;amp;quot;function&amp;amp;quot;)return y(v,S,E,X0(T),w);if(T.$$typeof===Rr)return y(v,S,E,V0(S,T),w);q0(S,T)}return null}function x(v,S,E,T){for(var w=null,U=null,O=S,z=S=0,C=null;O!==null&amp;amp;amp;&amp;amp;amp;z&amp;amp;lt;E.length;z++){O.index&amp;amp;gt;z?(C=O,O=null):C=O.sibling;var R=g(v,O,E[z],T);if(R===null){O===null&amp;amp;amp;&amp;amp;amp;(O=C);break}n&amp;amp;amp;&amp;amp;amp;O&amp;amp;amp;&amp;amp;amp;R.alternate===null&amp;amp;amp;&amp;amp;amp;t(v,O),S=s(R,S,z),U===null?w=R:U.sibling=R,U=R,O=C}if(z===E.length)return e(v,O),Ve&amp;amp;amp;&amp;amp;amp;Hl(v,z),w;if(O===null){for(;z&amp;amp;lt;E.length;z++)O=m(v,E[z],T),O!==null&amp;amp;amp;&amp;amp;amp;(S=s(O,S,z),U===null?w=O:U.sibling=O,U=O);return Ve&amp;amp;amp;&amp;amp;amp;Hl(v,z),w}for(O=i(O);z&amp;amp;lt;E.length;z++)C=y(O,v,z,E[z],T),C!==null&amp;amp;amp;&amp;amp;amp;(n&amp;amp;amp;&amp;amp;amp;C.alternate!==null&amp;amp;amp;&amp;amp;amp;O.delete(C.key===null?z:C.key),S=s(C,S,z),U===null?w=C:U.sibling=C,U=C);return n&amp;amp;amp;&amp;amp;amp;O.forEach(function(P){return t(v,P)}),Ve&amp;amp;amp;&amp;amp;amp;Hl(v,z),w}function b(v,S,E,T){if(E==null)throw Error(ft(151));for(var w=null,U=null,O=S,z=S=0,C=null,R=E.next();O!==null&amp;amp;amp;&amp;amp;amp;!R.done;z++,R=E.next()){O.index&amp;amp;gt;z?(C=O,O=null):C=O.sibling;var P=g(v,O,R.value,T);if(P===null){O===null&amp;amp;amp;&amp;amp;amp;(O=C);break}n&amp;amp;amp;&amp;amp;amp;O&amp;amp;amp;&amp;amp;amp;P.alternate===null&amp;amp;amp;&amp;amp;amp;t(v,O),S=s(P,S,z),U===null?w=P:U.sibling=P,U=P,O=C}if(R.done)return e(v,O),Ve&amp;amp;amp;&amp;amp;amp;Hl(v,z),w;if(O===null){for(;!R.done;z++,R=E.next())R=m(v,R.value,T),R!==null&amp;amp;amp;&amp;amp;amp;(S=s(R,S,z),U===null?w=R:U.sibling=R,U=R);return Ve&amp;amp;amp;&amp;amp;amp;Hl(v,z),w}for(O=i(O);!R.done;z++,R=E.next())R=y(O,v,z,R.value,T),R!==null&amp;amp;amp;&amp;amp;amp;(n&amp;amp;amp;&amp;amp;amp;R.alternate!==null&amp;amp;amp;&amp;amp;amp;O.delete(R.key===null?z:R.key),S=s(R,S,z),U===null?w=R:U.sibling=R,U=R);return n&amp;amp;amp;&amp;amp;amp;O.forEach(function(j){return t(v,j)}),Ve&amp;amp;amp;&amp;amp;amp;Hl(v,z),w}function M(v,S,E,T){if(typeof E==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;E!==null&amp;amp;amp;&amp;amp;amp;E.type===Dc&amp;amp;amp;&amp;amp;amp;E.key===null&amp;amp;amp;&amp;amp;amp;(E=E.props.children),typeof E==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;E!==null){switch(E.$$typeof){case L0:t:{for(var w=E.key;S!==null;){if(S.key===w){if(w=E.type,w===Dc){if(S.tag===7){e(v,S.sibling),T=a(S,E.props.children),T.return=v,v=T;break t}}else if(S.elementType===w||typeof w==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;w!==null&amp;amp;amp;&amp;amp;amp;w.$$typeof===bo&amp;amp;amp;&amp;amp;amp;$C(w)===S.type){e(v,S.sibling),T=a(S,E.props),yd(T,E),T.return=v,v=T;break t}e(v,S);break}else t(v,S);S=S.sibling}E.type===Dc?(T=Gl(E.props.children,v.mode,T,E.key),T.return=v,v=T):(T=ev(E.type,E.key,E.props,null,v.mode,T),yd(T,E),T.return=v,v=T)}return o(v);case Ed:t:{for(w=E.key;S!==null;){if(S.key===w)if(S.tag===4&amp;amp;amp;&amp;amp;amp;S.stateNode.containerInfo===E.containerInfo&amp;amp;amp;&amp;amp;amp;S.stateNode.implementation===E.implementation){e(v,S.sibling),T=a(S,E.children||[]),T.return=v,v=T;break t}else{e(v,S);break}else t(v,S);S=S.sibling}T=BM(E,v.mode,T),T.return=v,v=T}return o(v);case bo:return w=E._init,E=w(E._payload),M(v,S,E,T)}if(bd(E))return x(v,S,E,T);if(md(E)){if(w=md(E),typeof w!=&amp;amp;quot;function&amp;amp;quot;)throw Error(ft(150));return E=w.call(E),b(v,S,E,T)}if(typeof E.then==&amp;amp;quot;function&amp;amp;quot;)return M(v,S,X0(E),T);if(E.$$typeof===Rr)return M(v,S,V0(v,E),T);q0(v,E)}return typeof E==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;E!==&amp;amp;quot;&amp;amp;quot;||typeof E==&amp;amp;quot;number&amp;amp;quot;||typeof E==&amp;amp;quot;bigint&amp;amp;quot;?(E=&amp;amp;quot;&amp;amp;quot;+E,S!==null&amp;amp;amp;&amp;amp;amp;S.tag===6?(e(v,S.sibling),T=a(S,E),T.return=v,v=T):(e(v,S),T=zM(E,v.mode,T),T.return=v,v=T),o(v)):e(v,S)}return function(v,S,E,T){try{kd=0;var w=M(v,S,E,T);return Zc=null,w}catch(O){if(O===cp||O===Wv)throw O;var U=Ea(29,O,null,v.mode);return U.lanes=T,U.return=v,U}finally{}}}var nf=lD(!0),uD=lD(!1),as=js(null),Zs=null;function Ro(n){var t=n.alternate;yn(Wn,Wn.current&amp;amp;amp;1),yn(as,n),Zs===null&amp;amp;amp;&amp;amp;amp;(t===null||tf.current!==null||t.memoizedState!==null)&amp;amp;amp;&amp;amp;amp;(Zs=n)}function cD(n){if(n.tag===22){if(yn(Wn,Wn.current),yn(as,n),Zs===null){var t=n.alternate;t!==null&amp;amp;amp;&amp;amp;amp;t.memoizedState!==null&amp;amp;amp;&amp;amp;amp;(Zs=n)}}else Co(n)}function Co(){yn(Wn,Wn.current),yn(as,as.current)}function Ur(n){ai(as),Zs===n&amp;amp;amp;&amp;amp;amp;(Zs=null),ai(Wn)}var Wn=js(0);function bv(n){for(var t=n;t!==null;){if(t.tag===13){var e=t.memoizedState;if(e!==null&amp;amp;amp;&amp;amp;amp;(e=e.dehydrated,e===null||e.data===&amp;amp;quot;$?&amp;amp;quot;||Y1(e)))return t}else if(t.tag===19&amp;amp;amp;&amp;amp;amp;t.memoizedProps.revealOrder!==void 0){if((t.flags&amp;amp;amp;128)!==0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===n)break;for(;t.sibling===null;){if(t.return===null||t.return===n)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function HM(n,t,e,i){t=n.memoizedState,e=e(i,t),e=e==null?t:pn({},t,e),n.memoizedState=e,n.lanes===0&amp;amp;amp;&amp;amp;amp;(n.updateQueue.baseState=e)}var w1={enqueueSetState:function(n,t,e){n=n._reactInternals;var i=Aa(),a=zo(i);a.payload=t,e!=null&amp;amp;amp;&amp;amp;amp;(a.callback=e),t=Bo(n,a,i),t!==null&amp;amp;amp;&amp;amp;amp;(Ra(t,n,i),Nd(t,n,i))},enqueueReplaceState:function(n,t,e){n=n._reactInternals;var i=Aa(),a=zo(i);a.tag=1,a.payload=t,e!=null&amp;amp;amp;&amp;amp;amp;(a.callback=e),t=Bo(n,a,i),t!==null&amp;amp;amp;&amp;amp;amp;(Ra(t,n,i),Nd(t,n,i))},enqueueForceUpdate:function(n,t){n=n._reactInternals;var e=Aa(),i=zo(e);i.tag=2,t!=null&amp;amp;amp;&amp;amp;amp;(i.callback=t),t=Bo(n,i,e),t!==null&amp;amp;amp;&amp;amp;amp;(Ra(t,n,e),Nd(t,n,e))}};function tw(n,t,e,i,a,s,o){return n=n.stateNode,typeof n.shouldComponentUpdate==&amp;amp;quot;function&amp;amp;quot;?n.shouldComponentUpdate(i,s,o):t.prototype&amp;amp;amp;&amp;amp;amp;t.prototype.isPureReactComponent?!qd(e,i)||!qd(a,s):!0}function ew(n,t,e,i){n=t.state,typeof t.componentWillReceiveProps==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.componentWillReceiveProps(e,i),typeof t.UNSAFE_componentWillReceiveProps==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.UNSAFE_componentWillReceiveProps(e,i),t.state!==n&amp;amp;amp;&amp;amp;amp;w1.enqueueReplaceState(t,t.state,null)}function Kl(n,t){var e=t;if(&amp;amp;quot;ref&amp;amp;quot;in t){e={};for(var i in t)i!==&amp;amp;quot;ref&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(e[i]=t[i])}if(n=n.defaultProps){e===t&amp;amp;amp;&amp;amp;amp;(e=pn({},e));for(var a in n)e[a]===void 0&amp;amp;amp;&amp;amp;amp;(e[a]=n[a])}return e}var Tv=typeof reportError==&amp;amp;quot;function&amp;amp;quot;?reportError:function(n){if(typeof window==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof window.ErrorEvent==&amp;amp;quot;function&amp;amp;quot;){var t=new window.ErrorEvent(&amp;amp;quot;error&amp;amp;quot;,{bubbles:!0,cancelable:!0,message:typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!==null&amp;amp;amp;&amp;amp;amp;typeof n.message==&amp;amp;quot;string&amp;amp;quot;?String(n.message):String(n),error:n});if(!window.dispatchEvent(t))return}else if(typeof process==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof process.emit==&amp;amp;quot;function&amp;amp;quot;){process.emit(&amp;amp;quot;uncaughtException&amp;amp;quot;,n);return}console.error(n)};function fD(n){Tv(n)}function hD(n){console.error(n)}function dD(n){Tv(n)}function Av(n,t){try{var e=n.onUncaughtError;e(t.value,{componentStack:t.stack})}catch(i){setTimeout(function(){throw i})}}function nw(n,t,e){try{var i=n.onCaughtError;i(e.value,{componentStack:e.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(a){setTimeout(function(){throw a})}}function D1(n,t,e){return e=zo(e),e.tag=3,e.payload={element:null},e.callback=function(){Av(n,t)},e}function pD(n){return n=zo(n),n.tag=3,n}function mD(n,t,e,i){var a=e.type.getDerivedStateFromError;if(typeof a==&amp;amp;quot;function&amp;amp;quot;){var s=i.value;n.payload=function(){return a(s)},n.callback=function(){nw(t,e,i)}}var o=e.stateNode;o!==null&amp;amp;amp;&amp;amp;amp;typeof o.componentDidCatch==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.callback=function(){nw(t,e,i),typeof a!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(Po===null?Po=new Set([this]):Po.add(this));var u=i.stack;this.componentDidCatch(i.value,{componentStack:u!==null?u:&amp;amp;quot;&amp;amp;quot;})})}function gI(n,t,e,i,a){if(e.flags|=32768,i!==null&amp;amp;amp;&amp;amp;amp;typeof i==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i.then==&amp;amp;quot;function&amp;amp;quot;){if(t=e.alternate,t!==null&amp;amp;amp;&amp;amp;amp;lp(t,e,a,!0),e=as.current,e!==null){switch(e.tag){case 13:return Zs===null?I1():e.alternate===null&amp;amp;amp;&amp;amp;amp;wn===0&amp;amp;amp;&amp;amp;amp;(wn=3),e.flags&amp;amp;amp;=-257,e.flags|=65536,e.lanes=a,i===M1?e.flags|=16384:(t=e.updateQueue,t===null?e.updateQueue=new Set([i]):t.add(i),QM(n,i,a)),!1;case 22:return e.flags|=65536,i===M1?e.flags|=16384:(t=e.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([i])},e.updateQueue=t):(e=t.retryQueue,e===null?t.retryQueue=new Set([i]):e.add(i)),QM(n,i,a)),!1}throw Error(ft(435,e.tag))}return QM(n,i,a),I1(),!1}if(Ve)return t=as.current,t!==null?((t.flags&amp;amp;amp;65536)===0&amp;amp;amp;&amp;amp;amp;(t.flags|=256),t.flags|=65536,t.lanes=a,i!==v1&amp;amp;amp;&amp;amp;amp;(n=Error(ft(422),{cause:i}),Yd(ns(n,e)))):(i!==v1&amp;amp;amp;&amp;amp;amp;(t=Error(ft(423),{cause:i}),Yd(ns(t,e))),n=n.current.alternate,n.flags|=65536,a&amp;amp;amp;=-a,n.lanes|=a,i=ns(i,e),a=D1(n.stateNode,i,a),PM(n,a),wn!==4&amp;amp;amp;&amp;amp;amp;(wn=2)),!1;var s=Error(ft(520),{cause:i});if(s=ns(s,e),Id===null?Id=[s]:Id.push(s),wn!==4&amp;amp;amp;&amp;amp;amp;(wn=2),t===null)return!0;i=ns(i,e),e=t;do{switch(e.tag){case 3:return e.flags|=65536,n=a&amp;amp;amp;-a,e.lanes|=n,n=D1(e.stateNode,i,n),PM(e,n),!1;case 1:if(t=e.type,s=e.stateNode,(e.flags&amp;amp;amp;128)===0&amp;amp;amp;&amp;amp;amp;(typeof t.getDerivedStateFromError==&amp;amp;quot;function&amp;amp;quot;||s!==null&amp;amp;amp;&amp;amp;amp;typeof s.componentDidCatch==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(Po===null||!Po.has(s))))return e.flags|=65536,a&amp;amp;amp;=-a,e.lanes|=a,a=pD(a),mD(a,n,e,i),PM(e,a),!1}e=e.return}while(e!==null);return!1}var gD=Error(ft(461)),ii=!1;function pi(n,t,e,i){t.child=n===null?uD(t,null,e,i):nf(t,n.child,e,i)}function iw(n,t,e,i,a){e=e.render;var s=t.ref;if(&amp;amp;quot;ref&amp;amp;quot;in i){var o={};for(var u in i)u!==&amp;amp;quot;ref&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o[u]=i[u])}else o=i;return jl(t),i=yE(n,t,e,o,s,a),u=_E(),n!==null&amp;amp;amp;&amp;amp;amp;!ii?(xE(n,t,a),Br(n,t,a)):(Ve&amp;amp;amp;&amp;amp;amp;u&amp;amp;amp;&amp;amp;amp;fE(t),t.flags|=1,pi(n,t,i,a),t.child)}function aw(n,t,e,i,a){if(n===null){var s=e.type;return typeof s==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!cE(s)&amp;amp;amp;&amp;amp;amp;s.defaultProps===void 0&amp;amp;amp;&amp;amp;amp;e.compare===null?(t.tag=15,t.type=s,vD(n,t,s,i,a)):(n=ev(e.type,null,i,t,t.mode,a),n.ref=t.ref,n.return=t,t.child=n)}if(s=n.child,!wE(n,a)){var o=s.memoizedProps;if(e=e.compare,e=e!==null?e:qd,e(o,i)&amp;amp;amp;&amp;amp;amp;n.ref===t.ref)return Br(n,t,a)}return t.flags|=1,n=Nr(s,i),n.ref=t.ref,n.return=t,t.child=n}function vD(n,t,e,i,a){if(n!==null){var s=n.memoizedProps;if(qd(s,i)&amp;amp;amp;&amp;amp;amp;n.ref===t.ref)if(ii=!1,t.pendingProps=i=s,wE(n,a))(n.flags&amp;amp;amp;131072)!==0&amp;amp;amp;&amp;amp;amp;(ii=!0);else return t.lanes=n.lanes,Br(n,t,a)}return U1(n,t,e,i,a)}function yD(n,t,e){var i=t.pendingProps,a=i.children,s=n!==null?n.memoizedState:null;if(i.mode===&amp;amp;quot;hidden&amp;amp;quot;){if((t.flags&amp;amp;amp;128)!==0){if(i=s!==null?s.baseLanes|e:e,n!==null){for(a=t.child=n.child,s=0;a!==null;)s=s|a.lanes|a.childLanes,a=a.sibling;t.childLanes=s&amp;amp;amp;~i}else t.childLanes=0,t.child=null;return sw(n,t,i,e)}if((e&amp;amp;amp;536870912)!==0)t.memoizedState={baseLanes:0,cachePool:null},n!==null&amp;amp;amp;&amp;amp;amp;nv(t,s!==null?s.cachePool:null),s!==null?WC(t,s):T1(),cD(t);else return t.lanes=t.childLanes=536870912,sw(n,t,s!==null?s.baseLanes|e:e,e)}else s!==null?(nv(t,s.cachePool),WC(t,s),Co(t),t.memoizedState=null):(n!==null&amp;amp;amp;&amp;amp;amp;nv(t,null),T1(),Co(t));return pi(n,t,a,e),t.child}function sw(n,t,e,i){var a=pE();return a=a===null?null:{parent:Yn._currentValue,pool:a},t.memoizedState={baseLanes:e,cachePool:a},n!==null&amp;amp;amp;&amp;amp;amp;nv(t,null),T1(),cD(t),n!==null&amp;amp;amp;&amp;amp;amp;lp(n,t,i,!0),null}function sv(n,t){var e=t.ref;if(e===null)n!==null&amp;amp;amp;&amp;amp;amp;n.ref!==null&amp;amp;amp;&amp;amp;amp;(t.flags|=4194816);else{if(typeof e!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e!=&amp;amp;quot;object&amp;amp;quot;)throw Error(ft(284));(n===null||n.ref!==e)&amp;amp;amp;&amp;amp;amp;(t.flags|=4194816)}}function U1(n,t,e,i,a){return jl(t),e=yE(n,t,e,i,void 0,a),i=_E(),n!==null&amp;amp;amp;&amp;amp;amp;!ii?(xE(n,t,a),Br(n,t,a)):(Ve&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;fE(t),t.flags|=1,pi(n,t,e,a),t.child)}function rw(n,t,e,i,a,s){return jl(t),t.updateQueue=null,e=U3(t,i,e,a),D3(n),i=_E(),n!==null&amp;amp;amp;&amp;amp;amp;!ii?(xE(n,t,s),Br(n,t,s)):(Ve&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;fE(t),t.flags|=1,pi(n,t,e,s),t.child)}function ow(n,t,e,i,a){if(jl(t),t.stateNode===null){var s=Ic,o=e.contextType;typeof o==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o!==null&amp;amp;amp;&amp;amp;amp;(s=Ci(o)),s=new e(i,s),t.memoizedState=s.state!==null&amp;amp;amp;&amp;amp;amp;s.state!==void 0?s.state:null,s.updater=w1,t.stateNode=s,s._reactInternals=t,s=t.stateNode,s.props=i,s.state=t.memoizedState,s.refs={},mE(t),o=e.contextType,s.context=typeof o==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o!==null?Ci(o):Ic,s.state=t.memoizedState,o=e.getDerivedStateFromProps,typeof o==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(HM(t,e,o,i),s.state=t.memoizedState),typeof e.getDerivedStateFromProps==&amp;amp;quot;function&amp;amp;quot;||typeof s.getSnapshotBeforeUpdate==&amp;amp;quot;function&amp;amp;quot;||typeof s.UNSAFE_componentWillMount!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s.componentWillMount!=&amp;amp;quot;function&amp;amp;quot;||(o=s.state,typeof s.componentWillMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.componentWillMount(),typeof s.UNSAFE_componentWillMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.UNSAFE_componentWillMount(),o!==s.state&amp;amp;amp;&amp;amp;amp;w1.enqueueReplaceState(s,s.state,null),Ld(t,i,s,a),Od(),s.state=t.memoizedState),typeof s.componentDidMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.flags|=4194308),i=!0}else if(n===null){s=t.stateNode;var u=t.memoizedProps,c=Kl(e,u);s.props=c;var h=s.context,d=e.contextType;o=Ic,typeof d==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;d!==null&amp;amp;amp;&amp;amp;amp;(o=Ci(d));var m=e.getDerivedStateFromProps;d=typeof m==&amp;amp;quot;function&amp;amp;quot;||typeof s.getSnapshotBeforeUpdate==&amp;amp;quot;function&amp;amp;quot;,u=t.pendingProps!==u,d||typeof s.UNSAFE_componentWillReceiveProps!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s.componentWillReceiveProps!=&amp;amp;quot;function&amp;amp;quot;||(u||h!==o)&amp;amp;amp;&amp;amp;amp;ew(t,s,i,o),To=!1;var g=t.memoizedState;s.state=g,Ld(t,i,s,a),Od(),h=t.memoizedState,u||g!==h||To?(typeof m==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(HM(t,e,m,i),h=t.memoizedState),(c=To||tw(t,e,c,i,g,h,o))?(d||typeof s.UNSAFE_componentWillMount!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s.componentWillMount!=&amp;amp;quot;function&amp;amp;quot;||(typeof s.componentWillMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.componentWillMount(),typeof s.UNSAFE_componentWillMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.UNSAFE_componentWillMount()),typeof s.componentDidMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.flags|=4194308)):(typeof s.componentDidMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.flags|=4194308),t.memoizedProps=i,t.memoizedState=h),s.props=i,s.state=h,s.context=o,i=c):(typeof s.componentDidMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.flags|=4194308),i=!1)}else{s=t.stateNode,E1(n,t),o=t.memoizedProps,d=Kl(e,o),s.props=d,m=t.pendingProps,g=s.context,h=e.contextType,c=Ic,typeof h==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;h!==null&amp;amp;amp;&amp;amp;amp;(c=Ci(h)),u=e.getDerivedStateFromProps,(h=typeof u==&amp;amp;quot;function&amp;amp;quot;||typeof s.getSnapshotBeforeUpdate==&amp;amp;quot;function&amp;amp;quot;)||typeof s.UNSAFE_componentWillReceiveProps!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s.componentWillReceiveProps!=&amp;amp;quot;function&amp;amp;quot;||(o!==m||g!==c)&amp;amp;amp;&amp;amp;amp;ew(t,s,i,c),To=!1,g=t.memoizedState,s.state=g,Ld(t,i,s,a),Od();var y=t.memoizedState;o!==m||g!==y||To||n!==null&amp;amp;amp;&amp;amp;amp;n.dependencies!==null&amp;amp;amp;&amp;amp;amp;_v(n.dependencies)?(typeof u==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(HM(t,e,u,i),y=t.memoizedState),(d=To||tw(t,e,d,i,g,y,c)||n!==null&amp;amp;amp;&amp;amp;amp;n.dependencies!==null&amp;amp;amp;&amp;amp;amp;_v(n.dependencies))?(h||typeof s.UNSAFE_componentWillUpdate!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s.componentWillUpdate!=&amp;amp;quot;function&amp;amp;quot;||(typeof s.componentWillUpdate==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.componentWillUpdate(i,y,c),typeof s.UNSAFE_componentWillUpdate==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.UNSAFE_componentWillUpdate(i,y,c)),typeof s.componentDidUpdate==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.flags|=4),typeof s.getSnapshotBeforeUpdate==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.flags|=1024)):(typeof s.componentDidUpdate!=&amp;amp;quot;function&amp;amp;quot;||o===n.memoizedProps&amp;amp;amp;&amp;amp;amp;g===n.memoizedState||(t.flags|=4),typeof s.getSnapshotBeforeUpdate!=&amp;amp;quot;function&amp;amp;quot;||o===n.memoizedProps&amp;amp;amp;&amp;amp;amp;g===n.memoizedState||(t.flags|=1024),t.memoizedProps=i,t.memoizedState=y),s.props=i,s.state=y,s.context=c,i=d):(typeof s.componentDidUpdate!=&amp;amp;quot;function&amp;amp;quot;||o===n.memoizedProps&amp;amp;amp;&amp;amp;amp;g===n.memoizedState||(t.flags|=4),typeof s.getSnapshotBeforeUpdate!=&amp;amp;quot;function&amp;amp;quot;||o===n.memoizedProps&amp;amp;amp;&amp;amp;amp;g===n.memoizedState||(t.flags|=1024),i=!1)}return s=i,sv(n,t),i=(t.flags&amp;amp;amp;128)!==0,s||i?(s=t.stateNode,e=i&amp;amp;amp;&amp;amp;amp;typeof e.getDerivedStateFromError!=&amp;amp;quot;function&amp;amp;quot;?null:s.render(),t.flags|=1,n!==null&amp;amp;amp;&amp;amp;amp;i?(t.child=nf(t,n.child,null,a),t.child=nf(t,null,e,a)):pi(n,t,e,a),t.memoizedState=s.state,n=t.child):n=Br(n,t,a),n}function lw(n,t,e,i){return op(),t.flags|=256,pi(n,t,e,i),t.child}var FM={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function VM(n){return{baseLanes:n,cachePool:T3()}}function GM(n,t,e){return n=n!==null?n.childLanes&amp;amp;amp;~e:0,t&amp;amp;amp;&amp;amp;amp;(n|=is),n}function _D(n,t,e){var i=t.pendingProps,a=!1,s=(t.flags&amp;amp;amp;128)!==0,o;if((o=s)||(o=n!==null&amp;amp;amp;&amp;amp;amp;n.memoizedState===null?!1:(Wn.current&amp;amp;amp;2)!==0),o&amp;amp;amp;&amp;amp;amp;(a=!0,t.flags&amp;amp;amp;=-129),o=(t.flags&amp;amp;amp;32)!==0,t.flags&amp;amp;amp;=-33,n===null){if(Ve){if(a?Ro(t):Co(t),Ve){var u=Cn,c;if(c=u){t:{for(c=u,u=qs;c.nodeType!==8;){if(!u){u=null;break t}if(c=ys(c.nextSibling),c===null){u=null;break t}}u=c}u!==null?(t.memoizedState={dehydrated:u,treeContext:Xl!==null?{id:Cr,overflow:wr}:null,retryLane:536870912,hydrationErrors:null},c=Ea(18,null,null,0),c.stateNode=u,c.return=t,t.child=c,Vi=t,Cn=null,c=!0):c=!1}c||Zl(t)}if(u=t.memoizedState,u!==null&amp;amp;amp;&amp;amp;amp;(u=u.dehydrated,u!==null))return Y1(u)?t.lanes=32:t.lanes=536870912,null;Ur(t)}return u=i.children,i=i.fallback,a?(Co(t),a=t.mode,u=Rv({mode:&amp;amp;quot;hidden&amp;amp;quot;,children:u},a),i=Gl(i,a,e,null),u.return=t,i.return=t,u.sibling=i,t.child=u,a=t.child,a.memoizedState=VM(e),a.childLanes=GM(n,o,e),t.memoizedState=FM,i):(Ro(t),N1(t,u))}if(c=n.memoizedState,c!==null&amp;amp;amp;&amp;amp;amp;(u=c.dehydrated,u!==null)){if(s)t.flags&amp;amp;amp;256?(Ro(t),t.flags&amp;amp;amp;=-257,t=XM(n,t,e)):t.memoizedState!==null?(Co(t),t.child=n.child,t.flags|=128,t=null):(Co(t),a=i.fallback,u=t.mode,i=Rv({mode:&amp;amp;quot;visible&amp;amp;quot;,children:i.children},u),a=Gl(a,u,e,null),a.flags|=2,i.return=t,a.return=t,i.sibling=a,t.child=i,nf(t,n.child,null,e),i=t.child,i.memoizedState=VM(e),i.childLanes=GM(n,o,e),t.memoizedState=FM,t=a);else if(Ro(t),Y1(u)){if(o=u.nextSibling&amp;amp;amp;&amp;amp;amp;u.nextSibling.dataset,o)var h=o.dgst;o=h,i=Error(ft(419)),i.stack=&amp;amp;quot;&amp;amp;quot;,i.digest=o,Yd({value:i,source:null,stack:null}),t=XM(n,t,e)}else if(ii||lp(n,t,e,!1),o=(e&amp;amp;amp;n.childLanes)!==0,ii||o){if(o=fn,o!==null&amp;amp;amp;&amp;amp;amp;(i=e&amp;amp;amp;-e,i=(i&amp;amp;amp;42)!==0?1:$1(i),i=(i&amp;amp;amp;(o.suspendedLanes|e))!==0?0:i,i!==0&amp;amp;amp;&amp;amp;amp;i!==c.retryLane))throw c.retryLane=i,cf(n,i),Ra(o,n,i),gD;u.data===&amp;amp;quot;$?&amp;amp;quot;||I1(),t=XM(n,t,e)}else u.data===&amp;amp;quot;$?&amp;amp;quot;?(t.flags|=192,t.child=n.child,t=null):(n=c.treeContext,Cn=ys(u.nextSibling),Vi=t,Ve=!0,ql=null,qs=!1,n!==null&amp;amp;amp;&amp;amp;amp;($a[ts++]=Cr,$a[ts++]=wr,$a[ts++]=Xl,Cr=n.id,wr=n.overflow,Xl=t),t=N1(t,i.children),t.flags|=4096);return t}return a?(Co(t),a=i.fallback,u=t.mode,c=n.child,h=c.sibling,i=Nr(c,{mode:&amp;amp;quot;hidden&amp;amp;quot;,children:i.children}),i.subtreeFlags=c.subtreeFlags&amp;amp;amp;65011712,h!==null?a=Nr(h,a):(a=Gl(a,u,e,null),a.flags|=2),a.return=t,i.return=t,i.sibling=a,t.child=i,i=a,a=t.child,u=n.child.memoizedState,u===null?u=VM(e):(c=u.cachePool,c!==null?(h=Yn._currentValue,c=c.parent!==h?{parent:h,pool:h}:c):c=T3(),u={baseLanes:u.baseLanes|e,cachePool:c}),a.memoizedState=u,a.childLanes=GM(n,o,e),t.memoizedState=FM,i):(Ro(t),e=n.child,n=e.sibling,e=Nr(e,{mode:&amp;amp;quot;visible&amp;amp;quot;,children:i.children}),e.return=t,e.sibling=null,n!==null&amp;amp;amp;&amp;amp;amp;(o=t.deletions,o===null?(t.deletions=[n],t.flags|=16):o.push(n)),t.child=e,t.memoizedState=null,e)}function N1(n,t){return t=Rv({mode:&amp;amp;quot;visible&amp;amp;quot;,children:t},n.mode),t.return=n,n.child=t}function Rv(n,t){return n=Ea(22,n,null,t),n.lanes=0,n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},n}function XM(n,t,e){return nf(t,n.child,null,e),n=N1(t,t.pendingProps.children),n.flags|=2,t.memoizedState=null,n}function uw(n,t,e){n.lanes|=t;var i=n.alternate;i!==null&amp;amp;amp;&amp;amp;amp;(i.lanes|=t),_1(n.return,t,e)}function qM(n,t,e,i,a){var s=n.memoizedState;s===null?n.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:i,tail:e,tailMode:a}:(s.isBackwards=t,s.rendering=null,s.renderingStartTime=0,s.last=i,s.tail=e,s.tailMode=a)}function xD(n,t,e){var i=t.pendingProps,a=i.revealOrder,s=i.tail;if(pi(n,t,i.children,e),i=Wn.current,(i&amp;amp;amp;2)!==0)i=i&amp;amp;amp;1|2,t.flags|=128;else{if(n!==null&amp;amp;amp;&amp;amp;amp;(n.flags&amp;amp;amp;128)!==0)t:for(n=t.child;n!==null;){if(n.tag===13)n.memoizedState!==null&amp;amp;amp;&amp;amp;amp;uw(n,e,t);else if(n.tag===19)uw(n,e,t);else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break t;for(;n.sibling===null;){if(n.return===null||n.return===t)break t;n=n.return}n.sibling.return=n.return,n=n.sibling}i&amp;amp;amp;=1}switch(yn(Wn,i),a){case&amp;amp;quot;forwards&amp;amp;quot;:for(e=t.child,a=null;e!==null;)n=e.alternate,n!==null&amp;amp;amp;&amp;amp;amp;bv(n)===null&amp;amp;amp;&amp;amp;amp;(a=e),e=e.sibling;e=a,e===null?(a=t.child,t.child=null):(a=e.sibling,e.sibling=null),qM(t,!1,a,e,s);break;case&amp;amp;quot;backwards&amp;amp;quot;:for(e=null,a=t.child,t.child=null;a!==null;){if(n=a.alternate,n!==null&amp;amp;amp;&amp;amp;amp;bv(n)===null){t.child=a;break}n=a.sibling,a.sibling=e,e=a,a=n}qM(t,!0,e,null,s);break;case&amp;amp;quot;together&amp;amp;quot;:qM(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Br(n,t,e){if(n!==null&amp;amp;amp;&amp;amp;amp;(t.dependencies=n.dependencies),qo|=t.lanes,(e&amp;amp;amp;t.childLanes)===0)if(n!==null){if(lp(n,t,e,!1),(e&amp;amp;amp;t.childLanes)===0)return null}else return null;if(n!==null&amp;amp;amp;&amp;amp;amp;t.child!==n.child)throw Error(ft(153));if(t.child!==null){for(n=t.child,e=Nr(n,n.pendingProps),t.child=e,e.return=t;n.sibling!==null;)n=n.sibling,e=e.sibling=Nr(n,n.pendingProps),e.return=t;e.sibling=null}return t.child}function wE(n,t){return(n.lanes&amp;amp;amp;t)!==0?!0:(n=n.dependencies,!!(n!==null&amp;amp;amp;&amp;amp;amp;_v(n)))}function vI(n,t,e){switch(t.tag){case 3:fv(t,t.stateNode.containerInfo),Ao(t,Yn,n.memoizedState.cache),op();break;case 27:case 5:o1(t);break;case 4:fv(t,t.stateNode.containerInfo);break;case 10:Ao(t,t.type,t.memoizedProps.value);break;case 13:var i=t.memoizedState;if(i!==null)return i.dehydrated!==null?(Ro(t),t.flags|=128,null):(e&amp;amp;amp;t.child.childLanes)!==0?_D(n,t,e):(Ro(t),n=Br(n,t,e),n!==null?n.sibling:null);Ro(t);break;case 19:var a=(n.flags&amp;amp;amp;128)!==0;if(i=(e&amp;amp;amp;t.childLanes)!==0,i||(lp(n,t,e,!1),i=(e&amp;amp;amp;t.childLanes)!==0),a){if(i)return xD(n,t,e);t.flags|=128}if(a=t.memoizedState,a!==null&amp;amp;amp;&amp;amp;amp;(a.rendering=null,a.tail=null,a.lastEffect=null),yn(Wn,Wn.current),i)break;return null;case 22:case 23:return t.lanes=0,yD(n,t,e);case 24:Ao(t,Yn,n.memoizedState.cache)}return Br(n,t,e)}function SD(n,t,e){if(n!==null)if(n.memoizedProps!==t.pendingProps)ii=!0;else{if(!wE(n,e)&amp;amp;amp;&amp;amp;amp;(t.flags&amp;amp;amp;128)===0)return ii=!1,vI(n,t,e);ii=(n.flags&amp;amp;amp;131072)!==0}else ii=!1,Ve&amp;amp;amp;&amp;amp;amp;(t.flags&amp;amp;amp;1048576)!==0&amp;amp;amp;&amp;amp;amp;E3(t,yv,t.index);switch(t.lanes=0,t.tag){case 16:t:{n=t.pendingProps;var i=t.elementType,a=i._init;if(i=a(i._payload),t.type=i,typeof i==&amp;amp;quot;function&amp;amp;quot;)cE(i)?(n=Kl(i,n),t.tag=1,t=ow(null,t,i,n,e)):(t.tag=0,t=U1(null,t,i,n,e));else{if(i!=null){if(a=i.$$typeof,a===Q1){t.tag=11,t=iw(null,t,i,n,e);break t}else if(a===K1){t.tag=14,t=aw(null,t,i,n,e);break t}}throw t=s1(i)||i,Error(ft(306,t,&amp;amp;quot;&amp;amp;quot;))}}return t;case 0:return U1(n,t,t.type,t.pendingProps,e);case 1:return i=t.type,a=Kl(i,t.pendingProps),ow(n,t,i,a,e);case 3:t:{if(fv(t,t.stateNode.containerInfo),n===null)throw Error(ft(387));i=t.pendingProps;var s=t.memoizedState;a=s.element,E1(n,t),Ld(t,i,null,e);var o=t.memoizedState;if(i=o.cache,Ao(t,Yn,i),i!==s.cache&amp;amp;amp;&amp;amp;amp;x1(t,[Yn],e,!0),Od(),i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache},t.updateQueue.baseState=s,t.memoizedState=s,t.flags&amp;amp;amp;256){t=lw(n,t,i,e);break t}else if(i!==a){a=ns(Error(ft(424)),t),Yd(a),t=lw(n,t,i,e);break t}else{switch(n=t.stateNode.containerInfo,n.nodeType){case 9:n=n.body;break;default:n=n.nodeName===&amp;amp;quot;HTML&amp;amp;quot;?n.ownerDocument.body:n}for(Cn=ys(n.firstChild),Vi=t,Ve=!0,ql=null,qs=!0,e=uD(t,null,i,e),t.child=e;e;)e.flags=e.flags&amp;amp;amp;-3|4096,e=e.sibling}else{if(op(),i===a){t=Br(n,t,e);break t}pi(n,t,i,e)}t=t.child}return t;case 26:return sv(n,t),n===null?(e=Cw(t.type,null,t.pendingProps,null))?t.memoizedState=e:Ve||(e=t.type,n=t.pendingProps,i=Lv(Lo.current).createElement(e),i[Ri]=t,i[ta]=n,gi(i,e,n),ni(i),t.stateNode=i):t.memoizedState=Cw(t.type,n.memoizedProps,t.pendingProps,n.memoizedState),null;case 27:return o1(t),n===null&amp;amp;amp;&amp;amp;amp;Ve&amp;amp;amp;&amp;amp;amp;(i=t.stateNode=oU(t.type,t.pendingProps,Lo.current),Vi=t,qs=!0,a=Cn,Wo(t.type)?(W1=a,Cn=ys(i.firstChild)):Cn=a),pi(n,t,t.pendingProps.children,e),sv(n,t),n===null&amp;amp;amp;&amp;amp;amp;(t.flags|=4194304),t.child;case 5:return n===null&amp;amp;amp;&amp;amp;amp;Ve&amp;amp;amp;&amp;amp;amp;((a=i=Cn)&amp;amp;amp;&amp;amp;amp;(i=XI(i,t.type,t.pendingProps,qs),i!==null?(t.stateNode=i,Vi=t,Cn=ys(i.firstChild),qs=!1,a=!0):a=!1),a||Zl(t)),o1(t),a=t.type,s=t.pendingProps,o=n!==null?n.memoizedProps:null,i=s.children,X1(a,s)?i=null:o!==null&amp;amp;amp;&amp;amp;amp;X1(a,o)&amp;amp;amp;&amp;amp;amp;(t.flags|=32),t.memoizedState!==null&amp;amp;amp;&amp;amp;amp;(a=yE(n,t,uI,null,null,e),Kd._currentValue=a),sv(n,t),pi(n,t,i,e),t.child;case 6:return n===null&amp;amp;amp;&amp;amp;amp;Ve&amp;amp;amp;&amp;amp;amp;((n=e=Cn)&amp;amp;amp;&amp;amp;amp;(e=qI(e,t.pendingProps,qs),e!==null?(t.stateNode=e,Vi=t,Cn=null,n=!0):n=!1),n||Zl(t)),null;case 13:return _D(n,t,e);case 4:return fv(t,t.stateNode.containerInfo),i=t.pendingProps,n===null?t.child=nf(t,null,i,e):pi(n,t,i,e),t.child;case 11:return iw(n,t,t.type,t.pendingProps,e);case 7:return pi(n,t,t.pendingProps,e),t.child;case 8:return pi(n,t,t.pendingProps.children,e),t.child;case 12:return pi(n,t,t.pendingProps.children,e),t.child;case 10:return i=t.pendingProps,Ao(t,t.type,i.value),pi(n,t,i.children,e),t.child;case 9:return a=t.type._context,i=t.pendingProps.children,jl(t),a=Ci(a),i=i(a),t.flags|=1,pi(n,t,i,e),t.child;case 14:return aw(n,t,t.type,t.pendingProps,e);case 15:return vD(n,t,t.type,t.pendingProps,e);case 19:return xD(n,t,e);case 31:return i=t.pendingProps,e=t.mode,i={mode:i.mode,children:i.children},n===null?(e=Rv(i,e),e.ref=t.ref,t.child=e,e.return=t,t=e):(e=Nr(n.child,i),e.ref=t.ref,t.child=e,e.return=t,t=e),t;case 22:return yD(n,t,e);case 24:return jl(t),i=Ci(Yn),n===null?(a=pE(),a===null&amp;amp;amp;&amp;amp;amp;(a=fn,s=dE(),a.pooledCache=s,s.refCount++,s!==null&amp;amp;amp;&amp;amp;amp;(a.pooledCacheLanes|=e),a=s),t.memoizedState={parent:i,cache:a},mE(t),Ao(t,Yn,a)):((n.lanes&amp;amp;amp;e)!==0&amp;amp;amp;&amp;amp;amp;(E1(n,t),Ld(t,null,null,e),Od()),a=n.memoizedState,s=t.memoizedState,a.parent!==i?(a={parent:i,cache:i},t.memoizedState=a,t.lanes===0&amp;amp;amp;&amp;amp;amp;(t.memoizedState=t.updateQueue.baseState=a),Ao(t,Yn,i)):(i=s.cache,Ao(t,Yn,i),i!==a.cache&amp;amp;amp;&amp;amp;amp;x1(t,[Yn],e,!0))),pi(n,t,t.pendingProps.children,e),t.child;case 29:throw t.pendingProps}throw Error(ft(156,t.tag))}function br(n){n.flags|=4}function cw(n,t){if(t.type!==&amp;amp;quot;stylesheet&amp;amp;quot;||(t.state.loading&amp;amp;amp;4)!==0)n.flags&amp;amp;amp;=-16777217;else if(n.flags|=16777216,!cU(t)){if(t=as.current,t!==null&amp;amp;amp;&amp;amp;amp;((Ne&amp;amp;amp;4194048)===Ne?Zs!==null:(Ne&amp;amp;amp;62914560)!==Ne&amp;amp;amp;&amp;amp;amp;(Ne&amp;amp;amp;536870912)===0||t!==Zs))throw Ud=M1,A3;n.flags|=8192}}function Y0(n,t){t!==null&amp;amp;amp;&amp;amp;amp;(n.flags|=4),n.flags&amp;amp;amp;16384&amp;amp;amp;&amp;amp;amp;(t=n.tag!==22?kw():536870912,n.lanes|=t,af|=t)}function _d(n,t){if(!Ve)switch(n.tailMode){case&amp;amp;quot;hidden&amp;amp;quot;:t=n.tail;for(var e=null;t!==null;)t.alternate!==null&amp;amp;amp;&amp;amp;amp;(e=t),t=t.sibling;e===null?n.tail=null:e.sibling=null;break;case&amp;amp;quot;collapsed&amp;amp;quot;:e=n.tail;for(var i=null;e!==null;)e.alternate!==null&amp;amp;amp;&amp;amp;amp;(i=e),e=e.sibling;i===null?t||n.tail===null?n.tail=null:n.tail.sibling=null:i.sibling=null}}function Sn(n){var t=n.alternate!==null&amp;amp;amp;&amp;amp;amp;n.alternate.child===n.child,e=0,i=0;if(t)for(var a=n.child;a!==null;)e|=a.lanes|a.childLanes,i|=a.subtreeFlags&amp;amp;amp;65011712,i|=a.flags&amp;amp;amp;65011712,a.return=n,a=a.sibling;else for(a=n.child;a!==null;)e|=a.lanes|a.childLanes,i|=a.subtreeFlags,i|=a.flags,a.return=n,a=a.sibling;return n.subtreeFlags|=i,n.childLanes=e,t}function yI(n,t,e){var i=t.pendingProps;switch(hE(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Sn(t),null;case 1:return Sn(t),null;case 3:return e=t.stateNode,i=null,n!==null&amp;amp;amp;&amp;amp;amp;(i=n.memoizedState.cache),t.memoizedState.cache!==i&amp;amp;amp;&amp;amp;amp;(t.flags|=2048),Or(Yn),Qc(),e.pendingContext&amp;amp;amp;&amp;amp;amp;(e.context=e.pendingContext,e.pendingContext=null),(n===null||n.child===null)&amp;amp;amp;&amp;amp;amp;(vd(t)?br(t):n===null||n.memoizedState.isDehydrated&amp;amp;amp;&amp;amp;amp;(t.flags&amp;amp;amp;256)===0||(t.flags|=1024,FC())),Sn(t),null;case 26:return e=t.memoizedState,n===null?(br(t),e!==null?(Sn(t),cw(t,e)):(Sn(t),t.flags&amp;amp;amp;=-16777217)):e?e!==n.memoizedState?(br(t),Sn(t),cw(t,e)):(Sn(t),t.flags&amp;amp;amp;=-16777217):(n.memoizedProps!==i&amp;amp;amp;&amp;amp;amp;br(t),Sn(t),t.flags&amp;amp;amp;=-16777217),null;case 27:hv(t),e=Lo.current;var a=t.type;if(n!==null&amp;amp;amp;&amp;amp;amp;t.stateNode!=null)n.memoizedProps!==i&amp;amp;amp;&amp;amp;amp;br(t);else{if(!i){if(t.stateNode===null)throw Error(ft(166));return Sn(t),null}n=Ws.current,vd(t)?IC(t,n):(n=oU(a,i,e),t.stateNode=n,br(t))}return Sn(t),null;case 5:if(hv(t),e=t.type,n!==null&amp;amp;amp;&amp;amp;amp;t.stateNode!=null)n.memoizedProps!==i&amp;amp;amp;&amp;amp;amp;br(t);else{if(!i){if(t.stateNode===null)throw Error(ft(166));return Sn(t),null}if(n=Ws.current,vd(t))IC(t,n);else{switch(a=Lv(Lo.current),n){case 1:n=a.createElementNS(&amp;amp;quot;http://www.w3.org/2000/svg&amp;amp;quot;,e);break;case 2:n=a.createElementNS(&amp;amp;quot;http://www.w3.org/1998/Math/MathML&amp;amp;quot;,e);break;default:switch(e){case&amp;amp;quot;svg&amp;amp;quot;:n=a.createElementNS(&amp;amp;quot;http://www.w3.org/2000/svg&amp;amp;quot;,e);break;case&amp;amp;quot;math&amp;amp;quot;:n=a.createElementNS(&amp;amp;quot;http://www.w3.org/1998/Math/MathML&amp;amp;quot;,e);break;case&amp;amp;quot;script&amp;amp;quot;:n=a.createElement(&amp;amp;quot;div&amp;amp;quot;),n.innerHTML=&amp;amp;quot;&amp;amp;lt;script&amp;amp;gt;&amp;amp;lt;\/script&amp;amp;gt;&amp;amp;quot;,n=n.removeChild(n.firstChild);break;case&amp;amp;quot;select&amp;amp;quot;:n=typeof i.is==&amp;amp;quot;string&amp;amp;quot;?a.createElement(&amp;amp;quot;select&amp;amp;quot;,{is:i.is}):a.createElement(&amp;amp;quot;select&amp;amp;quot;),i.multiple?n.multiple=!0:i.size&amp;amp;amp;&amp;amp;amp;(n.size=i.size);break;default:n=typeof i.is==&amp;amp;quot;string&amp;amp;quot;?a.createElement(e,{is:i.is}):a.createElement(e)}}n[Ri]=t,n[ta]=i;t:for(a=t.child;a!==null;){if(a.tag===5||a.tag===6)n.appendChild(a.stateNode);else if(a.tag!==4&amp;amp;amp;&amp;amp;amp;a.tag!==27&amp;amp;amp;&amp;amp;amp;a.child!==null){a.child.return=a,a=a.child;continue}if(a===t)break t;for(;a.sibling===null;){if(a.return===null||a.return===t)break t;a=a.return}a.sibling.return=a.return,a=a.sibling}t.stateNode=n;t:switch(gi(n,e,i),e){case&amp;amp;quot;button&amp;amp;quot;:case&amp;amp;quot;input&amp;amp;quot;:case&amp;amp;quot;select&amp;amp;quot;:case&amp;amp;quot;textarea&amp;amp;quot;:n=!!i.autoFocus;break t;case&amp;amp;quot;img&amp;amp;quot;:n=!0;break t;default:n=!1}n&amp;amp;amp;&amp;amp;amp;br(t)}}return Sn(t),t.flags&amp;amp;amp;=-16777217,null;case 6:if(n&amp;amp;amp;&amp;amp;amp;t.stateNode!=null)n.memoizedProps!==i&amp;amp;amp;&amp;amp;amp;br(t);else{if(typeof i!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.stateNode===null)throw Error(ft(166));if(n=Lo.current,vd(t)){if(n=t.stateNode,e=t.memoizedProps,i=null,a=Vi,a!==null)switch(a.tag){case 27:case 5:i=a.memoizedProps}n[Ri]=t,n=!!(n.nodeValue===e||i!==null&amp;amp;amp;&amp;amp;amp;i.suppressHydrationWarning===!0||aU(n.nodeValue,e)),n||Zl(t)}else n=Lv(n).createTextNode(i),n[Ri]=t,t.stateNode=n}return Sn(t),null;case 13:if(i=t.memoizedState,n===null||n.memoizedState!==null&amp;amp;amp;&amp;amp;amp;n.memoizedState.dehydrated!==null){if(a=vd(t),i!==null&amp;amp;amp;&amp;amp;amp;i.dehydrated!==null){if(n===null){if(!a)throw Error(ft(318));if(a=t.memoizedState,a=a!==null?a.dehydrated:null,!a)throw Error(ft(317));a[Ri]=t}else op(),(t.flags&amp;amp;amp;128)===0&amp;amp;amp;&amp;amp;amp;(t.memoizedState=null),t.flags|=4;Sn(t),a=!1}else a=FC(),n!==null&amp;amp;amp;&amp;amp;amp;n.memoizedState!==null&amp;amp;amp;&amp;amp;amp;(n.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&amp;amp;amp;256?(Ur(t),t):(Ur(t),null)}if(Ur(t),(t.flags&amp;amp;amp;128)!==0)return t.lanes=e,t;if(e=i!==null,n=n!==null&amp;amp;amp;&amp;amp;amp;n.memoizedState!==null,e){i=t.child,a=null,i.alternate!==null&amp;amp;amp;&amp;amp;amp;i.alternate.memoizedState!==null&amp;amp;amp;&amp;amp;amp;i.alternate.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(a=i.alternate.memoizedState.cachePool.pool);var s=null;i.memoizedState!==null&amp;amp;amp;&amp;amp;amp;i.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(s=i.memoizedState.cachePool.pool),s!==a&amp;amp;amp;&amp;amp;amp;(i.flags|=2048)}return e!==n&amp;amp;amp;&amp;amp;amp;e&amp;amp;amp;&amp;amp;amp;(t.child.flags|=8192),Y0(t,t.updateQueue),Sn(t),null;case 4:return Qc(),n===null&amp;amp;amp;&amp;amp;amp;PE(t.stateNode.containerInfo),Sn(t),null;case 10:return Or(t.type),Sn(t),null;case 19:if(ai(Wn),a=t.memoizedState,a===null)return Sn(t),null;if(i=(t.flags&amp;amp;amp;128)!==0,s=a.rendering,s===null)if(i)_d(a,!1);else{if(wn!==0||n!==null&amp;amp;amp;&amp;amp;amp;(n.flags&amp;amp;amp;128)!==0)for(n=t.child;n!==null;){if(s=bv(n),s!==null){for(t.flags|=128,_d(a,!1),n=s.updateQueue,t.updateQueue=n,Y0(t,n),t.subtreeFlags=0,n=e,e=t.child;e!==null;)M3(e,n),e=e.sibling;return yn(Wn,Wn.current&amp;amp;amp;1|2),t.child}n=n.sibling}a.tail!==null&amp;amp;amp;&amp;amp;amp;ks()&amp;amp;gt;wv&amp;amp;amp;&amp;amp;amp;(t.flags|=128,i=!0,_d(a,!1),t.lanes=4194304)}else{if(!i)if(n=bv(s),n!==null){if(t.flags|=128,i=!0,n=n.updateQueue,t.updateQueue=n,Y0(t,n),_d(a,!0),a.tail===null&amp;amp;amp;&amp;amp;amp;a.tailMode===&amp;amp;quot;hidden&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!s.alternate&amp;amp;amp;&amp;amp;amp;!Ve)return Sn(t),null}else 2*ks()-a.renderingStartTime&amp;amp;gt;wv&amp;amp;amp;&amp;amp;amp;e!==536870912&amp;amp;amp;&amp;amp;amp;(t.flags|=128,i=!0,_d(a,!1),t.lanes=4194304);a.isBackwards?(s.sibling=t.child,t.child=s):(n=a.last,n!==null?n.sibling=s:t.child=s,a.last=s)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=ks(),t.sibling=null,n=Wn.current,yn(Wn,i?n&amp;amp;amp;1|2:n&amp;amp;amp;1),t):(Sn(t),null);case 22:case 23:return Ur(t),gE(),i=t.memoizedState!==null,n!==null?n.memoizedState!==null!==i&amp;amp;amp;&amp;amp;amp;(t.flags|=8192):i&amp;amp;amp;&amp;amp;amp;(t.flags|=8192),i?(e&amp;amp;amp;536870912)!==0&amp;amp;amp;&amp;amp;amp;(t.flags&amp;amp;amp;128)===0&amp;amp;amp;&amp;amp;amp;(Sn(t),t.subtreeFlags&amp;amp;amp;6&amp;amp;amp;&amp;amp;amp;(t.flags|=8192)):Sn(t),e=t.updateQueue,e!==null&amp;amp;amp;&amp;amp;amp;Y0(t,e.retryQueue),e=null,n!==null&amp;amp;amp;&amp;amp;amp;n.memoizedState!==null&amp;amp;amp;&amp;amp;amp;n.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(e=n.memoizedState.cachePool.pool),i=null,t.memoizedState!==null&amp;amp;amp;&amp;amp;amp;t.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(i=t.memoizedState.cachePool.pool),i!==e&amp;amp;amp;&amp;amp;amp;(t.flags|=2048),n!==null&amp;amp;amp;&amp;amp;amp;ai(Yl),null;case 24:return e=null,n!==null&amp;amp;amp;&amp;amp;amp;(e=n.memoizedState.cache),t.memoizedState.cache!==e&amp;amp;amp;&amp;amp;amp;(t.flags|=2048),Or(Yn),Sn(t),null;case 25:return null;case 30:return null}throw Error(ft(156,t.tag))}function _I(n,t){switch(hE(t),t.tag){case 1:return n=t.flags,n&amp;amp;amp;65536?(t.flags=n&amp;amp;amp;-65537|128,t):null;case 3:return Or(Yn),Qc(),n=t.flags,(n&amp;amp;amp;65536)!==0&amp;amp;amp;&amp;amp;amp;(n&amp;amp;amp;128)===0?(t.flags=n&amp;amp;amp;-65537|128,t):null;case 26:case 27:case 5:return hv(t),null;case 13:if(Ur(t),n=t.memoizedState,n!==null&amp;amp;amp;&amp;amp;amp;n.dehydrated!==null){if(t.alternate===null)throw Error(ft(340));op()}return n=t.flags,n&amp;amp;amp;65536?(t.flags=n&amp;amp;amp;-65537|128,t):null;case 19:return ai(Wn),null;case 4:return Qc(),null;case 10:return Or(t.type),null;case 22:case 23:return Ur(t),gE(),n!==null&amp;amp;amp;&amp;amp;amp;ai(Yl),n=t.flags,n&amp;amp;amp;65536?(t.flags=n&amp;amp;amp;-65537|128,t):null;case 24:return Or(Yn),null;case 25:return null;default:return null}}function MD(n,t){switch(hE(t),t.tag){case 3:Or(Yn),Qc();break;case 26:case 27:case 5:hv(t);break;case 4:Qc();break;case 13:Ur(t);break;case 19:ai(Wn);break;case 10:Or(t.type);break;case 22:case 23:Ur(t),gE(),n!==null&amp;amp;amp;&amp;amp;amp;ai(Yl);break;case 24:Or(Yn)}}function dp(n,t){try{var e=t.updateQueue,i=e!==null?e.lastEffect:null;if(i!==null){var a=i.next;e=a;do{if((e.tag&amp;amp;amp;n)===n){i=void 0;var s=e.create,o=e.inst;i=s(),o.destroy=i}e=e.next}while(e!==a)}}catch(u){nn(t,t.return,u)}}function Xo(n,t,e){try{var i=t.updateQueue,a=i!==null?i.lastEffect:null;if(a!==null){var s=a.next;i=s;do{if((i.tag&amp;amp;amp;n)===n){var o=i.inst,u=o.destroy;if(u!==void 0){o.destroy=void 0,a=t;var c=e,h=u;try{h()}catch(d){nn(a,c,d)}}}i=i.next}while(i!==s)}}catch(d){nn(t,t.return,d)}}function ED(n){var t=n.updateQueue;if(t!==null){var e=n.stateNode;try{w3(t,e)}catch(i){nn(n,n.return,i)}}}function bD(n,t,e){e.props=Kl(n.type,n.memoizedProps),e.state=n.memoizedState;try{e.componentWillUnmount()}catch(i){nn(n,t,i)}}function Bd(n,t){try{var e=n.ref;if(e!==null){switch(n.tag){case 26:case 27:case 5:var i=n.stateNode;break;case 30:i=n.stateNode;break;default:i=n.stateNode}typeof e==&amp;amp;quot;function&amp;amp;quot;?n.refCleanup=e(i):e.current=i}}catch(a){nn(n,t,a)}}function Ys(n,t){var e=n.ref,i=n.refCleanup;if(e!==null)if(typeof i==&amp;amp;quot;function&amp;amp;quot;)try{i()}catch(a){nn(n,t,a)}finally{n.refCleanup=null,n=n.alternate,n!=null&amp;amp;amp;&amp;amp;amp;(n.refCleanup=null)}else if(typeof e==&amp;amp;quot;function&amp;amp;quot;)try{e(null)}catch(a){nn(n,t,a)}else e.current=null}function TD(n){var t=n.type,e=n.memoizedProps,i=n.stateNode;try{t:switch(t){case&amp;amp;quot;button&amp;amp;quot;:case&amp;amp;quot;input&amp;amp;quot;:case&amp;amp;quot;select&amp;amp;quot;:case&amp;amp;quot;textarea&amp;amp;quot;:e.autoFocus&amp;amp;amp;&amp;amp;amp;i.focus();break t;case&amp;amp;quot;img&amp;amp;quot;:e.src?i.src=e.src:e.srcSet&amp;amp;amp;&amp;amp;amp;(i.srcset=e.srcSet)}}catch(a){nn(n,n.return,a)}}function YM(n,t,e){try{var i=n.stateNode;II(i,n.type,e,t),i[ta]=t}catch(a){nn(n,n.return,a)}}function AD(n){return n.tag===5||n.tag===3||n.tag===26||n.tag===27&amp;amp;amp;&amp;amp;amp;Wo(n.type)||n.tag===4}function WM(n){t:for(;;){for(;n.sibling===null;){if(n.return===null||AD(n.return))return null;n=n.return}for(n.sibling.return=n.return,n=n.sibling;n.tag!==5&amp;amp;amp;&amp;amp;amp;n.tag!==6&amp;amp;amp;&amp;amp;amp;n.tag!==18;){if(n.tag===27&amp;amp;amp;&amp;amp;amp;Wo(n.type)||n.flags&amp;amp;amp;2||n.child===null||n.tag===4)continue t;n.child.return=n,n=n.child}if(!(n.flags&amp;amp;amp;2))return n.stateNode}}function O1(n,t,e){var i=n.tag;if(i===5||i===6)n=n.stateNode,t?(e.nodeType===9?e.body:e.nodeName===&amp;amp;quot;HTML&amp;amp;quot;?e.ownerDocument.body:e).insertBefore(n,t):(t=e.nodeType===9?e.body:e.nodeName===&amp;amp;quot;HTML&amp;amp;quot;?e.ownerDocument.body:e,t.appendChild(n),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=$v));else if(i!==4&amp;amp;amp;&amp;amp;amp;(i===27&amp;amp;amp;&amp;amp;amp;Wo(n.type)&amp;amp;amp;&amp;amp;amp;(e=n.stateNode,t=null),n=n.child,n!==null))for(O1(n,t,e),n=n.sibling;n!==null;)O1(n,t,e),n=n.sibling}function Cv(n,t,e){var i=n.tag;if(i===5||i===6)n=n.stateNode,t?e.insertBefore(n,t):e.appendChild(n);else if(i!==4&amp;amp;amp;&amp;amp;amp;(i===27&amp;amp;amp;&amp;amp;amp;Wo(n.type)&amp;amp;amp;&amp;amp;amp;(e=n.stateNode),n=n.child,n!==null))for(Cv(n,t,e),n=n.sibling;n!==null;)Cv(n,t,e),n=n.sibling}function RD(n){var t=n.stateNode,e=n.memoizedProps;try{for(var i=n.type,a=t.attributes;a.length;)t.removeAttributeNode(a[0]);gi(t,i,e),t[Ri]=n,t[ta]=e}catch(s){nn(n,n.return,s)}}var Ar=!1,On=!1,kM=!1,fw=typeof WeakSet==&amp;amp;quot;function&amp;amp;quot;?WeakSet:Set,ei=null;function xI(n,t){if(n=n.containerInfo,V1=Iv,n=p3(n),oE(n)){if(&amp;amp;quot;selectionStart&amp;amp;quot;in n)var e={start:n.selectionStart,end:n.selectionEnd};else t:{e=(e=n.ownerDocument)&amp;amp;amp;&amp;amp;amp;e.defaultView||window;var i=e.getSelection&amp;amp;amp;&amp;amp;amp;e.getSelection();if(i&amp;amp;amp;&amp;amp;amp;i.rangeCount!==0){e=i.anchorNode;var a=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{e.nodeType,s.nodeType}catch{e=null;break t}var o=0,u=-1,c=-1,h=0,d=0,m=n,g=null;e:for(;;){for(var y;m!==e||a!==0&amp;amp;amp;&amp;amp;amp;m.nodeType!==3||(u=o+a),m!==s||i!==0&amp;amp;amp;&amp;amp;amp;m.nodeType!==3||(c=o+i),m.nodeType===3&amp;amp;amp;&amp;amp;amp;(o+=m.nodeValue.length),(y=m.firstChild)!==null;)g=m,m=y;for(;;){if(m===n)break e;if(g===e&amp;amp;amp;&amp;amp;amp;++h===a&amp;amp;amp;&amp;amp;amp;(u=o),g===s&amp;amp;amp;&amp;amp;amp;++d===i&amp;amp;amp;&amp;amp;amp;(c=o),(y=m.nextSibling)!==null)break;m=g,g=m.parentNode}m=y}e=u===-1||c===-1?null:{start:u,end:c}}else e=null}e=e||{start:0,end:0}}else e=null;for(G1={focusedElem:n,selectionRange:e},Iv=!1,ei=t;ei!==null;)if(t=ei,n=t.child,(t.subtreeFlags&amp;amp;amp;1024)!==0&amp;amp;amp;&amp;amp;amp;n!==null)n.return=t,ei=n;else for(;ei!==null;){switch(t=ei,s=t.alternate,n=t.flags,t.tag){case 0:break;case 11:case 15:break;case 1:if((n&amp;amp;amp;1024)!==0&amp;amp;amp;&amp;amp;amp;s!==null){n=void 0,e=t,a=s.memoizedProps,s=s.memoizedState,i=e.stateNode;try{var x=Kl(e.type,a,e.elementType===e.type);n=i.getSnapshotBeforeUpdate(x,s),i.__reactInternalSnapshotBeforeUpdate=n}catch(b){nn(e,e.return,b)}}break;case 3:if((n&amp;amp;amp;1024)!==0){if(n=t.stateNode.containerInfo,e=n.nodeType,e===9)q1(n);else if(e===1)switch(n.nodeName){case&amp;amp;quot;HEAD&amp;amp;quot;:case&amp;amp;quot;HTML&amp;amp;quot;:case&amp;amp;quot;BODY&amp;amp;quot;:q1(n);break;default:n.textContent=&amp;amp;quot;&amp;amp;quot;}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((n&amp;amp;amp;1024)!==0)throw Error(ft(163))}if(n=t.sibling,n!==null){n.return=t.return,ei=n;break}ei=t.return}}function CD(n,t,e){var i=e.flags;switch(e.tag){case 0:case 11:case 15:Mo(n,e),i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;dp(5,e);break;case 1:if(Mo(n,e),i&amp;amp;amp;4)if(n=e.stateNode,t===null)try{n.componentDidMount()}catch(o){nn(e,e.return,o)}else{var a=Kl(e.type,t.memoizedProps);t=t.memoizedState;try{n.componentDidUpdate(a,t,n.__reactInternalSnapshotBeforeUpdate)}catch(o){nn(e,e.return,o)}}i&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;ED(e),i&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;Bd(e,e.return);break;case 3:if(Mo(n,e),i&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;(n=e.updateQueue,n!==null)){if(t=null,e.child!==null)switch(e.child.tag){case 27:case 5:t=e.child.stateNode;break;case 1:t=e.child.stateNode}try{w3(n,t)}catch(o){nn(e,e.return,o)}}break;case 27:t===null&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;RD(e);case 26:case 5:Mo(n,e),t===null&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;TD(e),i&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;Bd(e,e.return);break;case 12:Mo(n,e);break;case 13:Mo(n,e),i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;UD(n,e),i&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;(n=e.memoizedState,n!==null&amp;amp;amp;&amp;amp;amp;(n=n.dehydrated,n!==null&amp;amp;amp;&amp;amp;amp;(e=wI.bind(null,e),YI(n,e))));break;case 22:if(i=e.memoizedState!==null||Ar,!i){t=t!==null&amp;amp;amp;&amp;amp;amp;t.memoizedState!==null||On,a=Ar;var s=On;Ar=i,(On=t)&amp;amp;amp;&amp;amp;amp;!s?Eo(n,e,(e.subtreeFlags&amp;amp;amp;8772)!==0):Mo(n,e),Ar=a,On=s}break;case 30:break;default:Mo(n,e)}}function wD(n){var t=n.alternate;t!==null&amp;amp;amp;&amp;amp;amp;(n.alternate=null,wD(t)),n.child=null,n.deletions=null,n.sibling=null,n.tag===5&amp;amp;amp;&amp;amp;amp;(t=n.stateNode,t!==null&amp;amp;amp;&amp;amp;amp;eE(t)),n.stateNode=null,n.return=null,n.dependencies=null,n.memoizedProps=null,n.memoizedState=null,n.pendingProps=null,n.stateNode=null,n.updateQueue=null}var vn=null,Ji=!1;function Tr(n,t,e){for(e=e.child;e!==null;)DD(n,t,e),e=e.sibling}function DD(n,t,e){if(ba&amp;amp;amp;&amp;amp;amp;typeof ba.onCommitFiberUnmount==&amp;amp;quot;function&amp;amp;quot;)try{ba.onCommitFiberUnmount(np,e)}catch{}switch(e.tag){case 26:On||Ys(e,t),Tr(n,t,e),e.memoizedState?e.memoizedState.count--:e.stateNode&amp;amp;amp;&amp;amp;amp;(e=e.stateNode,e.parentNode.removeChild(e));break;case 27:On||Ys(e,t);var i=vn,a=Ji;Wo(e.type)&amp;amp;amp;&amp;amp;amp;(vn=e.stateNode,Ji=!1),Tr(n,t,e),Fd(e.stateNode),vn=i,Ji=a;break;case 5:On||Ys(e,t);case 6:if(i=vn,a=Ji,vn=null,Tr(n,t,e),vn=i,Ji=a,vn!==null)if(Ji)try{(vn.nodeType===9?vn.body:vn.nodeName===&amp;amp;quot;HTML&amp;amp;quot;?vn.ownerDocument.body:vn).removeChild(e.stateNode)}catch(s){nn(e,t,s)}else try{vn.removeChild(e.stateNode)}catch(s){nn(e,t,s)}break;case 18:vn!==null&amp;amp;amp;&amp;amp;amp;(Ji?(n=vn,Tw(n.nodeType===9?n.body:n.nodeName===&amp;amp;quot;HTML&amp;amp;quot;?n.ownerDocument.body:n,e.stateNode),tp(n)):Tw(vn,e.stateNode));break;case 4:i=vn,a=Ji,vn=e.stateNode.containerInfo,Ji=!0,Tr(n,t,e),vn=i,Ji=a;break;case 0:case 11:case 14:case 15:On||Xo(2,e,t),On||Xo(4,e,t),Tr(n,t,e);break;case 1:On||(Ys(e,t),i=e.stateNode,typeof i.componentWillUnmount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;bD(e,t,i)),Tr(n,t,e);break;case 21:Tr(n,t,e);break;case 22:On=(i=On)||e.memoizedState!==null,Tr(n,t,e),On=i;break;default:Tr(n,t,e)}}function UD(n,t){if(t.memoizedState===null&amp;amp;amp;&amp;amp;amp;(n=t.alternate,n!==null&amp;amp;amp;&amp;amp;amp;(n=n.memoizedState,n!==null&amp;amp;amp;&amp;amp;amp;(n=n.dehydrated,n!==null))))try{tp(n)}catch(e){nn(t,t.return,e)}}function SI(n){switch(n.tag){case 13:case 19:var t=n.stateNode;return t===null&amp;amp;amp;&amp;amp;amp;(t=n.stateNode=new fw),t;case 22:return n=n.stateNode,t=n._retryCache,t===null&amp;amp;amp;&amp;amp;amp;(t=n._retryCache=new fw),t;default:throw Error(ft(435,n.tag))}}function ZM(n,t){var e=SI(n);t.forEach(function(i){var a=DI.bind(null,n,i);e.has(i)||(e.add(i),i.then(a,a))})}function xa(n,t){var e=t.deletions;if(e!==null)for(var i=0;i&amp;amp;lt;e.length;i++){var a=e[i],s=n,o=t,u=o;t:for(;u!==null;){switch(u.tag){case 27:if(Wo(u.type)){vn=u.stateNode,Ji=!1;break t}break;case 5:vn=u.stateNode,Ji=!1;break t;case 3:case 4:vn=u.stateNode.containerInfo,Ji=!0;break t}u=u.return}if(vn===null)throw Error(ft(160));DD(s,o,a),vn=null,Ji=!1,s=a.alternate,s!==null&amp;amp;amp;&amp;amp;amp;(s.return=null),a.return=null}if(t.subtreeFlags&amp;amp;amp;13878)for(t=t.child;t!==null;)ND(t,n),t=t.sibling}var vs=null;function ND(n,t){var e=n.alternate,i=n.flags;switch(n.tag){case 0:case 11:case 14:case 15:xa(t,n),Sa(n),i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(Xo(3,n,n.return),dp(3,n),Xo(5,n,n.return));break;case 1:xa(t,n),Sa(n),i&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(On||e===null||Ys(e,e.return)),i&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;Ar&amp;amp;amp;&amp;amp;amp;(n=n.updateQueue,n!==null&amp;amp;amp;&amp;amp;amp;(i=n.callbacks,i!==null&amp;amp;amp;&amp;amp;amp;(e=n.shared.hiddenCallbacks,n.shared.hiddenCallbacks=e===null?i:e.concat(i))));break;case 26:var a=vs;if(xa(t,n),Sa(n),i&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(On||e===null||Ys(e,e.return)),i&amp;amp;amp;4){var s=e!==null?e.memoizedState:null;if(i=n.memoizedState,e===null)if(i===null)if(n.stateNode===null){t:{i=n.type,e=n.memoizedProps,a=a.ownerDocument||a;e:switch(i){case&amp;amp;quot;title&amp;amp;quot;:s=a.getElementsByTagName(&amp;amp;quot;title&amp;amp;quot;)[0],(!s||s[sp]||s[Ri]||s.namespaceURI===&amp;amp;quot;http://www.w3.org/2000/svg&amp;amp;quot;||s.hasAttribute(&amp;amp;quot;itemprop&amp;amp;quot;))&amp;amp;amp;&amp;amp;amp;(s=a.createElement(i),a.head.insertBefore(s,a.querySelector(&amp;amp;quot;head &amp;amp;gt; title&amp;amp;quot;))),gi(s,i,e),s[Ri]=n,ni(s),i=s;break t;case&amp;amp;quot;link&amp;amp;quot;:var o=Dw(&amp;amp;quot;link&amp;amp;quot;,&amp;amp;quot;href&amp;amp;quot;,a).get(i+(e.href||&amp;amp;quot;&amp;amp;quot;));if(o){for(var u=0;u&amp;amp;lt;o.length;u++)if(s=o[u],s.getAttribute(&amp;amp;quot;href&amp;amp;quot;)===(e.href==null||e.href===&amp;amp;quot;&amp;amp;quot;?null:e.href)&amp;amp;amp;&amp;amp;amp;s.getAttribute(&amp;amp;quot;rel&amp;amp;quot;)===(e.rel==null?null:e.rel)&amp;amp;amp;&amp;amp;amp;s.getAttribute(&amp;amp;quot;title&amp;amp;quot;)===(e.title==null?null:e.title)&amp;amp;amp;&amp;amp;amp;s.getAttribute(&amp;amp;quot;crossorigin&amp;amp;quot;)===(e.crossOrigin==null?null:e.crossOrigin)){o.splice(u,1);break e}}s=a.createElement(i),gi(s,i,e),a.head.appendChild(s);break;case&amp;amp;quot;meta&amp;amp;quot;:if(o=Dw(&amp;amp;quot;meta&amp;amp;quot;,&amp;amp;quot;content&amp;amp;quot;,a).get(i+(e.content||&amp;amp;quot;&amp;amp;quot;))){for(u=0;u&amp;amp;lt;o.length;u++)if(s=o[u],s.getAttribute(&amp;amp;quot;content&amp;amp;quot;)===(e.content==null?null:&amp;amp;quot;&amp;amp;quot;+e.content)&amp;amp;amp;&amp;amp;amp;s.getAttribute(&amp;amp;quot;name&amp;amp;quot;)===(e.name==null?null:e.name)&amp;amp;amp;&amp;amp;amp;s.getAttribute(&amp;amp;quot;property&amp;amp;quot;)===(e.property==null?null:e.property)&amp;amp;amp;&amp;amp;amp;s.getAttribute(&amp;amp;quot;http-equiv&amp;amp;quot;)===(e.httpEquiv==null?null:e.httpEquiv)&amp;amp;amp;&amp;amp;amp;s.getAttribute(&amp;amp;quot;charset&amp;amp;quot;)===(e.charSet==null?null:e.charSet)){o.splice(u,1);break e}}s=a.createElement(i),gi(s,i,e),a.head.appendChild(s);break;default:throw Error(ft(468,i))}s[Ri]=n,ni(s),i=s}n.stateNode=i}else Uw(a,n.type,n.stateNode);else n.stateNode=ww(a,i,n.memoizedProps);else s!==i?(s===null?e.stateNode!==null&amp;amp;amp;&amp;amp;amp;(e=e.stateNode,e.parentNode.removeChild(e)):s.count--,i===null?Uw(a,n.type,n.stateNode):ww(a,i,n.memoizedProps)):i===null&amp;amp;amp;&amp;amp;amp;n.stateNode!==null&amp;amp;amp;&amp;amp;amp;YM(n,n.memoizedProps,e.memoizedProps)}break;case 27:xa(t,n),Sa(n),i&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(On||e===null||Ys(e,e.return)),e!==null&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;YM(n,n.memoizedProps,e.memoizedProps);break;case 5:if(xa(t,n),Sa(n),i&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(On||e===null||Ys(e,e.return)),n.flags&amp;amp;amp;32){a=n.stateNode;try{Jc(a,&amp;amp;quot;&amp;amp;quot;)}catch(y){nn(n,n.return,y)}}i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;n.stateNode!=null&amp;amp;amp;&amp;amp;amp;(a=n.memoizedProps,YM(n,a,e!==null?e.memoizedProps:a)),i&amp;amp;amp;1024&amp;amp;amp;&amp;amp;amp;(kM=!0);break;case 6:if(xa(t,n),Sa(n),i&amp;amp;amp;4){if(n.stateNode===null)throw Error(ft(162));i=n.memoizedProps,e=n.stateNode;try{e.nodeValue=i}catch(y){nn(n,n.return,y)}}break;case 3:if(lv=null,a=vs,vs=zv(t.containerInfo),xa(t,n),vs=a,Sa(n),i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;e!==null&amp;amp;amp;&amp;amp;amp;e.memoizedState.isDehydrated)try{tp(t.containerInfo)}catch(y){nn(n,n.return,y)}kM&amp;amp;amp;&amp;amp;amp;(kM=!1,OD(n));break;case 4:i=vs,vs=zv(n.stateNode.containerInfo),xa(t,n),Sa(n),vs=i;break;case 12:xa(t,n),Sa(n);break;case 13:xa(t,n),Sa(n),n.child.flags&amp;amp;amp;8192&amp;amp;amp;&amp;amp;amp;n.memoizedState!==null!=(e!==null&amp;amp;amp;&amp;amp;amp;e.memoizedState!==null)&amp;amp;amp;&amp;amp;amp;(LE=ks()),i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(i=n.updateQueue,i!==null&amp;amp;amp;&amp;amp;amp;(n.updateQueue=null,ZM(n,i)));break;case 22:a=n.memoizedState!==null;var c=e!==null&amp;amp;amp;&amp;amp;amp;e.memoizedState!==null,h=Ar,d=On;if(Ar=h||a,On=d||c,xa(t,n),On=d,Ar=h,Sa(n),i&amp;amp;amp;8192)t:for(t=n.stateNode,t._visibility=a?t._visibility&amp;amp;amp;-2:t._visibility|1,a&amp;amp;amp;&amp;amp;amp;(e===null||c||Ar||On||Fl(n)),e=null,t=n;;){if(t.tag===5||t.tag===26){if(e===null){c=e=t;try{if(s=c.stateNode,a)o=s.style,typeof o.setProperty==&amp;amp;quot;function&amp;amp;quot;?o.setProperty(&amp;amp;quot;display&amp;amp;quot;,&amp;amp;quot;none&amp;amp;quot;,&amp;amp;quot;important&amp;amp;quot;):o.display=&amp;amp;quot;none&amp;amp;quot;;else{u=c.stateNode;var m=c.memoizedProps.style,g=m!=null&amp;amp;amp;&amp;amp;amp;m.hasOwnProperty(&amp;amp;quot;display&amp;amp;quot;)?m.display:null;u.style.display=g==null||typeof g==&amp;amp;quot;boolean&amp;amp;quot;?&amp;amp;quot;&amp;amp;quot;:(&amp;amp;quot;&amp;amp;quot;+g).trim()}}catch(y){nn(c,c.return,y)}}}else if(t.tag===6){if(e===null){c=t;try{c.stateNode.nodeValue=a?&amp;amp;quot;&amp;amp;quot;:c.memoizedProps}catch(y){nn(c,c.return,y)}}}else if((t.tag!==22&amp;amp;amp;&amp;amp;amp;t.tag!==23||t.memoizedState===null||t===n)&amp;amp;amp;&amp;amp;amp;t.child!==null){t.child.return=t,t=t.child;continue}if(t===n)break t;for(;t.sibling===null;){if(t.return===null||t.return===n)break t;e===t&amp;amp;amp;&amp;amp;amp;(e=null),t=t.return}e===t&amp;amp;amp;&amp;amp;amp;(e=null),t.sibling.return=t.return,t=t.sibling}i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(i=n.updateQueue,i!==null&amp;amp;amp;&amp;amp;amp;(e=i.retryQueue,e!==null&amp;amp;amp;&amp;amp;amp;(i.retryQueue=null,ZM(n,e))));break;case 19:xa(t,n),Sa(n),i&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(i=n.updateQueue,i!==null&amp;amp;amp;&amp;amp;amp;(n.updateQueue=null,ZM(n,i)));break;case 30:break;case 21:break;default:xa(t,n),Sa(n)}}function Sa(n){var t=n.flags;if(t&amp;amp;amp;2){try{for(var e,i=n.return;i!==null;){if(AD(i)){e=i;break}i=i.return}if(e==null)throw Error(ft(160));switch(e.tag){case 27:var a=e.stateNode,s=WM(n);Cv(n,s,a);break;case 5:var o=e.stateNode;e.flags&amp;amp;amp;32&amp;amp;amp;&amp;amp;amp;(Jc(o,&amp;amp;quot;&amp;amp;quot;),e.flags&amp;amp;amp;=-33);var u=WM(n);Cv(n,u,o);break;case 3:case 4:var c=e.stateNode.containerInfo,h=WM(n);O1(n,h,c);break;default:throw Error(ft(161))}}catch(d){nn(n,n.return,d)}n.flags&amp;amp;amp;=-3}t&amp;amp;amp;4096&amp;amp;amp;&amp;amp;amp;(n.flags&amp;amp;amp;=-4097)}function OD(n){if(n.subtreeFlags&amp;amp;amp;1024)for(n=n.child;n!==null;){var t=n;OD(t),t.tag===5&amp;amp;amp;&amp;amp;amp;t.flags&amp;amp;amp;1024&amp;amp;amp;&amp;amp;amp;t.stateNode.reset(),n=n.sibling}}function Mo(n,t){if(t.subtreeFlags&amp;amp;amp;8772)for(t=t.child;t!==null;)CD(n,t.alternate,t),t=t.sibling}function Fl(n){for(n=n.child;n!==null;){var t=n;switch(t.tag){case 0:case 11:case 14:case 15:Xo(4,t,t.return),Fl(t);break;case 1:Ys(t,t.return);var e=t.stateNode;typeof e.componentWillUnmount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;bD(t,t.return,e),Fl(t);break;case 27:Fd(t.stateNode);case 26:case 5:Ys(t,t.return),Fl(t);break;case 22:t.memoizedState===null&amp;amp;amp;&amp;amp;amp;Fl(t);break;case 30:Fl(t);break;default:Fl(t)}n=n.sibling}}function Eo(n,t,e){for(e=e&amp;amp;amp;&amp;amp;amp;(t.subtreeFlags&amp;amp;amp;8772)!==0,t=t.child;t!==null;){var i=t.alternate,a=n,s=t,o=s.flags;switch(s.tag){case 0:case 11:case 15:Eo(a,s,e),dp(4,s);break;case 1:if(Eo(a,s,e),i=s,a=i.stateNode,typeof a.componentDidMount==&amp;amp;quot;function&amp;amp;quot;)try{a.componentDidMount()}catch(h){nn(i,i.return,h)}if(i=s,a=i.updateQueue,a!==null){var u=i.stateNode;try{var c=a.shared.hiddenCallbacks;if(c!==null)for(a.shared.hiddenCallbacks=null,a=0;a&amp;amp;lt;c.length;a++)C3(c[a],u)}catch(h){nn(i,i.return,h)}}e&amp;amp;amp;&amp;amp;amp;o&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;ED(s),Bd(s,s.return);break;case 27:RD(s);case 26:case 5:Eo(a,s,e),e&amp;amp;amp;&amp;amp;amp;i===null&amp;amp;amp;&amp;amp;amp;o&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;TD(s),Bd(s,s.return);break;case 12:Eo(a,s,e);break;case 13:Eo(a,s,e),e&amp;amp;amp;&amp;amp;amp;o&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;UD(a,s);break;case 22:s.memoizedState===null&amp;amp;amp;&amp;amp;amp;Eo(a,s,e),Bd(s,s.return);break;case 30:break;default:Eo(a,s,e)}t=t.sibling}}function DE(n,t){var e=null;n!==null&amp;amp;amp;&amp;amp;amp;n.memoizedState!==null&amp;amp;amp;&amp;amp;amp;n.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(e=n.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&amp;amp;amp;&amp;amp;amp;t.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(n=t.memoizedState.cachePool.pool),n!==e&amp;amp;amp;&amp;amp;amp;(n!=null&amp;amp;amp;&amp;amp;amp;n.refCount++,e!=null&amp;amp;amp;&amp;amp;amp;up(e))}function UE(n,t){n=null,t.alternate!==null&amp;amp;amp;&amp;amp;amp;(n=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==n&amp;amp;amp;&amp;amp;amp;(t.refCount++,n!=null&amp;amp;amp;&amp;amp;amp;up(n))}function Xs(n,t,e,i){if(t.subtreeFlags&amp;amp;amp;10256)for(t=t.child;t!==null;)LD(n,t,e,i),t=t.sibling}function LD(n,t,e,i){var a=t.flags;switch(t.tag){case 0:case 11:case 15:Xs(n,t,e,i),a&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;dp(9,t);break;case 1:Xs(n,t,e,i);break;case 3:Xs(n,t,e,i),a&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;(n=null,t.alternate!==null&amp;amp;amp;&amp;amp;amp;(n=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==n&amp;amp;amp;&amp;amp;amp;(t.refCount++,n!=null&amp;amp;amp;&amp;amp;amp;up(n)));break;case 12:if(a&amp;amp;amp;2048){Xs(n,t,e,i),n=t.stateNode;try{var s=t.memoizedProps,o=s.id,u=s.onPostCommit;typeof u==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u(o,t.alternate===null?&amp;amp;quot;mount&amp;amp;quot;:&amp;amp;quot;update&amp;amp;quot;,n.passiveEffectDuration,-0)}catch(c){nn(t,t.return,c)}}else Xs(n,t,e,i);break;case 13:Xs(n,t,e,i);break;case 23:break;case 22:s=t.stateNode,o=t.alternate,t.memoizedState!==null?s._visibility&amp;amp;amp;2?Xs(n,t,e,i):Pd(n,t):s._visibility&amp;amp;amp;2?Xs(n,t,e,i):(s._visibility|=2,Cc(n,t,e,i,(t.subtreeFlags&amp;amp;amp;10256)!==0)),a&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;DE(o,t);break;case 24:Xs(n,t,e,i),a&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;UE(t.alternate,t);break;default:Xs(n,t,e,i)}}function Cc(n,t,e,i,a){for(a=a&amp;amp;amp;&amp;amp;amp;(t.subtreeFlags&amp;amp;amp;10256)!==0,t=t.child;t!==null;){var s=n,o=t,u=e,c=i,h=o.flags;switch(o.tag){case 0:case 11:case 15:Cc(s,o,u,c,a),dp(8,o);break;case 23:break;case 22:var d=o.stateNode;o.memoizedState!==null?d._visibility&amp;amp;amp;2?Cc(s,o,u,c,a):Pd(s,o):(d._visibility|=2,Cc(s,o,u,c,a)),a&amp;amp;amp;&amp;amp;amp;h&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;DE(o.alternate,o);break;case 24:Cc(s,o,u,c,a),a&amp;amp;amp;&amp;amp;amp;h&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;UE(o.alternate,o);break;default:Cc(s,o,u,c,a)}t=t.sibling}}function Pd(n,t){if(t.subtreeFlags&amp;amp;amp;10256)for(t=t.child;t!==null;){var e=n,i=t,a=i.flags;switch(i.tag){case 22:Pd(e,i),a&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;DE(i.alternate,i);break;case 24:Pd(e,i),a&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;UE(i.alternate,i);break;default:Pd(e,i)}t=t.sibling}}var Ad=8192;function Tc(n){if(n.subtreeFlags&amp;amp;amp;Ad)for(n=n.child;n!==null;)zD(n),n=n.sibling}function zD(n){switch(n.tag){case 26:Tc(n),n.flags&amp;amp;amp;Ad&amp;amp;amp;&amp;amp;amp;n.memoizedState!==null&amp;amp;amp;&amp;amp;amp;aH(vs,n.memoizedState,n.memoizedProps);break;case 5:Tc(n);break;case 3:case 4:var t=vs;vs=zv(n.stateNode.containerInfo),Tc(n),vs=t;break;case 22:n.memoizedState===null&amp;amp;amp;&amp;amp;amp;(t=n.alternate,t!==null&amp;amp;amp;&amp;amp;amp;t.memoizedState!==null?(t=Ad,Ad=16777216,Tc(n),Ad=t):Tc(n));break;default:Tc(n)}}function BD(n){var t=n.alternate;if(t!==null&amp;amp;amp;&amp;amp;amp;(n=t.child,n!==null)){t.child=null;do t=n.sibling,n.sibling=null,n=t;while(n!==null)}}function xd(n){var t=n.deletions;if((n.flags&amp;amp;amp;16)!==0){if(t!==null)for(var e=0;e&amp;amp;lt;t.length;e++){var i=t[e];ei=i,ID(i,n)}BD(n)}if(n.subtreeFlags&amp;amp;amp;10256)for(n=n.child;n!==null;)PD(n),n=n.sibling}function PD(n){switch(n.tag){case 0:case 11:case 15:xd(n),n.flags&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;Xo(9,n,n.return);break;case 3:xd(n);break;case 12:xd(n);break;case 22:var t=n.stateNode;n.memoizedState!==null&amp;amp;amp;&amp;amp;amp;t._visibility&amp;amp;amp;2&amp;amp;amp;&amp;amp;amp;(n.return===null||n.return.tag!==13)?(t._visibility&amp;amp;amp;=-3,rv(n)):xd(n);break;default:xd(n)}}function rv(n){var t=n.deletions;if((n.flags&amp;amp;amp;16)!==0){if(t!==null)for(var e=0;e&amp;amp;lt;t.length;e++){var i=t[e];ei=i,ID(i,n)}BD(n)}for(n=n.child;n!==null;){switch(t=n,t.tag){case 0:case 11:case 15:Xo(8,t,t.return),rv(t);break;case 22:e=t.stateNode,e._visibility&amp;amp;amp;2&amp;amp;amp;&amp;amp;amp;(e._visibility&amp;amp;amp;=-3,rv(t));break;default:rv(t)}n=n.sibling}}function ID(n,t){for(;ei!==null;){var e=ei;switch(e.tag){case 0:case 11:case 15:Xo(8,e,t);break;case 23:case 22:if(e.memoizedState!==null&amp;amp;amp;&amp;amp;amp;e.memoizedState.cachePool!==null){var i=e.memoizedState.cachePool.pool;i!=null&amp;amp;amp;&amp;amp;amp;i.refCount++}break;case 24:up(e.memoizedState.cache)}if(i=e.child,i!==null)i.return=e,ei=i;else t:for(e=n;ei!==null;){i=ei;var a=i.sibling,s=i.return;if(wD(i),i===e){ei=null;break t}if(a!==null){a.return=s,ei=a;break t}ei=s}}}var MI={getCacheForType:function(n){var t=Ci(Yn),e=t.data.get(n);return e===void 0&amp;amp;amp;&amp;amp;amp;(e=n(),t.data.set(n,e)),e}},EI=typeof WeakMap==&amp;amp;quot;function&amp;amp;quot;?WeakMap:Map,Ke=0,fn=null,Ce=null,Ne=0,Qe=0,Ma=null,No=!1,ff=!1,NE=!1,Pr=0,wn=0,qo=0,Wl=0,OE=0,is=0,af=0,Id=null,$i=null,L1=!1,LE=0,wv=1/0,Dv=null,Po=null,mi=0,Io=null,sf=null,jc=0,z1=0,B1=null,HD=null,Hd=0,P1=null;function Aa(){if((Ke&amp;amp;amp;2)!==0&amp;amp;amp;&amp;amp;amp;Ne!==0)return Ne&amp;amp;amp;-Ne;if(ce.T!==null){var n=$c;return n!==0?n:BE()}return Qw()}function FD(){is===0&amp;amp;amp;&amp;amp;amp;(is=(Ne&amp;amp;amp;536870912)===0||Ve?Ww():536870912);var n=as.current;return n!==null&amp;amp;amp;&amp;amp;amp;(n.flags|=32),is}function Ra(n,t,e){(n===fn&amp;amp;amp;&amp;amp;amp;(Qe===2||Qe===9)||n.cancelPendingCommit!==null)&amp;amp;amp;&amp;amp;amp;(rf(n,0),Oo(n,Ne,is,!1)),ap(n,e),((Ke&amp;amp;amp;2)===0||n!==fn)&amp;amp;amp;&amp;amp;amp;(n===fn&amp;amp;amp;&amp;amp;amp;((Ke&amp;amp;amp;2)===0&amp;amp;amp;&amp;amp;amp;(Wl|=e),wn===4&amp;amp;amp;&amp;amp;amp;Oo(n,Ne,is,!1)),Qs(n))}function VD(n,t,e){if((Ke&amp;amp;amp;6)!==0)throw Error(ft(327));var i=!e&amp;amp;amp;&amp;amp;amp;(t&amp;amp;amp;124)===0&amp;amp;amp;&amp;amp;amp;(t&amp;amp;amp;n.expiredLanes)===0||ip(n,t),a=i?AI(n,t):jM(n,t,!0),s=i;do{if(a===0){ff&amp;amp;amp;&amp;amp;amp;!i&amp;amp;amp;&amp;amp;amp;Oo(n,t,0,!1);break}else{if(e=n.current.alternate,s&amp;amp;amp;&amp;amp;amp;!bI(e)){a=jM(n,t,!1),s=!1;continue}if(a===2){if(s=t,n.errorRecoveryDisabledLanes&amp;amp;amp;s)var o=0;else o=n.pendingLanes&amp;amp;amp;-536870913,o=o!==0?o:o&amp;amp;amp;536870912?536870912:0;if(o!==0){t=o;t:{var u=n;a=Id;var c=u.current.memoizedState.isDehydrated;if(c&amp;amp;amp;&amp;amp;amp;(rf(u,o).flags|=256),o=jM(u,o,!1),o!==2){if(NE&amp;amp;amp;&amp;amp;amp;!c){u.errorRecoveryDisabledLanes|=s,Wl|=s,a=4;break t}s=$i,$i=a,s!==null&amp;amp;amp;&amp;amp;amp;($i===null?$i=s:$i.push.apply($i,s))}a=o}if(s=!1,a!==2)continue}}if(a===1){rf(n,0),Oo(n,t,0,!0);break}t:{switch(i=n,s=a,s){case 0:case 1:throw Error(ft(345));case 4:if((t&amp;amp;amp;4194048)!==t)break;case 6:Oo(i,t,is,!No);break t;case 2:$i=null;break;case 3:case 5:break;default:throw Error(ft(329))}if((t&amp;amp;amp;62914560)===t&amp;amp;amp;&amp;amp;amp;(a=LE+300-ks(),10&amp;amp;lt;a)){if(Oo(i,t,is,!No),Fv(i,0,!0)!==0)break t;i.timeoutHandle=rU(hw.bind(null,i,e,$i,Dv,L1,t,is,Wl,af,No,s,2,-0,0),a);break t}hw(i,e,$i,Dv,L1,t,is,Wl,af,No,s,0,-0,0)}}break}while(!0);Qs(n)}function hw(n,t,e,i,a,s,o,u,c,h,d,m,g,y){if(n.timeoutHandle=-1,m=t.subtreeFlags,(m&amp;amp;amp;8192||(m&amp;amp;amp;16785408)===16785408)&amp;amp;amp;&amp;amp;amp;(Qd={stylesheets:null,count:0,unsuspend:iH},zD(t),m=sH(),m!==null)){n.cancelPendingCommit=m(pw.bind(null,n,t,s,e,i,a,o,u,c,d,1,g,y)),Oo(n,s,o,!h);return}pw(n,t,s,e,i,a,o,u,c)}function bI(n){for(var t=n;;){var e=t.tag;if((e===0||e===11||e===15)&amp;amp;amp;&amp;amp;amp;t.flags&amp;amp;amp;16384&amp;amp;amp;&amp;amp;amp;(e=t.updateQueue,e!==null&amp;amp;amp;&amp;amp;amp;(e=e.stores,e!==null)))for(var i=0;i&amp;amp;lt;e.length;i++){var a=e[i],s=a.getSnapshot;a=a.value;try{if(!Ca(s(),a))return!1}catch{return!1}}if(e=t.child,t.subtreeFlags&amp;amp;amp;16384&amp;amp;amp;&amp;amp;amp;e!==null)e.return=t,t=e;else{if(t===n)break;for(;t.sibling===null;){if(t.return===null||t.return===n)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Oo(n,t,e,i){t&amp;amp;amp;=~OE,t&amp;amp;amp;=~Wl,n.suspendedLanes|=t,n.pingedLanes&amp;amp;amp;=~t,i&amp;amp;amp;&amp;amp;amp;(n.warmLanes|=t),i=n.expirationTimes;for(var a=t;0&amp;amp;lt;a;){var s=31-Ta(a),o=1&amp;amp;lt;&amp;amp;lt;s;i[s]=-1,a&amp;amp;amp;=~o}e!==0&amp;amp;amp;&amp;amp;amp;Zw(n,e,t)}function Qv(){return(Ke&amp;amp;amp;6)===0?(pp(0,!1),!1):!0}function zE(){if(Ce!==null){if(Qe===0)var n=Ce.return;else n=Ce,Dr=eu=null,SE(n),Zc=null,kd=0,n=Ce;for(;n!==null;)MD(n.alternate,n),n=n.return;Ce=null}}function rf(n,t){var e=n.timeoutHandle;e!==-1&amp;amp;amp;&amp;amp;amp;(n.timeoutHandle=-1,FI(e)),e=n.cancelPendingCommit,e!==null&amp;amp;amp;&amp;amp;amp;(n.cancelPendingCommit=null,e()),zE(),fn=n,Ce=e=Nr(n.current,null),Ne=t,Qe=0,Ma=null,No=!1,ff=ip(n,t),NE=!1,af=is=OE=Wl=qo=wn=0,$i=Id=null,L1=!1,(t&amp;amp;amp;8)!==0&amp;amp;amp;&amp;amp;amp;(t|=t&amp;amp;amp;32);var i=n.entangledLanes;if(i!==0)for(n=n.entanglements,i&amp;amp;amp;=t;0&amp;amp;lt;i;){var a=31-Ta(i),s=1&amp;amp;lt;&amp;amp;lt;a;t|=n[a],i&amp;amp;amp;=~s}return Pr=t,qv(),e}function GD(n,t){be=null,ce.H=Ev,t===cp||t===Wv?(t=qC(),Qe=3):t===A3?(t=qC(),Qe=4):Qe=t===gD?8:t!==null&amp;amp;amp;&amp;amp;amp;typeof t==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof t.then==&amp;amp;quot;function&amp;amp;quot;?6:1,Ma=t,Ce===null&amp;amp;amp;&amp;amp;amp;(wn=1,Av(n,ns(t,n.current)))}function XD(){var n=ce.H;return ce.H=Ev,n===null?Ev:n}function qD(){var n=ce.A;return ce.A=MI,n}function I1(){wn=4,No||(Ne&amp;amp;amp;4194048)!==Ne&amp;amp;amp;&amp;amp;amp;as.current!==null||(ff=!0),(qo&amp;amp;amp;134217727)===0&amp;amp;amp;&amp;amp;amp;(Wl&amp;amp;amp;134217727)===0||fn===null||Oo(fn,Ne,is,!1)}function jM(n,t,e){var i=Ke;Ke|=2;var a=XD(),s=qD();(fn!==n||Ne!==t)&amp;amp;amp;&amp;amp;amp;(Dv=null,rf(n,t)),t=!1;var o=wn;t:do try{if(Qe!==0&amp;amp;amp;&amp;amp;amp;Ce!==null){var u=Ce,c=Ma;switch(Qe){case 8:zE(),o=6;break t;case 3:case 2:case 9:case 6:as.current===null&amp;amp;amp;&amp;amp;amp;(t=!0);var h=Qe;if(Qe=0,Ma=null,Vc(n,u,c,h),e&amp;amp;amp;&amp;amp;amp;ff){o=0;break t}break;default:h=Qe,Qe=0,Ma=null,Vc(n,u,c,h)}}TI(),o=wn;break}catch(d){GD(n,d)}while(!0);return t&amp;amp;amp;&amp;amp;amp;n.shellSuspendCounter++,Dr=eu=null,Ke=i,ce.H=a,ce.A=s,Ce===null&amp;amp;amp;&amp;amp;amp;(fn=null,Ne=0,qv()),o}function TI(){for(;Ce!==null;)YD(Ce)}function AI(n,t){var e=Ke;Ke|=2;var i=XD(),a=qD();fn!==n||Ne!==t?(Dv=null,wv=ks()+500,rf(n,t)):ff=ip(n,t);t:do try{if(Qe!==0&amp;amp;amp;&amp;amp;amp;Ce!==null){t=Ce;var s=Ma;e:switch(Qe){case 1:Qe=0,Ma=null,Vc(n,t,s,1);break;case 2:case 9:if(XC(s)){Qe=0,Ma=null,dw(t);break}t=function(){Qe!==2&amp;amp;amp;&amp;amp;amp;Qe!==9||fn!==n||(Qe=7),Qs(n)},s.then(t,t);break t;case 3:Qe=7;break t;case 4:Qe=5;break t;case 7:XC(s)?(Qe=0,Ma=null,dw(t)):(Qe=0,Ma=null,Vc(n,t,s,7));break;case 5:var o=null;switch(Ce.tag){case 26:o=Ce.memoizedState;case 5:case 27:var u=Ce;if(!o||cU(o)){Qe=0,Ma=null;var c=u.sibling;if(c!==null)Ce=c;else{var h=u.return;h!==null?(Ce=h,Kv(h)):Ce=null}break e}}Qe=0,Ma=null,Vc(n,t,s,5);break;case 6:Qe=0,Ma=null,Vc(n,t,s,6);break;case 8:zE(),wn=6;break t;default:throw Error(ft(462))}}RI();break}catch(d){GD(n,d)}while(!0);return Dr=eu=null,ce.H=i,ce.A=a,Ke=e,Ce!==null?0:(fn=null,Ne=0,qv(),wn)}function RI(){for(;Ce!==null&amp;amp;amp;&amp;amp;amp;!j4();)YD(Ce)}function YD(n){var t=SD(n.alternate,n,Pr);n.memoizedProps=n.pendingProps,t===null?Kv(n):Ce=t}function dw(n){var t=n,e=t.alternate;switch(t.tag){case 15:case 0:t=rw(e,t,t.pendingProps,t.type,void 0,Ne);break;case 11:t=rw(e,t,t.pendingProps,t.type.render,t.ref,Ne);break;case 5:SE(t);default:MD(e,t),t=Ce=M3(t,Pr),t=SD(e,t,Pr)}n.memoizedProps=n.pendingProps,t===null?Kv(n):Ce=t}function Vc(n,t,e,i){Dr=eu=null,SE(t),Zc=null,kd=0;var a=t.return;try{if(gI(n,a,t,e,Ne)){wn=1,Av(n,ns(e,n.current)),Ce=null;return}}catch(s){if(a!==null)throw Ce=a,s;wn=1,Av(n,ns(e,n.current)),Ce=null;return}t.flags&amp;amp;amp;32768?(Ve||i===1?n=!0:ff||(Ne&amp;amp;amp;536870912)!==0?n=!1:(No=n=!0,(i===2||i===9||i===3||i===6)&amp;amp;amp;&amp;amp;amp;(i=as.current,i!==null&amp;amp;amp;&amp;amp;amp;i.tag===13&amp;amp;amp;&amp;amp;amp;(i.flags|=16384))),WD(t,n)):Kv(t)}function Kv(n){var t=n;do{if((t.flags&amp;amp;amp;32768)!==0){WD(t,No);return}n=t.return;var e=yI(t.alternate,t,Pr);if(e!==null){Ce=e;return}if(t=t.sibling,t!==null){Ce=t;return}Ce=t=n}while(t!==null);wn===0&amp;amp;amp;&amp;amp;amp;(wn=5)}function WD(n,t){do{var e=_I(n.alternate,n);if(e!==null){e.flags&amp;amp;amp;=32767,Ce=e;return}if(e=n.return,e!==null&amp;amp;amp;&amp;amp;amp;(e.flags|=32768,e.subtreeFlags=0,e.deletions=null),!t&amp;amp;amp;&amp;amp;amp;(n=n.sibling,n!==null)){Ce=n;return}Ce=n=e}while(n!==null);wn=6,Ce=null}function pw(n,t,e,i,a,s,o,u,c){n.cancelPendingCommit=null;do Jv();while(mi!==0);if((Ke&amp;amp;amp;6)!==0)throw Error(ft(327));if(t!==null){if(t===n.current)throw Error(ft(177));if(s=t.lanes|t.childLanes,s|=lE,sP(n,e,s,o,u,c),n===fn&amp;amp;amp;&amp;amp;amp;(Ce=fn=null,Ne=0),sf=t,Io=n,jc=e,z1=s,B1=a,HD=i,(t.subtreeFlags&amp;amp;amp;10256)!==0||(t.flags&amp;amp;amp;10256)!==0?(n.callbackNode=null,n.callbackPriority=0,UI(dv,function(){return KD(!0),null})):(n.callbackNode=null,n.callbackPriority=0),i=(t.flags&amp;amp;amp;13878)!==0,(t.subtreeFlags&amp;amp;amp;13878)!==0||i){i=ce.T,ce.T=null,a=Ge.p,Ge.p=2,o=Ke,Ke|=4;try{xI(n,t,e)}finally{Ke=o,Ge.p=a,ce.T=i}}mi=1,kD(),ZD(),jD()}}function kD(){if(mi===1){mi=0;var n=Io,t=sf,e=(t.flags&amp;amp;amp;13878)!==0;if((t.subtreeFlags&amp;amp;amp;13878)!==0||e){e=ce.T,ce.T=null;var i=Ge.p;Ge.p=2;var a=Ke;Ke|=4;try{ND(t,n);var s=G1,o=p3(n.containerInfo),u=s.focusedElem,c=s.selectionRange;if(o!==u&amp;amp;amp;&amp;amp;amp;u&amp;amp;amp;&amp;amp;amp;u.ownerDocument&amp;amp;amp;&amp;amp;amp;d3(u.ownerDocument.documentElement,u)){if(c!==null&amp;amp;amp;&amp;amp;amp;oE(u)){var h=c.start,d=c.end;if(d===void 0&amp;amp;amp;&amp;amp;amp;(d=h),&amp;amp;quot;selectionStart&amp;amp;quot;in u)u.selectionStart=h,u.selectionEnd=Math.min(d,u.value.length);else{var m=u.ownerDocument||document,g=m&amp;amp;amp;&amp;amp;amp;m.defaultView||window;if(g.getSelection){var y=g.getSelection(),x=u.textContent.length,b=Math.min(c.start,x),M=c.end===void 0?b:Math.min(c.end,x);!y.extend&amp;amp;amp;&amp;amp;amp;b&amp;amp;gt;M&amp;amp;amp;&amp;amp;amp;(o=M,M=b,b=o);var v=zC(u,b),S=zC(u,M);if(v&amp;amp;amp;&amp;amp;amp;S&amp;amp;amp;&amp;amp;amp;(y.rangeCount!==1||y.anchorNode!==v.node||y.anchorOffset!==v.offset||y.focusNode!==S.node||y.focusOffset!==S.offset)){var E=m.createRange();E.setStart(v.node,v.offset),y.removeAllRanges(),b&amp;amp;gt;M?(y.addRange(E),y.extend(S.node,S.offset)):(E.setEnd(S.node,S.offset),y.addRange(E))}}}}for(m=[],y=u;y=y.parentNode;)y.nodeType===1&amp;amp;amp;&amp;amp;amp;m.push({element:y,left:y.scrollLeft,top:y.scrollTop});for(typeof u.focus==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u.focus(),u=0;u&amp;amp;lt;m.length;u++){var T=m[u];T.element.scrollLeft=T.left,T.element.scrollTop=T.top}}Iv=!!V1,G1=V1=null}finally{Ke=a,Ge.p=i,ce.T=e}}n.current=t,mi=2}}function ZD(){if(mi===2){mi=0;var n=Io,t=sf,e=(t.flags&amp;amp;amp;8772)!==0;if((t.subtreeFlags&amp;amp;amp;8772)!==0||e){e=ce.T,ce.T=null;var i=Ge.p;Ge.p=2;var a=Ke;Ke|=4;try{CD(n,t.alternate,t)}finally{Ke=a,Ge.p=i,ce.T=e}}mi=3}}function jD(){if(mi===4||mi===3){mi=0,Q4();var n=Io,t=sf,e=jc,i=HD;(t.subtreeFlags&amp;amp;amp;10256)!==0||(t.flags&amp;amp;amp;10256)!==0?mi=5:(mi=0,sf=Io=null,QD(n,n.pendingLanes));var a=n.pendingLanes;if(a===0&amp;amp;amp;&amp;amp;amp;(Po=null),tE(e),t=t.stateNode,ba&amp;amp;amp;&amp;amp;amp;typeof ba.onCommitFiberRoot==&amp;amp;quot;function&amp;amp;quot;)try{ba.onCommitFiberRoot(np,t,void 0,(t.current.flags&amp;amp;amp;128)===128)}catch{}if(i!==null){t=ce.T,a=Ge.p,Ge.p=2,ce.T=null;try{for(var s=n.onRecoverableError,o=0;o&amp;amp;lt;i.length;o++){var u=i[o];s(u.value,{componentStack:u.stack})}}finally{ce.T=t,Ge.p=a}}(jc&amp;amp;amp;3)!==0&amp;amp;amp;&amp;amp;amp;Jv(),Qs(n),a=n.pendingLanes,(e&amp;amp;amp;4194090)!==0&amp;amp;amp;&amp;amp;amp;(a&amp;amp;amp;42)!==0?n===P1?Hd++:(Hd=0,P1=n):Hd=0,pp(0,!1)}}function QD(n,t){(n.pooledCacheLanes&amp;amp;amp;=t)===0&amp;amp;amp;&amp;amp;amp;(t=n.pooledCache,t!=null&amp;amp;amp;&amp;amp;amp;(n.pooledCache=null,up(t)))}function Jv(n){return kD(),ZD(),jD(),KD(n)}function KD(){if(mi!==5)return!1;var n=Io,t=z1;z1=0;var e=tE(jc),i=ce.T,a=Ge.p;try{Ge.p=32&amp;amp;gt;e?32:e,ce.T=null,e=B1,B1=null;var s=Io,o=jc;if(mi=0,sf=Io=null,jc=0,(Ke&amp;amp;amp;6)!==0)throw Error(ft(331));var u=Ke;if(Ke|=4,PD(s.current),LD(s,s.current,o,e),Ke=u,pp(0,!1),ba&amp;amp;amp;&amp;amp;amp;typeof ba.onPostCommitFiberRoot==&amp;amp;quot;function&amp;amp;quot;)try{ba.onPostCommitFiberRoot(np,s)}catch{}return!0}finally{Ge.p=a,ce.T=i,QD(n,t)}}function mw(n,t,e){t=ns(e,t),t=D1(n.stateNode,t,2),n=Bo(n,t,2),n!==null&amp;amp;amp;&amp;amp;amp;(ap(n,2),Qs(n))}function nn(n,t,e){if(n.tag===3)mw(n,n,e);else for(;t!==null;){if(t.tag===3){mw(t,n,e);break}else if(t.tag===1){var i=t.stateNode;if(typeof t.type.getDerivedStateFromError==&amp;amp;quot;function&amp;amp;quot;||typeof i.componentDidCatch==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(Po===null||!Po.has(i))){n=ns(e,n),e=pD(2),i=Bo(t,e,2),i!==null&amp;amp;amp;&amp;amp;amp;(mD(e,i,t,n),ap(i,2),Qs(i));break}}t=t.return}}function QM(n,t,e){var i=n.pingCache;if(i===null){i=n.pingCache=new EI;var a=new Set;i.set(t,a)}else a=i.get(t),a===void 0&amp;amp;amp;&amp;amp;amp;(a=new Set,i.set(t,a));a.has(e)||(NE=!0,a.add(e),n=CI.bind(null,n,t,e),t.then(n,n))}function CI(n,t,e){var i=n.pingCache;i!==null&amp;amp;amp;&amp;amp;amp;i.delete(t),n.pingedLanes|=n.suspendedLanes&amp;amp;amp;e,n.warmLanes&amp;amp;amp;=~e,fn===n&amp;amp;amp;&amp;amp;amp;(Ne&amp;amp;amp;e)===e&amp;amp;amp;&amp;amp;amp;(wn===4||wn===3&amp;amp;amp;&amp;amp;amp;(Ne&amp;amp;amp;62914560)===Ne&amp;amp;amp;&amp;amp;amp;300&amp;amp;gt;ks()-LE?(Ke&amp;amp;amp;2)===0&amp;amp;amp;&amp;amp;amp;rf(n,0):OE|=e,af===Ne&amp;amp;amp;&amp;amp;amp;(af=0)),Qs(n)}function JD(n,t){t===0&amp;amp;amp;&amp;amp;amp;(t=kw()),n=cf(n,t),n!==null&amp;amp;amp;&amp;amp;amp;(ap(n,t),Qs(n))}function wI(n){var t=n.memoizedState,e=0;t!==null&amp;amp;amp;&amp;amp;amp;(e=t.retryLane),JD(n,e)}function DI(n,t){var e=0;switch(n.tag){case 13:var i=n.stateNode,a=n.memoizedState;a!==null&amp;amp;amp;&amp;amp;amp;(e=a.retryLane);break;case 19:i=n.stateNode;break;case 22:i=n.stateNode._retryCache;break;default:throw Error(ft(314))}i!==null&amp;amp;amp;&amp;amp;amp;i.delete(t),JD(n,e)}function UI(n,t){return J1(n,t)}var Uv=null,wc=null,H1=!1,Nv=!1,KM=!1,kl=0;function Qs(n){n!==wc&amp;amp;amp;&amp;amp;amp;n.next===null&amp;amp;amp;&amp;amp;amp;(wc===null?Uv=wc=n:wc=wc.next=n),Nv=!0,H1||(H1=!0,OI())}function pp(n,t){if(!KM&amp;amp;amp;&amp;amp;amp;Nv){KM=!0;do for(var e=!1,i=Uv;i!==null;){if(!t)if(n!==0){var a=i.pendingLanes;if(a===0)var s=0;else{var o=i.suspendedLanes,u=i.pingedLanes;s=(1&amp;amp;lt;&amp;amp;lt;31-Ta(42|n)+1)-1,s&amp;amp;amp;=a&amp;amp;amp;~(o&amp;amp;amp;~u),s=s&amp;amp;amp;201326741?s&amp;amp;amp;201326741|1:s?s|2:0}s!==0&amp;amp;amp;&amp;amp;amp;(e=!0,gw(i,s))}else s=Ne,s=Fv(i,i===fn?s:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),(s&amp;amp;amp;3)===0||ip(i,s)||(e=!0,gw(i,s));i=i.next}while(e);KM=!1}}function NI(){$D()}function $D(){Nv=H1=!1;var n=0;kl!==0&amp;amp;amp;&amp;amp;amp;(HI()&amp;amp;amp;&amp;amp;amp;(n=kl),kl=0);for(var t=ks(),e=null,i=Uv;i!==null;){var a=i.next,s=tU(i,t);s===0?(i.next=null,e===null?Uv=a:e.next=a,a===null&amp;amp;amp;&amp;amp;amp;(wc=e)):(e=i,(n!==0||(s&amp;amp;amp;3)!==0)&amp;amp;amp;&amp;amp;amp;(Nv=!0)),i=a}pp(n,!1)}function tU(n,t){for(var e=n.suspendedLanes,i=n.pingedLanes,a=n.expirationTimes,s=n.pendingLanes&amp;amp;amp;-62914561;0&amp;amp;lt;s;){var o=31-Ta(s),u=1&amp;amp;lt;&amp;amp;lt;o,c=a[o];c===-1?((u&amp;amp;amp;e)===0||(u&amp;amp;amp;i)!==0)&amp;amp;amp;&amp;amp;amp;(a[o]=aP(u,t)):c&amp;amp;lt;=t&amp;amp;amp;&amp;amp;amp;(n.expiredLanes|=u),s&amp;amp;amp;=~u}if(t=fn,e=Ne,e=Fv(n,n===t?e:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),i=n.callbackNode,e===0||n===t&amp;amp;amp;&amp;amp;amp;(Qe===2||Qe===9)||n.cancelPendingCommit!==null)return i!==null&amp;amp;amp;&amp;amp;amp;i!==null&amp;amp;amp;&amp;amp;amp;bM(i),n.callbackNode=null,n.callbackPriority=0;if((e&amp;amp;amp;3)===0||ip(n,e)){if(t=e&amp;amp;amp;-e,t===n.callbackPriority)return t;switch(i!==null&amp;amp;amp;&amp;amp;amp;bM(i),tE(e)){case 2:case 8:e=qw;break;case 32:e=dv;break;case 268435456:e=Yw;break;default:e=dv}return i=eU.bind(null,n),e=J1(e,i),n.callbackPriority=t,n.callbackNode=e,t}return i!==null&amp;amp;amp;&amp;amp;amp;i!==null&amp;amp;amp;&amp;amp;amp;bM(i),n.callbackPriority=2,n.callbackNode=null,2}function eU(n,t){if(mi!==0&amp;amp;amp;&amp;amp;amp;mi!==5)return n.callbackNode=null,n.callbackPriority=0,null;var e=n.callbackNode;if(Jv(!0)&amp;amp;amp;&amp;amp;amp;n.callbackNode!==e)return null;var i=Ne;return i=Fv(n,n===fn?i:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),i===0?null:(VD(n,i,t),tU(n,ks()),n.callbackNode!=null&amp;amp;amp;&amp;amp;amp;n.callbackNode===e?eU.bind(null,n):null)}function gw(n,t){if(Jv())return null;VD(n,t,!0)}function OI(){VI(function(){(Ke&amp;amp;amp;6)!==0?J1(Xw,NI):$D()})}function BE(){return kl===0&amp;amp;amp;&amp;amp;amp;(kl=Ww()),kl}function vw(n){return n==null||typeof n==&amp;amp;quot;symbol&amp;amp;quot;||typeof n==&amp;amp;quot;boolean&amp;amp;quot;?null:typeof n==&amp;amp;quot;function&amp;amp;quot;?n:J0(&amp;amp;quot;&amp;amp;quot;+n)}function yw(n,t){var e=t.ownerDocument.createElement(&amp;amp;quot;input&amp;amp;quot;);return e.name=t.name,e.value=t.value,n.id&amp;amp;amp;&amp;amp;amp;e.setAttribute(&amp;amp;quot;form&amp;amp;quot;,n.id),t.parentNode.insertBefore(e,t),n=new FormData(n),e.parentNode.removeChild(e),n}function LI(n,t,e,i,a){if(t===&amp;amp;quot;submit&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e&amp;amp;amp;&amp;amp;amp;e.stateNode===a){var s=vw((a[ta]||null).action),o=i.submitter;o&amp;amp;amp;&amp;amp;amp;(t=(t=o[ta]||null)?vw(t.formAction):o.getAttribute(&amp;amp;quot;formAction&amp;amp;quot;),t!==null&amp;amp;amp;&amp;amp;amp;(s=t,o=null));var u=new Vv(&amp;amp;quot;action&amp;amp;quot;,&amp;amp;quot;action&amp;amp;quot;,null,i,a);n.push({event:u,listeners:[{instance:null,listener:function(){if(i.defaultPrevented){if(kl!==0){var c=o?yw(a,o):new FormData(a);C1(e,{pending:!0,data:c,method:a.method,action:s},null,c)}}else typeof s==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u.preventDefault(),c=o?yw(a,o):new FormData(a),C1(e,{pending:!0,data:c,method:a.method,action:s},s,c))},currentTarget:a}]})}}for(W0=0;W0&amp;amp;lt;g1.length;W0++)k0=g1[W0],_w=k0.toLowerCase(),xw=k0[0].toUpperCase()+k0.slice(1),_s(_w,&amp;amp;quot;on&amp;amp;quot;+xw);var k0,_w,xw,W0;_s(g3,&amp;amp;quot;onAnimationEnd&amp;amp;quot;);_s(v3,&amp;amp;quot;onAnimationIteration&amp;amp;quot;);_s(y3,&amp;amp;quot;onAnimationStart&amp;amp;quot;);_s(&amp;amp;quot;dblclick&amp;amp;quot;,&amp;amp;quot;onDoubleClick&amp;amp;quot;);_s(&amp;amp;quot;focusin&amp;amp;quot;,&amp;amp;quot;onFocus&amp;amp;quot;);_s(&amp;amp;quot;focusout&amp;amp;quot;,&amp;amp;quot;onBlur&amp;amp;quot;);_s($P,&amp;amp;quot;onTransitionRun&amp;amp;quot;);_s(tI,&amp;amp;quot;onTransitionStart&amp;amp;quot;);_s(eI,&amp;amp;quot;onTransitionCancel&amp;amp;quot;);_s(_3,&amp;amp;quot;onTransitionEnd&amp;amp;quot;);Kc(&amp;amp;quot;onMouseEnter&amp;amp;quot;,[&amp;amp;quot;mouseout&amp;amp;quot;,&amp;amp;quot;mouseover&amp;amp;quot;]);Kc(&amp;amp;quot;onMouseLeave&amp;amp;quot;,[&amp;amp;quot;mouseout&amp;amp;quot;,&amp;amp;quot;mouseover&amp;amp;quot;]);Kc(&amp;amp;quot;onPointerEnter&amp;amp;quot;,[&amp;amp;quot;pointerout&amp;amp;quot;,&amp;amp;quot;pointerover&amp;amp;quot;]);Kc(&amp;amp;quot;onPointerLeave&amp;amp;quot;,[&amp;amp;quot;pointerout&amp;amp;quot;,&amp;amp;quot;pointerover&amp;amp;quot;]);Jl(&amp;amp;quot;onChange&amp;amp;quot;,&amp;amp;quot;change click focusin focusout input keydown keyup selectionchange&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;));Jl(&amp;amp;quot;onSelect&amp;amp;quot;,&amp;amp;quot;focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;));Jl(&amp;amp;quot;onBeforeInput&amp;amp;quot;,[&amp;amp;quot;compositionend&amp;amp;quot;,&amp;amp;quot;keypress&amp;amp;quot;,&amp;amp;quot;textInput&amp;amp;quot;,&amp;amp;quot;paste&amp;amp;quot;]);Jl(&amp;amp;quot;onCompositionEnd&amp;amp;quot;,&amp;amp;quot;compositionend focusout keydown keypress keyup mousedown&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;));Jl(&amp;amp;quot;onCompositionStart&amp;amp;quot;,&amp;amp;quot;compositionstart focusout keydown keypress keyup mousedown&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;));Jl(&amp;amp;quot;onCompositionUpdate&amp;amp;quot;,&amp;amp;quot;compositionupdate focusout keydown keypress keyup mousedown&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;));var Zd=&amp;amp;quot;abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;),zI=new Set(&amp;amp;quot;beforetoggle cancel close invalid load scroll scrollend toggle&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;).concat(Zd));function nU(n,t){t=(t&amp;amp;amp;4)!==0;for(var e=0;e&amp;amp;lt;n.length;e++){var i=n[e],a=i.event;i=i.listeners;t:{var s=void 0;if(t)for(var o=i.length-1;0&amp;amp;lt;=o;o--){var u=i[o],c=u.instance,h=u.currentTarget;if(u=u.listener,c!==s&amp;amp;amp;&amp;amp;amp;a.isPropagationStopped())break t;s=u,a.currentTarget=h;try{s(a)}catch(d){Tv(d)}a.currentTarget=null,s=c}else for(o=0;o&amp;amp;lt;i.length;o++){if(u=i[o],c=u.instance,h=u.currentTarget,u=u.listener,c!==s&amp;amp;amp;&amp;amp;amp;a.isPropagationStopped())break t;s=u,a.currentTarget=h;try{s(a)}catch(d){Tv(d)}a.currentTarget=null,s=c}}}}function Re(n,t){var e=t[u1];e===void 0&amp;amp;amp;&amp;amp;amp;(e=t[u1]=new Set);var i=n+&amp;amp;quot;__bubble&amp;amp;quot;;e.has(i)||(iU(t,n,2,!1),e.add(i))}function JM(n,t,e){var i=0;t&amp;amp;amp;&amp;amp;amp;(i|=4),iU(e,n,i,t)}var Z0=&amp;amp;quot;_reactListening&amp;amp;quot;+Math.random().toString(36).slice(2);function PE(n){if(!n[Z0]){n[Z0]=!0,Kw.forEach(function(e){e!==&amp;amp;quot;selectionchange&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(zI.has(e)||JM(e,!1,n),JM(e,!0,n))});var t=n.nodeType===9?n:n.ownerDocument;t===null||t[Z0]||(t[Z0]=!0,JM(&amp;amp;quot;selectionchange&amp;amp;quot;,!1,t))}}function iU(n,t,e,i){switch(mU(t)){case 2:var a=lH;break;case 8:a=uH;break;default:a=VE}e=a.bind(null,t,e,n),a=void 0,!d1||t!==&amp;amp;quot;touchstart&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t!==&amp;amp;quot;touchmove&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t!==&amp;amp;quot;wheel&amp;amp;quot;||(a=!0),i?a!==void 0?n.addEventListener(t,e,{capture:!0,passive:a}):n.addEventListener(t,e,!0):a!==void 0?n.addEventListener(t,e,{passive:a}):n.addEventListener(t,e,!1)}function $M(n,t,e,i,a){var s=i;if((t&amp;amp;amp;1)===0&amp;amp;amp;&amp;amp;amp;(t&amp;amp;amp;2)===0&amp;amp;amp;&amp;amp;amp;i!==null)t:for(;;){if(i===null)return;var o=i.tag;if(o===3||o===4){var u=i.stateNode.containerInfo;if(u===a)break;if(o===4)for(o=i.return;o!==null;){var c=o.tag;if((c===3||c===4)&amp;amp;amp;&amp;amp;amp;o.stateNode.containerInfo===a)return;o=o.return}for(;u!==null;){if(o=Nc(u),o===null)return;if(c=o.tag,c===5||c===6||c===26||c===27){i=s=o;continue t}u=u.parentNode}}i=i.return}s3(function(){var h=s,d=iE(e),m=[];t:{var g=x3.get(n);if(g!==void 0){var y=Vv,x=n;switch(n){case&amp;amp;quot;keypress&amp;amp;quot;:if(tv(e)===0)break t;case&amp;amp;quot;keydown&amp;amp;quot;:case&amp;amp;quot;keyup&amp;amp;quot;:y=UP;break;case&amp;amp;quot;focusin&amp;amp;quot;:x=&amp;amp;quot;focus&amp;amp;quot;,y=NM;break;case&amp;amp;quot;focusout&amp;amp;quot;:x=&amp;amp;quot;blur&amp;amp;quot;,y=NM;break;case&amp;amp;quot;beforeblur&amp;amp;quot;:case&amp;amp;quot;afterblur&amp;amp;quot;:y=NM;break;case&amp;amp;quot;click&amp;amp;quot;:if(e.button===2)break t;case&amp;amp;quot;auxclick&amp;amp;quot;:case&amp;amp;quot;dblclick&amp;amp;quot;:case&amp;amp;quot;mousedown&amp;amp;quot;:case&amp;amp;quot;mousemove&amp;amp;quot;:case&amp;amp;quot;mouseup&amp;amp;quot;:case&amp;amp;quot;mouseout&amp;amp;quot;:case&amp;amp;quot;mouseover&amp;amp;quot;:case&amp;amp;quot;contextmenu&amp;amp;quot;:y=AC;break;case&amp;amp;quot;drag&amp;amp;quot;:case&amp;amp;quot;dragend&amp;amp;quot;:case&amp;amp;quot;dragenter&amp;amp;quot;:case&amp;amp;quot;dragexit&amp;amp;quot;:case&amp;amp;quot;dragleave&amp;amp;quot;:case&amp;amp;quot;dragover&amp;amp;quot;:case&amp;amp;quot;dragstart&amp;amp;quot;:case&amp;amp;quot;drop&amp;amp;quot;:y=_P;break;case&amp;amp;quot;touchcancel&amp;amp;quot;:case&amp;amp;quot;touchend&amp;amp;quot;:case&amp;amp;quot;touchmove&amp;amp;quot;:case&amp;amp;quot;touchstart&amp;amp;quot;:y=LP;break;case g3:case v3:case y3:y=MP;break;case _3:y=BP;break;case&amp;amp;quot;scroll&amp;amp;quot;:case&amp;amp;quot;scrollend&amp;amp;quot;:y=vP;break;case&amp;amp;quot;wheel&amp;amp;quot;:y=IP;break;case&amp;amp;quot;copy&amp;amp;quot;:case&amp;amp;quot;cut&amp;amp;quot;:case&amp;amp;quot;paste&amp;amp;quot;:y=bP;break;case&amp;amp;quot;gotpointercapture&amp;amp;quot;:case&amp;amp;quot;lostpointercapture&amp;amp;quot;:case&amp;amp;quot;pointercancel&amp;amp;quot;:case&amp;amp;quot;pointerdown&amp;amp;quot;:case&amp;amp;quot;pointermove&amp;amp;quot;:case&amp;amp;quot;pointerout&amp;amp;quot;:case&amp;amp;quot;pointerover&amp;amp;quot;:case&amp;amp;quot;pointerup&amp;amp;quot;:y=CC;break;case&amp;amp;quot;toggle&amp;amp;quot;:case&amp;amp;quot;beforetoggle&amp;amp;quot;:y=FP}var b=(t&amp;amp;amp;4)!==0,M=!b&amp;amp;amp;&amp;amp;amp;(n===&amp;amp;quot;scroll&amp;amp;quot;||n===&amp;amp;quot;scrollend&amp;amp;quot;),v=b?g!==null?g+&amp;amp;quot;Capture&amp;amp;quot;:null:g;b=[];for(var S=h,E;S!==null;){var T=S;if(E=T.stateNode,T=T.tag,T!==5&amp;amp;amp;&amp;amp;amp;T!==26&amp;amp;amp;&amp;amp;amp;T!==27||E===null||v===null||(T=Gd(S,v),T!=null&amp;amp;amp;&amp;amp;amp;b.push(jd(S,T,E))),M)break;S=S.return}0&amp;amp;lt;b.length&amp;amp;amp;&amp;amp;amp;(g=new y(g,x,null,e,d),m.push({event:g,listeners:b}))}}if((t&amp;amp;amp;7)===0){t:{if(g=n===&amp;amp;quot;mouseover&amp;amp;quot;||n===&amp;amp;quot;pointerover&amp;amp;quot;,y=n===&amp;amp;quot;mouseout&amp;amp;quot;||n===&amp;amp;quot;pointerout&amp;amp;quot;,g&amp;amp;amp;&amp;amp;amp;e!==h1&amp;amp;amp;&amp;amp;amp;(x=e.relatedTarget||e.fromElement)&amp;amp;amp;&amp;amp;amp;(Nc(x)||x[lf]))break t;if((y||g)&amp;amp;amp;&amp;amp;amp;(g=d.window===d?d:(g=d.ownerDocument)?g.defaultView||g.parentWindow:window,y?(x=e.relatedTarget||e.toElement,y=h,x=x?Nc(x):null,x!==null&amp;amp;amp;&amp;amp;amp;(M=ep(x),b=x.tag,x!==M||b!==5&amp;amp;amp;&amp;amp;amp;b!==27&amp;amp;amp;&amp;amp;amp;b!==6)&amp;amp;amp;&amp;amp;amp;(x=null)):(y=null,x=h),y!==x)){if(b=AC,T=&amp;amp;quot;onMouseLeave&amp;amp;quot;,v=&amp;amp;quot;onMouseEnter&amp;amp;quot;,S=&amp;amp;quot;mouse&amp;amp;quot;,(n===&amp;amp;quot;pointerout&amp;amp;quot;||n===&amp;amp;quot;pointerover&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(b=CC,T=&amp;amp;quot;onPointerLeave&amp;amp;quot;,v=&amp;amp;quot;onPointerEnter&amp;amp;quot;,S=&amp;amp;quot;pointer&amp;amp;quot;),M=y==null?g:Td(y),E=x==null?g:Td(x),g=new b(T,S+&amp;amp;quot;leave&amp;amp;quot;,y,e,d),g.target=M,g.relatedTarget=E,T=null,Nc(d)===h&amp;amp;amp;&amp;amp;amp;(b=new b(v,S+&amp;amp;quot;enter&amp;amp;quot;,x,e,d),b.target=E,b.relatedTarget=M,T=b),M=T,y&amp;amp;amp;&amp;amp;amp;x)e:{for(b=y,v=x,S=0,E=b;E;E=Ac(E))S++;for(E=0,T=v;T;T=Ac(T))E++;for(;0&amp;amp;lt;S-E;)b=Ac(b),S--;for(;0&amp;amp;lt;E-S;)v=Ac(v),E--;for(;S--;){if(b===v||v!==null&amp;amp;amp;&amp;amp;amp;b===v.alternate)break e;b=Ac(b),v=Ac(v)}b=null}else b=null;y!==null&amp;amp;amp;&amp;amp;amp;Sw(m,g,y,b,!1),x!==null&amp;amp;amp;&amp;amp;amp;M!==null&amp;amp;amp;&amp;amp;amp;Sw(m,M,x,b,!0)}}t:{if(g=h?Td(h):window,y=g.nodeName&amp;amp;amp;&amp;amp;amp;g.nodeName.toLowerCase(),y===&amp;amp;quot;select&amp;amp;quot;||y===&amp;amp;quot;input&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;g.type===&amp;amp;quot;file&amp;amp;quot;)var w=NC;else if(UC(g))if(f3)w=QP;else{w=ZP;var U=kP}else y=g.nodeName,!y||y.toLowerCase()!==&amp;amp;quot;input&amp;amp;quot;||g.type!==&amp;amp;quot;checkbox&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;g.type!==&amp;amp;quot;radio&amp;amp;quot;?h&amp;amp;amp;&amp;amp;amp;nE(h.elementType)&amp;amp;amp;&amp;amp;amp;(w=NC):w=jP;if(w&amp;amp;amp;&amp;amp;amp;(w=w(n,h))){c3(m,w,e,d);break t}U&amp;amp;amp;&amp;amp;amp;U(n,g,h),n===&amp;amp;quot;focusout&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;h&amp;amp;amp;&amp;amp;amp;g.type===&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;h.memoizedProps.value!=null&amp;amp;amp;&amp;amp;amp;f1(g,&amp;amp;quot;number&amp;amp;quot;,g.value)}switch(U=h?Td(h):window,n){case&amp;amp;quot;focusin&amp;amp;quot;:(UC(U)||U.contentEditable===&amp;amp;quot;true&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(zc=U,p1=h,wd=null);break;case&amp;amp;quot;focusout&amp;amp;quot;:wd=p1=zc=null;break;case&amp;amp;quot;mousedown&amp;amp;quot;:m1=!0;break;case&amp;amp;quot;contextmenu&amp;amp;quot;:case&amp;amp;quot;mouseup&amp;amp;quot;:case&amp;amp;quot;dragend&amp;amp;quot;:m1=!1,BC(m,e,d);break;case&amp;amp;quot;selectionchange&amp;amp;quot;:if(JP)break;case&amp;amp;quot;keydown&amp;amp;quot;:case&amp;amp;quot;keyup&amp;amp;quot;:BC(m,e,d)}var O;if(rE)t:{switch(n){case&amp;amp;quot;compositionstart&amp;amp;quot;:var z=&amp;amp;quot;onCompositionStart&amp;amp;quot;;break t;case&amp;amp;quot;compositionend&amp;amp;quot;:z=&amp;amp;quot;onCompositionEnd&amp;amp;quot;;break t;case&amp;amp;quot;compositionupdate&amp;amp;quot;:z=&amp;amp;quot;onCompositionUpdate&amp;amp;quot;;break t}z=void 0}else Lc?l3(n,e)&amp;amp;amp;&amp;amp;amp;(z=&amp;amp;quot;onCompositionEnd&amp;amp;quot;):n===&amp;amp;quot;keydown&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e.keyCode===229&amp;amp;amp;&amp;amp;amp;(z=&amp;amp;quot;onCompositionStart&amp;amp;quot;);z&amp;amp;amp;&amp;amp;amp;(o3&amp;amp;amp;&amp;amp;amp;e.locale!==&amp;amp;quot;ko&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(Lc||z!==&amp;amp;quot;onCompositionStart&amp;amp;quot;?z===&amp;amp;quot;onCompositionEnd&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Lc&amp;amp;amp;&amp;amp;amp;(O=r3()):(Uo=d,aE=&amp;amp;quot;value&amp;amp;quot;in Uo?Uo.value:Uo.textContent,Lc=!0)),U=Ov(h,z),0&amp;amp;lt;U.length&amp;amp;amp;&amp;amp;amp;(z=new RC(z,n,null,e,d),m.push({event:z,listeners:U}),O?z.data=O:(O=u3(e),O!==null&amp;amp;amp;&amp;amp;amp;(z.data=O)))),(O=GP?XP(n,e):qP(n,e))&amp;amp;amp;&amp;amp;amp;(z=Ov(h,&amp;amp;quot;onBeforeInput&amp;amp;quot;),0&amp;amp;lt;z.length&amp;amp;amp;&amp;amp;amp;(U=new RC(&amp;amp;quot;onBeforeInput&amp;amp;quot;,&amp;amp;quot;beforeinput&amp;amp;quot;,null,e,d),m.push({event:U,listeners:z}),U.data=O)),LI(m,n,h,e,d)}nU(m,t)})}function jd(n,t,e){return{instance:n,listener:t,currentTarget:e}}function Ov(n,t){for(var e=t+&amp;amp;quot;Capture&amp;amp;quot;,i=[];n!==null;){var a=n,s=a.stateNode;if(a=a.tag,a!==5&amp;amp;amp;&amp;amp;amp;a!==26&amp;amp;amp;&amp;amp;amp;a!==27||s===null||(a=Gd(n,e),a!=null&amp;amp;amp;&amp;amp;amp;i.unshift(jd(n,a,s)),a=Gd(n,t),a!=null&amp;amp;amp;&amp;amp;amp;i.push(jd(n,a,s))),n.tag===3)return i;n=n.return}return[]}function Ac(n){if(n===null)return null;do n=n.return;while(n&amp;amp;amp;&amp;amp;amp;n.tag!==5&amp;amp;amp;&amp;amp;amp;n.tag!==27);return n||null}function Sw(n,t,e,i,a){for(var s=t._reactName,o=[];e!==null&amp;amp;amp;&amp;amp;amp;e!==i;){var u=e,c=u.alternate,h=u.stateNode;if(u=u.tag,c!==null&amp;amp;amp;&amp;amp;amp;c===i)break;u!==5&amp;amp;amp;&amp;amp;amp;u!==26&amp;amp;amp;&amp;amp;amp;u!==27||h===null||(c=h,a?(h=Gd(e,s),h!=null&amp;amp;amp;&amp;amp;amp;o.unshift(jd(e,h,c))):a||(h=Gd(e,s),h!=null&amp;amp;amp;&amp;amp;amp;o.push(jd(e,h,c)))),e=e.return}o.length!==0&amp;amp;amp;&amp;amp;amp;n.push({event:t,listeners:o})}var BI=/\r\n?/g,PI=/\u0000|\uFFFD/g;function Mw(n){return(typeof n==&amp;amp;quot;string&amp;amp;quot;?n:&amp;amp;quot;&amp;amp;quot;+n).replace(BI,`
   1183 <a href="#l1164" class="line" id="l1164">   1164</a> &lt;a href=&quot;#l1145&quot; class=&quot;line&quot; id=&quot;l1145&quot;&gt;   1145&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-8&amp;quot; id=&amp;quot;h3-0-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`).replace(PI,&amp;amp;quot;&amp;amp;quot;)}function aU(n,t){return t=Mw(t),Mw(n)===t}function $v(){}function tn(n,t,e,i,a,s){switch(e){case&amp;amp;quot;children&amp;amp;quot;:typeof i==&amp;amp;quot;string&amp;amp;quot;?t===&amp;amp;quot;body&amp;amp;quot;||t===&amp;amp;quot;textarea&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i===&amp;amp;quot;&amp;amp;quot;||Jc(n,i):(typeof i==&amp;amp;quot;number&amp;amp;quot;||typeof i==&amp;amp;quot;bigint&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;t!==&amp;amp;quot;body&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Jc(n,&amp;amp;quot;&amp;amp;quot;+i);break;case&amp;amp;quot;className&amp;amp;quot;:P0(n,&amp;amp;quot;class&amp;amp;quot;,i);break;case&amp;amp;quot;tabIndex&amp;amp;quot;:P0(n,&amp;amp;quot;tabindex&amp;amp;quot;,i);break;case&amp;amp;quot;dir&amp;amp;quot;:case&amp;amp;quot;role&amp;amp;quot;:case&amp;amp;quot;viewBox&amp;amp;quot;:case&amp;amp;quot;width&amp;amp;quot;:case&amp;amp;quot;height&amp;amp;quot;:P0(n,e,i);break;case&amp;amp;quot;style&amp;amp;quot;:a3(n,i,s);break;case&amp;amp;quot;data&amp;amp;quot;:if(t!==&amp;amp;quot;object&amp;amp;quot;){P0(n,&amp;amp;quot;data&amp;amp;quot;,i);break}case&amp;amp;quot;src&amp;amp;quot;:case&amp;amp;quot;href&amp;amp;quot;:if(i===&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t!==&amp;amp;quot;a&amp;amp;quot;||e!==&amp;amp;quot;href&amp;amp;quot;)){n.removeAttribute(e);break}if(i==null||typeof i==&amp;amp;quot;function&amp;amp;quot;||typeof i==&amp;amp;quot;symbol&amp;amp;quot;||typeof i==&amp;amp;quot;boolean&amp;amp;quot;){n.removeAttribute(e);break}i=J0(&amp;amp;quot;&amp;amp;quot;+i),n.setAttribute(e,i);break;case&amp;amp;quot;action&amp;amp;quot;:case&amp;amp;quot;formAction&amp;amp;quot;:if(typeof i==&amp;amp;quot;function&amp;amp;quot;){n.setAttribute(e,&amp;amp;quot;javascript:throw new Error(&amp;amp;#39;A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\&amp;amp;#39;re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().&amp;amp;#39;)&amp;amp;quot;);break}else typeof s==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(e===&amp;amp;quot;formAction&amp;amp;quot;?(t!==&amp;amp;quot;input&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;tn(n,t,&amp;amp;quot;name&amp;amp;quot;,a.name,a,null),tn(n,t,&amp;amp;quot;formEncType&amp;amp;quot;,a.formEncType,a,null),tn(n,t,&amp;amp;quot;formMethod&amp;amp;quot;,a.formMethod,a,null),tn(n,t,&amp;amp;quot;formTarget&amp;amp;quot;,a.formTarget,a,null)):(tn(n,t,&amp;amp;quot;encType&amp;amp;quot;,a.encType,a,null),tn(n,t,&amp;amp;quot;method&amp;amp;quot;,a.method,a,null),tn(n,t,&amp;amp;quot;target&amp;amp;quot;,a.target,a,null)));if(i==null||typeof i==&amp;amp;quot;symbol&amp;amp;quot;||typeof i==&amp;amp;quot;boolean&amp;amp;quot;){n.removeAttribute(e);break}i=J0(&amp;amp;quot;&amp;amp;quot;+i),n.setAttribute(e,i);break;case&amp;amp;quot;onClick&amp;amp;quot;:i!=null&amp;amp;amp;&amp;amp;amp;(n.onclick=$v);break;case&amp;amp;quot;onScroll&amp;amp;quot;:i!=null&amp;amp;amp;&amp;amp;amp;Re(&amp;amp;quot;scroll&amp;amp;quot;,n);break;case&amp;amp;quot;onScrollEnd&amp;amp;quot;:i!=null&amp;amp;amp;&amp;amp;amp;Re(&amp;amp;quot;scrollend&amp;amp;quot;,n);break;case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:if(i!=null){if(typeof i!=&amp;amp;quot;object&amp;amp;quot;||!(&amp;amp;quot;__html&amp;amp;quot;in i))throw Error(ft(61));if(e=i.__html,e!=null){if(a.children!=null)throw Error(ft(60));n.innerHTML=e}}break;case&amp;amp;quot;multiple&amp;amp;quot;:n.multiple=i&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;symbol&amp;amp;quot;;break;case&amp;amp;quot;muted&amp;amp;quot;:n.muted=i&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;symbol&amp;amp;quot;;break;case&amp;amp;quot;suppressContentEditableWarning&amp;amp;quot;:case&amp;amp;quot;suppressHydrationWarning&amp;amp;quot;:case&amp;amp;quot;defaultValue&amp;amp;quot;:case&amp;amp;quot;defaultChecked&amp;amp;quot;:case&amp;amp;quot;innerHTML&amp;amp;quot;:case&amp;amp;quot;ref&amp;amp;quot;:break;case&amp;amp;quot;autoFocus&amp;amp;quot;:break;case&amp;amp;quot;xlinkHref&amp;amp;quot;:if(i==null||typeof i==&amp;amp;quot;function&amp;amp;quot;||typeof i==&amp;amp;quot;boolean&amp;amp;quot;||typeof i==&amp;amp;quot;symbol&amp;amp;quot;){n.removeAttribute(&amp;amp;quot;xlink:href&amp;amp;quot;);break}e=J0(&amp;amp;quot;&amp;amp;quot;+i),n.setAttributeNS(&amp;amp;quot;http://www.w3.org/1999/xlink&amp;amp;quot;,&amp;amp;quot;xlink:href&amp;amp;quot;,e);break;case&amp;amp;quot;contentEditable&amp;amp;quot;:case&amp;amp;quot;spellCheck&amp;amp;quot;:case&amp;amp;quot;draggable&amp;amp;quot;:case&amp;amp;quot;value&amp;amp;quot;:case&amp;amp;quot;autoReverse&amp;amp;quot;:case&amp;amp;quot;externalResourcesRequired&amp;amp;quot;:case&amp;amp;quot;focusable&amp;amp;quot;:case&amp;amp;quot;preserveAlpha&amp;amp;quot;:i!=null&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;symbol&amp;amp;quot;?n.setAttribute(e,&amp;amp;quot;&amp;amp;quot;+i):n.removeAttribute(e);break;case&amp;amp;quot;inert&amp;amp;quot;:case&amp;amp;quot;allowFullScreen&amp;amp;quot;:case&amp;amp;quot;async&amp;amp;quot;:case&amp;amp;quot;autoPlay&amp;amp;quot;:case&amp;amp;quot;controls&amp;amp;quot;:case&amp;amp;quot;default&amp;amp;quot;:case&amp;amp;quot;defer&amp;amp;quot;:case&amp;amp;quot;disabled&amp;amp;quot;:case&amp;amp;quot;disablePictureInPicture&amp;amp;quot;:case&amp;amp;quot;disableRemotePlayback&amp;amp;quot;:case&amp;amp;quot;formNoValidate&amp;amp;quot;:case&amp;amp;quot;hidden&amp;amp;quot;:case&amp;amp;quot;loop&amp;amp;quot;:case&amp;amp;quot;noModule&amp;amp;quot;:case&amp;amp;quot;noValidate&amp;amp;quot;:case&amp;amp;quot;open&amp;amp;quot;:case&amp;amp;quot;playsInline&amp;amp;quot;:case&amp;amp;quot;readOnly&amp;amp;quot;:case&amp;amp;quot;required&amp;amp;quot;:case&amp;amp;quot;reversed&amp;amp;quot;:case&amp;amp;quot;scoped&amp;amp;quot;:case&amp;amp;quot;seamless&amp;amp;quot;:case&amp;amp;quot;itemScope&amp;amp;quot;:i&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;symbol&amp;amp;quot;?n.setAttribute(e,&amp;amp;quot;&amp;amp;quot;):n.removeAttribute(e);break;case&amp;amp;quot;capture&amp;amp;quot;:case&amp;amp;quot;download&amp;amp;quot;:i===!0?n.setAttribute(e,&amp;amp;quot;&amp;amp;quot;):i!==!1&amp;amp;amp;&amp;amp;amp;i!=null&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;symbol&amp;amp;quot;?n.setAttribute(e,i):n.removeAttribute(e);break;case&amp;amp;quot;cols&amp;amp;quot;:case&amp;amp;quot;rows&amp;amp;quot;:case&amp;amp;quot;size&amp;amp;quot;:case&amp;amp;quot;span&amp;amp;quot;:i!=null&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;symbol&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!isNaN(i)&amp;amp;amp;&amp;amp;amp;1&amp;amp;lt;=i?n.setAttribute(e,i):n.removeAttribute(e);break;case&amp;amp;quot;rowSpan&amp;amp;quot;:case&amp;amp;quot;start&amp;amp;quot;:i==null||typeof i==&amp;amp;quot;function&amp;amp;quot;||typeof i==&amp;amp;quot;symbol&amp;amp;quot;||isNaN(i)?n.removeAttribute(e):n.setAttribute(e,i);break;case&amp;amp;quot;popover&amp;amp;quot;:Re(&amp;amp;quot;beforetoggle&amp;amp;quot;,n),Re(&amp;amp;quot;toggle&amp;amp;quot;,n),K0(n,&amp;amp;quot;popover&amp;amp;quot;,i);break;case&amp;amp;quot;xlinkActuate&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/1999/xlink&amp;amp;quot;,&amp;amp;quot;xlink:actuate&amp;amp;quot;,i);break;case&amp;amp;quot;xlinkArcrole&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/1999/xlink&amp;amp;quot;,&amp;amp;quot;xlink:arcrole&amp;amp;quot;,i);break;case&amp;amp;quot;xlinkRole&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/1999/xlink&amp;amp;quot;,&amp;amp;quot;xlink:role&amp;amp;quot;,i);break;case&amp;amp;quot;xlinkShow&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/1999/xlink&amp;amp;quot;,&amp;amp;quot;xlink:show&amp;amp;quot;,i);break;case&amp;amp;quot;xlinkTitle&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/1999/xlink&amp;amp;quot;,&amp;amp;quot;xlink:title&amp;amp;quot;,i);break;case&amp;amp;quot;xlinkType&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/1999/xlink&amp;amp;quot;,&amp;amp;quot;xlink:type&amp;amp;quot;,i);break;case&amp;amp;quot;xmlBase&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/XML/1998/namespace&amp;amp;quot;,&amp;amp;quot;xml:base&amp;amp;quot;,i);break;case&amp;amp;quot;xmlLang&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/XML/1998/namespace&amp;amp;quot;,&amp;amp;quot;xml:lang&amp;amp;quot;,i);break;case&amp;amp;quot;xmlSpace&amp;amp;quot;:Er(n,&amp;amp;quot;http://www.w3.org/XML/1998/namespace&amp;amp;quot;,&amp;amp;quot;xml:space&amp;amp;quot;,i);break;case&amp;amp;quot;is&amp;amp;quot;:K0(n,&amp;amp;quot;is&amp;amp;quot;,i);break;case&amp;amp;quot;innerText&amp;amp;quot;:case&amp;amp;quot;textContent&amp;amp;quot;:break;default:(!(2&amp;amp;lt;e.length)||e[0]!==&amp;amp;quot;o&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e[0]!==&amp;amp;quot;O&amp;amp;quot;||e[1]!==&amp;amp;quot;n&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e[1]!==&amp;amp;quot;N&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(e=mP.get(e)||e,K0(n,e,i))}}function F1(n,t,e,i,a,s){switch(e){case&amp;amp;quot;style&amp;amp;quot;:a3(n,i,s);break;case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:if(i!=null){if(typeof i!=&amp;amp;quot;object&amp;amp;quot;||!(&amp;amp;quot;__html&amp;amp;quot;in i))throw Error(ft(61));if(e=i.__html,e!=null){if(a.children!=null)throw Error(ft(60));n.innerHTML=e}}break;case&amp;amp;quot;children&amp;amp;quot;:typeof i==&amp;amp;quot;string&amp;amp;quot;?Jc(n,i):(typeof i==&amp;amp;quot;number&amp;amp;quot;||typeof i==&amp;amp;quot;bigint&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;Jc(n,&amp;amp;quot;&amp;amp;quot;+i);break;case&amp;amp;quot;onScroll&amp;amp;quot;:i!=null&amp;amp;amp;&amp;amp;amp;Re(&amp;amp;quot;scroll&amp;amp;quot;,n);break;case&amp;amp;quot;onScrollEnd&amp;amp;quot;:i!=null&amp;amp;amp;&amp;amp;amp;Re(&amp;amp;quot;scrollend&amp;amp;quot;,n);break;case&amp;amp;quot;onClick&amp;amp;quot;:i!=null&amp;amp;amp;&amp;amp;amp;(n.onclick=$v);break;case&amp;amp;quot;suppressContentEditableWarning&amp;amp;quot;:case&amp;amp;quot;suppressHydrationWarning&amp;amp;quot;:case&amp;amp;quot;innerHTML&amp;amp;quot;:case&amp;amp;quot;ref&amp;amp;quot;:break;case&amp;amp;quot;innerText&amp;amp;quot;:case&amp;amp;quot;textContent&amp;amp;quot;:break;default:if(!Jw.hasOwnProperty(e))t:{if(e[0]===&amp;amp;quot;o&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e[1]===&amp;amp;quot;n&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a=e.endsWith(&amp;amp;quot;Capture&amp;amp;quot;),t=e.slice(2,a?e.length-7:void 0),s=n[ta]||null,s=s!=null?s[e]:null,typeof s==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.removeEventListener(t,s,a),typeof i==&amp;amp;quot;function&amp;amp;quot;)){typeof s!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s!==null&amp;amp;amp;&amp;amp;amp;(e in n?n[e]=null:n.hasAttribute(e)&amp;amp;amp;&amp;amp;amp;n.removeAttribute(e)),n.addEventListener(t,i,a);break t}e in n?n[e]=i:i===!0?n.setAttribute(e,&amp;amp;quot;&amp;amp;quot;):K0(n,e,i)}}}function gi(n,t,e){switch(t){case&amp;amp;quot;div&amp;amp;quot;:case&amp;amp;quot;span&amp;amp;quot;:case&amp;amp;quot;svg&amp;amp;quot;:case&amp;amp;quot;path&amp;amp;quot;:case&amp;amp;quot;a&amp;amp;quot;:case&amp;amp;quot;g&amp;amp;quot;:case&amp;amp;quot;p&amp;amp;quot;:case&amp;amp;quot;li&amp;amp;quot;:break;case&amp;amp;quot;img&amp;amp;quot;:Re(&amp;amp;quot;error&amp;amp;quot;,n),Re(&amp;amp;quot;load&amp;amp;quot;,n);var i=!1,a=!1,s;for(s in e)if(e.hasOwnProperty(s)){var o=e[s];if(o!=null)switch(s){case&amp;amp;quot;src&amp;amp;quot;:i=!0;break;case&amp;amp;quot;srcSet&amp;amp;quot;:a=!0;break;case&amp;amp;quot;children&amp;amp;quot;:case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:throw Error(ft(137,t));default:tn(n,t,s,o,e,null)}}a&amp;amp;amp;&amp;amp;amp;tn(n,t,&amp;amp;quot;srcSet&amp;amp;quot;,e.srcSet,e,null),i&amp;amp;amp;&amp;amp;amp;tn(n,t,&amp;amp;quot;src&amp;amp;quot;,e.src,e,null);return;case&amp;amp;quot;input&amp;amp;quot;:Re(&amp;amp;quot;invalid&amp;amp;quot;,n);var u=s=o=a=null,c=null,h=null;for(i in e)if(e.hasOwnProperty(i)){var d=e[i];if(d!=null)switch(i){case&amp;amp;quot;name&amp;amp;quot;:a=d;break;case&amp;amp;quot;type&amp;amp;quot;:o=d;break;case&amp;amp;quot;checked&amp;amp;quot;:c=d;break;case&amp;amp;quot;defaultChecked&amp;amp;quot;:h=d;break;case&amp;amp;quot;value&amp;amp;quot;:s=d;break;case&amp;amp;quot;defaultValue&amp;amp;quot;:u=d;break;case&amp;amp;quot;children&amp;amp;quot;:case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:if(d!=null)throw Error(ft(137,t));break;default:tn(n,t,i,d,e,null)}}e3(n,s,u,c,h,o,a,!1),pv(n);return;case&amp;amp;quot;select&amp;amp;quot;:Re(&amp;amp;quot;invalid&amp;amp;quot;,n),i=o=s=null;for(a in e)if(e.hasOwnProperty(a)&amp;amp;amp;&amp;amp;amp;(u=e[a],u!=null))switch(a){case&amp;amp;quot;value&amp;amp;quot;:s=u;break;case&amp;amp;quot;defaultValue&amp;amp;quot;:o=u;break;case&amp;amp;quot;multiple&amp;amp;quot;:i=u;default:tn(n,t,a,u,e,null)}t=s,e=o,n.multiple=!!i,t!=null?Xc(n,!!i,t,!1):e!=null&amp;amp;amp;&amp;amp;amp;Xc(n,!!i,e,!0);return;case&amp;amp;quot;textarea&amp;amp;quot;:Re(&amp;amp;quot;invalid&amp;amp;quot;,n),s=a=i=null;for(o in e)if(e.hasOwnProperty(o)&amp;amp;amp;&amp;amp;amp;(u=e[o],u!=null))switch(o){case&amp;amp;quot;value&amp;amp;quot;:i=u;break;case&amp;amp;quot;defaultValue&amp;amp;quot;:a=u;break;case&amp;amp;quot;children&amp;amp;quot;:s=u;break;case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:if(u!=null)throw Error(ft(91));break;default:tn(n,t,o,u,e,null)}i3(n,i,a,s),pv(n);return;case&amp;amp;quot;option&amp;amp;quot;:for(c in e)if(e.hasOwnProperty(c)&amp;amp;amp;&amp;amp;amp;(i=e[c],i!=null))switch(c){case&amp;amp;quot;selected&amp;amp;quot;:n.selected=i&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i!=&amp;amp;quot;symbol&amp;amp;quot;;break;default:tn(n,t,c,i,e,null)}return;case&amp;amp;quot;dialog&amp;amp;quot;:Re(&amp;amp;quot;beforetoggle&amp;amp;quot;,n),Re(&amp;amp;quot;toggle&amp;amp;quot;,n),Re(&amp;amp;quot;cancel&amp;amp;quot;,n),Re(&amp;amp;quot;close&amp;amp;quot;,n);break;case&amp;amp;quot;iframe&amp;amp;quot;:case&amp;amp;quot;object&amp;amp;quot;:Re(&amp;amp;quot;load&amp;amp;quot;,n);break;case&amp;amp;quot;video&amp;amp;quot;:case&amp;amp;quot;audio&amp;amp;quot;:for(i=0;i&amp;amp;lt;Zd.length;i++)Re(Zd[i],n);break;case&amp;amp;quot;image&amp;amp;quot;:Re(&amp;amp;quot;error&amp;amp;quot;,n),Re(&amp;amp;quot;load&amp;amp;quot;,n);break;case&amp;amp;quot;details&amp;amp;quot;:Re(&amp;amp;quot;toggle&amp;amp;quot;,n);break;case&amp;amp;quot;embed&amp;amp;quot;:case&amp;amp;quot;source&amp;amp;quot;:case&amp;amp;quot;link&amp;amp;quot;:Re(&amp;amp;quot;error&amp;amp;quot;,n),Re(&amp;amp;quot;load&amp;amp;quot;,n);case&amp;amp;quot;area&amp;amp;quot;:case&amp;amp;quot;base&amp;amp;quot;:case&amp;amp;quot;br&amp;amp;quot;:case&amp;amp;quot;col&amp;amp;quot;:case&amp;amp;quot;hr&amp;amp;quot;:case&amp;amp;quot;keygen&amp;amp;quot;:case&amp;amp;quot;meta&amp;amp;quot;:case&amp;amp;quot;param&amp;amp;quot;:case&amp;amp;quot;track&amp;amp;quot;:case&amp;amp;quot;wbr&amp;amp;quot;:case&amp;amp;quot;menuitem&amp;amp;quot;:for(h in e)if(e.hasOwnProperty(h)&amp;amp;amp;&amp;amp;amp;(i=e[h],i!=null))switch(h){case&amp;amp;quot;children&amp;amp;quot;:case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:throw Error(ft(137,t));default:tn(n,t,h,i,e,null)}return;default:if(nE(t)){for(d in e)e.hasOwnProperty(d)&amp;amp;amp;&amp;amp;amp;(i=e[d],i!==void 0&amp;amp;amp;&amp;amp;amp;F1(n,t,d,i,e,void 0));return}}for(u in e)e.hasOwnProperty(u)&amp;amp;amp;&amp;amp;amp;(i=e[u],i!=null&amp;amp;amp;&amp;amp;amp;tn(n,t,u,i,e,null))}function II(n,t,e,i){switch(t){case&amp;amp;quot;div&amp;amp;quot;:case&amp;amp;quot;span&amp;amp;quot;:case&amp;amp;quot;svg&amp;amp;quot;:case&amp;amp;quot;path&amp;amp;quot;:case&amp;amp;quot;a&amp;amp;quot;:case&amp;amp;quot;g&amp;amp;quot;:case&amp;amp;quot;p&amp;amp;quot;:case&amp;amp;quot;li&amp;amp;quot;:break;case&amp;amp;quot;input&amp;amp;quot;:var a=null,s=null,o=null,u=null,c=null,h=null,d=null;for(y in e){var m=e[y];if(e.hasOwnProperty(y)&amp;amp;amp;&amp;amp;amp;m!=null)switch(y){case&amp;amp;quot;checked&amp;amp;quot;:break;case&amp;amp;quot;value&amp;amp;quot;:break;case&amp;amp;quot;defaultValue&amp;amp;quot;:c=m;default:i.hasOwnProperty(y)||tn(n,t,y,null,i,m)}}for(var g in i){var y=i[g];if(m=e[g],i.hasOwnProperty(g)&amp;amp;amp;&amp;amp;amp;(y!=null||m!=null))switch(g){case&amp;amp;quot;type&amp;amp;quot;:s=y;break;case&amp;amp;quot;name&amp;amp;quot;:a=y;break;case&amp;amp;quot;checked&amp;amp;quot;:h=y;break;case&amp;amp;quot;defaultChecked&amp;amp;quot;:d=y;break;case&amp;amp;quot;value&amp;amp;quot;:o=y;break;case&amp;amp;quot;defaultValue&amp;amp;quot;:u=y;break;case&amp;amp;quot;children&amp;amp;quot;:case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:if(y!=null)throw Error(ft(137,t));break;default:y!==m&amp;amp;amp;&amp;amp;amp;tn(n,t,g,y,i,m)}}c1(n,o,u,c,h,d,s,a);return;case&amp;amp;quot;select&amp;amp;quot;:y=o=u=g=null;for(s in e)if(c=e[s],e.hasOwnProperty(s)&amp;amp;amp;&amp;amp;amp;c!=null)switch(s){case&amp;amp;quot;value&amp;amp;quot;:break;case&amp;amp;quot;multiple&amp;amp;quot;:y=c;default:i.hasOwnProperty(s)||tn(n,t,s,null,i,c)}for(a in i)if(s=i[a],c=e[a],i.hasOwnProperty(a)&amp;amp;amp;&amp;amp;amp;(s!=null||c!=null))switch(a){case&amp;amp;quot;value&amp;amp;quot;:g=s;break;case&amp;amp;quot;defaultValue&amp;amp;quot;:u=s;break;case&amp;amp;quot;multiple&amp;amp;quot;:o=s;default:s!==c&amp;amp;amp;&amp;amp;amp;tn(n,t,a,s,i,c)}t=u,e=o,i=y,g!=null?Xc(n,!!e,g,!1):!!i!=!!e&amp;amp;amp;&amp;amp;amp;(t!=null?Xc(n,!!e,t,!0):Xc(n,!!e,e?[]:&amp;amp;quot;&amp;amp;quot;,!1));return;case&amp;amp;quot;textarea&amp;amp;quot;:y=g=null;for(u in e)if(a=e[u],e.hasOwnProperty(u)&amp;amp;amp;&amp;amp;amp;a!=null&amp;amp;amp;&amp;amp;amp;!i.hasOwnProperty(u))switch(u){case&amp;amp;quot;value&amp;amp;quot;:break;case&amp;amp;quot;children&amp;amp;quot;:break;default:tn(n,t,u,null,i,a)}for(o in i)if(a=i[o],s=e[o],i.hasOwnProperty(o)&amp;amp;amp;&amp;amp;amp;(a!=null||s!=null))switch(o){case&amp;amp;quot;value&amp;amp;quot;:g=a;break;case&amp;amp;quot;defaultValue&amp;amp;quot;:y=a;break;case&amp;amp;quot;children&amp;amp;quot;:break;case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:if(a!=null)throw Error(ft(91));break;default:a!==s&amp;amp;amp;&amp;amp;amp;tn(n,t,o,a,i,s)}n3(n,g,y);return;case&amp;amp;quot;option&amp;amp;quot;:for(var x in e)if(g=e[x],e.hasOwnProperty(x)&amp;amp;amp;&amp;amp;amp;g!=null&amp;amp;amp;&amp;amp;amp;!i.hasOwnProperty(x))switch(x){case&amp;amp;quot;selected&amp;amp;quot;:n.selected=!1;break;default:tn(n,t,x,null,i,g)}for(c in i)if(g=i[c],y=e[c],i.hasOwnProperty(c)&amp;amp;amp;&amp;amp;amp;g!==y&amp;amp;amp;&amp;amp;amp;(g!=null||y!=null))switch(c){case&amp;amp;quot;selected&amp;amp;quot;:n.selected=g&amp;amp;amp;&amp;amp;amp;typeof g!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof g!=&amp;amp;quot;symbol&amp;amp;quot;;break;default:tn(n,t,c,g,i,y)}return;case&amp;amp;quot;img&amp;amp;quot;:case&amp;amp;quot;link&amp;amp;quot;:case&amp;amp;quot;area&amp;amp;quot;:case&amp;amp;quot;base&amp;amp;quot;:case&amp;amp;quot;br&amp;amp;quot;:case&amp;amp;quot;col&amp;amp;quot;:case&amp;amp;quot;embed&amp;amp;quot;:case&amp;amp;quot;hr&amp;amp;quot;:case&amp;amp;quot;keygen&amp;amp;quot;:case&amp;amp;quot;meta&amp;amp;quot;:case&amp;amp;quot;param&amp;amp;quot;:case&amp;amp;quot;source&amp;amp;quot;:case&amp;amp;quot;track&amp;amp;quot;:case&amp;amp;quot;wbr&amp;amp;quot;:case&amp;amp;quot;menuitem&amp;amp;quot;:for(var b in e)g=e[b],e.hasOwnProperty(b)&amp;amp;amp;&amp;amp;amp;g!=null&amp;amp;amp;&amp;amp;amp;!i.hasOwnProperty(b)&amp;amp;amp;&amp;amp;amp;tn(n,t,b,null,i,g);for(h in i)if(g=i[h],y=e[h],i.hasOwnProperty(h)&amp;amp;amp;&amp;amp;amp;g!==y&amp;amp;amp;&amp;amp;amp;(g!=null||y!=null))switch(h){case&amp;amp;quot;children&amp;amp;quot;:case&amp;amp;quot;dangerouslySetInnerHTML&amp;amp;quot;:if(g!=null)throw Error(ft(137,t));break;default:tn(n,t,h,g,i,y)}return;default:if(nE(t)){for(var M in e)g=e[M],e.hasOwnProperty(M)&amp;amp;amp;&amp;amp;amp;g!==void 0&amp;amp;amp;&amp;amp;amp;!i.hasOwnProperty(M)&amp;amp;amp;&amp;amp;amp;F1(n,t,M,void 0,i,g);for(d in i)g=i[d],y=e[d],!i.hasOwnProperty(d)||g===y||g===void 0&amp;amp;amp;&amp;amp;amp;y===void 0||F1(n,t,d,g,i,y);return}}for(var v in e)g=e[v],e.hasOwnProperty(v)&amp;amp;amp;&amp;amp;amp;g!=null&amp;amp;amp;&amp;amp;amp;!i.hasOwnProperty(v)&amp;amp;amp;&amp;amp;amp;tn(n,t,v,null,i,g);for(m in i)g=i[m],y=e[m],!i.hasOwnProperty(m)||g===y||g==null&amp;amp;amp;&amp;amp;amp;y==null||tn(n,t,m,g,i,y)}var V1=null,G1=null;function Lv(n){return n.nodeType===9?n:n.ownerDocument}function Ew(n){switch(n){case&amp;amp;quot;http://www.w3.org/2000/svg&amp;amp;quot;:return 1;case&amp;amp;quot;http://www.w3.org/1998/Math/MathML&amp;amp;quot;:return 2;default:return 0}}function sU(n,t){if(n===0)switch(t){case&amp;amp;quot;svg&amp;amp;quot;:return 1;case&amp;amp;quot;math&amp;amp;quot;:return 2;default:return 0}return n===1&amp;amp;amp;&amp;amp;amp;t===&amp;amp;quot;foreignObject&amp;amp;quot;?0:n}function X1(n,t){return n===&amp;amp;quot;textarea&amp;amp;quot;||n===&amp;amp;quot;noscript&amp;amp;quot;||typeof t.children==&amp;amp;quot;string&amp;amp;quot;||typeof t.children==&amp;amp;quot;number&amp;amp;quot;||typeof t.children==&amp;amp;quot;bigint&amp;amp;quot;||typeof t.dangerouslySetInnerHTML==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.dangerouslySetInnerHTML!==null&amp;amp;amp;&amp;amp;amp;t.dangerouslySetInnerHTML.__html!=null}var t1=null;function HI(){var n=window.event;return n&amp;amp;amp;&amp;amp;amp;n.type===&amp;amp;quot;popstate&amp;amp;quot;?n===t1?!1:(t1=n,!0):(t1=null,!1)}var rU=typeof setTimeout==&amp;amp;quot;function&amp;amp;quot;?setTimeout:void 0,FI=typeof clearTimeout==&amp;amp;quot;function&amp;amp;quot;?clearTimeout:void 0,bw=typeof Promise==&amp;amp;quot;function&amp;amp;quot;?Promise:void 0,VI=typeof queueMicrotask==&amp;amp;quot;function&amp;amp;quot;?queueMicrotask:typeof bw&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?function(n){return bw.resolve(null).then(n).catch(GI)}:rU;function GI(n){setTimeout(function(){throw n})}function Wo(n){return n===&amp;amp;quot;head&amp;amp;quot;}function Tw(n,t){var e=t,i=0,a=0;do{var s=e.nextSibling;if(n.removeChild(e),s&amp;amp;amp;&amp;amp;amp;s.nodeType===8)if(e=s.data,e===&amp;amp;quot;/$&amp;amp;quot;){if(0&amp;amp;lt;i&amp;amp;amp;&amp;amp;amp;8&amp;amp;gt;i){e=i;var o=n.ownerDocument;if(e&amp;amp;amp;1&amp;amp;amp;&amp;amp;amp;Fd(o.documentElement),e&amp;amp;amp;2&amp;amp;amp;&amp;amp;amp;Fd(o.body),e&amp;amp;amp;4)for(e=o.head,Fd(e),o=e.firstChild;o;){var u=o.nextSibling,c=o.nodeName;o[sp]||c===&amp;amp;quot;SCRIPT&amp;amp;quot;||c===&amp;amp;quot;STYLE&amp;amp;quot;||c===&amp;amp;quot;LINK&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o.rel.toLowerCase()===&amp;amp;quot;stylesheet&amp;amp;quot;||e.removeChild(o),o=u}}if(a===0){n.removeChild(s),tp(t);return}a--}else e===&amp;amp;quot;$&amp;amp;quot;||e===&amp;amp;quot;$?&amp;amp;quot;||e===&amp;amp;quot;$!&amp;amp;quot;?a++:i=e.charCodeAt(0)-48;else i=0;e=s}while(e);tp(t)}function q1(n){var t=n.firstChild;for(t&amp;amp;amp;&amp;amp;amp;t.nodeType===10&amp;amp;amp;&amp;amp;amp;(t=t.nextSibling);t;){var e=t;switch(t=t.nextSibling,e.nodeName){case&amp;amp;quot;HTML&amp;amp;quot;:case&amp;amp;quot;HEAD&amp;amp;quot;:case&amp;amp;quot;BODY&amp;amp;quot;:q1(e),eE(e);continue;case&amp;amp;quot;SCRIPT&amp;amp;quot;:case&amp;amp;quot;STYLE&amp;amp;quot;:continue;case&amp;amp;quot;LINK&amp;amp;quot;:if(e.rel.toLowerCase()===&amp;amp;quot;stylesheet&amp;amp;quot;)continue}n.removeChild(e)}}function XI(n,t,e,i){for(;n.nodeType===1;){var a=e;if(n.nodeName.toLowerCase()!==t.toLowerCase()){if(!i&amp;amp;amp;&amp;amp;amp;(n.nodeName!==&amp;amp;quot;INPUT&amp;amp;quot;||n.type!==&amp;amp;quot;hidden&amp;amp;quot;))break}else if(i){if(!n[sp])switch(t){case&amp;amp;quot;meta&amp;amp;quot;:if(!n.hasAttribute(&amp;amp;quot;itemprop&amp;amp;quot;))break;return n;case&amp;amp;quot;link&amp;amp;quot;:if(s=n.getAttribute(&amp;amp;quot;rel&amp;amp;quot;),s===&amp;amp;quot;stylesheet&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.hasAttribute(&amp;amp;quot;data-precedence&amp;amp;quot;))break;if(s!==a.rel||n.getAttribute(&amp;amp;quot;href&amp;amp;quot;)!==(a.href==null||a.href===&amp;amp;quot;&amp;amp;quot;?null:a.href)||n.getAttribute(&amp;amp;quot;crossorigin&amp;amp;quot;)!==(a.crossOrigin==null?null:a.crossOrigin)||n.getAttribute(&amp;amp;quot;title&amp;amp;quot;)!==(a.title==null?null:a.title))break;return n;case&amp;amp;quot;style&amp;amp;quot;:if(n.hasAttribute(&amp;amp;quot;data-precedence&amp;amp;quot;))break;return n;case&amp;amp;quot;script&amp;amp;quot;:if(s=n.getAttribute(&amp;amp;quot;src&amp;amp;quot;),(s!==(a.src==null?null:a.src)||n.getAttribute(&amp;amp;quot;type&amp;amp;quot;)!==(a.type==null?null:a.type)||n.getAttribute(&amp;amp;quot;crossorigin&amp;amp;quot;)!==(a.crossOrigin==null?null:a.crossOrigin))&amp;amp;amp;&amp;amp;amp;s&amp;amp;amp;&amp;amp;amp;n.hasAttribute(&amp;amp;quot;async&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!n.hasAttribute(&amp;amp;quot;itemprop&amp;amp;quot;))break;return n;default:return n}}else if(t===&amp;amp;quot;input&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.type===&amp;amp;quot;hidden&amp;amp;quot;){var s=a.name==null?null:&amp;amp;quot;&amp;amp;quot;+a.name;if(a.type===&amp;amp;quot;hidden&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.getAttribute(&amp;amp;quot;name&amp;amp;quot;)===s)return n}else return n;if(n=ys(n.nextSibling),n===null)break}return null}function qI(n,t,e){if(t===&amp;amp;quot;&amp;amp;quot;)return null;for(;n.nodeType!==3;)if((n.nodeType!==1||n.nodeName!==&amp;amp;quot;INPUT&amp;amp;quot;||n.type!==&amp;amp;quot;hidden&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!e||(n=ys(n.nextSibling),n===null))return null;return n}function Y1(n){return n.data===&amp;amp;quot;$!&amp;amp;quot;||n.data===&amp;amp;quot;$?&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.ownerDocument.readyState===&amp;amp;quot;complete&amp;amp;quot;}function YI(n,t){var e=n.ownerDocument;if(n.data!==&amp;amp;quot;$?&amp;amp;quot;||e.readyState===&amp;amp;quot;complete&amp;amp;quot;)t();else{var i=function(){t(),e.removeEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;,i)};e.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;,i),n._reactRetry=i}}function ys(n){for(;n!=null;n=n.nextSibling){var t=n.nodeType;if(t===1||t===3)break;if(t===8){if(t=n.data,t===&amp;amp;quot;$&amp;amp;quot;||t===&amp;amp;quot;$!&amp;amp;quot;||t===&amp;amp;quot;$?&amp;amp;quot;||t===&amp;amp;quot;F!&amp;amp;quot;||t===&amp;amp;quot;F&amp;amp;quot;)break;if(t===&amp;amp;quot;/$&amp;amp;quot;)return null}}return n}var W1=null;function Aw(n){n=n.previousSibling;for(var t=0;n;){if(n.nodeType===8){var e=n.data;if(e===&amp;amp;quot;$&amp;amp;quot;||e===&amp;amp;quot;$!&amp;amp;quot;||e===&amp;amp;quot;$?&amp;amp;quot;){if(t===0)return n;t--}else e===&amp;amp;quot;/$&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t++}n=n.previousSibling}return null}function oU(n,t,e){switch(t=Lv(e),n){case&amp;amp;quot;html&amp;amp;quot;:if(n=t.documentElement,!n)throw Error(ft(452));return n;case&amp;amp;quot;head&amp;amp;quot;:if(n=t.head,!n)throw Error(ft(453));return n;case&amp;amp;quot;body&amp;amp;quot;:if(n=t.body,!n)throw Error(ft(454));return n;default:throw Error(ft(451))}}function Fd(n){for(var t=n.attributes;t.length;)n.removeAttributeNode(t[0]);eE(n)}var ss=new Map,Rw=new Set;function zv(n){return typeof n.getRootNode==&amp;amp;quot;function&amp;amp;quot;?n.getRootNode():n.nodeType===9?n:n.ownerDocument}var Ir=Ge.d;Ge.d={f:WI,r:kI,D:ZI,C:jI,L:QI,m:KI,X:$I,S:JI,M:tH};function WI(){var n=Ir.f(),t=Qv();return n||t}function kI(n){var t=uf(n);t!==null&amp;amp;amp;&amp;amp;amp;t.tag===5&amp;amp;amp;&amp;amp;amp;t.type===&amp;amp;quot;form&amp;amp;quot;?tD(t):Ir.r(n)}var hf=typeof document&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?null:document;function lU(n,t,e){var i=hf;if(i&amp;amp;amp;&amp;amp;amp;typeof t==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t){var a=es(t);a=&amp;amp;#39;link[rel=&amp;amp;quot;&amp;amp;#39;+n+&amp;amp;#39;&amp;amp;quot;][href=&amp;amp;quot;&amp;amp;#39;+a+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;,typeof e==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a+=&amp;amp;#39;[crossorigin=&amp;amp;quot;&amp;amp;#39;+e+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;),Rw.has(a)||(Rw.add(a),n={rel:n,crossOrigin:e,href:t},i.querySelector(a)===null&amp;amp;amp;&amp;amp;amp;(t=i.createElement(&amp;amp;quot;link&amp;amp;quot;),gi(t,&amp;amp;quot;link&amp;amp;quot;,n),ni(t),i.head.appendChild(t)))}}function ZI(n){Ir.D(n),lU(&amp;amp;quot;dns-prefetch&amp;amp;quot;,n,null)}function jI(n,t){Ir.C(n,t),lU(&amp;amp;quot;preconnect&amp;amp;quot;,n,t)}function QI(n,t,e){Ir.L(n,t,e);var i=hf;if(i&amp;amp;amp;&amp;amp;amp;n&amp;amp;amp;&amp;amp;amp;t){var a=&amp;amp;#39;link[rel=&amp;amp;quot;preload&amp;amp;quot;][as=&amp;amp;quot;&amp;amp;#39;+es(t)+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;;t===&amp;amp;quot;image&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e&amp;amp;amp;&amp;amp;amp;e.imageSrcSet?(a+=&amp;amp;#39;[imagesrcset=&amp;amp;quot;&amp;amp;#39;+es(e.imageSrcSet)+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;,typeof e.imageSizes==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a+=&amp;amp;#39;[imagesizes=&amp;amp;quot;&amp;amp;#39;+es(e.imageSizes)+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;)):a+=&amp;amp;#39;[href=&amp;amp;quot;&amp;amp;#39;+es(n)+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;;var s=a;switch(t){case&amp;amp;quot;style&amp;amp;quot;:s=of(n);break;case&amp;amp;quot;script&amp;amp;quot;:s=df(n)}ss.has(s)||(n=pn({rel:&amp;amp;quot;preload&amp;amp;quot;,href:t===&amp;amp;quot;image&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e&amp;amp;amp;&amp;amp;amp;e.imageSrcSet?void 0:n,as:t},e),ss.set(s,n),i.querySelector(a)!==null||t===&amp;amp;quot;style&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.querySelector(mp(s))||t===&amp;amp;quot;script&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.querySelector(gp(s))||(t=i.createElement(&amp;amp;quot;link&amp;amp;quot;),gi(t,&amp;amp;quot;link&amp;amp;quot;,n),ni(t),i.head.appendChild(t)))}}function KI(n,t){Ir.m(n,t);var e=hf;if(e&amp;amp;amp;&amp;amp;amp;n){var i=t&amp;amp;amp;&amp;amp;amp;typeof t.as==&amp;amp;quot;string&amp;amp;quot;?t.as:&amp;amp;quot;script&amp;amp;quot;,a=&amp;amp;#39;link[rel=&amp;amp;quot;modulepreload&amp;amp;quot;][as=&amp;amp;quot;&amp;amp;#39;+es(i)+&amp;amp;#39;&amp;amp;quot;][href=&amp;amp;quot;&amp;amp;#39;+es(n)+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;,s=a;switch(i){case&amp;amp;quot;audioworklet&amp;amp;quot;:case&amp;amp;quot;paintworklet&amp;amp;quot;:case&amp;amp;quot;serviceworker&amp;amp;quot;:case&amp;amp;quot;sharedworker&amp;amp;quot;:case&amp;amp;quot;worker&amp;amp;quot;:case&amp;amp;quot;script&amp;amp;quot;:s=df(n)}if(!ss.has(s)&amp;amp;amp;&amp;amp;amp;(n=pn({rel:&amp;amp;quot;modulepreload&amp;amp;quot;,href:n},t),ss.set(s,n),e.querySelector(a)===null)){switch(i){case&amp;amp;quot;audioworklet&amp;amp;quot;:case&amp;amp;quot;paintworklet&amp;amp;quot;:case&amp;amp;quot;serviceworker&amp;amp;quot;:case&amp;amp;quot;sharedworker&amp;amp;quot;:case&amp;amp;quot;worker&amp;amp;quot;:case&amp;amp;quot;script&amp;amp;quot;:if(e.querySelector(gp(s)))return}i=e.createElement(&amp;amp;quot;link&amp;amp;quot;),gi(i,&amp;amp;quot;link&amp;amp;quot;,n),ni(i),e.head.appendChild(i)}}}function JI(n,t,e){Ir.S(n,t,e);var i=hf;if(i&amp;amp;amp;&amp;amp;amp;n){var a=Gc(i).hoistableStyles,s=of(n);t=t||&amp;amp;quot;default&amp;amp;quot;;var o=a.get(s);if(!o){var u={loading:0,preload:null};if(o=i.querySelector(mp(s)))u.loading=5;else{n=pn({rel:&amp;amp;quot;stylesheet&amp;amp;quot;,href:n,&amp;amp;quot;data-precedence&amp;amp;quot;:t},e),(e=ss.get(s))&amp;amp;amp;&amp;amp;amp;IE(n,e);var c=o=i.createElement(&amp;amp;quot;link&amp;amp;quot;);ni(c),gi(c,&amp;amp;quot;link&amp;amp;quot;,n),c._p=new Promise(function(h,d){c.onload=h,c.onerror=d}),c.addEventListener(&amp;amp;quot;load&amp;amp;quot;,function(){u.loading|=1}),c.addEventListener(&amp;amp;quot;error&amp;amp;quot;,function(){u.loading|=2}),u.loading|=4,ov(o,t,i)}o={type:&amp;amp;quot;stylesheet&amp;amp;quot;,instance:o,count:1,state:u},a.set(s,o)}}}function $I(n,t){Ir.X(n,t);var e=hf;if(e&amp;amp;amp;&amp;amp;amp;n){var i=Gc(e).hoistableScripts,a=df(n),s=i.get(a);s||(s=e.querySelector(gp(a)),s||(n=pn({src:n,async:!0},t),(t=ss.get(a))&amp;amp;amp;&amp;amp;amp;HE(n,t),s=e.createElement(&amp;amp;quot;script&amp;amp;quot;),ni(s),gi(s,&amp;amp;quot;link&amp;amp;quot;,n),e.head.appendChild(s)),s={type:&amp;amp;quot;script&amp;amp;quot;,instance:s,count:1,state:null},i.set(a,s))}}function tH(n,t){Ir.M(n,t);var e=hf;if(e&amp;amp;amp;&amp;amp;amp;n){var i=Gc(e).hoistableScripts,a=df(n),s=i.get(a);s||(s=e.querySelector(gp(a)),s||(n=pn({src:n,async:!0,type:&amp;amp;quot;module&amp;amp;quot;},t),(t=ss.get(a))&amp;amp;amp;&amp;amp;amp;HE(n,t),s=e.createElement(&amp;amp;quot;script&amp;amp;quot;),ni(s),gi(s,&amp;amp;quot;link&amp;amp;quot;,n),e.head.appendChild(s)),s={type:&amp;amp;quot;script&amp;amp;quot;,instance:s,count:1,state:null},i.set(a,s))}}function Cw(n,t,e,i){var a=(a=Lo.current)?zv(a):null;if(!a)throw Error(ft(446));switch(n){case&amp;amp;quot;meta&amp;amp;quot;:case&amp;amp;quot;title&amp;amp;quot;:return null;case&amp;amp;quot;style&amp;amp;quot;:return typeof e.precedence==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e.href==&amp;amp;quot;string&amp;amp;quot;?(t=of(e.href),e=Gc(a).hoistableStyles,i=e.get(t),i||(i={type:&amp;amp;quot;style&amp;amp;quot;,instance:null,count:0,state:null},e.set(t,i)),i):{type:&amp;amp;quot;void&amp;amp;quot;,instance:null,count:0,state:null};case&amp;amp;quot;link&amp;amp;quot;:if(e.rel===&amp;amp;quot;stylesheet&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e.href==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof e.precedence==&amp;amp;quot;string&amp;amp;quot;){n=of(e.href);var s=Gc(a).hoistableStyles,o=s.get(n);if(o||(a=a.ownerDocument||a,o={type:&amp;amp;quot;stylesheet&amp;amp;quot;,instance:null,count:0,state:{loading:0,preload:null}},s.set(n,o),(s=a.querySelector(mp(n)))&amp;amp;amp;&amp;amp;amp;!s._p&amp;amp;amp;&amp;amp;amp;(o.instance=s,o.state.loading=5),ss.has(n)||(e={rel:&amp;amp;quot;preload&amp;amp;quot;,as:&amp;amp;quot;style&amp;amp;quot;,href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},ss.set(n,e),s||eH(a,n,e,o.state))),t&amp;amp;amp;&amp;amp;amp;i===null)throw Error(ft(528,&amp;amp;quot;&amp;amp;quot;));return o}if(t&amp;amp;amp;&amp;amp;amp;i!==null)throw Error(ft(529,&amp;amp;quot;&amp;amp;quot;));return null;case&amp;amp;quot;script&amp;amp;quot;:return t=e.async,e=e.src,typeof e==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;typeof t!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof t!=&amp;amp;quot;symbol&amp;amp;quot;?(t=df(e),e=Gc(a).hoistableScripts,i=e.get(t),i||(i={type:&amp;amp;quot;script&amp;amp;quot;,instance:null,count:0,state:null},e.set(t,i)),i):{type:&amp;amp;quot;void&amp;amp;quot;,instance:null,count:0,state:null};default:throw Error(ft(444,n))}}function of(n){return&amp;amp;#39;href=&amp;amp;quot;&amp;amp;#39;+es(n)+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;}function mp(n){return&amp;amp;#39;link[rel=&amp;amp;quot;stylesheet&amp;amp;quot;][&amp;amp;#39;+n+&amp;amp;quot;]&amp;amp;quot;}function uU(n){return pn({},n,{&amp;amp;quot;data-precedence&amp;amp;quot;:n.precedence,precedence:null})}function eH(n,t,e,i){n.querySelector(&amp;amp;#39;link[rel=&amp;amp;quot;preload&amp;amp;quot;][as=&amp;amp;quot;style&amp;amp;quot;][&amp;amp;#39;+t+&amp;amp;quot;]&amp;amp;quot;)?i.loading=1:(t=n.createElement(&amp;amp;quot;link&amp;amp;quot;),i.preload=t,t.addEventListener(&amp;amp;quot;load&amp;amp;quot;,function(){return i.loading|=1}),t.addEventListener(&amp;amp;quot;error&amp;amp;quot;,function(){return i.loading|=2}),gi(t,&amp;amp;quot;link&amp;amp;quot;,e),ni(t),n.head.appendChild(t))}function df(n){return&amp;amp;#39;[src=&amp;amp;quot;&amp;amp;#39;+es(n)+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;}function gp(n){return&amp;amp;quot;script[async]&amp;amp;quot;+n}function ww(n,t,e){if(t.count++,t.instance===null)switch(t.type){case&amp;amp;quot;style&amp;amp;quot;:var i=n.querySelector(&amp;amp;#39;style[data-href~=&amp;amp;quot;&amp;amp;#39;+es(e.href)+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;);if(i)return t.instance=i,ni(i),i;var a=pn({},e,{&amp;amp;quot;data-href&amp;amp;quot;:e.href,&amp;amp;quot;data-precedence&amp;amp;quot;:e.precedence,href:null,precedence:null});return i=(n.ownerDocument||n).createElement(&amp;amp;quot;style&amp;amp;quot;),ni(i),gi(i,&amp;amp;quot;style&amp;amp;quot;,a),ov(i,e.precedence,n),t.instance=i;case&amp;amp;quot;stylesheet&amp;amp;quot;:a=of(e.href);var s=n.querySelector(mp(a));if(s)return t.state.loading|=4,t.instance=s,ni(s),s;i=uU(e),(a=ss.get(a))&amp;amp;amp;&amp;amp;amp;IE(i,a),s=(n.ownerDocument||n).createElement(&amp;amp;quot;link&amp;amp;quot;),ni(s);var o=s;return o._p=new Promise(function(u,c){o.onload=u,o.onerror=c}),gi(s,&amp;amp;quot;link&amp;amp;quot;,i),t.state.loading|=4,ov(s,e.precedence,n),t.instance=s;case&amp;amp;quot;script&amp;amp;quot;:return s=df(e.src),(a=n.querySelector(gp(s)))?(t.instance=a,ni(a),a):(i=e,(a=ss.get(s))&amp;amp;amp;&amp;amp;amp;(i=pn({},e),HE(i,a)),n=n.ownerDocument||n,a=n.createElement(&amp;amp;quot;script&amp;amp;quot;),ni(a),gi(a,&amp;amp;quot;link&amp;amp;quot;,i),n.head.appendChild(a),t.instance=a);case&amp;amp;quot;void&amp;amp;quot;:return null;default:throw Error(ft(443,t.type))}else t.type===&amp;amp;quot;stylesheet&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.state.loading&amp;amp;amp;4)===0&amp;amp;amp;&amp;amp;amp;(i=t.instance,t.state.loading|=4,ov(i,e.precedence,n));return t.instance}function ov(n,t,e){for(var i=e.querySelectorAll(&amp;amp;#39;link[rel=&amp;amp;quot;stylesheet&amp;amp;quot;][data-precedence],style[data-precedence]&amp;amp;#39;),a=i.length?i[i.length-1]:null,s=a,o=0;o&amp;amp;lt;i.length;o++){var u=i[o];if(u.dataset.precedence===t)s=u;else if(s!==a)break}s?s.parentNode.insertBefore(n,s.nextSibling):(t=e.nodeType===9?e.head:e,t.insertBefore(n,t.firstChild))}function IE(n,t){n.crossOrigin==null&amp;amp;amp;&amp;amp;amp;(n.crossOrigin=t.crossOrigin),n.referrerPolicy==null&amp;amp;amp;&amp;amp;amp;(n.referrerPolicy=t.referrerPolicy),n.title==null&amp;amp;amp;&amp;amp;amp;(n.title=t.title)}function HE(n,t){n.crossOrigin==null&amp;amp;amp;&amp;amp;amp;(n.crossOrigin=t.crossOrigin),n.referrerPolicy==null&amp;amp;amp;&amp;amp;amp;(n.referrerPolicy=t.referrerPolicy),n.integrity==null&amp;amp;amp;&amp;amp;amp;(n.integrity=t.integrity)}var lv=null;function Dw(n,t,e){if(lv===null){var i=new Map,a=lv=new Map;a.set(e,i)}else a=lv,i=a.get(e),i||(i=new Map,a.set(e,i));if(i.has(n))return i;for(i.set(n,null),e=e.getElementsByTagName(n),a=0;a&amp;amp;lt;e.length;a++){var s=e[a];if(!(s[sp]||s[Ri]||n===&amp;amp;quot;link&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.getAttribute(&amp;amp;quot;rel&amp;amp;quot;)===&amp;amp;quot;stylesheet&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;s.namespaceURI!==&amp;amp;quot;http://www.w3.org/2000/svg&amp;amp;quot;){var o=s.getAttribute(t)||&amp;amp;quot;&amp;amp;quot;;o=n+o;var u=i.get(o);u?u.push(s):i.set(o,[s])}}return i}function Uw(n,t,e){n=n.ownerDocument||n,n.head.insertBefore(e,t===&amp;amp;quot;title&amp;amp;quot;?n.querySelector(&amp;amp;quot;head &amp;amp;gt; title&amp;amp;quot;):null)}function nH(n,t,e){if(e===1||t.itemProp!=null)return!1;switch(n){case&amp;amp;quot;meta&amp;amp;quot;:case&amp;amp;quot;title&amp;amp;quot;:return!0;case&amp;amp;quot;style&amp;amp;quot;:if(typeof t.precedence!=&amp;amp;quot;string&amp;amp;quot;||typeof t.href!=&amp;amp;quot;string&amp;amp;quot;||t.href===&amp;amp;quot;&amp;amp;quot;)break;return!0;case&amp;amp;quot;link&amp;amp;quot;:if(typeof t.rel!=&amp;amp;quot;string&amp;amp;quot;||typeof t.href!=&amp;amp;quot;string&amp;amp;quot;||t.href===&amp;amp;quot;&amp;amp;quot;||t.onLoad||t.onError)break;switch(t.rel){case&amp;amp;quot;stylesheet&amp;amp;quot;:return n=t.disabled,typeof t.precedence==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n==null;default:return!0}case&amp;amp;quot;script&amp;amp;quot;:if(t.async&amp;amp;amp;&amp;amp;amp;typeof t.async!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof t.async!=&amp;amp;quot;symbol&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!t.onLoad&amp;amp;amp;&amp;amp;amp;!t.onError&amp;amp;amp;&amp;amp;amp;t.src&amp;amp;amp;&amp;amp;amp;typeof t.src==&amp;amp;quot;string&amp;amp;quot;)return!0}return!1}function cU(n){return!(n.type===&amp;amp;quot;stylesheet&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.state.loading&amp;amp;amp;3)===0)}var Qd=null;function iH(){}function aH(n,t,e){if(Qd===null)throw Error(ft(475));var i=Qd;if(t.type===&amp;amp;quot;stylesheet&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(typeof e.media!=&amp;amp;quot;string&amp;amp;quot;||matchMedia(e.media).matches!==!1)&amp;amp;amp;&amp;amp;amp;(t.state.loading&amp;amp;amp;4)===0){if(t.instance===null){var a=of(e.href),s=n.querySelector(mp(a));if(s){n=s._p,n!==null&amp;amp;amp;&amp;amp;amp;typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof n.then==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.count++,i=Bv.bind(i),n.then(i,i)),t.state.loading|=4,t.instance=s,ni(s);return}s=n.ownerDocument||n,e=uU(e),(a=ss.get(a))&amp;amp;amp;&amp;amp;amp;IE(e,a),s=s.createElement(&amp;amp;quot;link&amp;amp;quot;),ni(s);var o=s;o._p=new Promise(function(u,c){o.onload=u,o.onerror=c}),gi(s,&amp;amp;quot;link&amp;amp;quot;,e),t.instance=s}i.stylesheets===null&amp;amp;amp;&amp;amp;amp;(i.stylesheets=new Map),i.stylesheets.set(t,n),(n=t.state.preload)&amp;amp;amp;&amp;amp;amp;(t.state.loading&amp;amp;amp;3)===0&amp;amp;amp;&amp;amp;amp;(i.count++,t=Bv.bind(i),n.addEventListener(&amp;amp;quot;load&amp;amp;quot;,t),n.addEventListener(&amp;amp;quot;error&amp;amp;quot;,t))}}function sH(){if(Qd===null)throw Error(ft(475));var n=Qd;return n.stylesheets&amp;amp;amp;&amp;amp;amp;n.count===0&amp;amp;amp;&amp;amp;amp;k1(n,n.stylesheets),0&amp;amp;lt;n.count?function(t){var e=setTimeout(function(){if(n.stylesheets&amp;amp;amp;&amp;amp;amp;k1(n,n.stylesheets),n.unsuspend){var i=n.unsuspend;n.unsuspend=null,i()}},6e4);return n.unsuspend=t,function(){n.unsuspend=null,clearTimeout(e)}}:null}function Bv(){if(this.count--,this.count===0){if(this.stylesheets)k1(this,this.stylesheets);else if(this.unsuspend){var n=this.unsuspend;this.unsuspend=null,n()}}}var Pv=null;function k1(n,t){n.stylesheets=null,n.unsuspend!==null&amp;amp;amp;&amp;amp;amp;(n.count++,Pv=new Map,t.forEach(rH,n),Pv=null,Bv.call(n))}function rH(n,t){if(!(t.state.loading&amp;amp;amp;4)){var e=Pv.get(n);if(e)var i=e.get(null);else{e=new Map,Pv.set(n,e);for(var a=n.querySelectorAll(&amp;amp;quot;link[data-precedence],style[data-precedence]&amp;amp;quot;),s=0;s&amp;amp;lt;a.length;s++){var o=a[s];(o.nodeName===&amp;amp;quot;LINK&amp;amp;quot;||o.getAttribute(&amp;amp;quot;media&amp;amp;quot;)!==&amp;amp;quot;not all&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(e.set(o.dataset.precedence,o),i=o)}i&amp;amp;amp;&amp;amp;amp;e.set(null,i)}a=t.instance,o=a.getAttribute(&amp;amp;quot;data-precedence&amp;amp;quot;),s=e.get(o)||i,s===i&amp;amp;amp;&amp;amp;amp;e.set(null,a),e.set(o,a),this.count++,i=Bv.bind(this),a.addEventListener(&amp;amp;quot;load&amp;amp;quot;,i),a.addEventListener(&amp;amp;quot;error&amp;amp;quot;,i),s?s.parentNode.insertBefore(a,s.nextSibling):(n=n.nodeType===9?n.head:n,n.insertBefore(a,n.firstChild)),t.state.loading|=4}}var Kd={$$typeof:Rr,Provider:null,Consumer:null,_currentValue:Vl,_currentValue2:Vl,_threadCount:0};function oH(n,t,e,i,a,s,o,u){this.tag=1,this.containerInfo=n,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=TM(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=TM(0),this.hiddenUpdates=TM(null),this.identifierPrefix=i,this.onUncaughtError=a,this.onCaughtError=s,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=u,this.incompleteTransitions=new Map}function fU(n,t,e,i,a,s,o,u,c,h,d,m){return n=new oH(n,t,e,o,u,c,h,m),t=1,s===!0&amp;amp;amp;&amp;amp;amp;(t|=24),s=Ea(3,null,null,t),n.current=s,s.stateNode=n,t=dE(),t.refCount++,n.pooledCache=t,t.refCount++,s.memoizedState={element:i,isDehydrated:e,cache:t},mE(s),n}function hU(n){return n?(n=Ic,n):Ic}function dU(n,t,e,i,a,s){a=hU(a),i.context===null?i.context=a:i.pendingContext=a,i=zo(t),i.payload={element:e},s=s===void 0?null:s,s!==null&amp;amp;amp;&amp;amp;amp;(i.callback=s),e=Bo(n,i,t),e!==null&amp;amp;amp;&amp;amp;amp;(Ra(e,n,t),Nd(e,n,t))}function Nw(n,t){if(n=n.memoizedState,n!==null&amp;amp;amp;&amp;amp;amp;n.dehydrated!==null){var e=n.retryLane;n.retryLane=e!==0&amp;amp;amp;&amp;amp;amp;e&amp;amp;lt;t?e:t}}function FE(n,t){Nw(n,t),(n=n.alternate)&amp;amp;amp;&amp;amp;amp;Nw(n,t)}function pU(n){if(n.tag===13){var t=cf(n,67108864);t!==null&amp;amp;amp;&amp;amp;amp;Ra(t,n,67108864),FE(n,67108864)}}var Iv=!0;function lH(n,t,e,i){var a=ce.T;ce.T=null;var s=Ge.p;try{Ge.p=2,VE(n,t,e,i)}finally{Ge.p=s,ce.T=a}}function uH(n,t,e,i){var a=ce.T;ce.T=null;var s=Ge.p;try{Ge.p=8,VE(n,t,e,i)}finally{Ge.p=s,ce.T=a}}function VE(n,t,e,i){if(Iv){var a=Z1(i);if(a===null)$M(n,t,i,Hv,e),Ow(n,i);else if(fH(a,n,t,e,i))i.stopPropagation();else if(Ow(n,i),t&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;-1&amp;amp;lt;cH.indexOf(n)){for(;a!==null;){var s=uf(a);if(s!==null)switch(s.tag){case 3:if(s=s.stateNode,s.current.memoizedState.isDehydrated){var o=Il(s.pendingLanes);if(o!==0){var u=s;for(u.pendingLanes|=2,u.entangledLanes|=2;o;){var c=1&amp;amp;lt;&amp;amp;lt;31-Ta(o);u.entanglements[1]|=c,o&amp;amp;amp;=~c}Qs(s),(Ke&amp;amp;amp;6)===0&amp;amp;amp;&amp;amp;amp;(wv=ks()+500,pp(0,!1))}}break;case 13:u=cf(s,2),u!==null&amp;amp;amp;&amp;amp;amp;Ra(u,s,2),Qv(),FE(s,2)}if(s=Z1(i),s===null&amp;amp;amp;&amp;amp;amp;$M(n,t,i,Hv,e),s===a)break;a=s}a!==null&amp;amp;amp;&amp;amp;amp;i.stopPropagation()}else $M(n,t,i,null,e)}}function Z1(n){return n=iE(n),GE(n)}var Hv=null;function GE(n){if(Hv=null,n=Nc(n),n!==null){var t=ep(n);if(t===null)n=null;else{var e=t.tag;if(e===13){if(n=Hw(t),n!==null)return n;n=null}else if(e===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;n=null}else t!==n&amp;amp;amp;&amp;amp;amp;(n=null)}}return Hv=n,null}function mU(n){switch(n){case&amp;amp;quot;beforetoggle&amp;amp;quot;:case&amp;amp;quot;cancel&amp;amp;quot;:case&amp;amp;quot;click&amp;amp;quot;:case&amp;amp;quot;close&amp;amp;quot;:case&amp;amp;quot;contextmenu&amp;amp;quot;:case&amp;amp;quot;copy&amp;amp;quot;:case&amp;amp;quot;cut&amp;amp;quot;:case&amp;amp;quot;auxclick&amp;amp;quot;:case&amp;amp;quot;dblclick&amp;amp;quot;:case&amp;amp;quot;dragend&amp;amp;quot;:case&amp;amp;quot;dragstart&amp;amp;quot;:case&amp;amp;quot;drop&amp;amp;quot;:case&amp;amp;quot;focusin&amp;amp;quot;:case&amp;amp;quot;focusout&amp;amp;quot;:case&amp;amp;quot;input&amp;amp;quot;:case&amp;amp;quot;invalid&amp;amp;quot;:case&amp;amp;quot;keydown&amp;amp;quot;:case&amp;amp;quot;keypress&amp;amp;quot;:case&amp;amp;quot;keyup&amp;amp;quot;:case&amp;amp;quot;mousedown&amp;amp;quot;:case&amp;amp;quot;mouseup&amp;amp;quot;:case&amp;amp;quot;paste&amp;amp;quot;:case&amp;amp;quot;pause&amp;amp;quot;:case&amp;amp;quot;play&amp;amp;quot;:case&amp;amp;quot;pointercancel&amp;amp;quot;:case&amp;amp;quot;pointerdown&amp;amp;quot;:case&amp;amp;quot;pointerup&amp;amp;quot;:case&amp;amp;quot;ratechange&amp;amp;quot;:case&amp;amp;quot;reset&amp;amp;quot;:case&amp;amp;quot;resize&amp;amp;quot;:case&amp;amp;quot;seeked&amp;amp;quot;:case&amp;amp;quot;submit&amp;amp;quot;:case&amp;amp;quot;toggle&amp;amp;quot;:case&amp;amp;quot;touchcancel&amp;amp;quot;:case&amp;amp;quot;touchend&amp;amp;quot;:case&amp;amp;quot;touchstart&amp;amp;quot;:case&amp;amp;quot;volumechange&amp;amp;quot;:case&amp;amp;quot;change&amp;amp;quot;:case&amp;amp;quot;selectionchange&amp;amp;quot;:case&amp;amp;quot;textInput&amp;amp;quot;:case&amp;amp;quot;compositionstart&amp;amp;quot;:case&amp;amp;quot;compositionend&amp;amp;quot;:case&amp;amp;quot;compositionupdate&amp;amp;quot;:case&amp;amp;quot;beforeblur&amp;amp;quot;:case&amp;amp;quot;afterblur&amp;amp;quot;:case&amp;amp;quot;beforeinput&amp;amp;quot;:case&amp;amp;quot;blur&amp;amp;quot;:case&amp;amp;quot;fullscreenchange&amp;amp;quot;:case&amp;amp;quot;focus&amp;amp;quot;:case&amp;amp;quot;hashchange&amp;amp;quot;:case&amp;amp;quot;popstate&amp;amp;quot;:case&amp;amp;quot;select&amp;amp;quot;:case&amp;amp;quot;selectstart&amp;amp;quot;:return 2;case&amp;amp;quot;drag&amp;amp;quot;:case&amp;amp;quot;dragenter&amp;amp;quot;:case&amp;amp;quot;dragexit&amp;amp;quot;:case&amp;amp;quot;dragleave&amp;amp;quot;:case&amp;amp;quot;dragover&amp;amp;quot;:case&amp;amp;quot;mousemove&amp;amp;quot;:case&amp;amp;quot;mouseout&amp;amp;quot;:case&amp;amp;quot;mouseover&amp;amp;quot;:case&amp;amp;quot;pointermove&amp;amp;quot;:case&amp;amp;quot;pointerout&amp;amp;quot;:case&amp;amp;quot;pointerover&amp;amp;quot;:case&amp;amp;quot;scroll&amp;amp;quot;:case&amp;amp;quot;touchmove&amp;amp;quot;:case&amp;amp;quot;wheel&amp;amp;quot;:case&amp;amp;quot;mouseenter&amp;amp;quot;:case&amp;amp;quot;mouseleave&amp;amp;quot;:case&amp;amp;quot;pointerenter&amp;amp;quot;:case&amp;amp;quot;pointerleave&amp;amp;quot;:return 8;case&amp;amp;quot;message&amp;amp;quot;:switch(K4()){case Xw:return 2;case qw:return 8;case dv:case J4:return 32;case Yw:return 268435456;default:return 32}default:return 32}}var j1=!1,Ho=null,Fo=null,Vo=null,Jd=new Map,$d=new Map,wo=[],cH=&amp;amp;quot;mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;);function Ow(n,t){switch(n){case&amp;amp;quot;focusin&amp;amp;quot;:case&amp;amp;quot;focusout&amp;amp;quot;:Ho=null;break;case&amp;amp;quot;dragenter&amp;amp;quot;:case&amp;amp;quot;dragleave&amp;amp;quot;:Fo=null;break;case&amp;amp;quot;mouseover&amp;amp;quot;:case&amp;amp;quot;mouseout&amp;amp;quot;:Vo=null;break;case&amp;amp;quot;pointerover&amp;amp;quot;:case&amp;amp;quot;pointerout&amp;amp;quot;:Jd.delete(t.pointerId);break;case&amp;amp;quot;gotpointercapture&amp;amp;quot;:case&amp;amp;quot;lostpointercapture&amp;amp;quot;:$d.delete(t.pointerId)}}function Sd(n,t,e,i,a,s){return n===null||n.nativeEvent!==s?(n={blockedOn:t,domEventName:e,eventSystemFlags:i,nativeEvent:s,targetContainers:[a]},t!==null&amp;amp;amp;&amp;amp;amp;(t=uf(t),t!==null&amp;amp;amp;&amp;amp;amp;pU(t)),n):(n.eventSystemFlags|=i,t=n.targetContainers,a!==null&amp;amp;amp;&amp;amp;amp;t.indexOf(a)===-1&amp;amp;amp;&amp;amp;amp;t.push(a),n)}function fH(n,t,e,i,a){switch(t){case&amp;amp;quot;focusin&amp;amp;quot;:return Ho=Sd(Ho,n,t,e,i,a),!0;case&amp;amp;quot;dragenter&amp;amp;quot;:return Fo=Sd(Fo,n,t,e,i,a),!0;case&amp;amp;quot;mouseover&amp;amp;quot;:return Vo=Sd(Vo,n,t,e,i,a),!0;case&amp;amp;quot;pointerover&amp;amp;quot;:var s=a.pointerId;return Jd.set(s,Sd(Jd.get(s)||null,n,t,e,i,a)),!0;case&amp;amp;quot;gotpointercapture&amp;amp;quot;:return s=a.pointerId,$d.set(s,Sd($d.get(s)||null,n,t,e,i,a)),!0}return!1}function gU(n){var t=Nc(n.target);if(t!==null){var e=ep(t);if(e!==null){if(t=e.tag,t===13){if(t=Hw(e),t!==null){n.blockedOn=t,rP(n.priority,function(){if(e.tag===13){var i=Aa();i=$1(i);var a=cf(e,i);a!==null&amp;amp;amp;&amp;amp;amp;Ra(a,e,i),FE(e,i)}});return}}else if(t===3&amp;amp;amp;&amp;amp;amp;e.stateNode.current.memoizedState.isDehydrated){n.blockedOn=e.tag===3?e.stateNode.containerInfo:null;return}}}n.blockedOn=null}function uv(n){if(n.blockedOn!==null)return!1;for(var t=n.targetContainers;0&amp;amp;lt;t.length;){var e=Z1(n.nativeEvent);if(e===null){e=n.nativeEvent;var i=new e.constructor(e.type,e);h1=i,e.target.dispatchEvent(i),h1=null}else return t=uf(e),t!==null&amp;amp;amp;&amp;amp;amp;pU(t),n.blockedOn=e,!1;t.shift()}return!0}function Lw(n,t,e){uv(n)&amp;amp;amp;&amp;amp;amp;e.delete(t)}function hH(){j1=!1,Ho!==null&amp;amp;amp;&amp;amp;amp;uv(Ho)&amp;amp;amp;&amp;amp;amp;(Ho=null),Fo!==null&amp;amp;amp;&amp;amp;amp;uv(Fo)&amp;amp;amp;&amp;amp;amp;(Fo=null),Vo!==null&amp;amp;amp;&amp;amp;amp;uv(Vo)&amp;amp;amp;&amp;amp;amp;(Vo=null),Jd.forEach(Lw),$d.forEach(Lw)}function j0(n,t){n.blockedOn===t&amp;amp;amp;&amp;amp;amp;(n.blockedOn=null,j1||(j1=!0,kn.unstable_scheduleCallback(kn.unstable_NormalPriority,hH)))}var Q0=null;function zw(n){Q0!==n&amp;amp;amp;&amp;amp;amp;(Q0=n,kn.unstable_scheduleCallback(kn.unstable_NormalPriority,function(){Q0===n&amp;amp;amp;&amp;amp;amp;(Q0=null);for(var t=0;t&amp;amp;lt;n.length;t+=3){var e=n[t],i=n[t+1],a=n[t+2];if(typeof i!=&amp;amp;quot;function&amp;amp;quot;){if(GE(i||e)===null)continue;break}var s=uf(e);s!==null&amp;amp;amp;&amp;amp;amp;(n.splice(t,3),t-=3,C1(s,{pending:!0,data:a,method:e.method,action:i},i,a))}}))}function tp(n){function t(c){return j0(c,n)}Ho!==null&amp;amp;amp;&amp;amp;amp;j0(Ho,n),Fo!==null&amp;amp;amp;&amp;amp;amp;j0(Fo,n),Vo!==null&amp;amp;amp;&amp;amp;amp;j0(Vo,n),Jd.forEach(t),$d.forEach(t);for(var e=0;e&amp;amp;lt;wo.length;e++){var i=wo[e];i.blockedOn===n&amp;amp;amp;&amp;amp;amp;(i.blockedOn=null)}for(;0&amp;amp;lt;wo.length&amp;amp;amp;&amp;amp;amp;(e=wo[0],e.blockedOn===null);)gU(e),e.blockedOn===null&amp;amp;amp;&amp;amp;amp;wo.shift();if(e=(n.ownerDocument||n).$$reactFormReplay,e!=null)for(i=0;i&amp;amp;lt;e.length;i+=3){var a=e[i],s=e[i+1],o=a[ta]||null;if(typeof s==&amp;amp;quot;function&amp;amp;quot;)o||zw(e);else if(o){var u=null;if(s&amp;amp;amp;&amp;amp;amp;s.hasAttribute(&amp;amp;quot;formAction&amp;amp;quot;)){if(a=s,o=s[ta]||null)u=o.formAction;else if(GE(a)!==null)continue}else u=o.action;typeof u==&amp;amp;quot;function&amp;amp;quot;?e[i+1]=u:(e.splice(i,3),i-=3),zw(e)}}}function XE(n){this._internalRoot=n}ty.prototype.render=XE.prototype.render=function(n){var t=this._internalRoot;if(t===null)throw Error(ft(409));var e=t.current,i=Aa();dU(e,i,n,t,null,null)};ty.prototype.unmount=XE.prototype.unmount=function(){var n=this._internalRoot;if(n!==null){this._internalRoot=null;var t=n.containerInfo;dU(n.current,2,null,n,null,null),Qv(),t[lf]=null}};function ty(n){this._internalRoot=n}ty.prototype.unstable_scheduleHydration=function(n){if(n){var t=Qw();n={blockedOn:null,target:n,priority:t};for(var e=0;e&amp;amp;lt;wo.length&amp;amp;amp;&amp;amp;amp;t!==0&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;wo[e].priority;e++);wo.splice(e,0,n),e===0&amp;amp;amp;&amp;amp;amp;gU(n)}};var Bw=Pw.version;if(Bw!==&amp;amp;quot;19.1.1&amp;amp;quot;)throw Error(ft(527,Bw,&amp;amp;quot;19.1.1&amp;amp;quot;));Ge.findDOMNode=function(n){var t=n._reactInternals;if(t===void 0)throw typeof n.render==&amp;amp;quot;function&amp;amp;quot;?Error(ft(188)):(n=Object.keys(n).join(&amp;amp;quot;,&amp;amp;quot;),Error(ft(268,n)));return n=q4(t),n=n!==null?Fw(n):null,n=n===null?null:n.stateNode,n};var dH={bundleType:0,version:&amp;amp;quot;19.1.1&amp;amp;quot;,rendererPackageName:&amp;amp;quot;react-dom&amp;amp;quot;,currentDispatcherRef:ce,reconcilerVersion:&amp;amp;quot;19.1.1&amp;amp;quot;};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(Md=__REACT_DEVTOOLS_GLOBAL_HOOK__,!Md.isDisabled&amp;amp;amp;&amp;amp;amp;Md.supportsFiber))try{np=Md.inject(dH),ba=Md}catch{}var Md;ey.createRoot=function(n,t){if(!Iw(n))throw Error(ft(299));var e=!1,i=&amp;amp;quot;&amp;amp;quot;,a=fD,s=hD,o=dD,u=null;return t!=null&amp;amp;amp;&amp;amp;amp;(t.unstable_strictMode===!0&amp;amp;amp;&amp;amp;amp;(e=!0),t.identifierPrefix!==void 0&amp;amp;amp;&amp;amp;amp;(i=t.identifierPrefix),t.onUncaughtError!==void 0&amp;amp;amp;&amp;amp;amp;(a=t.onUncaughtError),t.onCaughtError!==void 0&amp;amp;amp;&amp;amp;amp;(s=t.onCaughtError),t.onRecoverableError!==void 0&amp;amp;amp;&amp;amp;amp;(o=t.onRecoverableError),t.unstable_transitionCallbacks!==void 0&amp;amp;amp;&amp;amp;amp;(u=t.unstable_transitionCallbacks)),t=fU(n,1,!1,null,null,e,i,a,s,o,u,null),n[lf]=t.current,PE(n),new XE(t)};ey.hydrateRoot=function(n,t,e){if(!Iw(n))throw Error(ft(299));var i=!1,a=&amp;amp;quot;&amp;amp;quot;,s=fD,o=hD,u=dD,c=null,h=null;return e!=null&amp;amp;amp;&amp;amp;amp;(e.unstable_strictMode===!0&amp;amp;amp;&amp;amp;amp;(i=!0),e.identifierPrefix!==void 0&amp;amp;amp;&amp;amp;amp;(a=e.identifierPrefix),e.onUncaughtError!==void 0&amp;amp;amp;&amp;amp;amp;(s=e.onUncaughtError),e.onCaughtError!==void 0&amp;amp;amp;&amp;amp;amp;(o=e.onCaughtError),e.onRecoverableError!==void 0&amp;amp;amp;&amp;amp;amp;(u=e.onRecoverableError),e.unstable_transitionCallbacks!==void 0&amp;amp;amp;&amp;amp;amp;(c=e.unstable_transitionCallbacks),e.formState!==void 0&amp;amp;amp;&amp;amp;amp;(h=e.formState)),t=fU(n,1,!0,t,e??null,i,a,s,o,u,c,h),t.context=hU(null),e=t.current,i=Aa(),i=$1(i),a=zo(i),a.callback=null,Bo(e,a,i),e=i,t.current.lanes=e,ap(t,e),Qs(t),n[lf]=t.current,PE(n),new ty(t)};ey.version=&amp;amp;quot;19.1.1&amp;amp;quot;});var xU=In((W7,_U)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;function yU(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=&amp;amp;quot;function&amp;amp;quot;))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(yU)}catch(n){console.error(n)}}yU(),_U.exports=vU()});var SU=In(ko=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;ko.ConcurrentRoot=1;ko.ContinuousEventPriority=8;ko.DefaultEventPriority=32;ko.DiscreteEventPriority=2;ko.IdleEventPriority=268435456;ko.LegacyRoot=0;ko.NoEventPriority=0});var qE=In((Z7,MU)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;MU.exports=SU()});var nL=In(eL=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;var Dh=ja();function O8(n,t){return n===t&amp;amp;amp;&amp;amp;amp;(n!==0||1/n===1/t)||n!==n&amp;amp;amp;&amp;amp;amp;t!==t}var L8=typeof Object.is==&amp;amp;quot;function&amp;amp;quot;?Object.is:O8,z8=Dh.useState,B8=Dh.useEffect,P8=Dh.useLayoutEffect,I8=Dh.useDebugValue;function H8(n,t){var e=t(),i=z8({inst:{value:e,getSnapshot:t}}),a=i[0].inst,s=i[1];return P8(function(){a.value=e,a.getSnapshot=t,eA(a)&amp;amp;amp;&amp;amp;amp;s({inst:a})},[n,e,t]),B8(function(){return eA(a)&amp;amp;amp;&amp;amp;amp;s({inst:a}),n(function(){eA(a)&amp;amp;amp;&amp;amp;amp;s({inst:a})})},[n]),I8(e),e}function eA(n){var t=n.getSnapshot;n=n.value;try{var e=t();return!L8(n,e)}catch{return!0}}function F8(n,t){return t()}var V8=typeof window&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||typeof window.document&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||typeof window.document.createElement&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?F8:H8;eL.useSyncExternalStore=Dh.useSyncExternalStore!==void 0?Dh.useSyncExternalStore:V8});var aL=In(($7,iL)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;iL.exports=nL()});var rL=In(sL=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;var xx=ja(),G8=aL();function X8(n,t){return n===t&amp;amp;amp;&amp;amp;amp;(n!==0||1/n===1/t)||n!==n&amp;amp;amp;&amp;amp;amp;t!==t}var q8=typeof Object.is==&amp;amp;quot;function&amp;amp;quot;?Object.is:X8,Y8=G8.useSyncExternalStore,W8=xx.useRef,k8=xx.useEffect,Z8=xx.useMemo,j8=xx.useDebugValue;sL.useSyncExternalStoreWithSelector=function(n,t,e,i,a){var s=W8(null);if(s.current===null){var o={hasValue:!1,value:null};s.current=o}else o=s.current;s=Z8(function(){function c(y){if(!h){if(h=!0,d=y,y=i(y),a!==void 0&amp;amp;amp;&amp;amp;amp;o.hasValue){var x=o.value;if(a(x,y))return m=x}return m=y}if(x=m,q8(d,y))return x;var b=i(y);return a!==void 0&amp;amp;amp;&amp;amp;amp;a(x,b)?(d=y,x):(d=y,m=b)}var h=!1,d,m,g=e===void 0?null:e;return[function(){return c(t())},g===null?void 0:function(){return c(g())}]},[t,e,i,a]);var u=Y8(n,s[0],s[1]);return k8(function(){o.hasValue=!0,o.value=u},[u]),j8(u),u}});var lL=In((e9,oL)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;oL.exports=rL()});var wL=In(an=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;function sA(n,t){var e=n.length;n.push(t);t:for(;0&amp;amp;lt;e;){var i=e-1&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1,a=n[i];if(0&amp;amp;lt;Sx(a,t))n[i]=t,n[e]=a,e=i;else break t}}function Os(n){return n.length===0?null:n[0]}function Ex(n){if(n.length===0)return null;var t=n[0],e=n.pop();if(e!==t){n[0]=e;t:for(var i=0,a=n.length,s=a&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1;i&amp;amp;lt;s;){var o=2*(i+1)-1,u=n[o],c=o+1,h=n[c];if(0&amp;amp;gt;Sx(u,e))c&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;0&amp;amp;gt;Sx(h,u)?(n[i]=h,n[c]=e,i=c):(n[i]=u,n[o]=e,i=o);else if(c&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;0&amp;amp;gt;Sx(h,e))n[i]=h,n[c]=e,i=c;else break t}}return t}function Sx(n,t){var e=n.sortIndex-t.sortIndex;return e!==0?e:n.id-t.id}an.unstable_now=void 0;typeof performance==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof performance.now==&amp;amp;quot;function&amp;amp;quot;?(xL=performance,an.unstable_now=function(){return xL.now()}):(nA=Date,SL=nA.now(),an.unstable_now=function(){return nA.now()-SL});var xL,nA,SL,ur=[],ml=[],t7=1,cs=null,Li=3,bx=!1,Yu=!1,Vg=!1,bL=typeof setTimeout==&amp;amp;quot;function&amp;amp;quot;?setTimeout:null,TL=typeof clearTimeout==&amp;amp;quot;function&amp;amp;quot;?clearTimeout:null,ML=typeof setImmediate&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?setImmediate:null;function Mx(n){for(var t=Os(ml);t!==null;){if(t.callback===null)Ex(ml);else if(t.startTime&amp;amp;lt;=n)Ex(ml),t.sortIndex=t.expirationTime,sA(ur,t);else break;t=Os(ml)}}function rA(n){if(Vg=!1,Mx(n),!Yu)if(Os(ur)!==null)Yu=!0,oA();else{var t=Os(ml);t!==null&amp;amp;amp;&amp;amp;amp;lA(rA,t.startTime-n)}}var Tx=!1,Gg=-1,AL=5,RL=-1;function CL(){return!(an.unstable_now()-RL&amp;amp;lt;AL)}function iA(){if(Tx){var n=an.unstable_now();RL=n;var t=!0;try{t:{Yu=!1,Vg&amp;amp;amp;&amp;amp;amp;(Vg=!1,TL(Gg),Gg=-1),bx=!0;var e=Li;try{e:{for(Mx(n),cs=Os(ur);cs!==null&amp;amp;amp;&amp;amp;amp;!(cs.expirationTime&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;CL());){var i=cs.callback;if(typeof i==&amp;amp;quot;function&amp;amp;quot;){cs.callback=null,Li=cs.priorityLevel;var a=i(cs.expirationTime&amp;amp;lt;=n);if(n=an.unstable_now(),typeof a==&amp;amp;quot;function&amp;amp;quot;){cs.callback=a,Mx(n),t=!0;break e}cs===Os(ur)&amp;amp;amp;&amp;amp;amp;Ex(ur),Mx(n)}else Ex(ur);cs=Os(ur)}if(cs!==null)t=!0;else{var s=Os(ml);s!==null&amp;amp;amp;&amp;amp;amp;lA(rA,s.startTime-n),t=!1}}break t}finally{cs=null,Li=e,bx=!1}t=void 0}}finally{t?Fg():Tx=!1}}}var Fg;typeof ML==&amp;amp;quot;function&amp;amp;quot;?Fg=function(){ML(iA)}:typeof MessageChannel&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(aA=new MessageChannel,EL=aA.port2,aA.port1.onmessage=iA,Fg=function(){EL.postMessage(null)}):Fg=function(){bL(iA,0)};var aA,EL;function oA(){Tx||(Tx=!0,Fg())}function lA(n,t){Gg=bL(function(){n(an.unstable_now())},t)}an.unstable_IdlePriority=5;an.unstable_ImmediatePriority=1;an.unstable_LowPriority=4;an.unstable_NormalPriority=3;an.unstable_Profiling=null;an.unstable_UserBlockingPriority=2;an.unstable_cancelCallback=function(n){n.callback=null};an.unstable_continueExecution=function(){Yu||bx||(Yu=!0,oA())};an.unstable_forceFrameRate=function(n){0&amp;amp;gt;n||125&amp;amp;lt;n?console.error(&amp;amp;quot;forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported&amp;amp;quot;):AL=0&amp;amp;lt;n?Math.floor(1e3/n):5};an.unstable_getCurrentPriorityLevel=function(){return Li};an.unstable_getFirstCallbackNode=function(){return Os(ur)};an.unstable_next=function(n){switch(Li){case 1:case 2:case 3:var t=3;break;default:t=Li}var e=Li;Li=t;try{return n()}finally{Li=e}};an.unstable_pauseExecution=function(){};an.unstable_requestPaint=function(){};an.unstable_runWithPriority=function(n,t){switch(n){case 1:case 2:case 3:case 4:case 5:break;default:n=3}var e=Li;Li=n;try{return t()}finally{Li=e}};an.unstable_scheduleCallback=function(n,t,e){var i=an.unstable_now();switch(typeof e==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e!==null?(e=e.delay,e=typeof e==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;e?i+e:i):e=i,n){case 1:var a=-1;break;case 2:a=250;break;case 5:a=1073741823;break;case 4:a=1e4;break;default:a=5e3}return a=e+a,n={id:t7++,callback:t,priorityLevel:n,startTime:e,expirationTime:a,sortIndex:-1},e&amp;amp;gt;i?(n.sortIndex=e,sA(ml,n),Os(ur)===null&amp;amp;amp;&amp;amp;amp;n===Os(ml)&amp;amp;amp;&amp;amp;amp;(Vg?(TL(Gg),Gg=-1):Vg=!0,lA(rA,e-i))):(n.sortIndex=a,sA(ur,n),Yu||bx||(Yu=!0,oA())),n};an.unstable_shouldYield=CL;an.unstable_wrapCallback=function(n){var t=Li;return function(){var e=Li;Li=t;try{return n.apply(this,arguments)}finally{Li=e}}}});var Ax=In((o9,DL)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;DL.exports=wL()});var UL=In((l9,Xg)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;Xg.exports=function(n){function t(r,l,f,p){return new Lz(r,l,f,p)}function e(){}function i(r){var l=&amp;amp;quot;https://react.dev/errors/&amp;amp;quot;+r;if(1&amp;amp;lt;arguments.length){l+=&amp;amp;quot;?args[]=&amp;amp;quot;+encodeURIComponent(arguments[1]);for(var f=2;f&amp;amp;lt;arguments.length;f++)l+=&amp;amp;quot;&amp;amp;amp;args[]=&amp;amp;quot;+encodeURIComponent(arguments[f])}return&amp;amp;quot;Minified React error #&amp;amp;quot;+r+&amp;amp;quot;; visit &amp;amp;quot;+l+&amp;amp;quot; for the full message or use the non-minified dev environment for full errors and additional helpful warnings.&amp;amp;quot;}function a(r){return r===null||typeof r!=&amp;amp;quot;object&amp;amp;quot;?null:(r=rR&amp;amp;amp;&amp;amp;amp;r[rR]||r[&amp;amp;quot;@@iterator&amp;amp;quot;],typeof r==&amp;amp;quot;function&amp;amp;quot;?r:null)}function s(r){if(r==null)return null;if(typeof r==&amp;amp;quot;function&amp;amp;quot;)return r.$$typeof===Fz?null:r.displayName||r.name||null;if(typeof r==&amp;amp;quot;string&amp;amp;quot;)return r;switch(r){case ec:return&amp;amp;quot;Fragment&amp;amp;quot;;case tc:return&amp;amp;quot;Portal&amp;amp;quot;;case DS:return&amp;amp;quot;Profiler&amp;amp;quot;;case iR:return&amp;amp;quot;StrictMode&amp;amp;quot;;case NS:return&amp;amp;quot;Suspense&amp;amp;quot;;case OS:return&amp;amp;quot;SuspenseList&amp;amp;quot;}if(typeof r==&amp;amp;quot;object&amp;amp;quot;)switch(r.$$typeof){case uo:return(r.displayName||&amp;amp;quot;Context&amp;amp;quot;)+&amp;amp;quot;.Provider&amp;amp;quot;;case aR:return(r._context.displayName||&amp;amp;quot;Context&amp;amp;quot;)+&amp;amp;quot;.Consumer&amp;amp;quot;;case US:var l=r.render;return r=r.displayName,r||(r=l.displayName||l.name||&amp;amp;quot;&amp;amp;quot;,r=r!==&amp;amp;quot;&amp;amp;quot;?&amp;amp;quot;ForwardRef(&amp;amp;quot;+r+&amp;amp;quot;)&amp;amp;quot;:&amp;amp;quot;ForwardRef&amp;amp;quot;),r;case LS:return l=r.displayName||null,l!==null?l:s(r.type)||&amp;amp;quot;Memo&amp;amp;quot;;case co:l=r._payload,r=r._init;try{return s(r(l))}catch{}}return null}function o(r){if(zS===void 0)try{throw Error()}catch(f){var l=f.stack.trim().match(/\n( *(at )?)/);zS=l&amp;amp;amp;&amp;amp;amp;l[1]||&amp;amp;quot;&amp;amp;quot;,oR=-1&amp;amp;lt;f.stack.indexOf(`
   1184 <a href="#l1165" class="line" id="l1165">   1165</a> &lt;a href=&quot;#l1146&quot; class=&quot;line&quot; id=&quot;l1146&quot;&gt;   1146&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-9&amp;quot; id=&amp;quot;h3-0-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    at`)?&amp;amp;quot; (&amp;amp;lt;anonymous&amp;amp;gt;)&amp;amp;quot;:-1&amp;amp;lt;f.stack.indexOf(&amp;amp;quot;@&amp;amp;quot;)?&amp;amp;quot;@unknown:0:0&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;}return`
   1185 <a href="#l1166" class="line" id="l1166">   1166</a> &lt;a href=&quot;#l1147&quot; class=&quot;line&quot; id=&quot;l1147&quot;&gt;   1147&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-10&amp;quot; id=&amp;quot;h3-0-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+zS+r+oR}function u(r,l){if(!r||BS)return&amp;amp;quot;&amp;amp;quot;;BS=!0;var f=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var p={DetermineComponentFrameRoot:function(){try{if(l){var Pt=function(){throw Error()};if(Object.defineProperty(Pt.prototype,&amp;amp;quot;props&amp;amp;quot;,{set:function(){throw Error()}}),typeof Reflect==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Reflect.construct){try{Reflect.construct(Pt,[])}catch(ye){var Ht=ye}Reflect.construct(r,[],Pt)}else{try{Pt.call()}catch(ye){Ht=ye}r.call(Pt.prototype)}}else{try{throw Error()}catch(ye){Ht=ye}(Pt=r())&amp;amp;amp;&amp;amp;amp;typeof Pt.catch==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Pt.catch(function(){})}}catch(ye){if(ye&amp;amp;amp;&amp;amp;amp;Ht&amp;amp;amp;&amp;amp;amp;typeof ye.stack==&amp;amp;quot;string&amp;amp;quot;)return[ye.stack,Ht.stack]}return[null,null]}};p.DetermineComponentFrameRoot.displayName=&amp;amp;quot;DetermineComponentFrameRoot&amp;amp;quot;;var _=Object.getOwnPropertyDescriptor(p.DetermineComponentFrameRoot,&amp;amp;quot;name&amp;amp;quot;);_&amp;amp;amp;&amp;amp;amp;_.configurable&amp;amp;amp;&amp;amp;amp;Object.defineProperty(p.DetermineComponentFrameRoot,&amp;amp;quot;name&amp;amp;quot;,{value:&amp;amp;quot;DetermineComponentFrameRoot&amp;amp;quot;});var A=p.DetermineComponentFrameRoot(),L=A[0],F=A[1];if(L&amp;amp;amp;&amp;amp;amp;F){var W=L.split(`
   1186 <a href="#l1167" class="line" id="l1167">   1167</a> &lt;a href=&quot;#l1148&quot; class=&quot;line&quot; id=&quot;l1148&quot;&gt;   1148&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-11&amp;quot; id=&amp;quot;h3-0-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),ot=F.split(`
   1187 <a href="#l1168" class="line" id="l1168">   1168</a> &lt;a href=&quot;#l1149&quot; class=&quot;line&quot; id=&quot;l1149&quot;&gt;   1149&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-12&amp;quot; id=&amp;quot;h3-0-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);for(_=p=0;p&amp;amp;lt;W.length&amp;amp;amp;&amp;amp;amp;!W[p].includes(&amp;amp;quot;DetermineComponentFrameRoot&amp;amp;quot;);)p++;for(;_&amp;amp;lt;ot.length&amp;amp;amp;&amp;amp;amp;!ot[_].includes(&amp;amp;quot;DetermineComponentFrameRoot&amp;amp;quot;);)_++;if(p===W.length||_===ot.length)for(p=W.length-1,_=ot.length-1;1&amp;amp;lt;=p&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;=_&amp;amp;amp;&amp;amp;amp;W[p]!==ot[_];)_--;for(;1&amp;amp;lt;=p&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;=_;p--,_--)if(W[p]!==ot[_]){if(p!==1||_!==1)do if(p--,_--,0&amp;amp;gt;_||W[p]!==ot[_]){var At=`
   1188 <a href="#l1169" class="line" id="l1169">   1169</a> &lt;a href=&quot;#l1150&quot; class=&quot;line&quot; id=&quot;l1150&quot;&gt;   1150&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-13&amp;quot; id=&amp;quot;h3-0-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+W[p].replace(&amp;amp;quot; at new &amp;amp;quot;,&amp;amp;quot; at &amp;amp;quot;);return r.displayName&amp;amp;amp;&amp;amp;amp;At.includes(&amp;amp;quot;&amp;amp;lt;anonymous&amp;amp;gt;&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(At=At.replace(&amp;amp;quot;&amp;amp;lt;anonymous&amp;amp;gt;&amp;amp;quot;,r.displayName)),At}while(1&amp;amp;lt;=p&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;=_);break}}}finally{BS=!1,Error.prepareStackTrace=f}return(f=r?r.displayName||r.name:&amp;amp;quot;&amp;amp;quot;)?o(f):&amp;amp;quot;&amp;amp;quot;}function c(r){switch(r.tag){case 26:case 27:case 5:return o(r.type);case 16:return o(&amp;amp;quot;Lazy&amp;amp;quot;);case 13:return o(&amp;amp;quot;Suspense&amp;amp;quot;);case 19:return o(&amp;amp;quot;SuspenseList&amp;amp;quot;);case 0:case 15:return r=u(r.type,!1),r;case 11:return r=u(r.type.render,!1),r;case 1:return r=u(r.type,!0),r;default:return&amp;amp;quot;&amp;amp;quot;}}function h(r){try{var l=&amp;amp;quot;&amp;amp;quot;;do l+=c(r),r=r.return;while(r);return l}catch(f){return`
   1189 <a href="#l1170" class="line" id="l1170">   1170</a> &lt;a href=&quot;#l1151&quot; class=&quot;line&quot; id=&quot;l1151&quot;&gt;   1151&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-14&amp;quot; id=&amp;quot;h3-0-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Error generating stack: `+f.message+`
   1190 <a href="#l1171" class="line" id="l1171">   1171</a> &lt;a href=&quot;#l1152&quot; class=&quot;line&quot; id=&quot;l1152&quot;&gt;   1152&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-15&amp;quot; id=&amp;quot;h3-0-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+f.stack}}function d(r){var l=r,f=r;if(r.alternate)for(;l.return;)l=l.return;else{r=l;do l=r,(l.flags&amp;amp;amp;4098)!==0&amp;amp;amp;&amp;amp;amp;(f=l.return),r=l.return;while(r)}return l.tag===3?f:null}function m(r){if(d(r)!==r)throw Error(i(188))}function g(r){var l=r.alternate;if(!l){if(l=d(r),l===null)throw Error(i(188));return l!==r?null:r}for(var f=r,p=l;;){var _=f.return;if(_===null)break;var A=_.alternate;if(A===null){if(p=_.return,p!==null){f=p;continue}break}if(_.child===A.child){for(A=_.child;A;){if(A===f)return m(_),r;if(A===p)return m(_),l;A=A.sibling}throw Error(i(188))}if(f.return!==p.return)f=_,p=A;else{for(var L=!1,F=_.child;F;){if(F===f){L=!0,f=_,p=A;break}if(F===p){L=!0,p=_,f=A;break}F=F.sibling}if(!L){for(F=A.child;F;){if(F===f){L=!0,f=A,p=_;break}if(F===p){L=!0,p=A,f=_;break}F=F.sibling}if(!L)throw Error(i(189))}}if(f.alternate!==p)throw Error(i(190))}if(f.tag!==3)throw Error(i(188));return f.stateNode.current===f?r:l}function y(r){var l=r.tag;if(l===5||l===26||l===27||l===6)return r;for(r=r.child;r!==null;){if(l=y(r),l!==null)return l;r=r.sibling}return null}function x(r){var l=r.tag;if(l===5||l===26||l===27||l===6)return r;for(r=r.child;r!==null;){if(r.tag!==4&amp;amp;amp;&amp;amp;amp;(l=x(r),l!==null))return l;r=r.sibling}return null}function b(r){return{current:r}}function M(r){0&amp;amp;gt;ic||(r.current=GS[ic],GS[ic]=null,ic--)}function v(r,l){ic++,GS[ic]=r.current,r.current=l}function S(r){return r&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=0,r===0?32:31-(e4(r)/n4|0)|0}function E(r){var l=r&amp;amp;amp;42;if(l!==0)return l;switch(r&amp;amp;amp;-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r&amp;amp;amp;4194176;case 4194304:case 8388608:case 16777216:case 33554432:return r&amp;amp;amp;62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return r}}function T(r,l){var f=r.pendingLanes;if(f===0)return 0;var p=0,_=r.suspendedLanes,A=r.pingedLanes,L=r.warmLanes;r=r.finishedLanes!==0;var F=f&amp;amp;amp;134217727;return F!==0?(f=F&amp;amp;amp;~_,f!==0?p=E(f):(A&amp;amp;amp;=F,A!==0?p=E(A):r||(L=F&amp;amp;amp;~L,L!==0&amp;amp;amp;&amp;amp;amp;(p=E(L))))):(F=f&amp;amp;amp;~_,F!==0?p=E(F):A!==0?p=E(A):r||(L=f&amp;amp;amp;~L,L!==0&amp;amp;amp;&amp;amp;amp;(p=E(L)))),p===0?0:l!==0&amp;amp;amp;&amp;amp;amp;l!==p&amp;amp;amp;&amp;amp;amp;(l&amp;amp;amp;_)===0&amp;amp;amp;&amp;amp;amp;(_=p&amp;amp;amp;-p,L=l&amp;amp;amp;-l,_&amp;amp;gt;=L||_===32&amp;amp;amp;&amp;amp;amp;(L&amp;amp;amp;4194176)!==0)?l:p}function w(r,l){return(r.pendingLanes&amp;amp;amp;~(r.suspendedLanes&amp;amp;amp;~r.pingedLanes)&amp;amp;amp;l)===0}function U(r,l){switch(r){case 1:case 2:case 4:case 8:return l+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function O(){var r=u0;return u0&amp;amp;lt;&amp;amp;lt;=1,(u0&amp;amp;amp;4194176)===0&amp;amp;amp;&amp;amp;amp;(u0=128),r}function z(){var r=c0;return c0&amp;amp;lt;&amp;amp;lt;=1,(c0&amp;amp;amp;62914560)===0&amp;amp;amp;&amp;amp;amp;(c0=4194304),r}function C(r){for(var l=[],f=0;31&amp;amp;gt;f;f++)l.push(r);return l}function R(r,l){r.pendingLanes|=l,l!==268435456&amp;amp;amp;&amp;amp;amp;(r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0)}function P(r,l,f,p,_,A){var L=r.pendingLanes;r.pendingLanes=f,r.suspendedLanes=0,r.pingedLanes=0,r.warmLanes=0,r.expiredLanes&amp;amp;amp;=f,r.entangledLanes&amp;amp;amp;=f,r.errorRecoveryDisabledLanes&amp;amp;amp;=f,r.shellSuspendCounter=0;var F=r.entanglements,W=r.expirationTimes,ot=r.hiddenUpdates;for(f=L&amp;amp;amp;~f;0&amp;amp;lt;f;){var At=31-ma(f),Pt=1&amp;amp;lt;&amp;amp;lt;At;F[At]=0,W[At]=-1;var Ht=ot[At];if(Ht!==null)for(ot[At]=null,At=0;At&amp;amp;lt;Ht.length;At++){var ye=Ht[At];ye!==null&amp;amp;amp;&amp;amp;amp;(ye.lane&amp;amp;amp;=-536870913)}f&amp;amp;amp;=~Pt}p!==0&amp;amp;amp;&amp;amp;amp;j(r,p,0),A!==0&amp;amp;amp;&amp;amp;amp;_===0&amp;amp;amp;&amp;amp;amp;r.tag!==0&amp;amp;amp;&amp;amp;amp;(r.suspendedLanes|=A&amp;amp;amp;~(L&amp;amp;amp;~l))}function j(r,l,f){r.pendingLanes|=l,r.suspendedLanes&amp;amp;amp;=~l;var p=31-ma(l);r.entangledLanes|=l,r.entanglements[p]=r.entanglements[p]|1073741824|f&amp;amp;amp;4194218}function X(r,l){var f=r.entangledLanes|=l;for(r=r.entanglements;f;){var p=31-ma(f),_=1&amp;amp;lt;&amp;amp;lt;p;_&amp;amp;amp;l|r[p]&amp;amp;amp;l&amp;amp;amp;&amp;amp;amp;(r[p]|=l),f&amp;amp;amp;=~_}}function Z(r){return r&amp;amp;amp;=-r,2&amp;amp;lt;r?8&amp;amp;lt;r?(r&amp;amp;amp;134217727)!==0?32:268435456:8:2}function st(r){if(ga&amp;amp;amp;&amp;amp;amp;typeof ga.onCommitFiberRoot==&amp;amp;quot;function&amp;amp;quot;)try{ga.onCommitFiberRoot($h,r,void 0,(r.current.flags&amp;amp;amp;128)===128)}catch{}}function et(r){if(typeof o4==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;l4(r),ga&amp;amp;amp;&amp;amp;amp;typeof ga.setStrictMode==&amp;amp;quot;function&amp;amp;quot;)try{ga.setStrictMode($h,r)}catch{}}function mt(r,l){return r===l&amp;amp;amp;&amp;amp;amp;(r!==0||1/r===1/l)||r!==r&amp;amp;amp;&amp;amp;amp;l!==l}function K(r,l){if(typeof r==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r!==null){var f=OR.get(r);return f!==void 0?f:(l={value:r,source:l,stack:h(l)},OR.set(r,l),l)}return{value:r,source:l,stack:h(l)}}function _t(r,l){sc[rc++]=d0,sc[rc++]=h0,h0=r,d0=l}function Ut(r,l,f){Xa[qa++]=gr,Xa[qa++]=vr,Xa[qa++]=Rl,Rl=r;var p=gr;r=vr;var _=32-ma(p)-1;p&amp;amp;amp;=~(1&amp;amp;lt;&amp;amp;lt;_),f+=1;var A=32-ma(l)+_;if(30&amp;amp;lt;A){var L=_-_%5;A=(p&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;L)-1).toString(32),p&amp;amp;gt;&amp;amp;gt;=L,_-=L,gr=1&amp;amp;lt;&amp;amp;lt;32-ma(l)+_|f&amp;amp;lt;&amp;amp;lt;_|p,vr=A+r}else gr=1&amp;amp;lt;&amp;amp;lt;A|f&amp;amp;lt;&amp;amp;lt;_|p,vr=r}function xt(r){r.return!==null&amp;amp;amp;&amp;amp;amp;(_t(r,1),Ut(r,1,0))}function It(r){for(;r===h0;)h0=sc[--rc],sc[rc]=null,d0=sc[--rc],sc[rc]=null;for(;r===Rl;)Rl=Xa[--qa],Xa[qa]=null,vr=Xa[--qa],Xa[qa]=null,gr=Xa[--qa],Xa[qa]=null}function se(r,l){v(ho,l),v(td,r),v(di,null),r=Xz(l),M(di),v(di,r)}function Qt(){M(di),M(td),M(ho)}function it(r){r.memoizedState!==null&amp;amp;amp;&amp;amp;amp;v(p0,r);var l=di.current,f=qz(l,r.type);l!==f&amp;amp;amp;&amp;amp;amp;(v(td,r),v(di,f))}function wt(r){td.current===r&amp;amp;amp;&amp;amp;amp;(M(di),M(td)),p0.current===r&amp;amp;amp;&amp;amp;amp;(M(p0),mr?Al._currentValue=nc:Al._currentValue2=nc)}function bt(r){var l=Error(i(418,&amp;amp;quot;&amp;amp;quot;));throw re(K(l,r)),YS}function Jt(r,l){if(!Va)throw Error(i(175));PB(r.stateNode,r.type,r.memoizedProps,l,r)||bt(r)}function Zt(r){for(Ii=r.return;Ii;)switch(Ii.tag){case 3:case 27:Is=!0;return;case 5:case 13:Is=!1;return;default:Ii=Ii.return}}function te(r){if(!Va||r!==Ii)return!1;if(!ze)return Zt(r),ze=!0,!1;var l=!1;if(Ei?r.tag!==3&amp;amp;amp;&amp;amp;amp;r.tag!==27&amp;amp;amp;&amp;amp;amp;(r.tag!==5||MR(r.type)&amp;amp;amp;&amp;amp;amp;!l0(r.type,r.memoizedProps))&amp;amp;amp;&amp;amp;amp;(l=!0):r.tag!==3&amp;amp;amp;&amp;amp;amp;(r.tag!==5||MR(r.type)&amp;amp;amp;&amp;amp;amp;!l0(r.type,r.memoizedProps))&amp;amp;amp;&amp;amp;amp;(l=!0),l&amp;amp;amp;&amp;amp;amp;bi&amp;amp;amp;&amp;amp;amp;bt(r),Zt(r),r.tag===13){if(!Va)throw Error(i(316));if(r=r.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(i(317));bi=FB(r)}else bi=Ii?xR(r.stateNode):null;return!0}function ke(){Va&amp;amp;amp;&amp;amp;amp;(bi=Ii=null,ze=!1)}function re(r){ms===null?ms=[r]:ms.push(r)}function H(){for(var r=oc,l=WS=oc=0;l&amp;amp;lt;r;){var f=Ya[l];Ya[l++]=null;var p=Ya[l];Ya[l++]=null;var _=Ya[l];Ya[l++]=null;var A=Ya[l];if(Ya[l++]=null,p!==null&amp;amp;amp;&amp;amp;amp;_!==null){var L=p.pending;L===null?_.next=_:(_.next=L.next,L.next=_),p.pending=_}A!==0&amp;amp;amp;&amp;amp;amp;lt(f,_,A)}}function ht(r,l,f,p){Ya[oc++]=r,Ya[oc++]=l,Ya[oc++]=f,Ya[oc++]=p,WS|=p,r.lanes|=p,r=r.alternate,r!==null&amp;amp;amp;&amp;amp;amp;(r.lanes|=p)}function rt(r,l,f,p){return ht(r,l,f,p),Ct(r)}function pt(r,l){return ht(r,null,null,l),Ct(r)}function lt(r,l,f){r.lanes|=f;var p=r.alternate;p!==null&amp;amp;amp;&amp;amp;amp;(p.lanes|=f);for(var _=!1,A=r.return;A!==null;)A.childLanes|=f,p=A.alternate,p!==null&amp;amp;amp;&amp;amp;amp;(p.childLanes|=f),A.tag===22&amp;amp;amp;&amp;amp;amp;(r=A.stateNode,r===null||r._visibility&amp;amp;amp;1||(_=!0)),r=A,A=A.return;_&amp;amp;amp;&amp;amp;amp;l!==null&amp;amp;amp;&amp;amp;amp;r.tag===3&amp;amp;amp;&amp;amp;amp;(A=r.stateNode,_=31-ma(f),A=A.hiddenUpdates,r=A[_],r===null?A[_]=[l]:r.push(l),l.lane=f|536870912)}function Ct(r){if(50&amp;amp;lt;ud)throw ud=0,lM=null,Error(i(185));for(var l=r.return;l!==null;)r=l,l=r.return;return r.tag===3?r.stateNode:null}function dt(r){r!==lc&amp;amp;amp;&amp;amp;amp;r.next===null&amp;amp;amp;&amp;amp;amp;(lc===null?m0=lc=r:lc=lc.next=r),g0=!0,kS||(kS=!0,k(de))}function Rt(r,l){if(!ZS&amp;amp;amp;&amp;amp;amp;g0){ZS=!0;do for(var f=!1,p=m0;p!==null;){if(!l)if(r!==0){var _=p.pendingLanes;if(_===0)var A=0;else{var L=p.suspendedLanes,F=p.pingedLanes;A=(1&amp;amp;lt;&amp;amp;lt;31-ma(42|r)+1)-1,A&amp;amp;amp;=_&amp;amp;amp;~(L&amp;amp;amp;~F),A=A&amp;amp;amp;201326677?A&amp;amp;amp;201326677|1:A?A|2:0}A!==0&amp;amp;amp;&amp;amp;amp;(f=!0,D(p,A))}else A=Ue,A=T(p,p===un?A:0),(A&amp;amp;amp;3)===0||w(p,A)||(f=!0,D(p,A));p=p.next}while(f);ZS=!1}}function de(){g0=kS=!1;var r=0;uc!==0&amp;amp;amp;&amp;amp;amp;(Jz()&amp;amp;amp;&amp;amp;amp;(r=uc),uc=0);for(var l=ps(),f=null,p=m0;p!==null;){var _=p.next,A=ue(p,l);A===0?(p.next=null,f===null?m0=_:f.next=_,_===null&amp;amp;amp;&amp;amp;amp;(lc=f)):(f=p,(r!==0||(A&amp;amp;amp;3)!==0)&amp;amp;amp;&amp;amp;amp;(g0=!0)),p=_}Rt(r,!1)}function ue(r,l){for(var f=r.suspendedLanes,p=r.pingedLanes,_=r.expirationTimes,A=r.pendingLanes&amp;amp;amp;-62914561;0&amp;amp;lt;A;){var L=31-ma(A),F=1&amp;amp;lt;&amp;amp;lt;L,W=_[L];W===-1?((F&amp;amp;amp;f)===0||(F&amp;amp;amp;p)!==0)&amp;amp;amp;&amp;amp;amp;(_[L]=U(F,l)):W&amp;amp;lt;=l&amp;amp;amp;&amp;amp;amp;(r.expiredLanes|=F),A&amp;amp;amp;=~F}if(l=un,f=Ue,f=T(r,r===l?f:0),p=r.callbackNode,f===0||r===l&amp;amp;amp;&amp;amp;amp;cn===2||r.cancelPendingCommit!==null)return p!==null&amp;amp;amp;&amp;amp;amp;p!==null&amp;amp;amp;&amp;amp;amp;XS(p),r.callbackNode=null,r.callbackPriority=0;if((f&amp;amp;amp;3)===0||w(r,f)){if(l=f&amp;amp;amp;-f,l===r.callbackPriority)return l;switch(p!==null&amp;amp;amp;&amp;amp;amp;XS(p),Z(f)){case 2:case 8:f=s4;break;case 32:f=qS;break;case 268435456:f=r4;break;default:f=qS}return p=I.bind(null,r),f=f0(f,p),r.callbackPriority=l,r.callbackNode=f,l}return p!==null&amp;amp;amp;&amp;amp;amp;p!==null&amp;amp;amp;&amp;amp;amp;XS(p),r.callbackPriority=2,r.callbackNode=null,2}function I(r,l){var f=r.callbackNode;if(El()&amp;amp;amp;&amp;amp;amp;r.callbackNode!==f)return null;var p=Ue;return p=T(r,r===un?p:0),p===0?null:(B2(r,p,l),ue(r,ps()),r.callbackNode!=null&amp;amp;amp;&amp;amp;amp;r.callbackNode===f?I.bind(null,r):null)}function D(r,l){if(El())return null;B2(r,l,!0)}function k(r){aB?sB(function(){($e&amp;amp;amp;6)!==0?f0(NR,r):r()}):f0(NR,r)}function nt(){return uc===0&amp;amp;amp;&amp;amp;amp;(uc=O()),uc}function gt(r,l){if(ed===null){var f=ed=[];jS=0,cc=nt(),fc={status:&amp;amp;quot;pending&amp;amp;quot;,value:void 0,then:function(p){f.push(p)}}}return jS++,l.then(at,at),l}function at(){if(--jS===0&amp;amp;amp;&amp;amp;amp;ed!==null){fc!==null&amp;amp;amp;&amp;amp;amp;(fc.status=&amp;amp;quot;fulfilled&amp;amp;quot;);var r=ed;ed=null,cc=0,fc=null;for(var l=0;l&amp;amp;lt;r.length;l++)(0,r[l])()}}function jt(r,l){var f=[],p={status:&amp;amp;quot;pending&amp;amp;quot;,value:null,reason:null,then:function(_){f.push(_)}};return r.then(function(){p.status=&amp;amp;quot;fulfilled&amp;amp;quot;,p.value=l;for(var _=0;_&amp;amp;lt;f.length;_++)(0,f[_])(l)},function(_){for(p.status=&amp;amp;quot;rejected&amp;amp;quot;,p.reason=_,_=0;_&amp;amp;lt;f.length;_++)(0,f[_])(void 0)}),p}function Tt(r){r.updateQueue={baseState:r.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Wt(r,l){r=r.updateQueue,l.updateQueue===r&amp;amp;amp;&amp;amp;amp;(l.updateQueue={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,callbacks:null})}function Ft(r){return{lane:r,tag:0,payload:null,callback:null,next:null}}function vt(r,l,f){var p=r.updateQueue;if(p===null)return null;if(p=p.shared,($e&amp;amp;amp;2)!==0){var _=p.pending;return _===null?l.next=l:(l.next=_.next,_.next=l),p.pending=l,l=Ct(r),lt(r,null,f),l}return ht(r,p,l,f),Ct(r)}function Ot(r,l,f){if(l=l.updateQueue,l!==null&amp;amp;amp;&amp;amp;amp;(l=l.shared,(f&amp;amp;amp;4194176)!==0)){var p=l.lanes;p&amp;amp;amp;=r.pendingLanes,f|=p,l.lanes=f,X(r,f)}}function ne(r,l){var f=r.updateQueue,p=r.alternate;if(p!==null&amp;amp;amp;&amp;amp;amp;(p=p.updateQueue,f===p)){var _=null,A=null;if(f=f.firstBaseUpdate,f!==null){do{var L={lane:f.lane,tag:f.tag,payload:f.payload,callback:null,next:null};A===null?_=A=L:A=A.next=L,f=f.next}while(f!==null);A===null?_=A=l:A=A.next=l}else _=A=l;f={baseState:p.baseState,firstBaseUpdate:_,lastBaseUpdate:A,shared:p.shared,callbacks:p.callbacks},r.updateQueue=f;return}r=f.lastBaseUpdate,r===null?f.firstBaseUpdate=l:r.next=l,f.lastBaseUpdate=l}function kt(){if(QS){var r=fc;if(r!==null)throw r}}function Nt(r,l,f,p){QS=!1;var _=r.updateQueue;po=!1;var A=_.firstBaseUpdate,L=_.lastBaseUpdate,F=_.shared.pending;if(F!==null){_.shared.pending=null;var W=F,ot=W.next;W.next=null,L===null?A=ot:L.next=ot,L=W;var At=r.alternate;At!==null&amp;amp;amp;&amp;amp;amp;(At=At.updateQueue,F=At.lastBaseUpdate,F!==L&amp;amp;amp;&amp;amp;amp;(F===null?At.firstBaseUpdate=ot:F.next=ot,At.lastBaseUpdate=W))}if(A!==null){var Pt=_.baseState;L=0,At=ot=W=null,F=A;do{var Ht=F.lane&amp;amp;amp;-536870913,ye=Ht!==F.lane;if(ye?(Ue&amp;amp;amp;Ht)===Ht:(p&amp;amp;amp;Ht)===Ht){Ht!==0&amp;amp;amp;&amp;amp;amp;Ht===cc&amp;amp;amp;&amp;amp;amp;(QS=!0),At!==null&amp;amp;amp;&amp;amp;amp;(At=At.next={lane:0,tag:F.tag,payload:F.payload,callback:null,next:null});t:{var Za=r,cd=F;Ht=l;var Bl=f;switch(cd.tag){case 1:if(Za=cd.payload,typeof Za==&amp;amp;quot;function&amp;amp;quot;){Pt=Za.call(Bl,Pt,Ht);break t}Pt=Za;break t;case 3:Za.flags=Za.flags&amp;amp;amp;-65537|128;case 0:if(Za=cd.payload,Ht=typeof Za==&amp;amp;quot;function&amp;amp;quot;?Za.call(Bl,Pt,Ht):Za,Ht==null)break t;Pt=wS({},Pt,Ht);break t;case 2:po=!0}}Ht=F.callback,Ht!==null&amp;amp;amp;&amp;amp;amp;(r.flags|=64,ye&amp;amp;amp;&amp;amp;amp;(r.flags|=8192),ye=_.callbacks,ye===null?_.callbacks=[Ht]:ye.push(Ht))}else ye={lane:Ht,tag:F.tag,payload:F.payload,callback:F.callback,next:null},At===null?(ot=At=ye,W=Pt):At=At.next=ye,L|=Ht;if(F=F.next,F===null){if(F=_.shared.pending,F===null)break;ye=F,F=ye.next,ye.next=null,_.lastBaseUpdate=ye,_.shared.pending=null}}while(!0);At===null&amp;amp;amp;&amp;amp;amp;(W=Pt),_.baseState=W,_.firstBaseUpdate=ot,_.lastBaseUpdate=At,A===null&amp;amp;amp;&amp;amp;amp;(_.shared.lanes=0),vo|=L,r.lanes=L,r.memoizedState=Pt}}function me(r,l){if(typeof r!=&amp;amp;quot;function&amp;amp;quot;)throw Error(i(191,r));r.call(l)}function G(r,l){var f=r.callbacks;if(f!==null)for(r.callbacks=null,r=0;r&amp;amp;lt;f.length;r++)me(f[r],l)}function Mt(r,l){if(va(r,l))return!0;if(typeof r!=&amp;amp;quot;object&amp;amp;quot;||r===null||typeof l!=&amp;amp;quot;object&amp;amp;quot;||l===null)return!1;var f=Object.keys(r),p=Object.keys(l);if(f.length!==p.length)return!1;for(p=0;p&amp;amp;lt;f.length;p++){var _=f[p];if(!u4.call(l,_)||!va(r[_],l[_]))return!1}return!0}function Dt(r){return r=r.status,r===&amp;amp;quot;fulfilled&amp;amp;quot;||r===&amp;amp;quot;rejected&amp;amp;quot;}function Gt(){}function St(r,l,f){switch(f=r[f],f===void 0?r.push(l):f!==l&amp;amp;amp;&amp;amp;amp;(l.then(Gt,Gt),l=f),l.status){case&amp;amp;quot;fulfilled&amp;amp;quot;:return l.value;case&amp;amp;quot;rejected&amp;amp;quot;:throw r=l.reason,r===nd?Error(i(483)):r;default:if(typeof l.status==&amp;amp;quot;string&amp;amp;quot;)l.then(Gt,Gt);else{if(r=un,r!==null&amp;amp;amp;&amp;amp;amp;100&amp;amp;lt;r.shellSuspendCounter)throw Error(i(482));r=l,r.status=&amp;amp;quot;pending&amp;amp;quot;,r.then(function(p){if(l.status===&amp;amp;quot;pending&amp;amp;quot;){var _=l;_.status=&amp;amp;quot;fulfilled&amp;amp;quot;,_.value=p}},function(p){if(l.status===&amp;amp;quot;pending&amp;amp;quot;){var _=l;_.status=&amp;amp;quot;rejected&amp;amp;quot;,_.reason=p}})}switch(l.status){case&amp;amp;quot;fulfilled&amp;amp;quot;:return l.value;case&amp;amp;quot;rejected&amp;amp;quot;:throw r=l.reason,r===nd?Error(i(483)):r}throw hc=l,nd}}function ut(){if(hc===null)throw Error(i(459));var r=hc;return hc=null,r}function qt(r){var l=id;return id+=1,dc===null&amp;amp;amp;&amp;amp;amp;(dc=[]),St(dc,r,l)}function oe(r,l){l=l.props.ref,r.ref=l!==void 0?l:null}function He(r,l){throw l.$$typeof===Pz?Error(i(525)):(r=Object.prototype.toString.call(l),Error(i(31,r===&amp;amp;quot;[object Object]&amp;amp;quot;?&amp;amp;quot;object with keys {&amp;amp;quot;+Object.keys(l).join(&amp;amp;quot;, &amp;amp;quot;)+&amp;amp;quot;}&amp;amp;quot;:r)))}function Le(r){var l=r._init;return l(r._payload)}function Ha(r){function l(Q,Y){if(r){var tt=Q.deletions;tt===null?(Q.deletions=[Y],Q.flags|=16):tt.push(Y)}}function f(Q,Y){if(!r)return null;for(;Y!==null;)l(Q,Y),Y=Y.sibling;return null}function p(Q){for(var Y=new Map;Q!==null;)Q.key!==null?Y.set(Q.key,Q):Y.set(Q.index,Q),Q=Q.sibling;return Y}function _(Q,Y){return Q=lo(Q,Y),Q.index=0,Q.sibling=null,Q}function A(Q,Y,tt){return Q.index=tt,r?(tt=Q.alternate,tt!==null?(tt=tt.index,tt&amp;amp;lt;Y?(Q.flags|=33554434,Y):tt):(Q.flags|=33554434,Y)):(Q.flags|=1048576,Y)}function L(Q){return r&amp;amp;amp;&amp;amp;amp;Q.alternate===null&amp;amp;amp;&amp;amp;amp;(Q.flags|=33554434),Q}function F(Q,Y,tt,Et){return Y===null||Y.tag!==6?(Y=AS(tt,Q.mode,Et),Y.return=Q,Y):(Y=_(Y,tt),Y.return=Q,Y)}function W(Q,Y,tt,Et){var $t=tt.type;return $t===ec?At(Q,Y,tt.props.children,Et,tt.key):Y!==null&amp;amp;amp;&amp;amp;amp;(Y.elementType===$t||typeof $t==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;$t!==null&amp;amp;amp;&amp;amp;amp;$t.$$typeof===co&amp;amp;amp;&amp;amp;amp;Le($t)===Y.type)?(Y=_(Y,tt.props),oe(Y,tt),Y.return=Q,Y):(Y=s0(tt.type,tt.key,tt.props,null,Q.mode,Et),oe(Y,tt),Y.return=Q,Y)}function ot(Q,Y,tt,Et){return Y===null||Y.tag!==4||Y.stateNode.containerInfo!==tt.containerInfo||Y.stateNode.implementation!==tt.implementation?(Y=RS(tt,Q.mode,Et),Y.return=Q,Y):(Y=_(Y,tt.children||[]),Y.return=Q,Y)}function At(Q,Y,tt,Et,$t){return Y===null||Y.tag!==7?(Y=bl(tt,Q.mode,Et,$t),Y.return=Q,Y):(Y=_(Y,tt),Y.return=Q,Y)}function Pt(Q,Y,tt){if(typeof Y==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Y!==&amp;amp;quot;&amp;amp;quot;||typeof Y==&amp;amp;quot;number&amp;amp;quot;||typeof Y==&amp;amp;quot;bigint&amp;amp;quot;)return Y=AS(&amp;amp;quot;&amp;amp;quot;+Y,Q.mode,tt),Y.return=Q,Y;if(typeof Y==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Y!==null){switch(Y.$$typeof){case r0:return tt=s0(Y.type,Y.key,Y.props,null,Q.mode,tt),oe(tt,Y),tt.return=Q,tt;case tc:return Y=RS(Y,Q.mode,tt),Y.return=Q,Y;case co:var Et=Y._init;return Y=Et(Y._payload),Pt(Q,Y,tt)}if(o0(Y)||a(Y))return Y=bl(Y,Q.mode,tt,null),Y.return=Q,Y;if(typeof Y.then==&amp;amp;quot;function&amp;amp;quot;)return Pt(Q,qt(Y),tt);if(Y.$$typeof===uo)return Pt(Q,$g(Q,Y),tt);He(Q,Y)}return null}function Ht(Q,Y,tt,Et){var $t=Y!==null?Y.key:null;if(typeof tt==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;tt!==&amp;amp;quot;&amp;amp;quot;||typeof tt==&amp;amp;quot;number&amp;amp;quot;||typeof tt==&amp;amp;quot;bigint&amp;amp;quot;)return $t!==null?null:F(Q,Y,&amp;amp;quot;&amp;amp;quot;+tt,Et);if(typeof tt==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;tt!==null){switch(tt.$$typeof){case r0:return tt.key===$t?W(Q,Y,tt,Et):null;case tc:return tt.key===$t?ot(Q,Y,tt,Et):null;case co:return $t=tt._init,tt=$t(tt._payload),Ht(Q,Y,tt,Et)}if(o0(tt)||a(tt))return $t!==null?null:At(Q,Y,tt,Et,null);if(typeof tt.then==&amp;amp;quot;function&amp;amp;quot;)return Ht(Q,Y,qt(tt),Et);if(tt.$$typeof===uo)return Ht(Q,Y,$g(Q,tt),Et);He(Q,tt)}return null}function ye(Q,Y,tt,Et,$t){if(typeof Et==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Et!==&amp;amp;quot;&amp;amp;quot;||typeof Et==&amp;amp;quot;number&amp;amp;quot;||typeof Et==&amp;amp;quot;bigint&amp;amp;quot;)return Q=Q.get(tt)||null,F(Y,Q,&amp;amp;quot;&amp;amp;quot;+Et,$t);if(typeof Et==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Et!==null){switch(Et.$$typeof){case r0:return Q=Q.get(Et.key===null?tt:Et.key)||null,W(Y,Q,Et,$t);case tc:return Q=Q.get(Et.key===null?tt:Et.key)||null,ot(Y,Q,Et,$t);case co:var dn=Et._init;return Et=dn(Et._payload),ye(Q,Y,tt,Et,$t)}if(o0(Et)||a(Et))return Q=Q.get(tt)||null,At(Y,Q,Et,$t,null);if(typeof Et.then==&amp;amp;quot;function&amp;amp;quot;)return ye(Q,Y,tt,qt(Et),$t);if(Et.$$typeof===uo)return ye(Q,Y,tt,$g(Y,Et),$t);He(Y,Et)}return null}function Za(Q,Y,tt,Et){for(var $t=null,dn=null,he=Y,Be=Y=0,ti=null;he!==null&amp;amp;amp;&amp;amp;amp;Be&amp;amp;lt;tt.length;Be++){he.index&amp;amp;gt;Be?(ti=he,he=null):ti=he.sibling;var Pe=Ht(Q,he,tt[Be],Et);if(Pe===null){he===null&amp;amp;amp;&amp;amp;amp;(he=ti);break}r&amp;amp;amp;&amp;amp;amp;he&amp;amp;amp;&amp;amp;amp;Pe.alternate===null&amp;amp;amp;&amp;amp;amp;l(Q,he),Y=A(Pe,Y,Be),dn===null?$t=Pe:dn.sibling=Pe,dn=Pe,he=ti}if(Be===tt.length)return f(Q,he),ze&amp;amp;amp;&amp;amp;amp;_t(Q,Be),$t;if(he===null){for(;Be&amp;amp;lt;tt.length;Be++)he=Pt(Q,tt[Be],Et),he!==null&amp;amp;amp;&amp;amp;amp;(Y=A(he,Y,Be),dn===null?$t=he:dn.sibling=he,dn=he);return ze&amp;amp;amp;&amp;amp;amp;_t(Q,Be),$t}for(he=p(he);Be&amp;amp;lt;tt.length;Be++)ti=ye(he,Q,Be,tt[Be],Et),ti!==null&amp;amp;amp;&amp;amp;amp;(r&amp;amp;amp;&amp;amp;amp;ti.alternate!==null&amp;amp;amp;&amp;amp;amp;he.delete(ti.key===null?Be:ti.key),Y=A(ti,Y,Be),dn===null?$t=ti:dn.sibling=ti,dn=ti);return r&amp;amp;amp;&amp;amp;amp;he.forEach(function(_o){return l(Q,_o)}),ze&amp;amp;amp;&amp;amp;amp;_t(Q,Be),$t}function cd(Q,Y,tt,Et){if(tt==null)throw Error(i(151));for(var $t=null,dn=null,he=Y,Be=Y=0,ti=null,Pe=tt.next();he!==null&amp;amp;amp;&amp;amp;amp;!Pe.done;Be++,Pe=tt.next()){he.index&amp;amp;gt;Be?(ti=he,he=null):ti=he.sibling;var _o=Ht(Q,he,Pe.value,Et);if(_o===null){he===null&amp;amp;amp;&amp;amp;amp;(he=ti);break}r&amp;amp;amp;&amp;amp;amp;he&amp;amp;amp;&amp;amp;amp;_o.alternate===null&amp;amp;amp;&amp;amp;amp;l(Q,he),Y=A(_o,Y,Be),dn===null?$t=_o:dn.sibling=_o,dn=_o,he=ti}if(Pe.done)return f(Q,he),ze&amp;amp;amp;&amp;amp;amp;_t(Q,Be),$t;if(he===null){for(;!Pe.done;Be++,Pe=tt.next())Pe=Pt(Q,Pe.value,Et),Pe!==null&amp;amp;amp;&amp;amp;amp;(Y=A(Pe,Y,Be),dn===null?$t=Pe:dn.sibling=Pe,dn=Pe);return ze&amp;amp;amp;&amp;amp;amp;_t(Q,Be),$t}for(he=p(he);!Pe.done;Be++,Pe=tt.next())Pe=ye(he,Q,Be,Pe.value,Et),Pe!==null&amp;amp;amp;&amp;amp;amp;(r&amp;amp;amp;&amp;amp;amp;Pe.alternate!==null&amp;amp;amp;&amp;amp;amp;he.delete(Pe.key===null?Be:Pe.key),Y=A(Pe,Y,Be),dn===null?$t=Pe:dn.sibling=Pe,dn=Pe);return r&amp;amp;amp;&amp;amp;amp;he.forEach(function(g4){return l(Q,g4)}),ze&amp;amp;amp;&amp;amp;amp;_t(Q,Be),$t}function Bl(Q,Y,tt,Et){if(typeof tt==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;tt!==null&amp;amp;amp;&amp;amp;amp;tt.type===ec&amp;amp;amp;&amp;amp;amp;tt.key===null&amp;amp;amp;&amp;amp;amp;(tt=tt.props.children),typeof tt==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;tt!==null){switch(tt.$$typeof){case r0:t:{for(var $t=tt.key;Y!==null;){if(Y.key===$t){if($t=tt.type,$t===ec){if(Y.tag===7){f(Q,Y.sibling),Et=_(Y,tt.props.children),Et.return=Q,Q=Et;break t}}else if(Y.elementType===$t||typeof $t==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;$t!==null&amp;amp;amp;&amp;amp;amp;$t.$$typeof===co&amp;amp;amp;&amp;amp;amp;Le($t)===Y.type){f(Q,Y.sibling),Et=_(Y,tt.props),oe(Et,tt),Et.return=Q,Q=Et;break t}f(Q,Y);break}else l(Q,Y);Y=Y.sibling}tt.type===ec?(Et=bl(tt.props.children,Q.mode,Et,tt.key),Et.return=Q,Q=Et):(Et=s0(tt.type,tt.key,tt.props,null,Q.mode,Et),oe(Et,tt),Et.return=Q,Q=Et)}return L(Q);case tc:t:{for($t=tt.key;Y!==null;){if(Y.key===$t)if(Y.tag===4&amp;amp;amp;&amp;amp;amp;Y.stateNode.containerInfo===tt.containerInfo&amp;amp;amp;&amp;amp;amp;Y.stateNode.implementation===tt.implementation){f(Q,Y.sibling),Et=_(Y,tt.children||[]),Et.return=Q,Q=Et;break t}else{f(Q,Y);break}else l(Q,Y);Y=Y.sibling}Et=RS(tt,Q.mode,Et),Et.return=Q,Q=Et}return L(Q);case co:return $t=tt._init,tt=$t(tt._payload),Bl(Q,Y,tt,Et)}if(o0(tt))return Za(Q,Y,tt,Et);if(a(tt)){if($t=a(tt),typeof $t!=&amp;amp;quot;function&amp;amp;quot;)throw Error(i(150));return tt=$t.call(tt),cd(Q,Y,tt,Et)}if(typeof tt.then==&amp;amp;quot;function&amp;amp;quot;)return Bl(Q,Y,qt(tt),Et);if(tt.$$typeof===uo)return Bl(Q,Y,$g(Q,tt),Et);He(Q,tt)}return typeof tt==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;tt!==&amp;amp;quot;&amp;amp;quot;||typeof tt==&amp;amp;quot;number&amp;amp;quot;||typeof tt==&amp;amp;quot;bigint&amp;amp;quot;?(tt=&amp;amp;quot;&amp;amp;quot;+tt,Y!==null&amp;amp;amp;&amp;amp;amp;Y.tag===6?(f(Q,Y.sibling),Et=_(Y,tt),Et.return=Q,Q=Et):(f(Q,Y),Et=AS(tt,Q.mode,Et),Et.return=Q,Q=Et),L(Q)):f(Q,Y)}return function(Q,Y,tt,Et){try{id=0;var $t=Bl(Q,Y,tt,Et);return dc=null,$t}catch(he){if(he===nd)throw he;var dn=t(29,he,null,Q.mode);return dn.lanes=Et,dn.return=Q,dn}finally{}}}function ua(r,l){r=Sr,v(y0,r),v(pc,l),Sr=r|l.baseLanes}function ku(){v(y0,Sr),v(pc,pc.current)}function fs(){Sr=y0.current,M(pc),M(y0)}function Fa(r){var l=r.alternate;v(qn,qn.current&amp;amp;amp;1),v(Wa,r),Hs===null&amp;amp;amp;&amp;amp;amp;(l===null||pc.current!==null||l.memoizedState!==null)&amp;amp;amp;&amp;amp;amp;(Hs=r)}function Ih(r){if(r.tag===22){if(v(qn,qn.current),v(Wa,r),Hs===null){var l=r.alternate;l!==null&amp;amp;amp;&amp;amp;amp;l.memoizedState!==null&amp;amp;amp;&amp;amp;amp;(Hs=r)}}else hs(r)}function hs(){v(qn,qn.current),v(Wa,Wa.current)}function Zi(r){M(Wa),Hs===r&amp;amp;amp;&amp;amp;amp;(Hs=null),M(qn)}function yl(r){for(var l=r;l!==null;){if(l.tag===13){var f=l.memoizedState;if(f!==null&amp;amp;amp;&amp;amp;amp;(f=f.dehydrated,f===null||HS(f)||FS(f)))return l}else if(l.tag===19&amp;amp;amp;&amp;amp;amp;l.memoizedProps.revealOrder!==void 0){if((l.flags&amp;amp;amp;128)!==0)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===r)break;for(;l.sibling===null;){if(l.return===null||l.return===r)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}function rn(){throw Error(i(321))}function Zu(r,l){if(l===null)return!1;for(var f=0;f&amp;amp;lt;l.length&amp;amp;amp;&amp;amp;amp;f&amp;amp;lt;r.length;f++)if(!va(r[f],l[f]))return!1;return!0}function ju(r,l,f,p,_,A){return mo=A,Ee=l,l.memoizedState=null,l.updateQueue=null,l.lanes=0,pe.H=r===null||r.memoizedState===null?Dl:go,wl=!1,A=f(p,_),wl=!1,mc&amp;amp;amp;&amp;amp;amp;(A=kg(l,f,p,_)),Wg(r),A}function Wg(r){pe.H=Fs;var l=Je!==null&amp;amp;amp;&amp;amp;amp;Je.next!==null;if(mo=0,Bn=Je=Ee=null,_0=!1,ad=0,gc=null,l)throw Error(i(300));r===null||Jn||(r=r.dependencies,r!==null&amp;amp;amp;&amp;amp;amp;Jg(r)&amp;amp;amp;&amp;amp;amp;(Jn=!0))}function kg(r,l,f,p){Ee=r;var _=0;do{if(mc&amp;amp;amp;&amp;amp;amp;(gc=null),ad=0,mc=!1,25&amp;amp;lt;=_)throw Error(i(301));if(_+=1,Bn=Je=null,r.updateQueue!=null){var A=r.updateQueue;A.lastEffect=null,A.events=null,A.stores=null,A.memoCache!=null&amp;amp;amp;&amp;amp;amp;(A.memoCache.index=0)}pe.H=Ul,A=l(f,p)}while(mc);return A}function Vx(){var r=pe.H,l=r.useState()[0];return l=typeof l.then==&amp;amp;quot;function&amp;amp;quot;?J(l):l,r=r.useState()[0],(Je!==null?Je.memoizedState:null)!==r&amp;amp;amp;&amp;amp;amp;(Ee.flags|=1024),l}function Hh(){var r=x0!==0;return x0=0,r}function Fh(r,l,f){l.updateQueue=r.updateQueue,l.flags&amp;amp;amp;=-2053,r.lanes&amp;amp;amp;=~f}function Vh(r){if(_0){for(r=r.memoizedState;r!==null;){var l=r.queue;l!==null&amp;amp;amp;&amp;amp;amp;(l.pending=null),r=r.next}_0=!1}mo=0,Bn=Je=Ee=null,mc=!1,ad=x0=0,gc=null}function N(){var r={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Bn===null?Ee.memoizedState=Bn=r:Bn=Bn.next=r,Bn}function V(){if(Je===null){var r=Ee.alternate;r=r!==null?r.memoizedState:null}else r=Je.next;var l=Bn===null?Ee.memoizedState:Bn.next;if(l!==null)Bn=l,Je=r;else{if(r===null)throw Ee.alternate===null?Error(i(467)):Error(i(310));Je=r,r={memoizedState:Je.memoizedState,baseState:Je.baseState,baseQueue:Je.baseQueue,queue:Je.queue,next:null},Bn===null?Ee.memoizedState=Bn=r:Bn=Bn.next=r}return Bn}function J(r){var l=ad;return ad+=1,gc===null&amp;amp;amp;&amp;amp;amp;(gc=[]),r=St(gc,r,l),l=Ee,(Bn===null?l.memoizedState:Bn.next)===null&amp;amp;amp;&amp;amp;amp;(l=l.alternate,pe.H=l===null||l.memoizedState===null?Dl:go),r}function $(r){if(r!==null&amp;amp;amp;&amp;amp;amp;typeof r==&amp;amp;quot;object&amp;amp;quot;){if(typeof r.then==&amp;amp;quot;function&amp;amp;quot;)return J(r);if(r.$$typeof===uo)return Si(r)}throw Error(i(438,String(r)))}function q(r){var l=null,f=Ee.updateQueue;if(f!==null&amp;amp;amp;&amp;amp;amp;(l=f.memoCache),l==null){var p=Ee.alternate;p!==null&amp;amp;amp;&amp;amp;amp;(p=p.updateQueue,p!==null&amp;amp;amp;&amp;amp;amp;(p=p.memoCache,p!=null&amp;amp;amp;&amp;amp;amp;(l={data:p.data.map(function(_){return _.slice()}),index:0})))}if(l==null&amp;amp;amp;&amp;amp;amp;(l={data:[],index:0}),f===null&amp;amp;amp;&amp;amp;amp;(f=JS(),Ee.updateQueue=f),f.memoCache=l,f=l.data[l.index],f===void 0)for(f=l.data[l.index]=Array(r),p=0;p&amp;amp;lt;r;p++)f[p]=Hz;return l.index++,f}function yt(r,l){return typeof l==&amp;amp;quot;function&amp;amp;quot;?l(r):l}function Lt(r){var l=V();return Yt(l,Je,r)}function Yt(r,l,f){var p=r.queue;if(p===null)throw Error(i(311));p.lastRenderedReducer=f;var _=r.baseQueue,A=p.pending;if(A!==null){if(_!==null){var L=_.next;_.next=A.next,A.next=L}l.baseQueue=_=A,p.pending=null}if(A=r.baseState,_===null)r.memoizedState=A;else{l=_.next;var F=L=null,W=null,ot=l,At=!1;do{var Pt=ot.lane&amp;amp;amp;-536870913;if(Pt!==ot.lane?(Ue&amp;amp;amp;Pt)===Pt:(mo&amp;amp;amp;Pt)===Pt){var Ht=ot.revertLane;if(Ht===0)W!==null&amp;amp;amp;&amp;amp;amp;(W=W.next={lane:0,revertLane:0,action:ot.action,hasEagerState:ot.hasEagerState,eagerState:ot.eagerState,next:null}),Pt===cc&amp;amp;amp;&amp;amp;amp;(At=!0);else if((mo&amp;amp;amp;Ht)===Ht){ot=ot.next,Ht===cc&amp;amp;amp;&amp;amp;amp;(At=!0);continue}else Pt={lane:0,revertLane:ot.revertLane,action:ot.action,hasEagerState:ot.hasEagerState,eagerState:ot.eagerState,next:null},W===null?(F=W=Pt,L=A):W=W.next=Pt,Ee.lanes|=Ht,vo|=Ht;Pt=ot.action,wl&amp;amp;amp;&amp;amp;amp;f(A,Pt),A=ot.hasEagerState?ot.eagerState:f(A,Pt)}else Ht={lane:Pt,revertLane:ot.revertLane,action:ot.action,hasEagerState:ot.hasEagerState,eagerState:ot.eagerState,next:null},W===null?(F=W=Ht,L=A):W=W.next=Ht,Ee.lanes|=Pt,vo|=Pt;ot=ot.next}while(ot!==null&amp;amp;amp;&amp;amp;amp;ot!==l);if(W===null?L=A:W.next=F,!va(A,r.memoizedState)&amp;amp;amp;&amp;amp;amp;(Jn=!0,At&amp;amp;amp;&amp;amp;amp;(f=fc,f!==null)))throw f;r.memoizedState=A,r.baseState=L,r.baseQueue=W,p.lastRenderedState=A}return _===null&amp;amp;amp;&amp;amp;amp;(p.lanes=0),[r.memoizedState,p.dispatch]}function Vt(r){var l=V(),f=l.queue;if(f===null)throw Error(i(311));f.lastRenderedReducer=r;var p=f.dispatch,_=f.pending,A=l.memoizedState;if(_!==null){f.pending=null;var L=_=_.next;do A=r(A,L.action),L=L.next;while(L!==_);va(A,l.memoizedState)||(Jn=!0),l.memoizedState=A,l.baseQueue===null&amp;amp;amp;&amp;amp;amp;(l.baseState=A),f.lastRenderedState=A}return[A,p]}function ie(r,l,f){var p=Ee,_=V(),A=ze;if(A){if(f===void 0)throw Error(i(407));f=f()}else f=l();var L=!va((Je||_).memoizedState,f);if(L&amp;amp;amp;&amp;amp;amp;(_.memoizedState=f,Jn=!0),_=_.queue,Gx(Me.bind(null,p,_,r),[r]),_.getSnapshot!==l||L||Bn!==null&amp;amp;amp;&amp;amp;amp;Bn.memoizedState.tag&amp;amp;amp;1){if(p.flags|=2048,Bs(9,Kt.bind(null,p,_,f,l),{destroy:void 0},null),un===null)throw Error(i(349));A||(mo&amp;amp;amp;60)!==0||ae(p,l,f)}return f}function ae(r,l,f){r.flags|=16384,r={getSnapshot:l,value:f},l=Ee.updateQueue,l===null?(l=JS(),Ee.updateQueue=l,l.stores=[r]):(f=l.stores,f===null?l.stores=[r]:f.push(r))}function Kt(r,l,f,p){l.value=f,l.getSnapshot=p,Fe(l)&amp;amp;amp;&amp;amp;amp;hn(r)}function Me(r,l,f){return f(function(){Fe(l)&amp;amp;amp;&amp;amp;amp;hn(r)})}function Fe(r){var l=r.getSnapshot;r=r.value;try{var f=l();return!va(r,f)}catch{return!0}}function hn(r){var l=pt(r,2);l!==null&amp;amp;amp;&amp;amp;amp;Pi(l,r,2)}function Ze(r){var l=N();if(typeof r==&amp;amp;quot;function&amp;amp;quot;){var f=r;if(r=f(),wl){et(!0);try{f()}finally{et(!1)}}}return l.memoizedState=l.baseState=r,l.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:yt,lastRenderedState:r},l}function qe(r,l,f,p){return r.baseState=f,Yt(r,Je,typeof p==&amp;amp;quot;function&amp;amp;quot;?p:yt)}function ee(r,l,f,p,_){if(Qg(r))throw Error(i(485));if(r=l.action,r!==null){var A={payload:_,action:r,next:null,isTransition:!0,status:&amp;amp;quot;pending&amp;amp;quot;,value:null,reason:null,listeners:[],then:function(L){A.listeners.push(L)}};pe.T!==null?f(!0):A.isTransition=!1,p(A),f=l.pending,f===null?(A.next=l.pending=A,on(l,A)):(A.next=f.next,l.pending=f.next=A)}}function on(r,l){var f=l.action,p=l.payload,_=r.state;if(l.isTransition){var A=pe.T,L={};pe.T=L;try{var F=f(_,p),W=pe.S;W!==null&amp;amp;amp;&amp;amp;amp;W(L,F),De(r,l,F)}catch(ot){zs(r,l,ot)}finally{pe.T=A}}else try{A=f(_,p),De(r,l,A)}catch(ot){zs(r,l,ot)}}function De(r,l,f){f!==null&amp;amp;amp;&amp;amp;amp;typeof f==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof f.then==&amp;amp;quot;function&amp;amp;quot;?f.then(function(p){_i(r,l,p)},function(p){return zs(r,l,p)}):_i(r,l,f)}function _i(r,l,f){l.status=&amp;amp;quot;fulfilled&amp;amp;quot;,l.value=f,xi(l),r.state=f,l=r.pending,l!==null&amp;amp;amp;&amp;amp;amp;(f=l.next,f===l?r.pending=null:(f=f.next,l.next=f,on(r,f)))}function zs(r,l,f){var p=r.pending;if(r.pending=null,p!==null){p=p.next;do l.status=&amp;amp;quot;rejected&amp;amp;quot;,l.reason=f,xi(l),l=l.next;while(l!==p)}r.action=null}function xi(r){r=r.listeners;for(var l=0;l&amp;amp;lt;r.length;l++)(0,r[l])()}function io(r,l){return l}function ln(r,l){if(ze){var f=un.formState;if(f!==null){t:{var p=Ee;if(ze){if(bi){var _=DB(bi,Is);if(_){bi=xR(_),p=UB(_);break t}}bt(p)}p=!1}p&amp;amp;amp;&amp;amp;amp;(l=f[0])}}f=N(),f.memoizedState=f.baseState=l,p={pending:null,lanes:0,dispatch:null,lastRenderedReducer:io,lastRenderedState:l},f.queue=p,f=YA.bind(null,Ee,p),p.dispatch=f,p=Ze(!1);var A=Wx.bind(null,Ee,!1,p.queue);return p=N(),_={state:l,dispatch:null,action:r,pending:null},p.queue=_,f=ee.bind(null,Ee,_,A,f),_.dispatch=f,p.memoizedState=r,[l,f,!1]}function zi(r){var l=V();return Bi(l,Je,r)}function Bi(r,l,f){l=Yt(r,l,io)[0],r=Lt(yt)[0],l=typeof l==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;l!==null&amp;amp;amp;&amp;amp;amp;typeof l.then==&amp;amp;quot;function&amp;amp;quot;?J(l):l;var p=V(),_=p.queue,A=_.dispatch;return f!==p.memoizedState&amp;amp;amp;&amp;amp;amp;(Ee.flags|=2048,Bs(9,ci.bind(null,_,f),{destroy:void 0},null)),[l,A,r]}function ci(r,l){r.action=l}function fi(r){var l=V(),f=Je;if(f!==null)return Bi(l,f,r);V(),l=l.memoizedState,f=V();var p=f.queue.dispatch;return f.memoizedState=r,[l,p,!1]}function Bs(r,l,f,p){return r={tag:r,create:l,inst:f,deps:p,next:null},l=Ee.updateQueue,l===null&amp;amp;amp;&amp;amp;amp;(l=JS(),Ee.updateQueue=l),f=l.lastEffect,f===null?l.lastEffect=r.next=r:(p=f.next,f.next=r,r.next=p,l.lastEffect=r),r}function Ps(){return V().memoizedState}function Zg(r,l,f,p){var _=N();Ee.flags|=r,_.memoizedState=Bs(1|l,f,{destroy:void 0},p===void 0?null:p)}function jg(r,l,f,p){var _=V();p=p===void 0?null:p;var A=_.memoizedState.inst;Je!==null&amp;amp;amp;&amp;amp;amp;p!==null&amp;amp;amp;&amp;amp;amp;Zu(p,Je.memoizedState.deps)?_.memoizedState=Bs(l,f,A,p):(Ee.flags|=r,_.memoizedState=Bs(1|l,f,A,p))}function OA(r,l){Zg(8390656,8,r,l)}function Gx(r,l){jg(2048,8,r,l)}function LA(r,l){return jg(4,2,r,l)}function zA(r,l){return jg(4,4,r,l)}function BA(r,l){if(typeof l==&amp;amp;quot;function&amp;amp;quot;){r=r();var f=l(r);return function(){typeof f==&amp;amp;quot;function&amp;amp;quot;?f():l(null)}}if(l!=null)return r=r(),l.current=r,function(){l.current=null}}function PA(r,l,f){f=f!=null?f.concat([r]):null,jg(4,4,BA.bind(null,l,r),f)}function Xx(){}function IA(r,l){var f=V();l=l===void 0?null:l;var p=f.memoizedState;return l!==null&amp;amp;amp;&amp;amp;amp;Zu(l,p[1])?p[0]:(f.memoizedState=[r,l],r)}function HA(r,l){var f=V();l=l===void 0?null:l;var p=f.memoizedState;if(l!==null&amp;amp;amp;&amp;amp;amp;Zu(l,p[1]))return p[0];if(p=r(),wl){et(!0);try{r()}finally{et(!1)}}return f.memoizedState=[p,l],p}function qx(r,l,f){return f===void 0||(mo&amp;amp;amp;1073741824)!==0?r.memoizedState=l:(r.memoizedState=f,r=z2(),Ee.lanes|=r,vo|=r,f)}function FA(r,l,f,p){return va(f,l)?f:pc.current!==null?(r=qx(r,f,p),va(r,l)||(Jn=!0),r):(mo&amp;amp;amp;42)===0?(Jn=!0,r.memoizedState=f):(r=z2(),Ee.lanes|=r,vo|=r,l)}function VA(r,l,f,p,_){var A=Tl();Qi(A!==0&amp;amp;amp;&amp;amp;amp;8&amp;amp;gt;A?A:8);var L=pe.T,F={};pe.T=F,Wx(r,!1,l,f);try{var W=_(),ot=pe.S;if(ot!==null&amp;amp;amp;&amp;amp;amp;ot(F,W),W!==null&amp;amp;amp;&amp;amp;amp;typeof W==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof W.then==&amp;amp;quot;function&amp;amp;quot;){var At=jt(W,p);Gh(r,l,At,da(r))}else Gh(r,l,p,da(r))}catch(Pt){Gh(r,l,{then:function(){},status:&amp;amp;quot;rejected&amp;amp;quot;,reason:Pt},da())}finally{Qi(A),pe.T=L}}function GA(r){var l=r.memoizedState;if(l!==null)return l;l={memoizedState:nc,baseState:nc,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:yt,lastRenderedState:nc},next:null};var f={};return l.next={memoizedState:f,baseState:f,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:yt,lastRenderedState:f},next:null},r.memoizedState=l,r=r.alternate,r!==null&amp;amp;amp;&amp;amp;amp;(r.memoizedState=l),l}function Yx(){return Si(Al)}function XA(){return V().memoizedState}function qA(){return V().memoizedState}function vz(r){for(var l=r.return;l!==null;){switch(l.tag){case 24:case 3:var f=da();r=Ft(f);var p=vt(l,r,f);p!==null&amp;amp;amp;&amp;amp;amp;(Pi(p,l,f),Ot(p,l,f)),l={cache:sS()},r.payload=l;return}l=l.return}}function yz(r,l,f){var p=da();f={lane:p,revertLane:0,action:f,hasEagerState:!1,eagerState:null,next:null},Qg(r)?WA(l,f):(f=rt(r,l,f,p),f!==null&amp;amp;amp;&amp;amp;amp;(Pi(f,r,p),kA(f,l,p)))}function YA(r,l,f){var p=da();Gh(r,l,f,p)}function Gh(r,l,f,p){var _={lane:p,revertLane:0,action:f,hasEagerState:!1,eagerState:null,next:null};if(Qg(r))WA(l,_);else{var A=r.alternate;if(r.lanes===0&amp;amp;amp;&amp;amp;amp;(A===null||A.lanes===0)&amp;amp;amp;&amp;amp;amp;(A=l.lastRenderedReducer,A!==null))try{var L=l.lastRenderedState,F=A(L,f);if(_.hasEagerState=!0,_.eagerState=F,va(F,L))return ht(r,l,_,0),un===null&amp;amp;amp;&amp;amp;amp;H(),!1}catch{}finally{}if(f=rt(r,l,_,p),f!==null)return Pi(f,r,p),kA(f,l,p),!0}return!1}function Wx(r,l,f,p){if(p={lane:2,revertLane:nt(),action:p,hasEagerState:!1,eagerState:null,next:null},Qg(r)){if(l)throw Error(i(479))}else l=rt(r,f,p,2),l!==null&amp;amp;amp;&amp;amp;amp;Pi(l,r,2)}function Qg(r){var l=r.alternate;return r===Ee||l!==null&amp;amp;amp;&amp;amp;amp;l===Ee}function WA(r,l){mc=_0=!0;var f=r.pending;f===null?l.next=l:(l.next=f.next,f.next=l),r.pending=l}function kA(r,l,f){if((f&amp;amp;amp;4194176)!==0){var p=l.lanes;p&amp;amp;amp;=r.pendingLanes,f|=p,l.lanes=f,X(r,f)}}function kx(r,l,f,p){l=r.memoizedState,f=f(p,l),f=f==null?l:wS({},l,f),r.memoizedState=f,r.lanes===0&amp;amp;amp;&amp;amp;amp;(r.updateQueue.baseState=f)}function ZA(r,l,f,p,_,A,L){return r=r.stateNode,typeof r.shouldComponentUpdate==&amp;amp;quot;function&amp;amp;quot;?r.shouldComponentUpdate(p,A,L):l.prototype&amp;amp;amp;&amp;amp;amp;l.prototype.isPureReactComponent?!Mt(f,p)||!Mt(_,A):!0}function jA(r,l,f,p){r=l.state,typeof l.componentWillReceiveProps==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;l.componentWillReceiveProps(f,p),typeof l.UNSAFE_componentWillReceiveProps==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;l.UNSAFE_componentWillReceiveProps(f,p),l.state!==r&amp;amp;amp;&amp;amp;amp;$S.enqueueReplaceState(l,l.state,null)}function _l(r,l){var f=l;if(&amp;amp;quot;ref&amp;amp;quot;in l){f={};for(var p in l)p!==&amp;amp;quot;ref&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(f[p]=l[p])}if(r=r.defaultProps){f===l&amp;amp;amp;&amp;amp;amp;(f=wS({},f));for(var _ in r)f[_]===void 0&amp;amp;amp;&amp;amp;amp;(f[_]=r[_])}return f}function Kg(r,l){try{var f=r.onUncaughtError;f(l.value,{componentStack:l.stack})}catch(p){setTimeout(function(){throw p})}}function QA(r,l,f){try{var p=r.onCaughtError;p(f.value,{componentStack:f.stack,errorBoundary:l.tag===1?l.stateNode:null})}catch(_){setTimeout(function(){throw _})}}function Zx(r,l,f){return f=Ft(f),f.tag=3,f.payload={element:null},f.callback=function(){Kg(r,l)},f}function KA(r){return r=Ft(r),r.tag=3,r}function JA(r,l,f,p){var _=f.type.getDerivedStateFromError;if(typeof _==&amp;amp;quot;function&amp;amp;quot;){var A=p.value;r.payload=function(){return _(A)},r.callback=function(){QA(l,f,p)}}var L=f.stateNode;L!==null&amp;amp;amp;&amp;amp;amp;typeof L.componentDidCatch==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r.callback=function(){QA(l,f,p),typeof _!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(yo===null?yo=new Set([this]):yo.add(this));var F=p.stack;this.componentDidCatch(p.value,{componentStack:F!==null?F:&amp;amp;quot;&amp;amp;quot;})})}function _z(r,l,f,p,_){if(f.flags|=32768,p!==null&amp;amp;amp;&amp;amp;amp;typeof p==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof p.then==&amp;amp;quot;function&amp;amp;quot;){if(l=f.alternate,l!==null&amp;amp;amp;&amp;amp;amp;qh(l,f,_,!0),f=Wa.current,f!==null){switch(f.tag){case 13:return Hs===null?MS():f.alternate===null&amp;amp;amp;&amp;amp;amp;Rn===0&amp;amp;amp;&amp;amp;amp;(Rn=3),f.flags&amp;amp;amp;=-257,f.flags|=65536,f.lanes=_,p===v0?f.flags|=16384:(l=f.updateQueue,l===null?f.updateQueue=new Set([p]):l.add(p),bS(r,p,_)),!1;case 22:return f.flags|=65536,p===v0?f.flags|=16384:(l=f.updateQueue,l===null?(l={transitions:null,markerInstances:null,retryQueue:new Set([p])},f.updateQueue=l):(f=l.retryQueue,f===null?l.retryQueue=new Set([p]):f.add(p)),bS(r,p,_)),!1}throw Error(i(435,f.tag))}return bS(r,p,_),MS(),!1}if(ze)return l=Wa.current,l!==null?((l.flags&amp;amp;amp;65536)===0&amp;amp;amp;&amp;amp;amp;(l.flags|=256),l.flags|=65536,l.lanes=_,p!==YS&amp;amp;amp;&amp;amp;amp;(r=Error(i(422),{cause:p}),re(K(r,f)))):(p!==YS&amp;amp;amp;&amp;amp;amp;(l=Error(i(423),{cause:p}),re(K(l,f))),r=r.current.alternate,r.flags|=65536,_&amp;amp;amp;=-_,r.lanes|=_,p=K(p,f),_=Zx(r.stateNode,p,_),ne(r,_),Rn!==4&amp;amp;amp;&amp;amp;amp;(Rn=2)),!1;var A=Error(i(520),{cause:p});if(A=K(A,f),rd===null?rd=[A]:rd.push(A),Rn!==4&amp;amp;amp;&amp;amp;amp;(Rn=2),l===null)return!0;p=K(p,f),f=l;do{switch(f.tag){case 3:return f.flags|=65536,r=_&amp;amp;amp;-_,f.lanes|=r,r=Zx(f.stateNode,p,r),ne(f,r),!1;case 1:if(l=f.type,A=f.stateNode,(f.flags&amp;amp;amp;128)===0&amp;amp;amp;&amp;amp;amp;(typeof l.getDerivedStateFromError==&amp;amp;quot;function&amp;amp;quot;||A!==null&amp;amp;amp;&amp;amp;amp;typeof A.componentDidCatch==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(yo===null||!yo.has(A))))return f.flags|=65536,_&amp;amp;amp;=-_,f.lanes|=_,_=KA(_),JA(_,r,f,p),ne(f,_),!1}f=f.return}while(f!==null);return!1}function hi(r,l,f,p){l.child=r===null?LR(l,null,f,p):Cl(l,r.child,f,p)}function $A(r,l,f,p,_){f=f.render;var A=l.ref;if(&amp;amp;quot;ref&amp;amp;quot;in p){var L={};for(var F in p)F!==&amp;amp;quot;ref&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(L[F]=p[F])}else L=p;return xl(l),p=ju(r,l,f,L,A,_),F=Hh(),r!==null&amp;amp;amp;&amp;amp;amp;!Jn?(Fh(r,l,_),fr(r,l,_)):(ze&amp;amp;amp;&amp;amp;amp;F&amp;amp;amp;&amp;amp;amp;xt(l),l.flags|=1,hi(r,l,p,_),l.child)}function t2(r,l,f,p,_){if(r===null){var A=f.type;return typeof A==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!TS(A)&amp;amp;amp;&amp;amp;amp;A.defaultProps===void 0&amp;amp;amp;&amp;amp;amp;f.compare===null?(l.tag=15,l.type=A,e2(r,l,A,p,_)):(r=s0(f.type,null,p,l,l.mode,_),r.ref=l.ref,r.return=l,l.child=r)}if(A=r.child,!nS(r,_)){var L=A.memoizedProps;if(f=f.compare,f=f!==null?f:Mt,f(L,p)&amp;amp;amp;&amp;amp;amp;r.ref===l.ref)return fr(r,l,_)}return l.flags|=1,r=lo(A,p),r.ref=l.ref,r.return=l,l.child=r}function e2(r,l,f,p,_){if(r!==null){var A=r.memoizedProps;if(Mt(A,p)&amp;amp;amp;&amp;amp;amp;r.ref===l.ref)if(Jn=!1,l.pendingProps=p=A,nS(r,_))(r.flags&amp;amp;amp;131072)!==0&amp;amp;amp;&amp;amp;amp;(Jn=!0);else return l.lanes=r.lanes,fr(r,l,_)}return jx(r,l,f,p,_)}function n2(r,l,f){var p=l.pendingProps,_=p.children,A=(l.stateNode._pendingVisibility&amp;amp;amp;2)!==0,L=r!==null?r.memoizedState:null;if(Xh(r,l),p.mode===&amp;amp;quot;hidden&amp;amp;quot;||A){if((l.flags&amp;amp;amp;128)!==0){if(p=L!==null?L.baseLanes|f:f,r!==null){for(_=l.child=r.child,A=0;_!==null;)A=A|_.lanes|_.childLanes,_=_.sibling;l.childLanes=A&amp;amp;amp;~p}else l.childLanes=0,l.child=null;return i2(r,l,p,f)}if((f&amp;amp;amp;536870912)!==0)l.memoizedState={baseLanes:0,cachePool:null},r!==null&amp;amp;amp;&amp;amp;amp;t0(l,L!==null?L.cachePool:null),L!==null?ua(l,L):ku(),Ih(l);else return l.lanes=l.childLanes=536870912,i2(r,l,L!==null?L.baseLanes|f:f,f)}else L!==null?(t0(l,L.cachePool),ua(l,L),hs(l),l.memoizedState=null):(r!==null&amp;amp;amp;&amp;amp;amp;t0(l,null),ku(),hs(l));return hi(r,l,_,f),l.child}function i2(r,l,f,p){var _=rS();return _=_===null?null:{parent:mr?Tn._currentValue:Tn._currentValue2,pool:_},l.memoizedState={baseLanes:f,cachePool:_},r!==null&amp;amp;amp;&amp;amp;amp;t0(l,null),ku(),Ih(l),r!==null&amp;amp;amp;&amp;amp;amp;qh(r,l,p,!0),null}function Xh(r,l){var f=l.ref;if(f===null)r!==null&amp;amp;amp;&amp;amp;amp;r.ref!==null&amp;amp;amp;&amp;amp;amp;(l.flags|=2097664);else{if(typeof f!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof f!=&amp;amp;quot;object&amp;amp;quot;)throw Error(i(284));(r===null||r.ref!==f)&amp;amp;amp;&amp;amp;amp;(l.flags|=2097664)}}function jx(r,l,f,p,_){return xl(l),f=ju(r,l,f,p,void 0,_),p=Hh(),r!==null&amp;amp;amp;&amp;amp;amp;!Jn?(Fh(r,l,_),fr(r,l,_)):(ze&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;xt(l),l.flags|=1,hi(r,l,f,_),l.child)}function a2(r,l,f,p,_,A){return xl(l),l.updateQueue=null,f=kg(l,p,f,_),Wg(r),p=Hh(),r!==null&amp;amp;amp;&amp;amp;amp;!Jn?(Fh(r,l,A),fr(r,l,A)):(ze&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;xt(l),l.flags|=1,hi(r,l,f,A),l.child)}function s2(r,l,f,p,_){if(xl(l),l.stateNode===null){var A=ac,L=f.contextType;typeof L==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;L!==null&amp;amp;amp;&amp;amp;amp;(A=Si(L)),A=new f(p,A),l.memoizedState=A.state!==null&amp;amp;amp;&amp;amp;amp;A.state!==void 0?A.state:null,A.updater=$S,l.stateNode=A,A._reactInternals=l,A=l.stateNode,A.props=p,A.state=l.memoizedState,A.refs={},Tt(l),L=f.contextType,A.context=typeof L==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;L!==null?Si(L):ac,A.state=l.memoizedState,L=f.getDerivedStateFromProps,typeof L==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(kx(l,f,L,p),A.state=l.memoizedState),typeof f.getDerivedStateFromProps==&amp;amp;quot;function&amp;amp;quot;||typeof A.getSnapshotBeforeUpdate==&amp;amp;quot;function&amp;amp;quot;||typeof A.UNSAFE_componentWillMount!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof A.componentWillMount!=&amp;amp;quot;function&amp;amp;quot;||(L=A.state,typeof A.componentWillMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;A.componentWillMount(),typeof A.UNSAFE_componentWillMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;A.UNSAFE_componentWillMount(),L!==A.state&amp;amp;amp;&amp;amp;amp;$S.enqueueReplaceState(A,A.state,null),Nt(l,p,A,_),kt(),A.state=l.memoizedState),typeof A.componentDidMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l.flags|=4194308),p=!0}else if(r===null){A=l.stateNode;var F=l.memoizedProps,W=_l(f,F);A.props=W;var ot=A.context,At=f.contextType;L=ac,typeof At==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;At!==null&amp;amp;amp;&amp;amp;amp;(L=Si(At));var Pt=f.getDerivedStateFromProps;At=typeof Pt==&amp;amp;quot;function&amp;amp;quot;||typeof A.getSnapshotBeforeUpdate==&amp;amp;quot;function&amp;amp;quot;,F=l.pendingProps!==F,At||typeof A.UNSAFE_componentWillReceiveProps!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof A.componentWillReceiveProps!=&amp;amp;quot;function&amp;amp;quot;||(F||ot!==L)&amp;amp;amp;&amp;amp;amp;jA(l,A,p,L),po=!1;var Ht=l.memoizedState;A.state=Ht,Nt(l,p,A,_),kt(),ot=l.memoizedState,F||Ht!==ot||po?(typeof Pt==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(kx(l,f,Pt,p),ot=l.memoizedState),(W=po||ZA(l,f,W,p,Ht,ot,L))?(At||typeof A.UNSAFE_componentWillMount!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof A.componentWillMount!=&amp;amp;quot;function&amp;amp;quot;||(typeof A.componentWillMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;A.componentWillMount(),typeof A.UNSAFE_componentWillMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;A.UNSAFE_componentWillMount()),typeof A.componentDidMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l.flags|=4194308)):(typeof A.componentDidMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l.flags|=4194308),l.memoizedProps=p,l.memoizedState=ot),A.props=p,A.state=ot,A.context=L,p=W):(typeof A.componentDidMount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l.flags|=4194308),p=!1)}else{A=l.stateNode,Wt(r,l),L=l.memoizedProps,At=_l(f,L),A.props=At,Pt=l.pendingProps,Ht=A.context,ot=f.contextType,W=ac,typeof ot==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;ot!==null&amp;amp;amp;&amp;amp;amp;(W=Si(ot)),F=f.getDerivedStateFromProps,(ot=typeof F==&amp;amp;quot;function&amp;amp;quot;||typeof A.getSnapshotBeforeUpdate==&amp;amp;quot;function&amp;amp;quot;)||typeof A.UNSAFE_componentWillReceiveProps!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof A.componentWillReceiveProps!=&amp;amp;quot;function&amp;amp;quot;||(L!==Pt||Ht!==W)&amp;amp;amp;&amp;amp;amp;jA(l,A,p,W),po=!1,Ht=l.memoizedState,A.state=Ht,Nt(l,p,A,_),kt();var ye=l.memoizedState;L!==Pt||Ht!==ye||po||r!==null&amp;amp;amp;&amp;amp;amp;r.dependencies!==null&amp;amp;amp;&amp;amp;amp;Jg(r.dependencies)?(typeof F==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(kx(l,f,F,p),ye=l.memoizedState),(At=po||ZA(l,f,At,p,Ht,ye,W)||r!==null&amp;amp;amp;&amp;amp;amp;r.dependencies!==null&amp;amp;amp;&amp;amp;amp;Jg(r.dependencies))?(ot||typeof A.UNSAFE_componentWillUpdate!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof A.componentWillUpdate!=&amp;amp;quot;function&amp;amp;quot;||(typeof A.componentWillUpdate==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;A.componentWillUpdate(p,ye,W),typeof A.UNSAFE_componentWillUpdate==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;A.UNSAFE_componentWillUpdate(p,ye,W)),typeof A.componentDidUpdate==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l.flags|=4),typeof A.getSnapshotBeforeUpdate==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l.flags|=1024)):(typeof A.componentDidUpdate!=&amp;amp;quot;function&amp;amp;quot;||L===r.memoizedProps&amp;amp;amp;&amp;amp;amp;Ht===r.memoizedState||(l.flags|=4),typeof A.getSnapshotBeforeUpdate!=&amp;amp;quot;function&amp;amp;quot;||L===r.memoizedProps&amp;amp;amp;&amp;amp;amp;Ht===r.memoizedState||(l.flags|=1024),l.memoizedProps=p,l.memoizedState=ye),A.props=p,A.state=ye,A.context=W,p=At):(typeof A.componentDidUpdate!=&amp;amp;quot;function&amp;amp;quot;||L===r.memoizedProps&amp;amp;amp;&amp;amp;amp;Ht===r.memoizedState||(l.flags|=4),typeof A.getSnapshotBeforeUpdate!=&amp;amp;quot;function&amp;amp;quot;||L===r.memoizedProps&amp;amp;amp;&amp;amp;amp;Ht===r.memoizedState||(l.flags|=1024),p=!1)}return A=p,Xh(r,l),p=(l.flags&amp;amp;amp;128)!==0,A||p?(A=l.stateNode,f=p&amp;amp;amp;&amp;amp;amp;typeof f.getDerivedStateFromError!=&amp;amp;quot;function&amp;amp;quot;?null:A.render(),l.flags|=1,r!==null&amp;amp;amp;&amp;amp;amp;p?(l.child=Cl(l,r.child,null,_),l.child=Cl(l,null,f,_)):hi(r,l,f,_),l.memoizedState=A.state,r=l.child):r=fr(r,l,_),r}function r2(r,l,f,p){return ke(),l.flags|=256,hi(r,l,f,p),l.child}function Qx(r){return{baseLanes:r,cachePool:h2()}}function Kx(r,l,f){return r=r!==null?r.childLanes&amp;amp;amp;~f:0,l&amp;amp;amp;&amp;amp;amp;(r|=ka),r}function o2(r,l,f){var p=l.pendingProps,_=!1,A=(l.flags&amp;amp;amp;128)!==0,L;if((L=A)||(L=r!==null&amp;amp;amp;&amp;amp;amp;r.memoizedState===null?!1:(qn.current&amp;amp;amp;2)!==0),L&amp;amp;amp;&amp;amp;amp;(_=!0,l.flags&amp;amp;amp;=-129),L=(l.flags&amp;amp;amp;32)!==0,l.flags&amp;amp;amp;=-33,r===null){if(ze){if(_?Fa(l):hs(l),ze){var F=bi,W;(W=F)&amp;amp;amp;&amp;amp;amp;(F=BB(F,Is),F!==null?(l.memoizedState={dehydrated:F,treeContext:Rl!==null?{id:gr,overflow:vr}:null,retryLane:536870912},W=t(18,null,null,0),W.stateNode=F,W.return=l,l.child=W,Ii=l,bi=null,W=!0):W=!1),W||bt(l)}if(F=l.memoizedState,F!==null&amp;amp;amp;&amp;amp;amp;(F=F.dehydrated,F!==null))return FS(F)?l.lanes=16:l.lanes=536870912,null;Zi(l)}return F=p.children,p=p.fallback,_?(hs(l),_=l.mode,F=$x({mode:&amp;amp;quot;hidden&amp;amp;quot;,children:F},_),p=bl(p,_,f,null),F.return=l,p.return=l,F.sibling=p,l.child=F,_=l.child,_.memoizedState=Qx(f),_.childLanes=Kx(r,L,f),l.memoizedState=tM,p):(Fa(l),Jx(l,F))}if(W=r.memoizedState,W!==null&amp;amp;amp;&amp;amp;amp;(F=W.dehydrated,F!==null)){if(A)l.flags&amp;amp;amp;256?(Fa(l),l.flags&amp;amp;amp;=-257,l=tS(r,l,f)):l.memoizedState!==null?(hs(l),l.child=r.child,l.flags|=128,l=null):(hs(l),_=p.fallback,F=l.mode,p=$x({mode:&amp;amp;quot;visible&amp;amp;quot;,children:p.children},F),_=bl(_,F,f,null),_.flags|=2,p.return=l,_.return=l,p.sibling=_,l.child=p,Cl(l,r.child,null,f),p=l.child,p.memoizedState=Qx(f),p.childLanes=Kx(r,L,f),l.memoizedState=tM,l=_);else if(Fa(l),FS(F))L=CB(F).digest,p=Error(i(419)),p.stack=&amp;amp;quot;&amp;amp;quot;,p.digest=L,re({value:p,source:null,stack:null}),l=tS(r,l,f);else if(Jn||qh(r,l,f,!1),L=(f&amp;amp;amp;r.childLanes)!==0,Jn||L){if(L=un,L!==null){if(p=f&amp;amp;amp;-f,(p&amp;amp;amp;42)!==0)p=1;else switch(p){case 2:p=1;break;case 8:p=4;break;case 32:p=16;break;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:p=64;break;case 268435456:p=134217728;break;default:p=0}if(p=(p&amp;amp;amp;(L.suspendedLanes|f))!==0?0:p,p!==0&amp;amp;amp;&amp;amp;amp;p!==W.retryLane)throw W.retryLane=p,pt(r,p),Pi(L,r,p),BR}HS(F)||MS(),l=tS(r,l,f)}else HS(F)?(l.flags|=128,l.child=r.child,l=Uz.bind(null,r),wB(F,l),l=null):(r=W.treeContext,Va&amp;amp;amp;&amp;amp;amp;(bi=OB(F),Ii=l,ze=!0,ms=null,Is=!1,r!==null&amp;amp;amp;&amp;amp;amp;(Xa[qa++]=gr,Xa[qa++]=vr,Xa[qa++]=Rl,gr=r.id,vr=r.overflow,Rl=l)),l=Jx(l,p.children),l.flags|=4096);return l}return _?(hs(l),_=p.fallback,F=l.mode,W=r.child,A=W.sibling,p=lo(W,{mode:&amp;amp;quot;hidden&amp;amp;quot;,children:p.children}),p.subtreeFlags=W.subtreeFlags&amp;amp;amp;31457280,A!==null?_=lo(A,_):(_=bl(_,F,f,null),_.flags|=2),_.return=l,p.return=l,p.sibling=_,l.child=p,p=_,_=l.child,F=r.child.memoizedState,F===null?F=Qx(f):(W=F.cachePool,W!==null?(A=mr?Tn._currentValue:Tn._currentValue2,W=W.parent!==A?{parent:A,pool:A}:W):W=h2(),F={baseLanes:F.baseLanes|f,cachePool:W}),_.memoizedState=F,_.childLanes=Kx(r,L,f),l.memoizedState=tM,p):(Fa(l),f=r.child,r=f.sibling,f=lo(f,{mode:&amp;amp;quot;visible&amp;amp;quot;,children:p.children}),f.return=l,f.sibling=null,r!==null&amp;amp;amp;&amp;amp;amp;(L=l.deletions,L===null?(l.deletions=[r],l.flags|=16):L.push(r)),l.child=f,l.memoizedState=null,f)}function Jx(r,l){return l=$x({mode:&amp;amp;quot;visible&amp;amp;quot;,children:l},r.mode),l.return=r,r.child=l}function $x(r,l){return K2(r,l,0,null)}function tS(r,l,f){return Cl(l,r.child,null,f),r=Jx(l,l.pendingProps.children),r.flags|=2,l.memoizedState=null,r}function l2(r,l,f){r.lanes|=l;var p=r.alternate;p!==null&amp;amp;amp;&amp;amp;amp;(p.lanes|=l),iS(r.return,l,f)}function eS(r,l,f,p,_){var A=r.memoizedState;A===null?r.memoizedState={isBackwards:l,rendering:null,renderingStartTime:0,last:p,tail:f,tailMode:_}:(A.isBackwards=l,A.rendering=null,A.renderingStartTime=0,A.last=p,A.tail=f,A.tailMode=_)}function u2(r,l,f){var p=l.pendingProps,_=p.revealOrder,A=p.tail;if(hi(r,l,p.children,f),p=qn.current,(p&amp;amp;amp;2)!==0)p=p&amp;amp;amp;1|2,l.flags|=128;else{if(r!==null&amp;amp;amp;&amp;amp;amp;(r.flags&amp;amp;amp;128)!==0)t:for(r=l.child;r!==null;){if(r.tag===13)r.memoizedState!==null&amp;amp;amp;&amp;amp;amp;l2(r,f,l);else if(r.tag===19)l2(r,f,l);else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===l)break t;for(;r.sibling===null;){if(r.return===null||r.return===l)break t;r=r.return}r.sibling.return=r.return,r=r.sibling}p&amp;amp;amp;=1}switch(v(qn,p),_){case&amp;amp;quot;forwards&amp;amp;quot;:for(f=l.child,_=null;f!==null;)r=f.alternate,r!==null&amp;amp;amp;&amp;amp;amp;yl(r)===null&amp;amp;amp;&amp;amp;amp;(_=f),f=f.sibling;f=_,f===null?(_=l.child,l.child=null):(_=f.sibling,f.sibling=null),eS(l,!1,_,f,A);break;case&amp;amp;quot;backwards&amp;amp;quot;:for(f=null,_=l.child,l.child=null;_!==null;){if(r=_.alternate,r!==null&amp;amp;amp;&amp;amp;amp;yl(r)===null){l.child=_;break}r=_.sibling,_.sibling=f,f=_,_=r}eS(l,!0,f,null,A);break;case&amp;amp;quot;together&amp;amp;quot;:eS(l,!1,null,null,void 0);break;default:l.memoizedState=null}return l.child}function fr(r,l,f){if(r!==null&amp;amp;amp;&amp;amp;amp;(l.dependencies=r.dependencies),vo|=l.lanes,(f&amp;amp;amp;l.childLanes)===0)if(r!==null){if(qh(r,l,f,!1),(f&amp;amp;amp;l.childLanes)===0)return null}else return null;if(r!==null&amp;amp;amp;&amp;amp;amp;l.child!==r.child)throw Error(i(153));if(l.child!==null){for(r=l.child,f=lo(r,r.pendingProps),l.child=f,f.return=l;r.sibling!==null;)r=r.sibling,f=f.sibling=lo(r,r.pendingProps),f.return=l;f.sibling=null}return l.child}function nS(r,l){return(r.lanes&amp;amp;amp;l)!==0?!0:(r=r.dependencies,!!(r!==null&amp;amp;amp;&amp;amp;amp;Jg(r)))}function xz(r,l,f){switch(l.tag){case 3:se(l,l.stateNode.containerInfo),ao(l,Tn,r.memoizedState.cache),ke();break;case 27:case 5:it(l);break;case 4:se(l,l.stateNode.containerInfo);break;case 10:ao(l,l.type,l.memoizedProps.value);break;case 13:var p=l.memoizedState;if(p!==null)return p.dehydrated!==null?(Fa(l),l.flags|=128,null):(f&amp;amp;amp;l.child.childLanes)!==0?o2(r,l,f):(Fa(l),r=fr(r,l,f),r!==null?r.sibling:null);Fa(l);break;case 19:var _=(r.flags&amp;amp;amp;128)!==0;if(p=(f&amp;amp;amp;l.childLanes)!==0,p||(qh(r,l,f,!1),p=(f&amp;amp;amp;l.childLanes)!==0),_){if(p)return u2(r,l,f);l.flags|=128}if(_=l.memoizedState,_!==null&amp;amp;amp;&amp;amp;amp;(_.rendering=null,_.tail=null,_.lastEffect=null),v(qn,qn.current),p)break;return null;case 22:case 23:return l.lanes=0,n2(r,l,f);case 24:ao(l,Tn,r.memoizedState.cache)}return fr(r,l,f)}function c2(r,l,f){if(r!==null)if(r.memoizedProps!==l.pendingProps)Jn=!0;else{if(!nS(r,f)&amp;amp;amp;&amp;amp;amp;(l.flags&amp;amp;amp;128)===0)return Jn=!1,xz(r,l,f);Jn=(r.flags&amp;amp;amp;131072)!==0}else Jn=!1,ze&amp;amp;amp;&amp;amp;amp;(l.flags&amp;amp;amp;1048576)!==0&amp;amp;amp;&amp;amp;amp;Ut(l,d0,l.index);switch(l.lanes=0,l.tag){case 16:t:{r=l.pendingProps;var p=l.elementType,_=p._init;if(p=_(p._payload),l.type=p,typeof p==&amp;amp;quot;function&amp;amp;quot;)TS(p)?(r=_l(p,r),l.tag=1,l=s2(null,l,p,r,f)):(l.tag=0,l=jx(null,l,p,r,f));else{if(p!=null){if(_=p.$$typeof,_===US){l.tag=11,l=$A(null,l,p,r,f);break t}else if(_===LS){l.tag=14,l=t2(null,l,p,r,f);break t}}throw l=s(p)||p,Error(i(306,l,&amp;amp;quot;&amp;amp;quot;))}}return l;case 0:return jx(r,l,l.type,l.pendingProps,f);case 1:return p=l.type,_=_l(p,l.pendingProps),s2(r,l,p,_,f);case 3:t:{if(se(l,l.stateNode.containerInfo),r===null)throw Error(i(387));var A=l.pendingProps;_=l.memoizedState,p=_.element,Wt(r,l),Nt(l,A,null,f);var L=l.memoizedState;if(A=L.cache,ao(l,Tn,A),A!==_.cache&amp;amp;amp;&amp;amp;amp;aS(l,[Tn],f,!0),kt(),A=L.element,Va&amp;amp;amp;&amp;amp;amp;_.isDehydrated)if(_={element:A,isDehydrated:!1,cache:L.cache},l.updateQueue.baseState=_,l.memoizedState=_,l.flags&amp;amp;amp;256){l=r2(r,l,A,f);break t}else if(A!==p){p=K(Error(i(424)),l),re(p),l=r2(r,l,A,f);break t}else for(Va&amp;amp;amp;&amp;amp;amp;(bi=NB(l.stateNode.containerInfo),Ii=l,ze=!0,ms=null,Is=!0),f=LR(l,null,A,f),l.child=f;f;)f.flags=f.flags&amp;amp;amp;-3|4096,f=f.sibling;else{if(ke(),A===p){l=fr(r,l,f);break t}hi(r,l,A,f)}l=l.child}return l;case 26:if(Ga)return Xh(r,l),r===null?(f=bR(l.type,null,l.pendingProps,null))?l.memoizedState=f:ze||(l.stateNode=ZB(l.type,l.pendingProps,ho.current,l)):l.memoizedState=bR(l.type,r.memoizedProps,l.pendingProps,r.memoizedState),null;case 27:if(Ei)return it(l),r===null&amp;amp;amp;&amp;amp;amp;Ei&amp;amp;amp;&amp;amp;amp;ze&amp;amp;amp;&amp;amp;amp;(p=l.stateNode=DR(l.type,l.pendingProps,ho.current,di.current,!1),Ii=l,Is=!0,bi=SR(p)),p=l.pendingProps.children,r!==null||ze?hi(r,l,p,f):l.child=Cl(l,null,p,f),Xh(r,l),l.child;case 5:return r===null&amp;amp;amp;&amp;amp;amp;ze&amp;amp;amp;&amp;amp;amp;(YB(l.type,l.pendingProps,di.current),(_=p=bi)&amp;amp;amp;&amp;amp;amp;(p=LB(p,l.type,l.pendingProps,Is),p!==null?(l.stateNode=p,Ii=l,bi=SR(p),Is=!1,_=!0):_=!1),_||bt(l)),it(l),_=l.type,A=l.pendingProps,L=r!==null?r.memoizedProps:null,p=A.children,l0(_,A)?p=null:L!==null&amp;amp;amp;&amp;amp;amp;l0(_,L)&amp;amp;amp;&amp;amp;amp;(l.flags|=32),l.memoizedState!==null&amp;amp;amp;&amp;amp;amp;(_=ju(r,l,Vx,null,null,f),mr?Al._currentValue=_:Al._currentValue2=_),Xh(r,l),hi(r,l,p,f),l.child;case 6:return r===null&amp;amp;amp;&amp;amp;amp;ze&amp;amp;amp;&amp;amp;amp;(WB(l.pendingProps,di.current),(r=f=bi)&amp;amp;amp;&amp;amp;amp;(f=zB(f,l.pendingProps,Is),f!==null?(l.stateNode=f,Ii=l,bi=null,r=!0):r=!1),r||bt(l)),null;case 13:return o2(r,l,f);case 4:return se(l,l.stateNode.containerInfo),p=l.pendingProps,r===null?l.child=Cl(l,null,p,f):hi(r,l,p,f),l.child;case 11:return $A(r,l,l.type,l.pendingProps,f);case 7:return hi(r,l,l.pendingProps,f),l.child;case 8:return hi(r,l,l.pendingProps.children,f),l.child;case 12:return hi(r,l,l.pendingProps.children,f),l.child;case 10:return p=l.pendingProps,ao(l,l.type,p.value),hi(r,l,p.children,f),l.child;case 9:return _=l.type._context,p=l.pendingProps.children,xl(l),_=Si(_),p=p(_),l.flags|=1,hi(r,l,p,f),l.child;case 14:return t2(r,l,l.type,l.pendingProps,f);case 15:return e2(r,l,l.type,l.pendingProps,f);case 19:return u2(r,l,f);case 22:return n2(r,l,f);case 24:return xl(l),p=Si(Tn),r===null?(_=rS(),_===null&amp;amp;amp;&amp;amp;amp;(_=un,A=sS(),_.pooledCache=A,A.refCount++,A!==null&amp;amp;amp;&amp;amp;amp;(_.pooledCacheLanes|=f),_=A),l.memoizedState={parent:p,cache:_},Tt(l),ao(l,Tn,_)):((r.lanes&amp;amp;amp;f)!==0&amp;amp;amp;&amp;amp;amp;(Wt(r,l),Nt(l,null,null,f),kt()),_=r.memoizedState,A=l.memoizedState,_.parent!==p?(_={parent:p,cache:p},l.memoizedState=_,l.lanes===0&amp;amp;amp;&amp;amp;amp;(l.memoizedState=l.updateQueue.baseState=_),ao(l,Tn,p)):(p=A.cache,ao(l,Tn,p),p!==_.cache&amp;amp;amp;&amp;amp;amp;aS(l,[Tn],f,!0))),hi(r,l,l.pendingProps.children,f),l.child;case 29:throw l.pendingProps}throw Error(i(156,l.tag))}function ao(r,l,f){mr?(v(S0,l._currentValue),l._currentValue=f):(v(S0,l._currentValue2),l._currentValue2=f)}function hr(r){var l=S0.current;mr?r._currentValue=l:r._currentValue2=l,M(S0)}function iS(r,l,f){for(;r!==null;){var p=r.alternate;if((r.childLanes&amp;amp;amp;l)!==l?(r.childLanes|=l,p!==null&amp;amp;amp;&amp;amp;amp;(p.childLanes|=l)):p!==null&amp;amp;amp;&amp;amp;amp;(p.childLanes&amp;amp;amp;l)!==l&amp;amp;amp;&amp;amp;amp;(p.childLanes|=l),r===f)break;r=r.return}}function aS(r,l,f,p){var _=r.child;for(_!==null&amp;amp;amp;&amp;amp;amp;(_.return=r);_!==null;){var A=_.dependencies;if(A!==null){var L=_.child;A=A.firstContext;t:for(;A!==null;){var F=A;A=_;for(var W=0;W&amp;amp;lt;l.length;W++)if(F.context===l[W]){A.lanes|=f,F=A.alternate,F!==null&amp;amp;amp;&amp;amp;amp;(F.lanes|=f),iS(A.return,f,r),p||(L=null);break t}A=F.next}}else if(_.tag===18){if(L=_.return,L===null)throw Error(i(341));L.lanes|=f,A=L.alternate,A!==null&amp;amp;amp;&amp;amp;amp;(A.lanes|=f),iS(L,f,r),L=null}else L=_.child;if(L!==null)L.return=_;else for(L=_;L!==null;){if(L===r){L=null;break}if(_=L.sibling,_!==null){_.return=L.return,L=_;break}L=L.return}_=L}}function qh(r,l,f,p){r=null;for(var _=l,A=!1;_!==null;){if(!A){if((_.flags&amp;amp;amp;524288)!==0)A=!0;else if((_.flags&amp;amp;amp;262144)!==0)break}if(_.tag===10){var L=_.alternate;if(L===null)throw Error(i(387));if(L=L.memoizedProps,L!==null){var F=_.type;va(_.pendingProps.value,L.value)||(r!==null?r.push(F):r=[F])}}else if(_===p0.current){if(L=_.alternate,L===null)throw Error(i(387));L.memoizedState.memoizedState!==_.memoizedState.memoizedState&amp;amp;amp;&amp;amp;amp;(r!==null?r.push(Al):r=[Al])}_=_.return}r!==null&amp;amp;amp;&amp;amp;amp;aS(l,r,f,p),l.flags|=262144}function Jg(r){for(r=r.firstContext;r!==null;){var l=r.context;if(!va(mr?l._currentValue:l._currentValue2,r.memoizedValue))return!0;r=r.next}return!1}function xl(r){Nl=r,yr=null,r=r.dependencies,r!==null&amp;amp;amp;&amp;amp;amp;(r.firstContext=null)}function Si(r){return f2(Nl,r)}function $g(r,l){return Nl===null&amp;amp;amp;&amp;amp;amp;xl(r),f2(r,l)}function f2(r,l){var f=mr?l._currentValue:l._currentValue2;if(l={context:l,memoizedValue:f,next:null},yr===null){if(r===null)throw Error(i(308));yr=l,r.dependencies={lanes:0,firstContext:l},r.flags|=524288}else yr=yr.next=l;return f}function sS(){return{controller:new f4,data:new Map,refCount:0}}function Yh(r){r.refCount--,r.refCount===0&amp;amp;amp;&amp;amp;amp;h4(d4,function(){r.controller.abort()})}function rS(){var r=Ol.current;return r!==null?r:un.pooledCache}function t0(r,l){l===null?v(Ol,Ol.current):v(Ol,l.pool)}function h2(){var r=rS();return r===null?null:{parent:mr?Tn._currentValue:Tn._currentValue2,pool:r}}function ca(r){r.flags|=4}function d2(r,l){if(r!==null&amp;amp;amp;&amp;amp;amp;r.child===l.child)return!1;if((l.flags&amp;amp;amp;16)!==0)return!0;for(r=l.child;r!==null;){if((r.flags&amp;amp;amp;13878)!==0||(r.subtreeFlags&amp;amp;amp;13878)!==0)return!0;r=r.sibling}return!1}function oS(r,l,f,p){if(Mi)for(f=l.child;f!==null;){if(f.tag===5||f.tag===6)PS(r,f.stateNode);else if(!(f.tag===4||Ei&amp;amp;amp;&amp;amp;amp;f.tag===27)&amp;amp;amp;&amp;amp;amp;f.child!==null){f.child.return=f,f=f.child;continue}if(f===l)break;for(;f.sibling===null;){if(f.return===null||f.return===l)return;f=f.return}f.sibling.return=f.return,f=f.sibling}else if(fo)for(var _=l.child;_!==null;){if(_.tag===5){var A=_.stateNode;f&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;(A=yR(A,_.type,_.memoizedProps)),PS(r,A)}else if(_.tag===6)A=_.stateNode,f&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;(A=_R(A,_.memoizedProps)),PS(r,A);else if(_.tag!==4){if(_.tag===22&amp;amp;amp;&amp;amp;amp;_.memoizedState!==null)A=_.child,A!==null&amp;amp;amp;&amp;amp;amp;(A.return=_),oS(r,_,!0,!0);else if(_.child!==null){_.child.return=_,_=_.child;continue}}if(_===l)break;for(;_.sibling===null;){if(_.return===null||_.return===l)return;_=_.return}_.sibling.return=_.return,_=_.sibling}}function p2(r,l,f,p){if(fo)for(var _=l.child;_!==null;){if(_.tag===5){var A=_.stateNode;f&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;(A=yR(A,_.type,_.memoizedProps)),gR(r,A)}else if(_.tag===6)A=_.stateNode,f&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;(A=_R(A,_.memoizedProps)),gR(r,A);else if(_.tag!==4){if(_.tag===22&amp;amp;amp;&amp;amp;amp;_.memoizedState!==null)A=_.child,A!==null&amp;amp;amp;&amp;amp;amp;(A.return=_),p2(r,_,!(_.memoizedProps!==null&amp;amp;amp;&amp;amp;amp;_.memoizedProps.mode===&amp;amp;quot;manual&amp;amp;quot;),!0);else if(_.child!==null){_.child.return=_,_=_.child;continue}}if(_===l)break;for(;_.sibling===null;){if(_.return===null||_.return===l)return;_=_.return}_.sibling.return=_.return,_=_.sibling}}function m2(r,l){if(fo&amp;amp;amp;&amp;amp;amp;d2(r,l)){r=l.stateNode;var f=r.containerInfo,p=mR();p2(p,l,!1,!1),r.pendingChildren=p,ca(l),RB(f,p)}}function lS(r,l,f,p){if(Mi)r.memoizedProps!==p&amp;amp;amp;&amp;amp;amp;ca(l);else if(fo){var _=r.stateNode,A=r.memoizedProps;if((r=d2(r,l))||A!==p){var L=di.current;A=AB(_,f,A,p,!r,null),A===_?l.stateNode=_:(uR(A,f,p,L)&amp;amp;amp;&amp;amp;amp;ca(l),l.stateNode=A,r?oS(A,l,!1,!1):ca(l))}else l.stateNode=_}}function uS(r,l,f){if(tB(l,f)){if(r.flags|=16777216,!hR(l,f))if(F2())r.flags|=8192;else throw hc=v0,KS}else r.flags&amp;amp;amp;=-16777217}function g2(r,l){if(QB(l)){if(r.flags|=16777216,!wR(l))if(F2())r.flags|=8192;else throw hc=v0,KS}else r.flags&amp;amp;amp;=-16777217}function e0(r,l){l!==null&amp;amp;amp;&amp;amp;amp;(r.flags|=4),r.flags&amp;amp;amp;16384&amp;amp;amp;&amp;amp;amp;(l=r.tag!==22?z():536870912,r.lanes|=l,_c|=l)}function Wh(r,l){if(!ze)switch(r.tailMode){case&amp;amp;quot;hidden&amp;amp;quot;:l=r.tail;for(var f=null;l!==null;)l.alternate!==null&amp;amp;amp;&amp;amp;amp;(f=l),l=l.sibling;f===null?r.tail=null:f.sibling=null;break;case&amp;amp;quot;collapsed&amp;amp;quot;:f=r.tail;for(var p=null;f!==null;)f.alternate!==null&amp;amp;amp;&amp;amp;amp;(p=f),f=f.sibling;p===null?l||r.tail===null?r.tail=null:r.tail.sibling=null:p.sibling=null}}function xn(r){var l=r.alternate!==null&amp;amp;amp;&amp;amp;amp;r.alternate.child===r.child,f=0,p=0;if(l)for(var _=r.child;_!==null;)f|=_.lanes|_.childLanes,p|=_.subtreeFlags&amp;amp;amp;31457280,p|=_.flags&amp;amp;amp;31457280,_.return=r,_=_.sibling;else for(_=r.child;_!==null;)f|=_.lanes|_.childLanes,p|=_.subtreeFlags,p|=_.flags,_.return=r,_=_.sibling;return r.subtreeFlags|=p,r.childLanes=f,l}function Sz(r,l,f){var p=l.pendingProps;switch(It(l),l.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return xn(l),null;case 1:return xn(l),null;case 3:return f=l.stateNode,p=null,r!==null&amp;amp;amp;&amp;amp;amp;(p=r.memoizedState.cache),l.memoizedState.cache!==p&amp;amp;amp;&amp;amp;amp;(l.flags|=2048),hr(Tn),Qt(),f.pendingContext&amp;amp;amp;&amp;amp;amp;(f.context=f.pendingContext,f.pendingContext=null),(r===null||r.child===null)&amp;amp;amp;&amp;amp;amp;(te(l)?ca(l):r===null||r.memoizedState.isDehydrated&amp;amp;amp;&amp;amp;amp;(l.flags&amp;amp;amp;256)===0||(l.flags|=1024,ms!==null&amp;amp;amp;&amp;amp;amp;(xS(ms),ms=null))),m2(r,l),xn(l),null;case 26:if(Ga){f=l.type;var _=l.memoizedState;return r===null?(ca(l),_!==null?(xn(l),g2(l,_)):(xn(l),uS(l,f,p))):_?_!==r.memoizedState?(ca(l),xn(l),g2(l,_)):(xn(l),l.flags&amp;amp;amp;=-16777217):(Mi?r.memoizedProps!==p&amp;amp;amp;&amp;amp;amp;ca(l):lS(r,l,f,p),xn(l),uS(l,f,p)),null}case 27:if(Ei){if(wt(l),f=ho.current,_=l.type,r!==null&amp;amp;amp;&amp;amp;amp;l.stateNode!=null)Mi?r.memoizedProps!==p&amp;amp;amp;&amp;amp;amp;ca(l):lS(r,l,_,p);else{if(!p){if(l.stateNode===null)throw Error(i(166));return xn(l),null}r=di.current,te(l)?Jt(l,r):(r=DR(_,p,f,r,!0),l.stateNode=r,ca(l))}return xn(l),null}case 5:if(wt(l),f=l.type,r!==null&amp;amp;amp;&amp;amp;amp;l.stateNode!=null)lS(r,l,f,p);else{if(!p){if(l.stateNode===null)throw Error(i(166));return xn(l),null}r=di.current,te(l)?Jt(l,r):(_=kz(f,p,ho.current,r,l),oS(_,l,!1,!1),l.stateNode=_,uR(_,f,p,r)&amp;amp;amp;&amp;amp;amp;ca(l))}return xn(l),uS(l,l.type,l.pendingProps),null;case 6:if(r&amp;amp;amp;&amp;amp;amp;l.stateNode!=null)f=r.memoizedProps,Mi?f!==p&amp;amp;amp;&amp;amp;amp;ca(l):fo&amp;amp;amp;&amp;amp;amp;(f!==p?(l.stateNode=cR(p,ho.current,di.current,l),ca(l)):l.stateNode=r.stateNode);else{if(typeof p!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;l.stateNode===null)throw Error(i(166));if(r=ho.current,f=di.current,te(l)){if(!Va)throw Error(i(176));if(r=l.stateNode,f=l.memoizedProps,p=null,_=Ii,_!==null)switch(_.tag){case 27:case 5:p=_.memoizedProps}IB(r,f,l,p)||bt(l)}else l.stateNode=cR(p,r,f,l)}return xn(l),null;case 13:if(p=l.memoizedState,r===null||r.memoizedState!==null&amp;amp;amp;&amp;amp;amp;r.memoizedState.dehydrated!==null){if(_=te(l),p!==null&amp;amp;amp;&amp;amp;amp;p.dehydrated!==null){if(r===null){if(!_)throw Error(i(318));if(!Va)throw Error(i(344));if(_=l.memoizedState,_=_!==null?_.dehydrated:null,!_)throw Error(i(317));HB(_,l)}else ke(),(l.flags&amp;amp;amp;128)===0&amp;amp;amp;&amp;amp;amp;(l.memoizedState=null),l.flags|=4;xn(l),_=!1}else ms!==null&amp;amp;amp;&amp;amp;amp;(xS(ms),ms=null),_=!0;if(!_)return l.flags&amp;amp;amp;256?(Zi(l),l):(Zi(l),null)}if(Zi(l),(l.flags&amp;amp;amp;128)!==0)return l.lanes=f,l;if(f=p!==null,r=r!==null&amp;amp;amp;&amp;amp;amp;r.memoizedState!==null,f){p=l.child,_=null,p.alternate!==null&amp;amp;amp;&amp;amp;amp;p.alternate.memoizedState!==null&amp;amp;amp;&amp;amp;amp;p.alternate.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(_=p.alternate.memoizedState.cachePool.pool);var A=null;p.memoizedState!==null&amp;amp;amp;&amp;amp;amp;p.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(A=p.memoizedState.cachePool.pool),A!==_&amp;amp;amp;&amp;amp;amp;(p.flags|=2048)}return f!==r&amp;amp;amp;&amp;amp;amp;f&amp;amp;amp;&amp;amp;amp;(l.child.flags|=8192),e0(l,l.updateQueue),xn(l),null;case 4:return Qt(),m2(r,l),r===null&amp;amp;amp;&amp;amp;amp;Qz(l.stateNode.containerInfo),xn(l),null;case 10:return hr(l.type),xn(l),null;case 19:if(M(qn),_=l.memoizedState,_===null)return xn(l),null;if(p=(l.flags&amp;amp;amp;128)!==0,A=_.rendering,A===null)if(p)Wh(_,!1);else{if(Rn!==0||r!==null&amp;amp;amp;&amp;amp;amp;(r.flags&amp;amp;amp;128)!==0)for(r=l.child;r!==null;){if(A=yl(r),A!==null){for(l.flags|=128,Wh(_,!1),r=A.updateQueue,l.updateQueue=r,e0(l,r),l.subtreeFlags=0,r=f,f=l.child;f!==null;)Q2(f,r),f=f.sibling;return v(qn,qn.current&amp;amp;amp;1|2),l.child}r=r.sibling}_.tail!==null&amp;amp;amp;&amp;amp;amp;ps()&amp;amp;gt;od&amp;amp;amp;&amp;amp;amp;(l.flags|=128,p=!0,Wh(_,!1),l.lanes=4194304)}else{if(!p)if(r=yl(A),r!==null){if(l.flags|=128,p=!0,r=r.updateQueue,l.updateQueue=r,e0(l,r),Wh(_,!0),_.tail===null&amp;amp;amp;&amp;amp;amp;_.tailMode===&amp;amp;quot;hidden&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!A.alternate&amp;amp;amp;&amp;amp;amp;!ze)return xn(l),null}else 2*ps()-_.renderingStartTime&amp;amp;gt;od&amp;amp;amp;&amp;amp;amp;f!==536870912&amp;amp;amp;&amp;amp;amp;(l.flags|=128,p=!0,Wh(_,!1),l.lanes=4194304);_.isBackwards?(A.sibling=l.child,l.child=A):(r=_.last,r!==null?r.sibling=A:l.child=A,_.last=A)}return _.tail!==null?(l=_.tail,_.rendering=l,_.tail=l.sibling,_.renderingStartTime=ps(),l.sibling=null,r=qn.current,v(qn,p?r&amp;amp;amp;1|2:r&amp;amp;amp;1),l):(xn(l),null);case 22:case 23:return Zi(l),fs(),p=l.memoizedState!==null,r!==null?r.memoizedState!==null!==p&amp;amp;amp;&amp;amp;amp;(l.flags|=8192):p&amp;amp;amp;&amp;amp;amp;(l.flags|=8192),p?(f&amp;amp;amp;536870912)!==0&amp;amp;amp;&amp;amp;amp;(l.flags&amp;amp;amp;128)===0&amp;amp;amp;&amp;amp;amp;(xn(l),l.subtreeFlags&amp;amp;amp;6&amp;amp;amp;&amp;amp;amp;(l.flags|=8192)):xn(l),f=l.updateQueue,f!==null&amp;amp;amp;&amp;amp;amp;e0(l,f.retryQueue),f=null,r!==null&amp;amp;amp;&amp;amp;amp;r.memoizedState!==null&amp;amp;amp;&amp;amp;amp;r.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(f=r.memoizedState.cachePool.pool),p=null,l.memoizedState!==null&amp;amp;amp;&amp;amp;amp;l.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(p=l.memoizedState.cachePool.pool),p!==f&amp;amp;amp;&amp;amp;amp;(l.flags|=2048),r!==null&amp;amp;amp;&amp;amp;amp;M(Ol),null;case 24:return f=null,r!==null&amp;amp;amp;&amp;amp;amp;(f=r.memoizedState.cache),l.memoizedState.cache!==f&amp;amp;amp;&amp;amp;amp;(l.flags|=2048),hr(Tn),xn(l),null;case 25:return null}throw Error(i(156,l.tag))}function Mz(r,l){switch(It(l),l.tag){case 1:return r=l.flags,r&amp;amp;amp;65536?(l.flags=r&amp;amp;amp;-65537|128,l):null;case 3:return hr(Tn),Qt(),r=l.flags,(r&amp;amp;amp;65536)!==0&amp;amp;amp;&amp;amp;amp;(r&amp;amp;amp;128)===0?(l.flags=r&amp;amp;amp;-65537|128,l):null;case 26:case 27:case 5:return wt(l),null;case 13:if(Zi(l),r=l.memoizedState,r!==null&amp;amp;amp;&amp;amp;amp;r.dehydrated!==null){if(l.alternate===null)throw Error(i(340));ke()}return r=l.flags,r&amp;amp;amp;65536?(l.flags=r&amp;amp;amp;-65537|128,l):null;case 19:return M(qn),null;case 4:return Qt(),null;case 10:return hr(l.type),null;case 22:case 23:return Zi(l),fs(),r!==null&amp;amp;amp;&amp;amp;amp;M(Ol),r=l.flags,r&amp;amp;amp;65536?(l.flags=r&amp;amp;amp;-65537|128,l):null;case 24:return hr(Tn),null;case 25:return null;default:return null}}function v2(r,l){switch(It(l),l.tag){case 3:hr(Tn),Qt();break;case 26:case 27:case 5:wt(l);break;case 4:Qt();break;case 13:Zi(l);break;case 19:M(qn);break;case 10:hr(l.type);break;case 22:case 23:Zi(l),fs(),r!==null&amp;amp;amp;&amp;amp;amp;M(Ol);break;case 24:hr(Tn)}}function kh(r,l){try{var f=l.updateQueue,p=f!==null?f.lastEffect:null;if(p!==null){var _=p.next;f=_;do{if((f.tag&amp;amp;amp;r)===r){p=void 0;var A=f.create,L=f.inst;p=A(),L.destroy=p}f=f.next}while(f!==_)}}catch(F){je(l,l.return,F)}}function so(r,l,f){try{var p=l.updateQueue,_=p!==null?p.lastEffect:null;if(_!==null){var A=_.next;p=A;do{if((p.tag&amp;amp;amp;r)===r){var L=p.inst,F=L.destroy;if(F!==void 0){L.destroy=void 0,_=l;var W=f;try{F()}catch(ot){je(_,W,ot)}}}p=p.next}while(p!==A)}}catch(ot){je(l,l.return,ot)}}function y2(r){var l=r.updateQueue;if(l!==null){var f=r.stateNode;try{G(l,f)}catch(p){je(r,r.return,p)}}}function _2(r,l,f){f.props=_l(r.type,r.memoizedProps),f.state=r.memoizedState;try{f.componentWillUnmount()}catch(p){je(r,l,p)}}function Sl(r,l){try{var f=r.ref;if(f!==null){var p=r.stateNode;switch(r.tag){case 26:case 27:case 5:var _=Qh(p);break;default:_=p}typeof f==&amp;amp;quot;function&amp;amp;quot;?r.refCleanup=f(_):f.current=_}}catch(A){je(r,l,A)}}function fa(r,l){var f=r.ref,p=r.refCleanup;if(f!==null)if(typeof p==&amp;amp;quot;function&amp;amp;quot;)try{p()}catch(_){je(r,l,_)}finally{r.refCleanup=null,r=r.alternate,r!=null&amp;amp;amp;&amp;amp;amp;(r.refCleanup=null)}else if(typeof f==&amp;amp;quot;function&amp;amp;quot;)try{f(null)}catch(_){je(r,l,_)}else f.current=null}function x2(r){var l=r.type,f=r.memoizedProps,p=r.stateNode;try{mB(p,l,f,r)}catch(_){je(r,r.return,_)}}function S2(r,l,f){try{gB(r.stateNode,r.type,f,l,r)}catch(p){je(r,r.return,p)}}function M2(r){return r.tag===5||r.tag===3||(Ga?r.tag===26:!1)||(Ei?r.tag===27:!1)||r.tag===4}function cS(r){t:for(;;){for(;r.sibling===null;){if(r.return===null||M2(r.return))return null;r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&amp;amp;amp;&amp;amp;amp;r.tag!==6&amp;amp;amp;&amp;amp;amp;(!Ei||r.tag!==27)&amp;amp;amp;&amp;amp;amp;r.tag!==18;){if(r.flags&amp;amp;amp;2||r.child===null||r.tag===4)continue t;r.child.return=r,r=r.child}if(!(r.flags&amp;amp;amp;2))return r.stateNode}}function fS(r,l,f){var p=r.tag;if(p===5||p===6)r=r.stateNode,l?yB(f,r,l):dB(f,r);else if(!(p===4||Ei&amp;amp;amp;&amp;amp;amp;p===27)&amp;amp;amp;&amp;amp;amp;(r=r.child,r!==null))for(fS(r,l,f),r=r.sibling;r!==null;)fS(r,l,f),r=r.sibling}function n0(r,l,f){var p=r.tag;if(p===5||p===6)r=r.stateNode,l?vB(f,r,l):hB(f,r);else if(!(p===4||Ei&amp;amp;amp;&amp;amp;amp;p===27)&amp;amp;amp;&amp;amp;amp;(r=r.child,r!==null))for(n0(r,l,f),r=r.sibling;r!==null;)n0(r,l,f),r=r.sibling}function E2(r,l,f){r=r.containerInfo;try{vR(r,f)}catch(p){je(l,l.return,p)}}function Ez(r,l){for(Yz(r.containerInfo),$n=l;$n!==null;)if(r=$n,l=r.child,(r.subtreeFlags&amp;amp;amp;1028)!==0&amp;amp;amp;&amp;amp;amp;l!==null)l.return=r,$n=l;else for(;$n!==null;){r=$n;var f=r.alternate;switch(l=r.flags,r.tag){case 0:break;case 11:case 15:break;case 1:if((l&amp;amp;amp;1024)!==0&amp;amp;amp;&amp;amp;amp;f!==null){l=void 0;var p=r,_=f.memoizedProps;f=f.memoizedState;var A=p.stateNode;try{var L=_l(p.type,_,p.elementType===p.type);l=A.getSnapshotBeforeUpdate(L,f),A.__reactInternalSnapshotBeforeUpdate=l}catch(F){je(p,p.return,F)}}break;case 3:(l&amp;amp;amp;1024)!==0&amp;amp;amp;&amp;amp;amp;Mi&amp;amp;amp;&amp;amp;amp;TB(r.stateNode.containerInfo);break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((l&amp;amp;amp;1024)!==0)throw Error(i(163))}if(l=r.sibling,l!==null){l.return=r.return,$n=l;break}$n=r.return}return L=HR,HR=!1,L}function b2(r,l,f){var p=f.flags;switch(f.tag){case 0:case 11:case 15:dr(r,f),p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;kh(5,f);break;case 1:if(dr(r,f),p&amp;amp;amp;4)if(r=f.stateNode,l===null)try{r.componentDidMount()}catch(F){je(f,f.return,F)}else{var _=_l(f.type,l.memoizedProps);l=l.memoizedState;try{r.componentDidUpdate(_,l,r.__reactInternalSnapshotBeforeUpdate)}catch(F){je(f,f.return,F)}}p&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;y2(f),p&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;Sl(f,f.return);break;case 3:if(dr(r,f),p&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;(p=f.updateQueue,p!==null)){if(r=null,f.child!==null)switch(f.child.tag){case 27:case 5:r=Qh(f.child.stateNode);break;case 1:r=f.child.stateNode}try{G(p,r)}catch(F){je(f,f.return,F)}}break;case 26:if(Ga){dr(r,f),p&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;Sl(f,f.return);break}case 27:case 5:dr(r,f),l===null&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;x2(f),p&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;Sl(f,f.return);break;case 12:dr(r,f);break;case 13:dr(r,f),p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;A2(r,f);break;case 22:if(_=f.memoizedState!==null||_r,!_){l=l!==null&amp;amp;amp;&amp;amp;amp;l.memoizedState!==null||An;var A=_r,L=An;_r=_,(An=l)&amp;amp;amp;&amp;amp;amp;!L?ro(r,f,(f.subtreeFlags&amp;amp;amp;8772)!==0):dr(r,f),_r=A,An=L}p&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(f.memoizedProps.mode===&amp;amp;quot;manual&amp;amp;quot;?Sl(f,f.return):fa(f,f.return));break;default:dr(r,f)}}function T2(r){var l=r.alternate;l!==null&amp;amp;amp;&amp;amp;amp;(r.alternate=null,T2(l)),r.child=null,r.deletions=null,r.sibling=null,r.tag===5&amp;amp;amp;&amp;amp;amp;(l=r.stateNode,l!==null&amp;amp;amp;&amp;amp;amp;$z(l)),r.stateNode=null,r.return=null,r.dependencies=null,r.memoizedProps=null,r.memoizedState=null,r.pendingProps=null,r.stateNode=null,r.updateQueue=null}function ds(r,l,f){for(f=f.child;f!==null;)hS(r,l,f),f=f.sibling}function hS(r,l,f){if(ga&amp;amp;amp;&amp;amp;amp;typeof ga.onCommitFiberUnmount==&amp;amp;quot;function&amp;amp;quot;)try{ga.onCommitFiberUnmount($h,f)}catch{}switch(f.tag){case 26:if(Ga){An||fa(f,l),ds(r,l,f),f.memoizedState?AR(f.memoizedState):f.stateNode&amp;amp;amp;&amp;amp;amp;CR(f.stateNode);break}case 27:if(Ei){An||fa(f,l);var p=Pn,_=ya;Pn=f.stateNode,ds(r,l,f),t4(f.stateNode),Pn=p,ya=_;break}case 5:An||fa(f,l);case 6:if(Mi){if(p=Pn,_=ya,Pn=null,ds(r,l,f),Pn=p,ya=_,Pn!==null)if(ya)try{xB(Pn,f.stateNode)}catch(A){je(f,l,A)}else try{_B(Pn,f.stateNode)}catch(A){je(f,l,A)}}else ds(r,l,f);break;case 18:Mi&amp;amp;amp;&amp;amp;amp;Pn!==null&amp;amp;amp;&amp;amp;amp;(ya?qB(Pn,f.stateNode):XB(Pn,f.stateNode));break;case 4:Mi?(p=Pn,_=ya,Pn=f.stateNode.containerInfo,ya=!0,ds(r,l,f),Pn=p,ya=_):(fo&amp;amp;amp;&amp;amp;amp;E2(f.stateNode,f,mR()),ds(r,l,f));break;case 0:case 11:case 14:case 15:An||so(2,f,l),An||so(4,f,l),ds(r,l,f);break;case 1:An||(fa(f,l),p=f.stateNode,typeof p.componentWillUnmount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;_2(f,l,p)),ds(r,l,f);break;case 21:ds(r,l,f);break;case 22:An||fa(f,l),An=(p=An)||f.memoizedState!==null,ds(r,l,f),An=p;break;default:ds(r,l,f)}}function A2(r,l){if(Va&amp;amp;amp;&amp;amp;amp;l.memoizedState===null&amp;amp;amp;&amp;amp;amp;(r=l.alternate,r!==null&amp;amp;amp;&amp;amp;amp;(r=r.memoizedState,r!==null&amp;amp;amp;&amp;amp;amp;(r=r.dehydrated,r!==null))))try{GB(r)}catch(f){je(l,l.return,f)}}function bz(r){switch(r.tag){case 13:case 19:var l=r.stateNode;return l===null&amp;amp;amp;&amp;amp;amp;(l=r.stateNode=new IR),l;case 22:return r=r.stateNode,l=r._retryCache,l===null&amp;amp;amp;&amp;amp;amp;(l=r._retryCache=new IR),l;default:throw Error(i(435,r.tag))}}function dS(r,l){var f=bz(r);l.forEach(function(p){var _=Nz.bind(null,r,p);f.has(p)||(f.add(p),p.then(_,_))})}function ji(r,l){var f=l.deletions;if(f!==null)for(var p=0;p&amp;amp;lt;f.length;p++){var _=f[p],A=r,L=l;if(Mi){var F=L;t:for(;F!==null;){switch(F.tag){case 27:case 5:Pn=F.stateNode,ya=!1;break t;case 3:Pn=F.stateNode.containerInfo,ya=!0;break t;case 4:Pn=F.stateNode.containerInfo,ya=!0;break t}F=F.return}if(Pn===null)throw Error(i(160));hS(A,L,_),Pn=null,ya=!1}else hS(A,L,_);A=_.alternate,A!==null&amp;amp;amp;&amp;amp;amp;(A.return=null),_.return=null}if(l.subtreeFlags&amp;amp;amp;13878)for(l=l.child;l!==null;)R2(l,r),l=l.sibling}function R2(r,l){var f=r.alternate,p=r.flags;switch(r.tag){case 0:case 11:case 14:case 15:ji(l,r),ha(r),p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(so(3,r,r.return),kh(3,r),so(5,r,r.return));break;case 1:ji(l,r),ha(r),p&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(An||f===null||fa(f,f.return)),p&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;_r&amp;amp;amp;&amp;amp;amp;(r=r.updateQueue,r!==null&amp;amp;amp;&amp;amp;amp;(p=r.callbacks,p!==null&amp;amp;amp;&amp;amp;amp;(f=r.shared.hiddenCallbacks,r.shared.hiddenCallbacks=f===null?p:f.concat(p))));break;case 26:if(Ga){var _=gs;ji(l,r),ha(r),p&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(An||f===null||fa(f,f.return)),p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(p=f!==null?f.memoizedState:null,l=r.memoizedState,f===null?l===null?r.stateNode===null?r.stateNode=kB(_,r.type,r.memoizedProps,r):RR(_,r.type,r.stateNode):r.stateNode=TR(_,l,r.memoizedProps):p!==l?(p===null?f.stateNode!==null&amp;amp;amp;&amp;amp;amp;CR(f.stateNode):AR(p),l===null?RR(_,r.type,r.stateNode):TR(_,l,r.memoizedProps)):l===null&amp;amp;amp;&amp;amp;amp;r.stateNode!==null&amp;amp;amp;&amp;amp;amp;S2(r,r.memoizedProps,f.memoizedProps));break}case 27:if(Ei&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;r.alternate===null){_=r.stateNode;var A=r.memoizedProps;try{JB(_),$B(r.type,A,_,r)}catch(At){je(r,r.return,At)}}case 5:if(ji(l,r),ha(r),p&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(An||f===null||fa(f,f.return)),Mi){if(r.flags&amp;amp;amp;32){l=r.stateNode;try{pR(l)}catch(At){je(r,r.return,At)}}p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;r.stateNode!=null&amp;amp;amp;&amp;amp;amp;(l=r.memoizedProps,S2(r,l,f!==null?f.memoizedProps:l)),p&amp;amp;amp;1024&amp;amp;amp;&amp;amp;amp;(eM=!0)}break;case 6:if(ji(l,r),ha(r),p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;Mi){if(r.stateNode===null)throw Error(i(162));p=r.memoizedProps,f=f!==null?f.memoizedProps:p,l=r.stateNode;try{pB(l,f,p)}catch(At){je(r,r.return,At)}}break;case 3:if(Ga?(jB(),_=gs,gs=VS(l.containerInfo),ji(l,r),gs=_):ji(l,r),ha(r),p&amp;amp;amp;4){if(Mi&amp;amp;amp;&amp;amp;amp;Va&amp;amp;amp;&amp;amp;amp;f!==null&amp;amp;amp;&amp;amp;amp;f.memoizedState.isDehydrated)try{VB(l.containerInfo)}catch(At){je(r,r.return,At)}if(fo){p=l.containerInfo,f=l.pendingChildren;try{vR(p,f)}catch(At){je(r,r.return,At)}}}eM&amp;amp;amp;&amp;amp;amp;(eM=!1,C2(r));break;case 4:Ga?(f=gs,gs=VS(r.stateNode.containerInfo),ji(l,r),ha(r),gs=f):(ji(l,r),ha(r)),p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;fo&amp;amp;amp;&amp;amp;amp;E2(r.stateNode,r,r.stateNode.pendingChildren);break;case 12:ji(l,r),ha(r);break;case 13:ji(l,r),ha(r),r.child.flags&amp;amp;amp;8192&amp;amp;amp;&amp;amp;amp;r.memoizedState!==null!=(f!==null&amp;amp;amp;&amp;amp;amp;f.memoizedState!==null)&amp;amp;amp;&amp;amp;amp;(sM=ps()),p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(p=r.updateQueue,p!==null&amp;amp;amp;&amp;amp;amp;(r.updateQueue=null,dS(r,p)));break;case 22:p&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;(An||f===null||fa(f,f.return)),_=r.memoizedState!==null;var L=f!==null&amp;amp;amp;&amp;amp;amp;f.memoizedState!==null,F=_r,W=An;if(_r=F||_,An=W||L,ji(l,r),An=W,_r=F,ha(r),l=r.stateNode,l._current=r,l._visibility&amp;amp;amp;=-3,l._visibility|=l._pendingVisibility&amp;amp;amp;2,p&amp;amp;amp;8192&amp;amp;amp;&amp;amp;amp;(l._visibility=_?l._visibility&amp;amp;amp;-2:l._visibility|1,_&amp;amp;amp;&amp;amp;amp;(l=_r||An,f===null||L||l||Qu(r)),Mi&amp;amp;amp;&amp;amp;amp;(r.memoizedProps===null||r.memoizedProps.mode!==&amp;amp;quot;manual&amp;amp;quot;))){t:if(f=null,Mi)for(l=r;;){if(l.tag===5||Ga&amp;amp;amp;&amp;amp;amp;l.tag===26||Ei&amp;amp;amp;&amp;amp;amp;l.tag===27){if(f===null){L=f=l;try{A=L.stateNode,_?SB(A):EB(L.stateNode,L.memoizedProps)}catch(At){je(L,L.return,At)}}}else if(l.tag===6){if(f===null){L=l;try{var ot=L.stateNode;_?MB(ot):bB(ot,L.memoizedProps)}catch(At){je(L,L.return,At)}}}else if((l.tag!==22&amp;amp;amp;&amp;amp;amp;l.tag!==23||l.memoizedState===null||l===r)&amp;amp;amp;&amp;amp;amp;l.child!==null){l.child.return=l,l=l.child;continue}if(l===r)break t;for(;l.sibling===null;){if(l.return===null||l.return===r)break t;f===l&amp;amp;amp;&amp;amp;amp;(f=null),l=l.return}f===l&amp;amp;amp;&amp;amp;amp;(f=null),l.sibling.return=l.return,l=l.sibling}}p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(p=r.updateQueue,p!==null&amp;amp;amp;&amp;amp;amp;(f=p.retryQueue,f!==null&amp;amp;amp;&amp;amp;amp;(p.retryQueue=null,dS(r,f))));break;case 19:ji(l,r),ha(r),p&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(p=r.updateQueue,p!==null&amp;amp;amp;&amp;amp;amp;(r.updateQueue=null,dS(r,p)));break;case 21:break;default:ji(l,r),ha(r)}}function ha(r){var l=r.flags;if(l&amp;amp;amp;2){try{if(Mi&amp;amp;amp;&amp;amp;amp;(!Ei||r.tag!==27)){t:{for(var f=r.return;f!==null;){if(M2(f)){var p=f;break t}f=f.return}throw Error(i(160))}switch(p.tag){case 27:if(Ei){var _=p.stateNode,A=cS(r);n0(r,A,_);break}case 5:var L=p.stateNode;p.flags&amp;amp;amp;32&amp;amp;amp;&amp;amp;amp;(pR(L),p.flags&amp;amp;amp;=-33);var F=cS(r);n0(r,F,L);break;case 3:case 4:var W=p.stateNode.containerInfo,ot=cS(r);fS(r,ot,W);break;default:throw Error(i(161))}}}catch(At){je(r,r.return,At)}r.flags&amp;amp;amp;=-3}l&amp;amp;amp;4096&amp;amp;amp;&amp;amp;amp;(r.flags&amp;amp;amp;=-4097)}function C2(r){if(r.subtreeFlags&amp;amp;amp;1024)for(r=r.child;r!==null;){var l=r;C2(l),l.tag===5&amp;amp;amp;&amp;amp;amp;l.flags&amp;amp;amp;1024&amp;amp;amp;&amp;amp;amp;iB(l.stateNode),r=r.sibling}}function dr(r,l){if(l.subtreeFlags&amp;amp;amp;8772)for(l=l.child;l!==null;)b2(r,l.alternate,l),l=l.sibling}function Qu(r){for(r=r.child;r!==null;){var l=r;switch(l.tag){case 0:case 11:case 14:case 15:so(4,l,l.return),Qu(l);break;case 1:fa(l,l.return);var f=l.stateNode;typeof f.componentWillUnmount==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;_2(l,l.return,f),Qu(l);break;case 26:case 27:case 5:fa(l,l.return),Qu(l);break;case 22:fa(l,l.return),l.memoizedState===null&amp;amp;amp;&amp;amp;amp;Qu(l);break;default:Qu(l)}r=r.sibling}}function ro(r,l,f){for(f=f&amp;amp;amp;&amp;amp;amp;(l.subtreeFlags&amp;amp;amp;8772)!==0,l=l.child;l!==null;){var p=l.alternate,_=r,A=l,L=A.flags;switch(A.tag){case 0:case 11:case 15:ro(_,A,f),kh(4,A);break;case 1:if(ro(_,A,f),p=A,_=p.stateNode,typeof _.componentDidMount==&amp;amp;quot;function&amp;amp;quot;)try{_.componentDidMount()}catch(ot){je(p,p.return,ot)}if(p=A,_=p.updateQueue,_!==null){var F=p.stateNode;try{var W=_.shared.hiddenCallbacks;if(W!==null)for(_.shared.hiddenCallbacks=null,_=0;_&amp;amp;lt;W.length;_++)me(W[_],F)}catch(ot){je(p,p.return,ot)}}f&amp;amp;amp;&amp;amp;amp;L&amp;amp;amp;64&amp;amp;amp;&amp;amp;amp;y2(A),Sl(A,A.return);break;case 26:case 27:case 5:ro(_,A,f),f&amp;amp;amp;&amp;amp;amp;p===null&amp;amp;amp;&amp;amp;amp;L&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;x2(A),Sl(A,A.return);break;case 12:ro(_,A,f);break;case 13:ro(_,A,f),f&amp;amp;amp;&amp;amp;amp;L&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;A2(_,A);break;case 22:A.memoizedState===null&amp;amp;amp;&amp;amp;amp;ro(_,A,f),Sl(A,A.return);break;default:ro(_,A,f)}l=l.sibling}}function pS(r,l){var f=null;r!==null&amp;amp;amp;&amp;amp;amp;r.memoizedState!==null&amp;amp;amp;&amp;amp;amp;r.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(f=r.memoizedState.cachePool.pool),r=null,l.memoizedState!==null&amp;amp;amp;&amp;amp;amp;l.memoizedState.cachePool!==null&amp;amp;amp;&amp;amp;amp;(r=l.memoizedState.cachePool.pool),r!==f&amp;amp;amp;&amp;amp;amp;(r!=null&amp;amp;amp;&amp;amp;amp;r.refCount++,f!=null&amp;amp;amp;&amp;amp;amp;Yh(f))}function mS(r,l){r=null,l.alternate!==null&amp;amp;amp;&amp;amp;amp;(r=l.alternate.memoizedState.cache),l=l.memoizedState.cache,l!==r&amp;amp;amp;&amp;amp;amp;(l.refCount++,r!=null&amp;amp;amp;&amp;amp;amp;Yh(r))}function oo(r,l,f,p){if(l.subtreeFlags&amp;amp;amp;10256)for(l=l.child;l!==null;)w2(r,l,f,p),l=l.sibling}function w2(r,l,f,p){var _=l.flags;switch(l.tag){case 0:case 11:case 15:oo(r,l,f,p),_&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;kh(9,l);break;case 3:oo(r,l,f,p),_&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;(r=null,l.alternate!==null&amp;amp;amp;&amp;amp;amp;(r=l.alternate.memoizedState.cache),l=l.memoizedState.cache,l!==r&amp;amp;amp;&amp;amp;amp;(l.refCount++,r!=null&amp;amp;amp;&amp;amp;amp;Yh(r)));break;case 12:if(_&amp;amp;amp;2048){oo(r,l,f,p),r=l.stateNode;try{var A=l.memoizedProps,L=A.id,F=A.onPostCommit;typeof F==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;F(L,l.alternate===null?&amp;amp;quot;mount&amp;amp;quot;:&amp;amp;quot;update&amp;amp;quot;,r.passiveEffectDuration,-0)}catch(W){je(l,l.return,W)}}else oo(r,l,f,p);break;case 23:break;case 22:A=l.stateNode,l.memoizedState!==null?A._visibility&amp;amp;amp;4?oo(r,l,f,p):Zh(r,l):A._visibility&amp;amp;amp;4?oo(r,l,f,p):(A._visibility|=4,Ku(r,l,f,p,(l.subtreeFlags&amp;amp;amp;10256)!==0)),_&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;pS(l.alternate,l);break;case 24:oo(r,l,f,p),_&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;mS(l.alternate,l);break;default:oo(r,l,f,p)}}function Ku(r,l,f,p,_){for(_=_&amp;amp;amp;&amp;amp;amp;(l.subtreeFlags&amp;amp;amp;10256)!==0,l=l.child;l!==null;){var A=r,L=l,F=f,W=p,ot=L.flags;switch(L.tag){case 0:case 11:case 15:Ku(A,L,F,W,_),kh(8,L);break;case 23:break;case 22:var At=L.stateNode;L.memoizedState!==null?At._visibility&amp;amp;amp;4?Ku(A,L,F,W,_):Zh(A,L):(At._visibility|=4,Ku(A,L,F,W,_)),_&amp;amp;amp;&amp;amp;amp;ot&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;pS(L.alternate,L);break;case 24:Ku(A,L,F,W,_),_&amp;amp;amp;&amp;amp;amp;ot&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;mS(L.alternate,L);break;default:Ku(A,L,F,W,_)}l=l.sibling}}function Zh(r,l){if(l.subtreeFlags&amp;amp;amp;10256)for(l=l.child;l!==null;){var f=r,p=l,_=p.flags;switch(p.tag){case 22:Zh(f,p),_&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;pS(p.alternate,p);break;case 24:Zh(f,p),_&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;mS(p.alternate,p);break;default:Zh(f,p)}l=l.sibling}}function Ml(r){if(r.subtreeFlags&amp;amp;amp;vc)for(r=r.child;r!==null;)D2(r),r=r.sibling}function D2(r){switch(r.tag){case 26:Ml(r),r.flags&amp;amp;amp;vc&amp;amp;amp;&amp;amp;amp;(r.memoizedState!==null?KB(gs,r.memoizedState,r.memoizedProps):dR(r.type,r.memoizedProps));break;case 5:Ml(r),r.flags&amp;amp;amp;vc&amp;amp;amp;&amp;amp;amp;dR(r.type,r.memoizedProps);break;case 3:case 4:if(Ga){var l=gs;gs=VS(r.stateNode.containerInfo),Ml(r),gs=l}else Ml(r);break;case 22:r.memoizedState===null&amp;amp;amp;&amp;amp;amp;(l=r.alternate,l!==null&amp;amp;amp;&amp;amp;amp;l.memoizedState!==null?(l=vc,vc=16777216,Ml(r),vc=l):Ml(r));break;default:Ml(r)}}function U2(r){var l=r.alternate;if(l!==null&amp;amp;amp;&amp;amp;amp;(r=l.child,r!==null)){l.child=null;do l=r.sibling,r.sibling=null,r=l;while(r!==null)}}function jh(r){var l=r.deletions;if((r.flags&amp;amp;amp;16)!==0){if(l!==null)for(var f=0;f&amp;amp;lt;l.length;f++){var p=l[f];$n=p,O2(p,r)}U2(r)}if(r.subtreeFlags&amp;amp;amp;10256)for(r=r.child;r!==null;)N2(r),r=r.sibling}function N2(r){switch(r.tag){case 0:case 11:case 15:jh(r),r.flags&amp;amp;amp;2048&amp;amp;amp;&amp;amp;amp;so(9,r,r.return);break;case 3:jh(r);break;case 12:jh(r);break;case 22:var l=r.stateNode;r.memoizedState!==null&amp;amp;amp;&amp;amp;amp;l._visibility&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(r.return===null||r.return.tag!==13)?(l._visibility&amp;amp;amp;=-5,i0(r)):jh(r);break;default:jh(r)}}function i0(r){var l=r.deletions;if((r.flags&amp;amp;amp;16)!==0){if(l!==null)for(var f=0;f&amp;amp;lt;l.length;f++){var p=l[f];$n=p,O2(p,r)}U2(r)}for(r=r.child;r!==null;){switch(l=r,l.tag){case 0:case 11:case 15:so(8,l,l.return),i0(l);break;case 22:f=l.stateNode,f._visibility&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(f._visibility&amp;amp;amp;=-5,i0(l));break;default:i0(l)}r=r.sibling}}function O2(r,l){for(;$n!==null;){var f=$n;switch(f.tag){case 0:case 11:case 15:so(8,f,l);break;case 23:case 22:if(f.memoizedState!==null&amp;amp;amp;&amp;amp;amp;f.memoizedState.cachePool!==null){var p=f.memoizedState.cachePool.pool;p!=null&amp;amp;amp;&amp;amp;amp;p.refCount++}break;case 24:Yh(f.memoizedState.cache)}if(p=f.child,p!==null)p.return=f,$n=p;else t:for(f=r;$n!==null;){p=$n;var _=p.sibling,A=p.return;if(T2(p),p===f){$n=null;break t}if(_!==null){_.return=A,$n=_;break t}$n=A}}}function gS(r){var l=fR(r);if(l!=null){if(typeof l.memoizedProps[&amp;amp;quot;data-testname&amp;amp;quot;]!=&amp;amp;quot;string&amp;amp;quot;)throw Error(i(364));return l}if(r=rB(r),r===null)throw Error(i(362));return r.stateNode.current}function vS(r,l){var f=r.tag;switch(l.$$typeof){case M0:if(r.type===l.value)return!0;break;case E0:t:{for(l=l.value,r=[r,0],f=0;f&amp;amp;lt;r.length;){var p=r[f++],_=p.tag,A=r[f++],L=l[A];if(_!==5&amp;amp;amp;&amp;amp;amp;_!==26&amp;amp;amp;&amp;amp;amp;_!==27||!Jh(p)){for(;L!=null&amp;amp;amp;&amp;amp;amp;vS(p,L);)A++,L=l[A];if(A===l.length){l=!0;break t}else for(p=p.child;p!==null;)r.push(p,A),p=p.sibling}}l=!1}return l;case b0:if((f===5||f===26||f===27)&amp;amp;amp;&amp;amp;amp;uB(r.stateNode,l.value))return!0;break;case A0:if((f===5||f===6||f===26||f===27)&amp;amp;amp;&amp;amp;amp;(r=lB(r),r!==null&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;=r.indexOf(l.value)))return!0;break;case T0:if((f===5||f===26||f===27)&amp;amp;amp;&amp;amp;amp;(r=r.memoizedProps[&amp;amp;quot;data-testname&amp;amp;quot;],typeof r==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r.toLowerCase()===l.value.toLowerCase()))return!0;break;default:throw Error(i(365))}return!1}function yS(r){switch(r.$$typeof){case M0:return&amp;amp;quot;&amp;amp;lt;&amp;amp;quot;+(s(r.value)||&amp;amp;quot;Unknown&amp;amp;quot;)+&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;;case E0:return&amp;amp;quot;:has(&amp;amp;quot;+(yS(r)||&amp;amp;quot;&amp;amp;quot;)+&amp;amp;quot;)&amp;amp;quot;;case b0:return&amp;amp;#39;[role=&amp;amp;quot;&amp;amp;#39;+r.value+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;;case A0:return&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;+r.value+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;;case T0:return&amp;amp;#39;[data-testname=&amp;amp;quot;&amp;amp;#39;+r.value+&amp;amp;#39;&amp;amp;quot;]&amp;amp;#39;;default:throw Error(i(365))}}function L2(r,l){var f=[];r=[r,0];for(var p=0;p&amp;amp;lt;r.length;){var _=r[p++],A=_.tag,L=r[p++],F=l[L];if(A!==5&amp;amp;amp;&amp;amp;amp;A!==26&amp;amp;amp;&amp;amp;amp;A!==27||!Jh(_)){for(;F!=null&amp;amp;amp;&amp;amp;amp;vS(_,F);)L++,F=l[L];if(L===l.length)f.push(_);else for(_=_.child;_!==null;)r.push(_,L),_=_.sibling}}return f}function _S(r,l){if(!Kh)throw Error(i(363));r=gS(r),r=L2(r,l),l=[],r=Array.from(r);for(var f=0;f&amp;amp;lt;r.length;){var p=r[f++],_=p.tag;if(_===5||_===26||_===27)Jh(p)||l.push(p.stateNode);else for(p=p.child;p!==null;)r.push(p),p=p.sibling}return l}function da(){if(($e&amp;amp;amp;2)!==0&amp;amp;amp;&amp;amp;amp;Ue!==0)return Ue&amp;amp;amp;-Ue;if(pe.T!==null){var r=cc;return r!==0?r:nt()}return Kz()}function z2(){ka===0&amp;amp;amp;&amp;amp;amp;(ka=(Ue&amp;amp;amp;536870912)===0||ze?O():536870912);var r=Wa.current;return r!==null&amp;amp;amp;&amp;amp;amp;(r.flags|=32),ka}function Pi(r,l,f){(r===un&amp;amp;amp;&amp;amp;amp;cn===2||r.cancelPendingCommit!==null)&amp;amp;amp;&amp;amp;amp;(Ju(r,0),pr(r,Ue,ka,!1)),R(r,f),(($e&amp;amp;amp;2)===0||r!==un)&amp;amp;amp;&amp;amp;amp;(r===un&amp;amp;amp;&amp;amp;amp;(($e&amp;amp;amp;2)===0&amp;amp;amp;&amp;amp;amp;(Ll|=f),Rn===4&amp;amp;amp;&amp;amp;amp;pr(r,Ue,ka,!1)),dt(r))}function B2(r,l,f){if(($e&amp;amp;amp;6)!==0)throw Error(i(327));var p=!f&amp;amp;amp;&amp;amp;amp;(l&amp;amp;amp;60)===0&amp;amp;amp;&amp;amp;amp;(l&amp;amp;amp;r.expiredLanes)===0||w(r,l),_=p?Rz(r,l):ES(r,l,!0),A=p;do{if(_===0){yc&amp;amp;amp;&amp;amp;amp;!p&amp;amp;amp;&amp;amp;amp;pr(r,l,0,!1);break}else if(_===6)pr(r,l,0,!xr);else{if(f=r.current.alternate,A&amp;amp;amp;&amp;amp;amp;!Tz(f)){_=ES(r,l,!1),A=!1;continue}if(_===2){if(A=l,r.errorRecoveryDisabledLanes&amp;amp;amp;A)var L=0;else L=r.pendingLanes&amp;amp;amp;-536870913,L=L!==0?L:L&amp;amp;amp;536870912?536870912:0;if(L!==0){l=L;t:{var F=r;_=rd;var W=Va&amp;amp;amp;&amp;amp;amp;F.current.memoizedState.isDehydrated;if(W&amp;amp;amp;&amp;amp;amp;(Ju(F,L).flags|=256),L=ES(F,L,!1),L!==2){if(nM&amp;amp;amp;&amp;amp;amp;!W){F.errorRecoveryDisabledLanes|=A,Ll|=A,_=4;break t}A=Vs,Vs=_,A!==null&amp;amp;amp;&amp;amp;amp;xS(A)}_=L}if(A=!1,_!==2)continue}}if(_===1){Ju(r,0),pr(r,l,0,!0);break}t:{switch(p=r,_){case 0:case 1:throw Error(i(345));case 4:if((l&amp;amp;amp;4194176)===l){pr(p,l,ka,!xr);break t}break;case 2:Vs=null;break;case 3:case 5:break;default:throw Error(i(329))}if(p.finishedWork=f,p.finishedLanes=l,(l&amp;amp;amp;62914560)===l&amp;amp;amp;&amp;amp;amp;(A=sM+300-ps(),10&amp;amp;lt;A)){if(pr(p,l,ka,!xr),T(p,0)!==0)break t;p.timeoutHandle=Zz(P2.bind(null,p,f,Vs,R0,aM,l,ka,Ll,_c,xr,2,-0,0),A);break t}P2(p,f,Vs,R0,aM,l,ka,Ll,_c,xr,0,-0,0)}}break}while(!0);dt(r)}function xS(r){Vs===null?Vs=r:Vs.push.apply(Vs,r)}function P2(r,l,f,p,_,A,L,F,W,ot,At,Pt,Ht){var ye=l.subtreeFlags;if((ye&amp;amp;amp;8192||(ye&amp;amp;amp;16785408)===16785408)&amp;amp;amp;&amp;amp;amp;(eB(),D2(l),l=nB(),l!==null)){r.cancelPendingCommit=l(W2.bind(null,r,f,p,_,L,F,W,1,Pt,Ht)),pr(r,A,L,!ot);return}W2(r,f,p,_,L,F,W,At,Pt,Ht)}function Tz(r){for(var l=r;;){var f=l.tag;if((f===0||f===11||f===15)&amp;amp;amp;&amp;amp;amp;l.flags&amp;amp;amp;16384&amp;amp;amp;&amp;amp;amp;(f=l.updateQueue,f!==null&amp;amp;amp;&amp;amp;amp;(f=f.stores,f!==null)))for(var p=0;p&amp;amp;lt;f.length;p++){var _=f[p],A=_.getSnapshot;_=_.value;try{if(!va(A(),_))return!1}catch{return!1}}if(f=l.child,l.subtreeFlags&amp;amp;amp;16384&amp;amp;amp;&amp;amp;amp;f!==null)f.return=l,l=f;else{if(l===r)break;for(;l.sibling===null;){if(l.return===null||l.return===r)return!0;l=l.return}l.sibling.return=l.return,l=l.sibling}}return!0}function pr(r,l,f,p){l&amp;amp;amp;=~iM,l&amp;amp;amp;=~Ll,r.suspendedLanes|=l,r.pingedLanes&amp;amp;amp;=~l,p&amp;amp;amp;&amp;amp;amp;(r.warmLanes|=l),p=r.expirationTimes;for(var _=l;0&amp;amp;lt;_;){var A=31-ma(_),L=1&amp;amp;lt;&amp;amp;lt;A;p[A]=-1,_&amp;amp;amp;=~L}f!==0&amp;amp;amp;&amp;amp;amp;j(r,f,l)}function I2(){return($e&amp;amp;amp;6)===0?(Rt(0,!1),!1):!0}function SS(){if(Ae!==null){if(cn===0)var r=Ae.return;else r=Ae,yr=Nl=null,Vh(r),dc=null,id=0,r=Ae;for(;r!==null;)v2(r.alternate,r),r=r.return;Ae=null}}function Ju(r,l){r.finishedWork=null,r.finishedLanes=0;var f=r.timeoutHandle;f!==IS&amp;amp;amp;&amp;amp;amp;(r.timeoutHandle=IS,jz(f)),f=r.cancelPendingCommit,f!==null&amp;amp;amp;&amp;amp;amp;(r.cancelPendingCommit=null,f()),SS(),un=r,Ae=f=lo(r.current,null),Ue=l,cn=0,_a=null,xr=!1,yc=w(r,l),nM=!1,_c=ka=iM=Ll=vo=Rn=0,Vs=rd=null,aM=!1,(l&amp;amp;amp;8)!==0&amp;amp;amp;&amp;amp;amp;(l|=l&amp;amp;amp;32);var p=r.entangledLanes;if(p!==0)for(r=r.entanglements,p&amp;amp;amp;=l;0&amp;amp;lt;p;){var _=31-ma(p),A=1&amp;amp;lt;&amp;amp;lt;_;l|=r[_],p&amp;amp;amp;=~A}return Sr=l,H(),f}function H2(r,l){Ee=null,pe.H=Fs,l===nd?(l=ut(),cn=3):l===KS?(l=ut(),cn=4):cn=l===BR?8:l!==null&amp;amp;amp;&amp;amp;amp;typeof l==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof l.then==&amp;amp;quot;function&amp;amp;quot;?6:1,_a=l,Ae===null&amp;amp;amp;&amp;amp;amp;(Rn=1,Kg(r,K(l,r.current)))}function F2(){var r=Wa.current;return r===null?!0:(Ue&amp;amp;amp;4194176)===Ue?Hs===null:(Ue&amp;amp;amp;62914560)===Ue||(Ue&amp;amp;amp;536870912)!==0?r===Hs:!1}function V2(){var r=pe.H;return pe.H=Fs,r===null?Fs:r}function G2(){var r=pe.A;return pe.A=p4,r}function MS(){Rn=4,xr||(Ue&amp;amp;amp;4194176)!==Ue&amp;amp;amp;&amp;amp;amp;Wa.current!==null||(yc=!0),(vo&amp;amp;amp;134217727)===0&amp;amp;amp;&amp;amp;amp;(Ll&amp;amp;amp;134217727)===0||un===null||pr(un,Ue,ka,!1)}function ES(r,l,f){var p=$e;$e|=2;var _=V2(),A=G2();(un!==r||Ue!==l)&amp;amp;amp;&amp;amp;amp;(R0=null,Ju(r,l)),l=!1;var L=Rn;t:do try{if(cn!==0&amp;amp;amp;&amp;amp;amp;Ae!==null){var F=Ae,W=_a;switch(cn){case 8:SS(),L=6;break t;case 3:case 2:case 6:Wa.current===null&amp;amp;amp;&amp;amp;amp;(l=!0);var ot=cn;if(cn=0,_a=null,$u(r,F,W,ot),f&amp;amp;amp;&amp;amp;amp;yc){L=0;break t}break;default:ot=cn,cn=0,_a=null,$u(r,F,W,ot)}}Az(),L=Rn;break}catch(At){H2(r,At)}while(!0);return l&amp;amp;amp;&amp;amp;amp;r.shellSuspendCounter++,yr=Nl=null,$e=p,pe.H=_,pe.A=A,Ae===null&amp;amp;amp;&amp;amp;amp;(un=null,Ue=0,H()),L}function Az(){for(;Ae!==null;)X2(Ae)}function Rz(r,l){var f=$e;$e|=2;var p=V2(),_=G2();un!==r||Ue!==l?(R0=null,od=ps()+500,Ju(r,l)):yc=w(r,l);t:do try{if(cn!==0&amp;amp;amp;&amp;amp;amp;Ae!==null){l=Ae;var A=_a;e:switch(cn){case 1:cn=0,_a=null,$u(r,l,A,1);break;case 2:if(Dt(A)){cn=0,_a=null,q2(l);break}l=function(){cn===2&amp;amp;amp;&amp;amp;amp;un===r&amp;amp;amp;&amp;amp;amp;(cn=7),dt(r)},A.then(l,l);break t;case 3:cn=7;break t;case 4:cn=5;break t;case 7:Dt(A)?(cn=0,_a=null,q2(l)):(cn=0,_a=null,$u(r,l,A,7));break;case 5:var L=null;switch(Ae.tag){case 26:L=Ae.memoizedState;case 5:case 27:var F=Ae,W=F.type,ot=F.pendingProps;if(L?wR(L):hR(W,ot)){cn=0,_a=null;var At=F.sibling;if(At!==null)Ae=At;else{var Pt=F.return;Pt!==null?(Ae=Pt,a0(Pt)):Ae=null}break e}}cn=0,_a=null,$u(r,l,A,5);break;case 6:cn=0,_a=null,$u(r,l,A,6);break;case 8:SS(),Rn=6;break t;default:throw Error(i(462))}}Cz();break}catch(Ht){H2(r,Ht)}while(!0);return yr=Nl=null,pe.H=p,pe.A=_,$e=f,Ae!==null?0:(un=null,Ue=0,H(),Rn)}function Cz(){for(;Ae!==null&amp;amp;amp;&amp;amp;amp;!i4();)X2(Ae)}function X2(r){var l=c2(r.alternate,r,Sr);r.memoizedProps=r.pendingProps,l===null?a0(r):Ae=l}function q2(r){var l=r,f=l.alternate;switch(l.tag){case 15:case 0:l=a2(f,l,l.pendingProps,l.type,void 0,Ue);break;case 11:l=a2(f,l,l.pendingProps,l.type.render,l.ref,Ue);break;case 5:Vh(l);default:v2(f,l),l=Ae=Q2(l,Sr),l=c2(f,l,Sr)}r.memoizedProps=r.pendingProps,l===null?a0(r):Ae=l}function $u(r,l,f,p){yr=Nl=null,Vh(l),dc=null,id=0;var _=l.return;try{if(_z(r,_,l,f,Ue)){Rn=1,Kg(r,K(f,r.current)),Ae=null;return}}catch(A){if(_!==null)throw Ae=_,A;Rn=1,Kg(r,K(f,r.current)),Ae=null;return}l.flags&amp;amp;amp;32768?(ze||p===1?r=!0:yc||(Ue&amp;amp;amp;536870912)!==0?r=!1:(xr=r=!0,(p===2||p===3||p===6)&amp;amp;amp;&amp;amp;amp;(p=Wa.current,p!==null&amp;amp;amp;&amp;amp;amp;p.tag===13&amp;amp;amp;&amp;amp;amp;(p.flags|=16384))),Y2(l,r)):a0(l)}function a0(r){var l=r;do{if((l.flags&amp;amp;amp;32768)!==0){Y2(l,xr);return}r=l.return;var f=Sz(l.alternate,l,Sr);if(f!==null){Ae=f;return}if(l=l.sibling,l!==null){Ae=l;return}Ae=l=r}while(l!==null);Rn===0&amp;amp;amp;&amp;amp;amp;(Rn=5)}function Y2(r,l){do{var f=Mz(r.alternate,r);if(f!==null){f.flags&amp;amp;amp;=32767,Ae=f;return}if(f=r.return,f!==null&amp;amp;amp;&amp;amp;amp;(f.flags|=32768,f.subtreeFlags=0,f.deletions=null),!l&amp;amp;amp;&amp;amp;amp;(r=r.sibling,r!==null)){Ae=r;return}Ae=r=f}while(r!==null);Rn=6,Ae=null}function W2(r,l,f,p,_,A,L,F,W,ot){var At=pe.T,Pt=Tl();try{Qi(2),pe.T=null,wz(r,l,f,p,Pt,_,A,L,F,W,ot)}finally{pe.T=At,Qi(Pt)}}function wz(r,l,f,p,_,A,L,F){do El();while(zl!==null);if(($e&amp;amp;amp;6)!==0)throw Error(i(327));var W=r.finishedWork;if(p=r.finishedLanes,W===null)return null;if(r.finishedWork=null,r.finishedLanes=0,W===r.current)throw Error(i(177));r.callbackNode=null,r.callbackPriority=0,r.cancelPendingCommit=null;var ot=W.lanes|W.childLanes;if(ot|=WS,P(r,p,ot,A,L,F),r===un&amp;amp;amp;&amp;amp;amp;(Ae=un=null,Ue=0),(W.subtreeFlags&amp;amp;amp;10256)===0&amp;amp;amp;&amp;amp;amp;(W.flags&amp;amp;amp;10256)===0||C0||(C0=!0,rM=ot,oM=f,Oz(qS,function(){return El(!0),null})),f=(W.flags&amp;amp;amp;15990)!==0,(W.subtreeFlags&amp;amp;amp;15990)!==0||f?(f=pe.T,pe.T=null,A=Tl(),Qi(2),L=$e,$e|=4,Ez(r,W),R2(W,r),Wz(r.containerInfo),r.current=W,b2(r,W.alternate,W),a4(),$e=L,Qi(A),pe.T=f):r.current=W,C0?(C0=!1,zl=r,ld=p):k2(r,ot),ot=r.pendingLanes,ot===0&amp;amp;amp;&amp;amp;amp;(yo=null),st(W.stateNode,_),dt(r),l!==null)for(_=r.onRecoverableError,W=0;W&amp;amp;lt;l.length;W++)ot=l[W],_(ot.value,{componentStack:ot.stack});return(ld&amp;amp;amp;3)!==0&amp;amp;amp;&amp;amp;amp;El(),ot=r.pendingLanes,(p&amp;amp;amp;4194218)!==0&amp;amp;amp;&amp;amp;amp;(ot&amp;amp;amp;42)!==0?r===lM?ud++:(ud=0,lM=r):ud=0,Rt(0,!1),null}function k2(r,l){(r.pooledCacheLanes&amp;amp;amp;=l)===0&amp;amp;amp;&amp;amp;amp;(l=r.pooledCache,l!=null&amp;amp;amp;&amp;amp;amp;(r.pooledCache=null,Yh(l)))}function El(){if(zl!==null){var r=zl,l=rM;rM=0;var f=Z(ld),p=32&amp;amp;gt;f?32:f;f=pe.T;var _=Tl();try{if(Qi(p),pe.T=null,zl===null)var A=!1;else{p=oM,oM=null;var L=zl,F=ld;if(zl=null,ld=0,($e&amp;amp;amp;6)!==0)throw Error(i(331));var W=$e;if($e|=4,N2(L.current),w2(L,L.current,F,p),$e=W,Rt(0,!1),ga&amp;amp;amp;&amp;amp;amp;typeof ga.onPostCommitFiberRoot==&amp;amp;quot;function&amp;amp;quot;)try{ga.onPostCommitFiberRoot($h,L)}catch{}A=!0}return A}finally{Qi(_),pe.T=f,k2(r,l)}}return!1}function Z2(r,l,f){l=K(f,l),l=Zx(r.stateNode,l,2),r=vt(r,l,2),r!==null&amp;amp;amp;&amp;amp;amp;(R(r,2),dt(r))}function je(r,l,f){if(r.tag===3)Z2(r,r,f);else for(;l!==null;){if(l.tag===3){Z2(l,r,f);break}else if(l.tag===1){var p=l.stateNode;if(typeof l.type.getDerivedStateFromError==&amp;amp;quot;function&amp;amp;quot;||typeof p.componentDidCatch==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(yo===null||!yo.has(p))){r=K(f,r),f=KA(2),p=vt(l,f,2),p!==null&amp;amp;amp;&amp;amp;amp;(JA(f,p,l,r),R(p,2),dt(p));break}}l=l.return}}function bS(r,l,f){var p=r.pingCache;if(p===null){p=r.pingCache=new m4;var _=new Set;p.set(l,_)}else _=p.get(l),_===void 0&amp;amp;amp;&amp;amp;amp;(_=new Set,p.set(l,_));_.has(f)||(nM=!0,_.add(f),r=Dz.bind(null,r,l,f),l.then(r,r))}function Dz(r,l,f){var p=r.pingCache;p!==null&amp;amp;amp;&amp;amp;amp;p.delete(l),r.pingedLanes|=r.suspendedLanes&amp;amp;amp;f,r.warmLanes&amp;amp;amp;=~f,un===r&amp;amp;amp;&amp;amp;amp;(Ue&amp;amp;amp;f)===f&amp;amp;amp;&amp;amp;amp;(Rn===4||Rn===3&amp;amp;amp;&amp;amp;amp;(Ue&amp;amp;amp;62914560)===Ue&amp;amp;amp;&amp;amp;amp;300&amp;amp;gt;ps()-sM?($e&amp;amp;amp;2)===0&amp;amp;amp;&amp;amp;amp;Ju(r,0):iM|=f,_c===Ue&amp;amp;amp;&amp;amp;amp;(_c=0)),dt(r)}function j2(r,l){l===0&amp;amp;amp;&amp;amp;amp;(l=z()),r=pt(r,l),r!==null&amp;amp;amp;&amp;amp;amp;(R(r,l),dt(r))}function Uz(r){var l=r.memoizedState,f=0;l!==null&amp;amp;amp;&amp;amp;amp;(f=l.retryLane),j2(r,f)}function Nz(r,l){var f=0;switch(r.tag){case 13:var p=r.stateNode,_=r.memoizedState;_!==null&amp;amp;amp;&amp;amp;amp;(f=_.retryLane);break;case 19:p=r.stateNode;break;case 22:p=r.stateNode._retryCache;break;default:throw Error(i(314))}p!==null&amp;amp;amp;&amp;amp;amp;p.delete(l),j2(r,f)}function Oz(r,l){return f0(r,l)}function Lz(r,l,f,p){this.tag=r,this.key=f,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=l,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=p,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function TS(r){return r=r.prototype,!(!r||!r.isReactComponent)}function lo(r,l){var f=r.alternate;return f===null?(f=t(r.tag,l,r.key,r.mode),f.elementType=r.elementType,f.type=r.type,f.stateNode=r.stateNode,f.alternate=r,r.alternate=f):(f.pendingProps=l,f.type=r.type,f.flags=0,f.subtreeFlags=0,f.deletions=null),f.flags=r.flags&amp;amp;amp;31457280,f.childLanes=r.childLanes,f.lanes=r.lanes,f.child=r.child,f.memoizedProps=r.memoizedProps,f.memoizedState=r.memoizedState,f.updateQueue=r.updateQueue,l=r.dependencies,f.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext},f.sibling=r.sibling,f.index=r.index,f.ref=r.ref,f.refCleanup=r.refCleanup,f}function Q2(r,l){r.flags&amp;amp;amp;=31457282;var f=r.alternate;return f===null?(r.childLanes=0,r.lanes=l,r.child=null,r.subtreeFlags=0,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null,r.stateNode=null):(r.childLanes=f.childLanes,r.lanes=f.lanes,r.child=f.child,r.subtreeFlags=0,r.deletions=null,r.memoizedProps=f.memoizedProps,r.memoizedState=f.memoizedState,r.updateQueue=f.updateQueue,r.type=f.type,l=f.dependencies,r.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext}),r}function s0(r,l,f,p,_,A){var L=0;if(p=r,typeof r==&amp;amp;quot;function&amp;amp;quot;)TS(r)&amp;amp;amp;&amp;amp;amp;(L=1);else if(typeof r==&amp;amp;quot;string&amp;amp;quot;)L=Ga&amp;amp;amp;&amp;amp;amp;Ei?ER(r,f,di.current)?26:UR(r)?27:5:Ga?ER(r,f,di.current)?26:5:Ei&amp;amp;amp;&amp;amp;amp;UR(r)?27:5;else t:switch(r){case ec:return bl(f.children,_,A,l);case iR:L=8,_|=24;break;case DS:return r=t(12,f,l,_|2),r.elementType=DS,r.lanes=A,r;case NS:return r=t(13,f,l,_),r.elementType=NS,r.lanes=A,r;case OS:return r=t(19,f,l,_),r.elementType=OS,r.lanes=A,r;case sR:return K2(f,_,A,l);default:if(typeof r==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r!==null)switch(r.$$typeof){case Iz:case uo:L=10;break t;case aR:L=9;break t;case US:L=11;break t;case LS:L=14;break t;case co:L=16,p=null;break t}L=29,f=Error(i(130,r===null?&amp;amp;quot;null&amp;amp;quot;:typeof r,&amp;amp;quot;&amp;amp;quot;)),p=null}return l=t(L,f,l,_),l.elementType=r,l.type=p,l.lanes=A,l}function bl(r,l,f,p){return r=t(7,r,p,l),r.lanes=f,r}function K2(r,l,f,p){r=t(22,r,p,l),r.elementType=sR,r.lanes=f;var _={_visibility:1,_pendingVisibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null,_current:null,detach:function(){var A=_._current;if(A===null)throw Error(i(456));if((_._pendingVisibility&amp;amp;amp;2)===0){var L=pt(A,2);L!==null&amp;amp;amp;&amp;amp;amp;(_._pendingVisibility|=2,Pi(L,A,2))}},attach:function(){var A=_._current;if(A===null)throw Error(i(456));if((_._pendingVisibility&amp;amp;amp;2)!==0){var L=pt(A,2);L!==null&amp;amp;amp;&amp;amp;amp;(_._pendingVisibility&amp;amp;amp;=-3,Pi(L,A,2))}}};return r.stateNode=_,r}function AS(r,l,f){return r=t(6,r,null,l),r.lanes=f,r}function RS(r,l,f){return l=t(4,r.children!==null?r.children:[],r.key,l),l.lanes=f,l.stateNode={containerInfo:r.containerInfo,pendingChildren:null,implementation:r.implementation},l}function zz(r,l,f,p,_,A,L,F){this.tag=1,this.containerInfo=r,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=IS,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=C(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.finishedLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=C(0),this.hiddenUpdates=C(null),this.identifierPrefix=p,this.onUncaughtError=_,this.onCaughtError=A,this.onRecoverableError=L,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=F,this.incompleteTransitions=new Map}function J2(r,l,f,p,_,A,L,F,W,ot,At,Pt){return r=new zz(r,l,f,L,F,W,ot,Pt),l=1,A===!0&amp;amp;amp;&amp;amp;amp;(l|=24),A=t(3,null,null,l),r.current=A,A.stateNode=r,l=sS(),l.refCount++,r.pooledCache=l,l.refCount++,A.memoizedState={element:p,isDehydrated:f,cache:l},Tt(A),r}function $2(r){return r?(r=ac,r):ac}function tR(r){var l=r._reactInternals;if(l===void 0)throw typeof r.render==&amp;amp;quot;function&amp;amp;quot;?Error(i(188)):(r=Object.keys(r).join(&amp;amp;quot;,&amp;amp;quot;),Error(i(268,r)));return r=g(l),r=r!==null?y(r):null,r===null?null:Qh(r.stateNode)}function eR(r,l,f,p,_,A){_=$2(_),p.context===null?p.context=_:p.pendingContext=_,p=Ft(l),p.payload={element:f},A=A===void 0?null:A,A!==null&amp;amp;amp;&amp;amp;amp;(p.callback=A),f=vt(r,p,l),f!==null&amp;amp;amp;&amp;amp;amp;(Pi(f,r,l),Ot(f,r,l))}function nR(r,l){if(r=r.memoizedState,r!==null&amp;amp;amp;&amp;amp;amp;r.dehydrated!==null){var f=r.retryLane;r.retryLane=f!==0&amp;amp;amp;&amp;amp;amp;f&amp;amp;lt;l?f:l}}function CS(r,l){nR(r,l),(r=r.alternate)&amp;amp;amp;&amp;amp;amp;nR(r,l)}var Te={},Bz=ja(),pa=Ax(),wS=Object.assign,Pz=Symbol.for(&amp;amp;quot;react.element&amp;amp;quot;),r0=Symbol.for(&amp;amp;quot;react.transitional.element&amp;amp;quot;),tc=Symbol.for(&amp;amp;quot;react.portal&amp;amp;quot;),ec=Symbol.for(&amp;amp;quot;react.fragment&amp;amp;quot;),iR=Symbol.for(&amp;amp;quot;react.strict_mode&amp;amp;quot;),DS=Symbol.for(&amp;amp;quot;react.profiler&amp;amp;quot;),Iz=Symbol.for(&amp;amp;quot;react.provider&amp;amp;quot;),aR=Symbol.for(&amp;amp;quot;react.consumer&amp;amp;quot;),uo=Symbol.for(&amp;amp;quot;react.context&amp;amp;quot;),US=Symbol.for(&amp;amp;quot;react.forward_ref&amp;amp;quot;),NS=Symbol.for(&amp;amp;quot;react.suspense&amp;amp;quot;),OS=Symbol.for(&amp;amp;quot;react.suspense_list&amp;amp;quot;),LS=Symbol.for(&amp;amp;quot;react.memo&amp;amp;quot;),co=Symbol.for(&amp;amp;quot;react.lazy&amp;amp;quot;);Symbol.for(&amp;amp;quot;react.scope&amp;amp;quot;),Symbol.for(&amp;amp;quot;react.debug_trace_mode&amp;amp;quot;);var sR=Symbol.for(&amp;amp;quot;react.offscreen&amp;amp;quot;);Symbol.for(&amp;amp;quot;react.legacy_hidden&amp;amp;quot;),Symbol.for(&amp;amp;quot;react.tracing_marker&amp;amp;quot;);var Hz=Symbol.for(&amp;amp;quot;react.memo_cache_sentinel&amp;amp;quot;),rR=Symbol.iterator,Fz=Symbol.for(&amp;amp;quot;react.client.reference&amp;amp;quot;),pe=Bz.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,zS,oR,BS=!1,o0=Array.isArray,Vz=n.rendererVersion,Gz=n.rendererPackageName,lR=n.extraDevToolsConfig,Qh=n.getPublicInstance,Xz=n.getRootHostContext,qz=n.getChildHostContext,Yz=n.prepareForCommit,Wz=n.resetAfterCommit,kz=n.createInstance,PS=n.appendInitialChild,uR=n.finalizeInitialChildren,l0=n.shouldSetTextContent,cR=n.createTextInstance,Zz=n.scheduleTimeout,jz=n.cancelTimeout,IS=n.noTimeout,mr=n.isPrimaryRenderer;n.warnsIfNotActing;var Mi=n.supportsMutation,fo=n.supportsPersistence,Va=n.supportsHydration,fR=n.getInstanceFromNode;n.beforeActiveInstanceBlur,n.afterActiveInstanceBlur;var Qz=n.preparePortalMount;n.prepareScopeUpdate,n.getInstanceFromScope;var Qi=n.setCurrentUpdatePriority,Tl=n.getCurrentUpdatePriority,Kz=n.resolveUpdatePriority;n.resolveEventType,n.resolveEventTimeStamp;var Jz=n.shouldAttemptEagerTransition,$z=n.detachDeletedInstance;n.requestPostPaintCallback;var tB=n.maySuspendCommit,hR=n.preloadInstance,eB=n.startSuspendingCommit,dR=n.suspendInstance,nB=n.waitForCommitToBeReady,nc=n.NotPendingTransition,Al=n.HostTransitionContext,iB=n.resetFormInstance;n.bindToConsole;var aB=n.supportsMicrotasks,sB=n.scheduleMicrotask,Kh=n.supportsTestSelectors,rB=n.findFiberRoot,oB=n.getBoundingRect,lB=n.getTextContent,Jh=n.isHiddenSubtree,uB=n.matchAccessibilityRole,cB=n.setFocusIfFocusable,fB=n.setupIntersectionObserver,hB=n.appendChild,dB=n.appendChildToContainer,pB=n.commitTextUpdate,mB=n.commitMount,gB=n.commitUpdate,vB=n.insertBefore,yB=n.insertInContainerBefore,_B=n.removeChild,xB=n.removeChildFromContainer,pR=n.resetTextContent,SB=n.hideInstance,MB=n.hideTextInstance,EB=n.unhideInstance,bB=n.unhideTextInstance,TB=n.clearContainer,AB=n.cloneInstance,mR=n.createContainerChildSet,gR=n.appendChildToContainerChildSet,RB=n.finalizeContainerChildren,vR=n.replaceContainerChildren,yR=n.cloneHiddenInstance,_R=n.cloneHiddenTextInstance,HS=n.isSuspenseInstancePending,FS=n.isSuspenseInstanceFallback,CB=n.getSuspenseInstanceFallbackErrorDetails,wB=n.registerSuspenseInstanceRetry,DB=n.canHydrateFormStateMarker,UB=n.isFormStateMarkerMatching,xR=n.getNextHydratableSibling,SR=n.getFirstHydratableChild,NB=n.getFirstHydratableChildWithinContainer,OB=n.getFirstHydratableChildWithinSuspenseInstance,LB=n.canHydrateInstance,zB=n.canHydrateTextInstance,BB=n.canHydrateSuspenseInstance,PB=n.hydrateInstance,IB=n.hydrateTextInstance,HB=n.hydrateSuspenseInstance,FB=n.getNextHydratableInstanceAfterSuspenseInstance,VB=n.commitHydratedContainer,GB=n.commitHydratedSuspenseInstance,XB=n.clearSuspenseBoundary,qB=n.clearSuspenseBoundaryFromContainer,MR=n.shouldDeleteUnhydratedTailInstances;n.diffHydratedPropsForDevWarnings,n.diffHydratedTextForDevWarnings,n.describeHydratableInstanceForDevWarnings;var YB=n.validateHydratableInstance,WB=n.validateHydratableTextInstance,Ga=n.supportsResources,ER=n.isHostHoistableType,VS=n.getHoistableRoot,bR=n.getResource,TR=n.acquireResource,AR=n.releaseResource,kB=n.hydrateHoistable,RR=n.mountHoistable,CR=n.unmountHoistable,ZB=n.createHoistableInstance,jB=n.prepareToCommitHoistables,QB=n.mayResourceSuspendCommit,wR=n.preloadResource,KB=n.suspendResource,Ei=n.supportsSingletons,DR=n.resolveSingletonInstance,JB=n.clearSingleton,$B=n.acquireSingletonInstance,t4=n.releaseSingletonInstance,UR=n.isHostSingletonType,GS=[],ic=-1,ac={},ma=Math.clz32?Math.clz32:S,e4=Math.log,n4=Math.LN2,u0=128,c0=4194304,f0=pa.unstable_scheduleCallback,XS=pa.unstable_cancelCallback,i4=pa.unstable_shouldYield,a4=pa.unstable_requestPaint,ps=pa.unstable_now,NR=pa.unstable_ImmediatePriority,s4=pa.unstable_UserBlockingPriority,qS=pa.unstable_NormalPriority,r4=pa.unstable_IdlePriority,o4=pa.log,l4=pa.unstable_setDisableYieldValue,$h=null,ga=null,va=typeof Object.is==&amp;amp;quot;function&amp;amp;quot;?Object.is:mt,OR=new WeakMap,sc=[],rc=0,h0=null,d0=0,Xa=[],qa=0,Rl=null,gr=1,vr=&amp;amp;quot;&amp;amp;quot;,di=b(null),td=b(null),ho=b(null),p0=b(null),Ii=null,bi=null,ze=!1,ms=null,Is=!1,YS=Error(i(519)),Ya=[],oc=0,WS=0,m0=null,lc=null,kS=!1,g0=!1,ZS=!1,uc=0,ed=null,jS=0,cc=0,fc=null,po=!1,QS=!1,u4=Object.prototype.hasOwnProperty,nd=Error(i(460)),KS=Error(i(474)),v0={then:function(){}},hc=null,dc=null,id=0,Cl=Ha(!0),LR=Ha(!1),pc=b(null),y0=b(0),Wa=b(null),Hs=null,qn=b(0),mo=0,Ee=null,Je=null,Bn=null,_0=!1,mc=!1,wl=!1,x0=0,ad=0,gc=null,c4=0,JS=function(){return{lastEffect:null,events:null,stores:null,memoCache:null}},Fs={readContext:Si,use:$,useCallback:rn,useContext:rn,useEffect:rn,useImperativeHandle:rn,useLayoutEffect:rn,useInsertionEffect:rn,useMemo:rn,useReducer:rn,useRef:rn,useState:rn,useDebugValue:rn,useDeferredValue:rn,useTransition:rn,useSyncExternalStore:rn,useId:rn};Fs.useCacheRefresh=rn,Fs.useMemoCache=rn,Fs.useHostTransitionStatus=rn,Fs.useFormState=rn,Fs.useActionState=rn,Fs.useOptimistic=rn;var Dl={readContext:Si,use:$,useCallback:function(r,l){return N().memoizedState=[r,l===void 0?null:l],r},useContext:Si,useEffect:OA,useImperativeHandle:function(r,l,f){f=f!=null?f.concat([r]):null,Zg(4194308,4,BA.bind(null,l,r),f)},useLayoutEffect:function(r,l){return Zg(4194308,4,r,l)},useInsertionEffect:function(r,l){Zg(4,2,r,l)},useMemo:function(r,l){var f=N();l=l===void 0?null:l;var p=r();if(wl){et(!0);try{r()}finally{et(!1)}}return f.memoizedState=[p,l],p},useReducer:function(r,l,f){var p=N();if(f!==void 0){var _=f(l);if(wl){et(!0);try{f(l)}finally{et(!1)}}}else _=l;return p.memoizedState=p.baseState=_,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:_},p.queue=r,r=r.dispatch=yz.bind(null,Ee,r),[p.memoizedState,r]},useRef:function(r){var l=N();return r={current:r},l.memoizedState=r},useState:function(r){r=Ze(r);var l=r.queue,f=YA.bind(null,Ee,l);return l.dispatch=f,[r.memoizedState,f]},useDebugValue:Xx,useDeferredValue:function(r,l){var f=N();return qx(f,r,l)},useTransition:function(){var r=Ze(!1);return r=VA.bind(null,Ee,r.queue,!0,!1),N().memoizedState=r,[!1,r]},useSyncExternalStore:function(r,l,f){var p=Ee,_=N();if(ze){if(f===void 0)throw Error(i(407));f=f()}else{if(f=l(),un===null)throw Error(i(349));(Ue&amp;amp;amp;60)!==0||ae(p,l,f)}_.memoizedState=f;var A={value:f,getSnapshot:l};return _.queue=A,OA(Me.bind(null,p,A,r),[r]),p.flags|=2048,Bs(9,Kt.bind(null,p,A,f,l),{destroy:void 0},null),f},useId:function(){var r=N(),l=un.identifierPrefix;if(ze){var f=vr,p=gr;f=(p&amp;amp;amp;~(1&amp;amp;lt;&amp;amp;lt;32-ma(p)-1)).toString(32)+f,l=&amp;amp;quot;:&amp;amp;quot;+l+&amp;amp;quot;R&amp;amp;quot;+f,f=x0++,0&amp;amp;lt;f&amp;amp;amp;&amp;amp;amp;(l+=&amp;amp;quot;H&amp;amp;quot;+f.toString(32)),l+=&amp;amp;quot;:&amp;amp;quot;}else f=c4++,l=&amp;amp;quot;:&amp;amp;quot;+l+&amp;amp;quot;r&amp;amp;quot;+f.toString(32)+&amp;amp;quot;:&amp;amp;quot;;return r.memoizedState=l},useCacheRefresh:function(){return N().memoizedState=vz.bind(null,Ee)}};Dl.useMemoCache=q,Dl.useHostTransitionStatus=Yx,Dl.useFormState=ln,Dl.useActionState=ln,Dl.useOptimistic=function(r){var l=N();l.memoizedState=l.baseState=r;var f={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return l.queue=f,l=Wx.bind(null,Ee,!0,f),f.dispatch=l,[r,l]};var go={readContext:Si,use:$,useCallback:IA,useContext:Si,useEffect:Gx,useImperativeHandle:PA,useInsertionEffect:LA,useLayoutEffect:zA,useMemo:HA,useReducer:Lt,useRef:Ps,useState:function(){return Lt(yt)},useDebugValue:Xx,useDeferredValue:function(r,l){var f=V();return FA(f,Je.memoizedState,r,l)},useTransition:function(){var r=Lt(yt)[0],l=V().memoizedState;return[typeof r==&amp;amp;quot;boolean&amp;amp;quot;?r:J(r),l]},useSyncExternalStore:ie,useId:XA};go.useCacheRefresh=qA,go.useMemoCache=q,go.useHostTransitionStatus=Yx,go.useFormState=zi,go.useActionState=zi,go.useOptimistic=function(r,l){var f=V();return qe(f,Je,r,l)};var Ul={readContext:Si,use:$,useCallback:IA,useContext:Si,useEffect:Gx,useImperativeHandle:PA,useInsertionEffect:LA,useLayoutEffect:zA,useMemo:HA,useReducer:Vt,useRef:Ps,useState:function(){return Vt(yt)},useDebugValue:Xx,useDeferredValue:function(r,l){var f=V();return Je===null?qx(f,r,l):FA(f,Je.memoizedState,r,l)},useTransition:function(){var r=Vt(yt)[0],l=V().memoizedState;return[typeof r==&amp;amp;quot;boolean&amp;amp;quot;?r:J(r),l]},useSyncExternalStore:ie,useId:XA};Ul.useCacheRefresh=qA,Ul.useMemoCache=q,Ul.useHostTransitionStatus=Yx,Ul.useFormState=fi,Ul.useActionState=fi,Ul.useOptimistic=function(r,l){var f=V();return Je!==null?qe(f,Je,r,l):(f.baseState=r,[r,f.queue.dispatch])};var $S={isMounted:function(r){return(r=r._reactInternals)?d(r)===r:!1},enqueueSetState:function(r,l,f){r=r._reactInternals;var p=da(),_=Ft(p);_.payload=l,f!=null&amp;amp;amp;&amp;amp;amp;(_.callback=f),l=vt(r,_,p),l!==null&amp;amp;amp;&amp;amp;amp;(Pi(l,r,p),Ot(l,r,p))},enqueueReplaceState:function(r,l,f){r=r._reactInternals;var p=da(),_=Ft(p);_.tag=1,_.payload=l,f!=null&amp;amp;amp;&amp;amp;amp;(_.callback=f),l=vt(r,_,p),l!==null&amp;amp;amp;&amp;amp;amp;(Pi(l,r,p),Ot(l,r,p))},enqueueForceUpdate:function(r,l){r=r._reactInternals;var f=da(),p=Ft(f);p.tag=2,l!=null&amp;amp;amp;&amp;amp;amp;(p.callback=l),l=vt(r,p,f),l!==null&amp;amp;amp;&amp;amp;amp;(Pi(l,r,f),Ot(l,r,f))}},zR=typeof reportError==&amp;amp;quot;function&amp;amp;quot;?reportError:function(r){if(typeof window==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof window.ErrorEvent==&amp;amp;quot;function&amp;amp;quot;){var l=new window.ErrorEvent(&amp;amp;quot;error&amp;amp;quot;,{bubbles:!0,cancelable:!0,message:typeof r==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r!==null&amp;amp;amp;&amp;amp;amp;typeof r.message==&amp;amp;quot;string&amp;amp;quot;?String(r.message):String(r),error:r});if(!window.dispatchEvent(l))return}else if(typeof process==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof process.emit==&amp;amp;quot;function&amp;amp;quot;){process.emit(&amp;amp;quot;uncaughtException&amp;amp;quot;,r);return}console.error(r)},BR=Error(i(461)),Jn=!1,tM={dehydrated:null,treeContext:null,retryLane:0},S0=b(null),Nl=null,yr=null,f4=typeof AbortController&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?AbortController:function(){var r=[],l=this.signal={aborted:!1,addEventListener:function(f,p){r.push(p)}};this.abort=function(){l.aborted=!0,r.forEach(function(f){return f()})}},h4=pa.unstable_scheduleCallback,d4=pa.unstable_NormalPriority,Tn={$$typeof:uo,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0},PR=pe.S;pe.S=function(r,l){typeof l==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;l!==null&amp;amp;amp;&amp;amp;amp;typeof l.then==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;gt(r,l),PR!==null&amp;amp;amp;&amp;amp;amp;PR(r,l)};var Ol=b(null),_r=!1,An=!1,eM=!1,IR=typeof WeakSet==&amp;amp;quot;function&amp;amp;quot;?WeakSet:Set,$n=null,HR=!1,Pn=null,ya=!1,gs=null,vc=8192,p4={getCacheForType:function(r){var l=Si(Tn),f=l.data.get(r);return f===void 0&amp;amp;amp;&amp;amp;amp;(f=r(),l.data.set(r,f)),f}},M0=0,E0=1,b0=2,T0=3,A0=4;if(typeof Symbol==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Symbol.for){var sd=Symbol.for;M0=sd(&amp;amp;quot;selector.component&amp;amp;quot;),E0=sd(&amp;amp;quot;selector.has_pseudo_class&amp;amp;quot;),b0=sd(&amp;amp;quot;selector.role&amp;amp;quot;),T0=sd(&amp;amp;quot;selector.test_id&amp;amp;quot;),A0=sd(&amp;amp;quot;selector.text&amp;amp;quot;)}var m4=typeof WeakMap==&amp;amp;quot;function&amp;amp;quot;?WeakMap:Map,$e=0,un=null,Ae=null,Ue=0,cn=0,_a=null,xr=!1,yc=!1,nM=!1,Sr=0,Rn=0,vo=0,Ll=0,iM=0,ka=0,_c=0,rd=null,Vs=null,aM=!1,sM=0,od=1/0,R0=null,yo=null,C0=!1,zl=null,ld=0,rM=0,oM=null,ud=0,lM=null;return Te.attemptContinuousHydration=function(r){if(r.tag===13){var l=pt(r,67108864);l!==null&amp;amp;amp;&amp;amp;amp;Pi(l,r,67108864),CS(r,67108864)}},Te.attemptHydrationAtCurrentPriority=function(r){if(r.tag===13){var l=da(),f=pt(r,l);f!==null&amp;amp;amp;&amp;amp;amp;Pi(f,r,l),CS(r,l)}},Te.attemptSynchronousHydration=function(r){switch(r.tag){case 3:if(r=r.stateNode,r.current.memoizedState.isDehydrated){var l=E(r.pendingLanes);if(l!==0){for(r.pendingLanes|=2,r.entangledLanes|=2;l;){var f=1&amp;amp;lt;&amp;amp;lt;31-ma(l);r.entanglements[1]|=f,l&amp;amp;amp;=~f}dt(r),($e&amp;amp;amp;6)===0&amp;amp;amp;&amp;amp;amp;(od=ps()+500,Rt(0,!1))}}break;case 13:l=pt(r,2),l!==null&amp;amp;amp;&amp;amp;amp;Pi(l,r,2),I2(),CS(r,2)}},Te.batchedUpdates=function(r,l){return r(l)},Te.createComponentSelector=function(r){return{$$typeof:M0,value:r}},Te.createContainer=function(r,l,f,p,_,A,L,F,W,ot){return J2(r,l,!1,null,f,p,A,L,F,W,ot,null)},Te.createHasPseudoClassSelector=function(r){return{$$typeof:E0,value:r}},Te.createHydrationContainer=function(r,l,f,p,_,A,L,F,W,ot,At,Pt,Ht){return r=J2(f,p,!0,r,_,A,F,W,ot,At,Pt,Ht),r.context=$2(null),f=r.current,p=da(),_=Ft(p),_.callback=l??null,vt(f,_,p),r.current.lanes=p,R(r,p),dt(r),r},Te.createPortal=function(r,l,f){var p=3&amp;amp;lt;arguments.length&amp;amp;amp;&amp;amp;amp;arguments[3]!==void 0?arguments[3]:null;return{$$typeof:tc,key:p==null?null:&amp;amp;quot;&amp;amp;quot;+p,children:r,containerInfo:l,implementation:f}},Te.createRoleSelector=function(r){return{$$typeof:b0,value:r}},Te.createTestNameSelector=function(r){return{$$typeof:T0,value:r}},Te.createTextSelector=function(r){return{$$typeof:A0,value:r}},Te.defaultOnCaughtError=function(r){console.error(r)},Te.defaultOnRecoverableError=function(r){zR(r)},Te.defaultOnUncaughtError=function(r){zR(r)},Te.deferredUpdates=function(r){var l=pe.T,f=Tl();try{return Qi(32),pe.T=null,r()}finally{Qi(f),pe.T=l}},Te.discreteUpdates=function(r,l,f,p,_){var A=pe.T,L=Tl();try{return Qi(2),pe.T=null,r(l,f,p,_)}finally{Qi(L),pe.T=A,$e===0&amp;amp;amp;&amp;amp;amp;(od=ps()+500)}},Te.findAllNodes=_S,Te.findBoundingRects=function(r,l){if(!Kh)throw Error(i(363));l=_S(r,l),r=[];for(var f=0;f&amp;amp;lt;l.length;f++)r.push(oB(l[f]));for(l=r.length-1;0&amp;amp;lt;l;l--){f=r[l];for(var p=f.x,_=p+f.width,A=f.y,L=A+f.height,F=l-1;0&amp;amp;lt;=F;F--)if(l!==F){var W=r[F],ot=W.x,At=ot+W.width,Pt=W.y,Ht=Pt+W.height;if(p&amp;amp;gt;=ot&amp;amp;amp;&amp;amp;amp;A&amp;amp;gt;=Pt&amp;amp;amp;&amp;amp;amp;_&amp;amp;lt;=At&amp;amp;amp;&amp;amp;amp;L&amp;amp;lt;=Ht){r.splice(l,1);break}else if(p!==ot||f.width!==W.width||Ht&amp;amp;lt;A||Pt&amp;amp;gt;L){if(!(A!==Pt||f.height!==W.height||At&amp;amp;lt;p||ot&amp;amp;gt;_)){ot&amp;amp;gt;p&amp;amp;amp;&amp;amp;amp;(W.width+=ot-p,W.x=p),At&amp;amp;lt;_&amp;amp;amp;&amp;amp;amp;(W.width=_-ot),r.splice(l,1);break}}else{Pt&amp;amp;gt;A&amp;amp;amp;&amp;amp;amp;(W.height+=Pt-A,W.y=A),Ht&amp;amp;lt;L&amp;amp;amp;&amp;amp;amp;(W.height=L-Pt),r.splice(l,1);break}}}return r},Te.findHostInstance=tR,Te.findHostInstanceWithNoPortals=function(r){return r=g(r),r=r!==null?x(r):null,r===null?null:Qh(r.stateNode)},Te.findHostInstanceWithWarning=function(r){return tR(r)},Te.flushPassiveEffects=El,Te.flushSyncFromReconciler=function(r){var l=$e;$e|=1;var f=pe.T,p=Tl();try{if(Qi(2),pe.T=null,r)return r()}finally{Qi(p),pe.T=f,$e=l,($e&amp;amp;amp;6)===0&amp;amp;amp;&amp;amp;amp;Rt(0,!1)}},Te.flushSyncWork=I2,Te.focusWithin=function(r,l){if(!Kh)throw Error(i(363));for(r=gS(r),l=L2(r,l),l=Array.from(l),r=0;r&amp;amp;lt;l.length;){var f=l[r++],p=f.tag;if(!Jh(f)){if((p===5||p===26||p===27)&amp;amp;amp;&amp;amp;amp;cB(f.stateNode))return!0;for(f=f.child;f!==null;)l.push(f),f=f.sibling}}return!1},Te.getFindAllNodesFailureDescription=function(r,l){if(!Kh)throw Error(i(363));var f=0,p=[];r=[gS(r),0];for(var _=0;_&amp;amp;lt;r.length;){var A=r[_++],L=A.tag,F=r[_++],W=l[F];if((L!==5&amp;amp;amp;&amp;amp;amp;L!==26&amp;amp;amp;&amp;amp;amp;L!==27||!Jh(A))&amp;amp;amp;&amp;amp;amp;(vS(A,W)&amp;amp;amp;&amp;amp;amp;(p.push(yS(W)),F++,F&amp;amp;gt;f&amp;amp;amp;&amp;amp;amp;(f=F)),F&amp;amp;lt;l.length))for(A=A.child;A!==null;)r.push(A,F),A=A.sibling}if(f&amp;amp;lt;l.length){for(r=[];f&amp;amp;lt;l.length;f++)r.push(yS(l[f]));return`findAllNodes was able to match part of the selector:
   1191 <a href="#l1172" class="line" id="l1172">   1172</a> &lt;a href=&quot;#l1153&quot; class=&quot;line&quot; id=&quot;l1153&quot;&gt;   1153&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-16&amp;quot; id=&amp;quot;h3-0-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  `+(p.join(&amp;amp;quot; &amp;amp;gt; &amp;amp;quot;)+`
   1192 <a href="#l1173" class="line" id="l1173">   1173</a> &lt;a href=&quot;#l1154&quot; class=&quot;line&quot; id=&quot;l1154&quot;&gt;   1154&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-17&amp;quot; id=&amp;quot;h3-0-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1193 <a href="#l1174" class="line" id="l1174">   1174</a> &lt;a href=&quot;#l1155&quot; class=&quot;line&quot; id=&quot;l1155&quot;&gt;   1155&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-18&amp;quot; id=&amp;quot;h3-0-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+No matching component was found for:
   1194 <a href="#l1175" class="line" id="l1175">   1175</a> &lt;a href=&quot;#l1156&quot; class=&quot;line&quot; id=&quot;l1156&quot;&gt;   1156&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-19&amp;quot; id=&amp;quot;h3-0-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  `)+r.join(&amp;amp;quot; &amp;amp;gt; &amp;amp;quot;)}return null},Te.getPublicRootInstance=function(r){if(r=r.current,!r.child)return null;switch(r.child.tag){case 27:case 5:return Qh(r.child.stateNode);default:return r.child.stateNode}},Te.injectIntoDevTools=function(){var r={bundleType:0,version:Vz,rendererPackageName:Gz,currentDispatcherRef:pe,findFiberByHostInstance:fR,reconcilerVersion:&amp;amp;quot;19.0.0&amp;amp;quot;};if(lR!==null&amp;amp;amp;&amp;amp;amp;(r.rendererConfig=lR),typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)r=!1;else{var l=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(l.isDisabled||!l.supportsFiber)r=!0;else{try{$h=l.inject(r),ga=l}catch{}r=!!l.checkDCE}}return r},Te.isAlreadyRendering=function(){return!1},Te.observeVisibleRects=function(r,l,f,p){if(!Kh)throw Error(i(363));r=_S(r,l);var _=fB(r,f,p).disconnect;return{disconnect:function(){_()}}},Te.shouldError=function(){return null},Te.shouldSuspend=function(){return!1},Te.startHostTransition=function(r,l,f,p){if(r.tag!==5)throw Error(i(476));var _=GA(r).queue;VA(r,_,l,nc,f===null?e:function(){var A=GA(r).next.queue;return Gh(r,A,{},da()),f(p)})},Te.updateContainer=function(r,l,f,p){var _=l.current,A=da();return eR(_,A,r,l,f,p),A},Te.updateContainerSync=function(r,l,f,p){return l.tag===0&amp;amp;amp;&amp;amp;amp;El(),eR(l.current,2,r,l,f,p),2},Te};Xg.exports.default=Xg.exports;Object.defineProperty(Xg.exports,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0})});var uA=In((u9,NL)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;NL.exports=UL()});var LL=In(Rx=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;var e7=Symbol.for(&amp;amp;quot;react.transitional.element&amp;amp;quot;),n7=Symbol.for(&amp;amp;quot;react.fragment&amp;amp;quot;);function OL(n,t,e){var i=null;if(e!==void 0&amp;amp;amp;&amp;amp;amp;(i=&amp;amp;quot;&amp;amp;quot;+e),t.key!==void 0&amp;amp;amp;&amp;amp;amp;(i=&amp;amp;quot;&amp;amp;quot;+t.key),&amp;amp;quot;key&amp;amp;quot;in t){e={};for(var a in t)a!==&amp;amp;quot;key&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(e[a]=t[a])}else e=t;return t=e.ref,{$$typeof:e7,type:n,key:i,ref:t!==void 0?t:null,props:e}}Rx.Fragment=n7;Rx.jsx=OL;Rx.jsxs=OL});var cA=In((f9,zL)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;zL.exports=LL()});var Ls=Ti(ja()),gz=Ti(xU());var sn=Ti(ja()),vl=Ti(qE());var _x={};M4(_x,{ACESFilmicToneMapping:()=&amp;amp;gt;ng,AddEquation:()=&amp;amp;gt;Zr,AddOperation:()=&amp;amp;gt;uT,AdditiveAnimationBlendMode:()=&amp;amp;gt;cx,AdditiveBlending:()=&amp;amp;gt;$_,AgXToneMapping:()=&amp;amp;gt;pT,AlphaFormat:()=&amp;amp;gt;rx,AlwaysCompare:()=&amp;amp;gt;wT,AlwaysDepth:()=&amp;amp;gt;Qm,AlwaysStencilFunc:()=&amp;amp;gt;Yy,AmbientLight:()=&amp;amp;gt;Im,AnimationAction:()=&amp;amp;gt;Zm,AnimationClip:()=&amp;amp;gt;dl,AnimationLoader:()=&amp;amp;gt;c_,AnimationMixer:()=&amp;amp;gt;E_,AnimationObjectGroup:()=&amp;amp;gt;M_,AnimationUtils:()=&amp;amp;gt;u_,ArcCurve:()=&amp;amp;gt;im,ArrayCamera:()=&amp;amp;gt;Ym,ArrowHelper:()=&amp;amp;gt;W_,AttachedBindMode:()=&amp;amp;gt;qy,Audio:()=&amp;amp;gt;Wm,AudioAnalyser:()=&amp;amp;gt;S_,AudioContext:()=&amp;amp;gt;dh,AudioListener:()=&amp;amp;gt;__,AudioLoader:()=&amp;amp;gt;v_,AxesHelper:()=&amp;amp;gt;k_,BackSide:()=&amp;amp;gt;Ni,BasicDepthPacking:()=&amp;amp;gt;xT,BasicShadowMap:()=&amp;amp;gt;J_,BatchedMesh:()=&amp;amp;gt;jp,Bone:()=&amp;amp;gt;kf,BooleanKeyframeTrack:()=&amp;amp;gt;ir,Box2:()=&amp;amp;gt;O_,Box3:()=&amp;amp;gt;Zn,Box3Helper:()=&amp;amp;gt;q_,BoxGeometry:()=&amp;amp;gt;rl,BoxHelper:()=&amp;amp;gt;X_,BufferAttribute:()=&amp;amp;gt;Xe,BufferGeometry:()=&amp;amp;gt;ve,BufferGeometryLoader:()=&amp;amp;gt;qm,ByteType:()=&amp;amp;gt;ix,Cache:()=&amp;amp;gt;As,Camera:()=&amp;amp;gt;Mu,CameraHelper:()=&amp;amp;gt;G_,CanvasTexture:()=&amp;amp;gt;o_,CapsuleGeometry:()=&amp;amp;gt;$p,CatmullRomCurve3:()=&amp;amp;gt;am,CineonToneMapping:()=&amp;amp;gt;hT,CircleGeometry:()=&amp;amp;gt;tm,ClampToEdgeWrapping:()=&amp;amp;gt;Ua,Clock:()=&amp;amp;gt;Uu,Color:()=&amp;amp;gt;Bt,ColorKeyframeTrack:()=&amp;amp;gt;ch,ColorManagement:()=&amp;amp;gt;we,CompressedArrayTexture:()=&amp;amp;gt;s_,CompressedCubeTexture:()=&amp;amp;gt;r_,CompressedTexture:()=&amp;amp;gt;Au,CompressedTextureLoader:()=&amp;amp;gt;f_,ConeGeometry:()=&amp;amp;gt;Kf,ConstantAlphaFactor:()=&amp;amp;gt;rT,ConstantColorFactor:()=&amp;amp;gt;aT,Controls:()=&amp;amp;gt;j_,CubeCamera:()=&amp;amp;gt;Hp,CubeReflectionMapping:()=&amp;amp;gt;rr,CubeRefractionMapping:()=&amp;amp;gt;to,CubeTexture:()=&amp;amp;gt;ol,CubeTextureLoader:()=&amp;amp;gt;h_,CubeUVReflectionMapping:()=&amp;amp;gt;Ou,CubicBezierCurve:()=&amp;amp;gt;Jf,CubicBezierCurve3:()=&amp;amp;gt;sm,CubicInterpolant:()=&amp;amp;gt;Dm,CullFaceBack:()=&amp;amp;gt;K_,CullFaceFront:()=&amp;amp;gt;Xb,CullFaceFrontBack:()=&amp;amp;gt;NN,CullFaceNone:()=&amp;amp;gt;Gb,Curve:()=&amp;amp;gt;oa,CurvePath:()=&amp;amp;gt;om,CustomBlending:()=&amp;amp;gt;qb,CustomToneMapping:()=&amp;amp;gt;dT,CylinderGeometry:()=&amp;amp;gt;Qf,Cylindrical:()=&amp;amp;gt;U_,Data3DTexture:()=&amp;amp;gt;Su,DataArrayTexture:()=&amp;amp;gt;xu,DataTexture:()=&amp;amp;gt;Oa,DataTextureLoader:()=&amp;amp;gt;d_,DataUtils:()=&amp;amp;gt;Zy,DecrementStencilOp:()=&amp;amp;gt;WN,DecrementWrapStencilOp:()=&amp;amp;gt;ZN,DefaultLoadingManager:()=&amp;amp;gt;PT,DepthFormat:()=&amp;amp;gt;gu,DepthStencilFormat:()=&amp;amp;gt;Iu,DepthTexture:()=&amp;amp;gt;jf,DetachedBindMode:()=&amp;amp;gt;gT,DirectionalLight:()=&amp;amp;gt;Pm,DirectionalLightHelper:()=&amp;amp;gt;V_,DiscreteInterpolant:()=&amp;amp;gt;Um,DodecahedronGeometry:()=&amp;amp;gt;em,DoubleSide:()=&amp;amp;gt;Ds,DstAlphaFactor:()=&amp;amp;gt;$b,DstColorFactor:()=&amp;amp;gt;eT,DynamicCopyUsage:()=&amp;amp;gt;uO,DynamicDrawUsage:()=&amp;amp;gt;iO,DynamicReadUsage:()=&amp;amp;gt;rO,EdgesGeometry:()=&amp;amp;gt;nm,EllipseCurve:()=&amp;amp;gt;Ru,EqualCompare:()=&amp;amp;gt;TT,EqualDepth:()=&amp;amp;gt;Jm,EqualStencilFunc:()=&amp;amp;gt;JN,EquirectangularReflectionMapping:()=&amp;amp;gt;vh,EquirectangularRefractionMapping:()=&amp;amp;gt;yh,Euler:()=&amp;amp;gt;sa,EventDispatcher:()=&amp;amp;gt;La,ExtrudeGeometry:()=&amp;amp;gt;fm,FileLoader:()=&amp;amp;gt;ls,Float16BufferAttribute:()=&amp;amp;gt;t_,Float32BufferAttribute:()=&amp;amp;gt;Xt,FloatType:()=&amp;amp;gt;qi,Fog:()=&amp;amp;gt;Gp,FogExp2:()=&amp;amp;gt;Vp,FramebufferTexture:()=&amp;amp;gt;a_,FrontSide:()=&amp;amp;gt;tr,Frustum:()=&amp;amp;gt;Kr,FrustumArray:()=&amp;amp;gt;Zp,GLBufferAttribute:()=&amp;amp;gt;C_,GLSL1:()=&amp;amp;gt;fO,GLSL3:()=&amp;amp;gt;hx,GreaterCompare:()=&amp;amp;gt;AT,GreaterDepth:()=&amp;amp;gt;tg,GreaterEqualCompare:()=&amp;amp;gt;CT,GreaterEqualDepth:()=&amp;amp;gt;$m,GreaterEqualStencilFunc:()=&amp;amp;gt;nO,GreaterStencilFunc:()=&amp;amp;gt;tO,GridHelper:()=&amp;amp;gt;H_,Group:()=&amp;amp;gt;Wr,HalfFloatType:()=&amp;amp;gt;Bu,HemisphereLight:()=&amp;amp;gt;Om,HemisphereLightHelper:()=&amp;amp;gt;I_,IcosahedronGeometry:()=&amp;amp;gt;hm,ImageBitmapLoader:()=&amp;amp;gt;g_,ImageLoader:()=&amp;amp;gt;pl,ImageUtils:()=&amp;amp;gt;Ip,IncrementStencilOp:()=&amp;amp;gt;YN,IncrementWrapStencilOp:()=&amp;amp;gt;kN,InstancedBufferAttribute:()=&amp;amp;gt;Qr,InstancedBufferGeometry:()=&amp;amp;gt;Xm,InstancedInterleavedBuffer:()=&amp;amp;gt;R_,InstancedMesh:()=&amp;amp;gt;kp,Int16BufferAttribute:()=&amp;amp;gt;Jy,Int32BufferAttribute:()=&amp;amp;gt;$y,Int8BufferAttribute:()=&amp;amp;gt;jy,IntType:()=&amp;amp;gt;ag,InterleavedBuffer:()=&amp;amp;gt;Tu,InterleavedBufferAttribute:()=&amp;amp;gt;ll,Interpolant:()=&amp;amp;gt;ul,InterpolateDiscrete:()=&amp;amp;gt;If,InterpolateLinear:()=&amp;amp;gt;Pp,InterpolateSmooth:()=&amp;amp;gt;Up,InterpolationSamplingMode:()=&amp;amp;gt;pO,InterpolationSamplingType:()=&amp;amp;gt;dO,InvertStencilOp:()=&amp;amp;gt;jN,KeepStencilOp:()=&amp;amp;gt;el,KeyframeTrack:()=&amp;amp;gt;Yi,LOD:()=&amp;amp;gt;qp,LatheGeometry:()=&amp;amp;gt;dm,Layers:()=&amp;amp;gt;nr,LessCompare:()=&amp;amp;gt;bT,LessDepth:()=&amp;amp;gt;Km,LessEqualCompare:()=&amp;amp;gt;fx,LessEqualDepth:()=&amp;amp;gt;sl,LessEqualStencilFunc:()=&amp;amp;gt;$N,LessStencilFunc:()=&amp;amp;gt;KN,Light:()=&amp;amp;gt;ws,LightProbe:()=&amp;amp;gt;Vm,Line:()=&amp;amp;gt;Cs,Line3:()=&amp;amp;gt;L_,LineBasicMaterial:()=&amp;amp;gt;ui,LineCurve:()=&amp;amp;gt;$f,LineCurve3:()=&amp;amp;gt;rm,LineDashedMaterial:()=&amp;amp;gt;wm,LineLoop:()=&amp;amp;gt;Qp,LineSegments:()=&amp;amp;gt;Ba,LinearFilter:()=&amp;amp;gt;Gn,LinearInterpolant:()=&amp;amp;gt;uh,LinearMipMapLinearFilter:()=&amp;amp;gt;BN,LinearMipMapNearestFilter:()=&amp;amp;gt;zN,LinearMipmapLinearFilter:()=&amp;amp;gt;Us,LinearMipmapNearestFilter:()=&amp;amp;gt;_h,LinearSRGBColorSpace:()=&amp;amp;gt;er,LinearToneMapping:()=&amp;amp;gt;cT,LinearTransfer:()=&amp;amp;gt;Ff,Loader:()=&amp;amp;gt;yi,LoaderUtils:()=&amp;amp;gt;hh,LoadingManager:()=&amp;amp;gt;fh,LoopOnce:()=&amp;amp;gt;vT,LoopPingPong:()=&amp;amp;gt;_T,LoopRepeat:()=&amp;amp;gt;yT,MOUSE:()=&amp;amp;gt;DN,Material:()=&amp;amp;gt;jn,MaterialLoader:()=&amp;amp;gt;Gm,MathUtils:()=&amp;amp;gt;mO,Matrix2:()=&amp;amp;gt;N_,Matrix3:()=&amp;amp;gt;ge,Matrix4:()=&amp;amp;gt;fe,MaxEquation:()=&amp;amp;gt;Zb,Mesh:()=&amp;amp;gt;En,MeshBasicMaterial:()=&amp;amp;gt;Rs,MeshDepthMaterial:()=&amp;amp;gt;oh,MeshDistanceMaterial:()=&amp;amp;gt;lh,MeshLambertMaterial:()=&amp;amp;gt;Rm,MeshMatcapMaterial:()=&amp;amp;gt;Cm,MeshNormalMaterial:()=&amp;amp;gt;Am,MeshPhongMaterial:()=&amp;amp;gt;bm,MeshPhysicalMaterial:()=&amp;amp;gt;Em,MeshStandardMaterial:()=&amp;amp;gt;rh,MeshToonMaterial:()=&amp;amp;gt;Tm,MinEquation:()=&amp;amp;gt;kb,MirroredRepeatWrapping:()=&amp;amp;gt;Pf,MixOperation:()=&amp;amp;gt;lT,MultiplyBlending:()=&amp;amp;gt;ex,MultiplyOperation:()=&amp;amp;gt;gh,NearestFilter:()=&amp;amp;gt;oi,NearestMipMapLinearFilter:()=&amp;amp;gt;LN,NearestMipMapNearestFilter:()=&amp;amp;gt;ON,NearestMipmapLinearFilter:()=&amp;amp;gt;Lu,NearestMipmapNearestFilter:()=&amp;amp;gt;nx,NeutralToneMapping:()=&amp;amp;gt;mT,NeverCompare:()=&amp;amp;gt;ET,NeverDepth:()=&amp;amp;gt;jm,NeverStencilFunc:()=&amp;amp;gt;QN,NoBlending:()=&amp;amp;gt;sr,NoColorSpace:()=&amp;amp;gt;lr,NoToneMapping:()=&amp;amp;gt;us,NormalAnimationBlendMode:()=&amp;amp;gt;Bg,NormalBlending:()=&amp;amp;gt;al,NotEqualCompare:()=&amp;amp;gt;RT,NotEqualDepth:()=&amp;amp;gt;eg,NotEqualStencilFunc:()=&amp;amp;gt;eO,NumberKeyframeTrack:()=&amp;amp;gt;cl,Object3D:()=&amp;amp;gt;Ie,ObjectLoader:()=&amp;amp;gt;m_,ObjectSpaceNormalMap:()=&amp;amp;gt;MT,OctahedronGeometry:()=&amp;amp;gt;ah,OneFactor:()=&amp;amp;gt;Qb,OneMinusConstantAlphaFactor:()=&amp;amp;gt;oT,OneMinusConstantColorFactor:()=&amp;amp;gt;sT,OneMinusDstAlphaFactor:()=&amp;amp;gt;tT,OneMinusDstColorFactor:()=&amp;amp;gt;nT,OneMinusSrcAlphaFactor:()=&amp;amp;gt;Bp,OneMinusSrcColorFactor:()=&amp;amp;gt;Jb,OrthographicCamera:()=&amp;amp;gt;$r,PCFShadowMap:()=&amp;amp;gt;mh,PCFSoftShadowMap:()=&amp;amp;gt;Nu,PMREMGenerator:()=&amp;amp;gt;Ig,Path:()=&amp;amp;gt;Cu,PerspectiveCamera:()=&amp;amp;gt;Un,Plane:()=&amp;amp;gt;Es,PlaneGeometry:()=&amp;amp;gt;Du,PlaneHelper:()=&amp;amp;gt;Y_,PointLight:()=&amp;amp;gt;Bm,PointLightHelper:()=&amp;amp;gt;P_,Points:()=&amp;amp;gt;Kp,PointsMaterial:()=&amp;amp;gt;Zf,PolarGridHelper:()=&amp;amp;gt;F_,PolyhedronGeometry:()=&amp;amp;gt;Jr,PositionalAudio:()=&amp;amp;gt;x_,PropertyBinding:()=&amp;amp;gt;Ye,PropertyMixer:()=&amp;amp;gt;km,QuadraticBezierCurve:()=&amp;amp;gt;th,QuadraticBezierCurve3:()=&amp;amp;gt;eh,Quaternion:()=&amp;amp;gt;vi,QuaternionKeyframeTrack:()=&amp;amp;gt;fl,QuaternionLinearInterpolant:()=&amp;amp;gt;Nm,RED_GREEN_RGTC2_Format:()=&amp;amp;gt;Lg,RED_RGTC1_Format:()=&amp;amp;gt;ux,REVISION:()=&amp;amp;gt;Vb,RGBADepthPacking:()=&amp;amp;gt;ST,RGBAFormat:()=&amp;amp;gt;li,RGBAIntegerFormat:()=&amp;amp;gt;ug,RGBA_ASTC_10x10_Format:()=&amp;amp;gt;Cg,RGBA_ASTC_10x5_Format:()=&amp;amp;gt;Tg,RGBA_ASTC_10x6_Format:()=&amp;amp;gt;Ag,RGBA_ASTC_10x8_Format:()=&amp;amp;gt;Rg,RGBA_ASTC_12x10_Format:()=&amp;amp;gt;wg,RGBA_ASTC_12x12_Format:()=&amp;amp;gt;Dg,RGBA_ASTC_4x4_Format:()=&amp;amp;gt;vg,RGBA_ASTC_5x4_Format:()=&amp;amp;gt;yg,RGBA_ASTC_5x5_Format:()=&amp;amp;gt;_g,RGBA_ASTC_6x5_Format:()=&amp;amp;gt;xg,RGBA_ASTC_6x6_Format:()=&amp;amp;gt;Sg,RGBA_ASTC_8x5_Format:()=&amp;amp;gt;Mg,RGBA_ASTC_8x6_Format:()=&amp;amp;gt;Eg,RGBA_ASTC_8x8_Format:()=&amp;amp;gt;bg,RGBA_BPTC_Format:()=&amp;amp;gt;Th,RGBA_ETC2_EAC_Format:()=&amp;amp;gt;gg,RGBA_PVRTC_2BPPV1_Format:()=&amp;amp;gt;dg,RGBA_PVRTC_4BPPV1_Format:()=&amp;amp;gt;hg,RGBA_S3TC_DXT1_Format:()=&amp;amp;gt;Mh,RGBA_S3TC_DXT3_Format:()=&amp;amp;gt;Eh,RGBA_S3TC_DXT5_Format:()=&amp;amp;gt;bh,RGBDepthPacking:()=&amp;amp;gt;VN,RGBFormat:()=&amp;amp;gt;ox,RGBIntegerFormat:()=&amp;amp;gt;PN,RGB_BPTC_SIGNED_Format:()=&amp;amp;gt;Ug,RGB_BPTC_UNSIGNED_Format:()=&amp;amp;gt;Ng,RGB_ETC1_Format:()=&amp;amp;gt;pg,RGB_ETC2_Format:()=&amp;amp;gt;mg,RGB_PVRTC_2BPPV1_Format:()=&amp;amp;gt;fg,RGB_PVRTC_4BPPV1_Format:()=&amp;amp;gt;cg,RGB_S3TC_DXT1_Format:()=&amp;amp;gt;Sh,RGDepthPacking:()=&amp;amp;gt;GN,RGFormat:()=&amp;amp;gt;lx,RGIntegerFormat:()=&amp;amp;gt;lg,RawShaderMaterial:()=&amp;amp;gt;Mm,Ray:()=&amp;amp;gt;jr,Raycaster:()=&amp;amp;gt;ph,RectAreaLight:()=&amp;amp;gt;Hm,RedFormat:()=&amp;amp;gt;og,RedIntegerFormat:()=&amp;amp;gt;xh,ReinhardToneMapping:()=&amp;amp;gt;fT,RenderTarget:()=&amp;amp;gt;Xf,RenderTarget3D:()=&amp;amp;gt;b_,RepeatWrapping:()=&amp;amp;gt;Bf,ReplaceStencilOp:()=&amp;amp;gt;qN,ReverseSubtractEquation:()=&amp;amp;gt;Wb,RingGeometry:()=&amp;amp;gt;pm,SIGNED_RED_GREEN_RGTC2_Format:()=&amp;amp;gt;zg,SIGNED_RED_RGTC1_Format:()=&amp;amp;gt;Og,SRGBColorSpace:()=&amp;amp;gt;ri,SRGBTransfer:()=&amp;amp;gt;We,Scene:()=&amp;amp;gt;bu,ShaderChunk:()=&amp;amp;gt;xe,ShaderLib:()=&amp;amp;gt;Ns,ShaderMaterial:()=&amp;amp;gt;ra,ShadowMaterial:()=&amp;amp;gt;Sm,Shape:()=&amp;amp;gt;$s,ShapeGeometry:()=&amp;amp;gt;mm,ShapePath:()=&amp;amp;gt;Z_,ShapeUtils:()=&amp;amp;gt;os,ShortType:()=&amp;amp;gt;ax,Skeleton:()=&amp;amp;gt;Wp,SkeletonHelper:()=&amp;amp;gt;B_,SkinnedMesh:()=&amp;amp;gt;Yp,Source:()=&amp;amp;gt;Ts,Sphere:()=&amp;amp;gt;Xn,SphereGeometry:()=&amp;amp;gt;sh,Spherical:()=&amp;amp;gt;D_,SphericalHarmonics3:()=&amp;amp;gt;Fm,SplineCurve:()=&amp;amp;gt;nh,SpotLight:()=&amp;amp;gt;zm,SpotLightHelper:()=&amp;amp;gt;z_,Sprite:()=&amp;amp;gt;Xp,SpriteMaterial:()=&amp;amp;gt;Wf,SrcAlphaFactor:()=&amp;amp;gt;zp,SrcAlphaSaturateFactor:()=&amp;amp;gt;iT,SrcColorFactor:()=&amp;amp;gt;Kb,StaticCopyUsage:()=&amp;amp;gt;lO,StaticDrawUsage:()=&amp;amp;gt;Vf,StaticReadUsage:()=&amp;amp;gt;sO,StereoCamera:()=&amp;amp;gt;y_,StreamCopyUsage:()=&amp;amp;gt;cO,StreamDrawUsage:()=&amp;amp;gt;aO,StreamReadUsage:()=&amp;amp;gt;oO,StringKeyframeTrack:()=&amp;amp;gt;ar,SubtractEquation:()=&amp;amp;gt;Yb,SubtractiveBlending:()=&amp;amp;gt;tx,TOUCH:()=&amp;amp;gt;UN,TangentSpaceNormalMap:()=&amp;amp;gt;eo,TetrahedronGeometry:()=&amp;amp;gt;gm,Texture:()=&amp;amp;gt;zn,TextureLoader:()=&amp;amp;gt;p_,TextureUtils:()=&amp;amp;gt;Q_,Timer:()=&amp;amp;gt;w_,TimestampQuery:()=&amp;amp;gt;hO,TorusGeometry:()=&amp;amp;gt;vm,TorusKnotGeometry:()=&amp;amp;gt;ym,Triangle:()=&amp;amp;gt;bs,TriangleFanDrawMode:()=&amp;amp;gt;FN,TriangleStripDrawMode:()=&amp;amp;gt;HN,TrianglesDrawMode:()=&amp;amp;gt;IN,TubeGeometry:()=&amp;amp;gt;_m,UVMapping:()=&amp;amp;gt;ig,Uint16BufferAttribute:()=&amp;amp;gt;qf,Uint32BufferAttribute:()=&amp;amp;gt;Yf,Uint8BufferAttribute:()=&amp;amp;gt;Qy,Uint8ClampedBufferAttribute:()=&amp;amp;gt;Ky,Uniform:()=&amp;amp;gt;T_,UniformsGroup:()=&amp;amp;gt;A_,UniformsLib:()=&amp;amp;gt;zt,UniformsUtils:()=&amp;amp;gt;LT,UnsignedByteType:()=&amp;amp;gt;la,UnsignedInt248Type:()=&amp;amp;gt;Pu,UnsignedInt5999Type:()=&amp;amp;gt;sx,UnsignedIntType:()=&amp;amp;gt;or,UnsignedShort4444Type:()=&amp;amp;gt;sg,UnsignedShort5551Type:()=&amp;amp;gt;rg,UnsignedShortType:()=&amp;amp;gt;zu,VSMShadowMap:()=&amp;amp;gt;Pa,Vector2:()=&amp;amp;gt;ct,Vector3:()=&amp;amp;gt;B,Vector4:()=&amp;amp;gt;Oe,VectorKeyframeTrack:()=&amp;amp;gt;hl,VideoFrameTexture:()=&amp;amp;gt;i_,VideoTexture:()=&amp;amp;gt;Jp,WebGL3DRenderTarget:()=&amp;amp;gt;ky,WebGLArrayRenderTarget:()=&amp;amp;gt;Wy,WebGLCoordinateSystem:()=&amp;amp;gt;aa,WebGLCubeRenderTarget:()=&amp;amp;gt;Fp,WebGLRenderTarget:()=&amp;amp;gt;za,WebGLRenderer:()=&amp;amp;gt;Hg,WebGLUtils:()=&amp;amp;gt;tL,WebGPUCoordinateSystem:()=&amp;amp;gt;vu,WebXRController:()=&amp;amp;gt;Eu,WireframeGeometry:()=&amp;amp;gt;xm,WrapAroundEnding:()=&amp;amp;gt;Hf,ZeroCurvatureEnding:()=&amp;amp;gt;nl,ZeroFactor:()=&amp;amp;gt;jb,ZeroSlopeEnding:()=&amp;amp;gt;il,ZeroStencilOp:()=&amp;amp;gt;XN,createCanvasElement:()=&amp;amp;gt;NT});var Vb=&amp;amp;quot;179&amp;amp;quot;,DN={LEFT:0,MIDDLE:1,RIGHT:2,ROTATE:0,DOLLY:1,PAN:2},UN={ROTATE:0,PAN:1,DOLLY_PAN:2,DOLLY_ROTATE:3},Gb=0,K_=1,Xb=2,NN=3,J_=0,mh=1,Nu=2,Pa=3,tr=0,Ni=1,Ds=2,sr=0,al=1,$_=2,tx=3,ex=4,qb=5,Zr=100,Yb=101,Wb=102,kb=103,Zb=104,jb=200,Qb=201,Kb=202,Jb=203,zp=204,Bp=205,$b=206,tT=207,eT=208,nT=209,iT=210,aT=211,sT=212,rT=213,oT=214,jm=0,Qm=1,Km=2,sl=3,Jm=4,$m=5,tg=6,eg=7,gh=0,lT=1,uT=2,us=0,cT=1,fT=2,hT=3,ng=4,dT=5,pT=6,mT=7,qy=&amp;amp;quot;attached&amp;amp;quot;,gT=&amp;amp;quot;detached&amp;amp;quot;,ig=300,rr=301,to=302,vh=303,yh=304,Ou=306,Bf=1e3,Ua=1001,Pf=1002,oi=1003,nx=1004,ON=1004,Lu=1005,LN=1005,Gn=1006,_h=1007,zN=1007,Us=1008,BN=1008,la=1009,ix=1010,ax=1011,zu=1012,ag=1013,or=1014,qi=1015,Bu=1016,sg=1017,rg=1018,Pu=1020,sx=35902,rx=1021,ox=1022,li=1023,gu=1026,Iu=1027,og=1028,xh=1029,lx=1030,lg=1031,PN=1032,ug=1033,Sh=33776,Mh=33777,Eh=33778,bh=33779,cg=35840,fg=35841,hg=35842,dg=35843,pg=36196,mg=37492,gg=37496,vg=37808,yg=37809,_g=37810,xg=37811,Sg=37812,Mg=37813,Eg=37814,bg=37815,Tg=37816,Ag=37817,Rg=37818,Cg=37819,wg=37820,Dg=37821,Th=36492,Ug=36494,Ng=36495,ux=36283,Og=36284,Lg=36285,zg=36286,vT=2200,yT=2201,_T=2202,If=2300,Pp=2301,Up=2302,nl=2400,il=2401,Hf=2402,Bg=2500,cx=2501,IN=0,HN=1,FN=2,xT=3200,ST=3201,VN=3202,GN=3203,eo=0,MT=1,lr=&amp;amp;quot;&amp;amp;quot;,ri=&amp;amp;quot;srgb&amp;amp;quot;,er=&amp;amp;quot;srgb-linear&amp;amp;quot;,Ff=&amp;amp;quot;linear&amp;amp;quot;,We=&amp;amp;quot;srgb&amp;amp;quot;,XN=0,el=7680,qN=7681,YN=7682,WN=7683,kN=34055,ZN=34056,jN=5386,QN=512,KN=513,JN=514,$N=515,tO=516,eO=517,nO=518,Yy=519,ET=512,bT=513,TT=514,fx=515,AT=516,RT=517,CT=518,wT=519,Vf=35044,iO=35048,aO=35040,sO=35045,rO=35049,oO=35041,lO=35046,uO=35050,cO=35042,fO=&amp;amp;quot;100&amp;amp;quot;,hx=&amp;amp;quot;300 es&amp;amp;quot;,aa=2e3,vu=2001,hO={COMPUTE:&amp;amp;quot;compute&amp;amp;quot;,RENDER:&amp;amp;quot;render&amp;amp;quot;},dO={PERSPECTIVE:&amp;amp;quot;perspective&amp;amp;quot;,LINEAR:&amp;amp;quot;linear&amp;amp;quot;,FLAT:&amp;amp;quot;flat&amp;amp;quot;},pO={NORMAL:&amp;amp;quot;normal&amp;amp;quot;,CENTROID:&amp;amp;quot;centroid&amp;amp;quot;,SAMPLE:&amp;amp;quot;sample&amp;amp;quot;,FIRST:&amp;amp;quot;first&amp;amp;quot;,EITHER:&amp;amp;quot;either&amp;amp;quot;},La=class{addEventListener(t,e){this._listeners===void 0&amp;amp;amp;&amp;amp;amp;(this._listeners={});let i=this._listeners;i[t]===void 0&amp;amp;amp;&amp;amp;amp;(i[t]=[]),i[t].indexOf(e)===-1&amp;amp;amp;&amp;amp;amp;i[t].push(e)}hasEventListener(t,e){let i=this._listeners;return i===void 0?!1:i[t]!==void 0&amp;amp;amp;&amp;amp;amp;i[t].indexOf(e)!==-1}removeEventListener(t,e){let i=this._listeners;if(i===void 0)return;let a=i[t];if(a!==void 0){let s=a.indexOf(e);s!==-1&amp;amp;amp;&amp;amp;amp;a.splice(s,1)}}dispatchEvent(t){let e=this._listeners;if(e===void 0)return;let i=e[t.type];if(i!==void 0){t.target=this;let a=i.slice(0);for(let s=0,o=a.length;s&amp;amp;lt;o;s++)a[s].call(this,t);t.target=null}}},wi=[&amp;amp;quot;00&amp;amp;quot;,&amp;amp;quot;01&amp;amp;quot;,&amp;amp;quot;02&amp;amp;quot;,&amp;amp;quot;03&amp;amp;quot;,&amp;amp;quot;04&amp;amp;quot;,&amp;amp;quot;05&amp;amp;quot;,&amp;amp;quot;06&amp;amp;quot;,&amp;amp;quot;07&amp;amp;quot;,&amp;amp;quot;08&amp;amp;quot;,&amp;amp;quot;09&amp;amp;quot;,&amp;amp;quot;0a&amp;amp;quot;,&amp;amp;quot;0b&amp;amp;quot;,&amp;amp;quot;0c&amp;amp;quot;,&amp;amp;quot;0d&amp;amp;quot;,&amp;amp;quot;0e&amp;amp;quot;,&amp;amp;quot;0f&amp;amp;quot;,&amp;amp;quot;10&amp;amp;quot;,&amp;amp;quot;11&amp;amp;quot;,&amp;amp;quot;12&amp;amp;quot;,&amp;amp;quot;13&amp;amp;quot;,&amp;amp;quot;14&amp;amp;quot;,&amp;amp;quot;15&amp;amp;quot;,&amp;amp;quot;16&amp;amp;quot;,&amp;amp;quot;17&amp;amp;quot;,&amp;amp;quot;18&amp;amp;quot;,&amp;amp;quot;19&amp;amp;quot;,&amp;amp;quot;1a&amp;amp;quot;,&amp;amp;quot;1b&amp;amp;quot;,&amp;amp;quot;1c&amp;amp;quot;,&amp;amp;quot;1d&amp;amp;quot;,&amp;amp;quot;1e&amp;amp;quot;,&amp;amp;quot;1f&amp;amp;quot;,&amp;amp;quot;20&amp;amp;quot;,&amp;amp;quot;21&amp;amp;quot;,&amp;amp;quot;22&amp;amp;quot;,&amp;amp;quot;23&amp;amp;quot;,&amp;amp;quot;24&amp;amp;quot;,&amp;amp;quot;25&amp;amp;quot;,&amp;amp;quot;26&amp;amp;quot;,&amp;amp;quot;27&amp;amp;quot;,&amp;amp;quot;28&amp;amp;quot;,&amp;amp;quot;29&amp;amp;quot;,&amp;amp;quot;2a&amp;amp;quot;,&amp;amp;quot;2b&amp;amp;quot;,&amp;amp;quot;2c&amp;amp;quot;,&amp;amp;quot;2d&amp;amp;quot;,&amp;amp;quot;2e&amp;amp;quot;,&amp;amp;quot;2f&amp;amp;quot;,&amp;amp;quot;30&amp;amp;quot;,&amp;amp;quot;31&amp;amp;quot;,&amp;amp;quot;32&amp;amp;quot;,&amp;amp;quot;33&amp;amp;quot;,&amp;amp;quot;34&amp;amp;quot;,&amp;amp;quot;35&amp;amp;quot;,&amp;amp;quot;36&amp;amp;quot;,&amp;amp;quot;37&amp;amp;quot;,&amp;amp;quot;38&amp;amp;quot;,&amp;amp;quot;39&amp;amp;quot;,&amp;amp;quot;3a&amp;amp;quot;,&amp;amp;quot;3b&amp;amp;quot;,&amp;amp;quot;3c&amp;amp;quot;,&amp;amp;quot;3d&amp;amp;quot;,&amp;amp;quot;3e&amp;amp;quot;,&amp;amp;quot;3f&amp;amp;quot;,&amp;amp;quot;40&amp;amp;quot;,&amp;amp;quot;41&amp;amp;quot;,&amp;amp;quot;42&amp;amp;quot;,&amp;amp;quot;43&amp;amp;quot;,&amp;amp;quot;44&amp;amp;quot;,&amp;amp;quot;45&amp;amp;quot;,&amp;amp;quot;46&amp;amp;quot;,&amp;amp;quot;47&amp;amp;quot;,&amp;amp;quot;48&amp;amp;quot;,&amp;amp;quot;49&amp;amp;quot;,&amp;amp;quot;4a&amp;amp;quot;,&amp;amp;quot;4b&amp;amp;quot;,&amp;amp;quot;4c&amp;amp;quot;,&amp;amp;quot;4d&amp;amp;quot;,&amp;amp;quot;4e&amp;amp;quot;,&amp;amp;quot;4f&amp;amp;quot;,&amp;amp;quot;50&amp;amp;quot;,&amp;amp;quot;51&amp;amp;quot;,&amp;amp;quot;52&amp;amp;quot;,&amp;amp;quot;53&amp;amp;quot;,&amp;amp;quot;54&amp;amp;quot;,&amp;amp;quot;55&amp;amp;quot;,&amp;amp;quot;56&amp;amp;quot;,&amp;amp;quot;57&amp;amp;quot;,&amp;amp;quot;58&amp;amp;quot;,&amp;amp;quot;59&amp;amp;quot;,&amp;amp;quot;5a&amp;amp;quot;,&amp;amp;quot;5b&amp;amp;quot;,&amp;amp;quot;5c&amp;amp;quot;,&amp;amp;quot;5d&amp;amp;quot;,&amp;amp;quot;5e&amp;amp;quot;,&amp;amp;quot;5f&amp;amp;quot;,&amp;amp;quot;60&amp;amp;quot;,&amp;amp;quot;61&amp;amp;quot;,&amp;amp;quot;62&amp;amp;quot;,&amp;amp;quot;63&amp;amp;quot;,&amp;amp;quot;64&amp;amp;quot;,&amp;amp;quot;65&amp;amp;quot;,&amp;amp;quot;66&amp;amp;quot;,&amp;amp;quot;67&amp;amp;quot;,&amp;amp;quot;68&amp;amp;quot;,&amp;amp;quot;69&amp;amp;quot;,&amp;amp;quot;6a&amp;amp;quot;,&amp;amp;quot;6b&amp;amp;quot;,&amp;amp;quot;6c&amp;amp;quot;,&amp;amp;quot;6d&amp;amp;quot;,&amp;amp;quot;6e&amp;amp;quot;,&amp;amp;quot;6f&amp;amp;quot;,&amp;amp;quot;70&amp;amp;quot;,&amp;amp;quot;71&amp;amp;quot;,&amp;amp;quot;72&amp;amp;quot;,&amp;amp;quot;73&amp;amp;quot;,&amp;amp;quot;74&amp;amp;quot;,&amp;amp;quot;75&amp;amp;quot;,&amp;amp;quot;76&amp;amp;quot;,&amp;amp;quot;77&amp;amp;quot;,&amp;amp;quot;78&amp;amp;quot;,&amp;amp;quot;79&amp;amp;quot;,&amp;amp;quot;7a&amp;amp;quot;,&amp;amp;quot;7b&amp;amp;quot;,&amp;amp;quot;7c&amp;amp;quot;,&amp;amp;quot;7d&amp;amp;quot;,&amp;amp;quot;7e&amp;amp;quot;,&amp;amp;quot;7f&amp;amp;quot;,&amp;amp;quot;80&amp;amp;quot;,&amp;amp;quot;81&amp;amp;quot;,&amp;amp;quot;82&amp;amp;quot;,&amp;amp;quot;83&amp;amp;quot;,&amp;amp;quot;84&amp;amp;quot;,&amp;amp;quot;85&amp;amp;quot;,&amp;amp;quot;86&amp;amp;quot;,&amp;amp;quot;87&amp;amp;quot;,&amp;amp;quot;88&amp;amp;quot;,&amp;amp;quot;89&amp;amp;quot;,&amp;amp;quot;8a&amp;amp;quot;,&amp;amp;quot;8b&amp;amp;quot;,&amp;amp;quot;8c&amp;amp;quot;,&amp;amp;quot;8d&amp;amp;quot;,&amp;amp;quot;8e&amp;amp;quot;,&amp;amp;quot;8f&amp;amp;quot;,&amp;amp;quot;90&amp;amp;quot;,&amp;amp;quot;91&amp;amp;quot;,&amp;amp;quot;92&amp;amp;quot;,&amp;amp;quot;93&amp;amp;quot;,&amp;amp;quot;94&amp;amp;quot;,&amp;amp;quot;95&amp;amp;quot;,&amp;amp;quot;96&amp;amp;quot;,&amp;amp;quot;97&amp;amp;quot;,&amp;amp;quot;98&amp;amp;quot;,&amp;amp;quot;99&amp;amp;quot;,&amp;amp;quot;9a&amp;amp;quot;,&amp;amp;quot;9b&amp;amp;quot;,&amp;amp;quot;9c&amp;amp;quot;,&amp;amp;quot;9d&amp;amp;quot;,&amp;amp;quot;9e&amp;amp;quot;,&amp;amp;quot;9f&amp;amp;quot;,&amp;amp;quot;a0&amp;amp;quot;,&amp;amp;quot;a1&amp;amp;quot;,&amp;amp;quot;a2&amp;amp;quot;,&amp;amp;quot;a3&amp;amp;quot;,&amp;amp;quot;a4&amp;amp;quot;,&amp;amp;quot;a5&amp;amp;quot;,&amp;amp;quot;a6&amp;amp;quot;,&amp;amp;quot;a7&amp;amp;quot;,&amp;amp;quot;a8&amp;amp;quot;,&amp;amp;quot;a9&amp;amp;quot;,&amp;amp;quot;aa&amp;amp;quot;,&amp;amp;quot;ab&amp;amp;quot;,&amp;amp;quot;ac&amp;amp;quot;,&amp;amp;quot;ad&amp;amp;quot;,&amp;amp;quot;ae&amp;amp;quot;,&amp;amp;quot;af&amp;amp;quot;,&amp;amp;quot;b0&amp;amp;quot;,&amp;amp;quot;b1&amp;amp;quot;,&amp;amp;quot;b2&amp;amp;quot;,&amp;amp;quot;b3&amp;amp;quot;,&amp;amp;quot;b4&amp;amp;quot;,&amp;amp;quot;b5&amp;amp;quot;,&amp;amp;quot;b6&amp;amp;quot;,&amp;amp;quot;b7&amp;amp;quot;,&amp;amp;quot;b8&amp;amp;quot;,&amp;amp;quot;b9&amp;amp;quot;,&amp;amp;quot;ba&amp;amp;quot;,&amp;amp;quot;bb&amp;amp;quot;,&amp;amp;quot;bc&amp;amp;quot;,&amp;amp;quot;bd&amp;amp;quot;,&amp;amp;quot;be&amp;amp;quot;,&amp;amp;quot;bf&amp;amp;quot;,&amp;amp;quot;c0&amp;amp;quot;,&amp;amp;quot;c1&amp;amp;quot;,&amp;amp;quot;c2&amp;amp;quot;,&amp;amp;quot;c3&amp;amp;quot;,&amp;amp;quot;c4&amp;amp;quot;,&amp;amp;quot;c5&amp;amp;quot;,&amp;amp;quot;c6&amp;amp;quot;,&amp;amp;quot;c7&amp;amp;quot;,&amp;amp;quot;c8&amp;amp;quot;,&amp;amp;quot;c9&amp;amp;quot;,&amp;amp;quot;ca&amp;amp;quot;,&amp;amp;quot;cb&amp;amp;quot;,&amp;amp;quot;cc&amp;amp;quot;,&amp;amp;quot;cd&amp;amp;quot;,&amp;amp;quot;ce&amp;amp;quot;,&amp;amp;quot;cf&amp;amp;quot;,&amp;amp;quot;d0&amp;amp;quot;,&amp;amp;quot;d1&amp;amp;quot;,&amp;amp;quot;d2&amp;amp;quot;,&amp;amp;quot;d3&amp;amp;quot;,&amp;amp;quot;d4&amp;amp;quot;,&amp;amp;quot;d5&amp;amp;quot;,&amp;amp;quot;d6&amp;amp;quot;,&amp;amp;quot;d7&amp;amp;quot;,&amp;amp;quot;d8&amp;amp;quot;,&amp;amp;quot;d9&amp;amp;quot;,&amp;amp;quot;da&amp;amp;quot;,&amp;amp;quot;db&amp;amp;quot;,&amp;amp;quot;dc&amp;amp;quot;,&amp;amp;quot;dd&amp;amp;quot;,&amp;amp;quot;de&amp;amp;quot;,&amp;amp;quot;df&amp;amp;quot;,&amp;amp;quot;e0&amp;amp;quot;,&amp;amp;quot;e1&amp;amp;quot;,&amp;amp;quot;e2&amp;amp;quot;,&amp;amp;quot;e3&amp;amp;quot;,&amp;amp;quot;e4&amp;amp;quot;,&amp;amp;quot;e5&amp;amp;quot;,&amp;amp;quot;e6&amp;amp;quot;,&amp;amp;quot;e7&amp;amp;quot;,&amp;amp;quot;e8&amp;amp;quot;,&amp;amp;quot;e9&amp;amp;quot;,&amp;amp;quot;ea&amp;amp;quot;,&amp;amp;quot;eb&amp;amp;quot;,&amp;amp;quot;ec&amp;amp;quot;,&amp;amp;quot;ed&amp;amp;quot;,&amp;amp;quot;ee&amp;amp;quot;,&amp;amp;quot;ef&amp;amp;quot;,&amp;amp;quot;f0&amp;amp;quot;,&amp;amp;quot;f1&amp;amp;quot;,&amp;amp;quot;f2&amp;amp;quot;,&amp;amp;quot;f3&amp;amp;quot;,&amp;amp;quot;f4&amp;amp;quot;,&amp;amp;quot;f5&amp;amp;quot;,&amp;amp;quot;f6&amp;amp;quot;,&amp;amp;quot;f7&amp;amp;quot;,&amp;amp;quot;f8&amp;amp;quot;,&amp;amp;quot;f9&amp;amp;quot;,&amp;amp;quot;fa&amp;amp;quot;,&amp;amp;quot;fb&amp;amp;quot;,&amp;amp;quot;fc&amp;amp;quot;,&amp;amp;quot;fd&amp;amp;quot;,&amp;amp;quot;fe&amp;amp;quot;,&amp;amp;quot;ff&amp;amp;quot;],EU=1234567,mu=Math.PI/180,yu=180/Math.PI;function Na(){let n=Math.random()*4294967295|0,t=Math.random()*4294967295|0,e=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(wi[n&amp;amp;amp;255]+wi[n&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255]+wi[n&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255]+wi[n&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255]+&amp;amp;quot;-&amp;amp;quot;+wi[t&amp;amp;amp;255]+wi[t&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255]+&amp;amp;quot;-&amp;amp;quot;+wi[t&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;15|64]+wi[t&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255]+&amp;amp;quot;-&amp;amp;quot;+wi[e&amp;amp;amp;63|128]+wi[e&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255]+&amp;amp;quot;-&amp;amp;quot;+wi[e&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255]+wi[e&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255]+wi[i&amp;amp;amp;255]+wi[i&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255]+wi[i&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255]+wi[i&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255]).toLowerCase()}function le(n,t,e){return Math.max(t,Math.min(e,n))}function DT(n,t){return(n%t+t)%t}function pH(n,t,e,i,a){return i+(n-t)*(a-i)/(e-t)}function mH(n,t,e){return n!==t?(e-n)/(t-n):0}function Np(n,t,e){return(1-e)*n+e*t}function gH(n,t,e,i){return Np(n,t,1-Math.exp(-e*i))}function vH(n,t=1){return t-Math.abs(DT(n,t*2)-t)}function yH(n,t,e){return n&amp;amp;lt;=t?0:n&amp;amp;gt;=e?1:(n=(n-t)/(e-t),n*n*(3-2*n))}function _H(n,t,e){return n&amp;amp;lt;=t?0:n&amp;amp;gt;=e?1:(n=(n-t)/(e-t),n*n*n*(n*(n*6-15)+10))}function xH(n,t){return n+Math.floor(Math.random()*(t-n+1))}function SH(n,t){return n+Math.random()*(t-n)}function MH(n){return n*(.5-Math.random())}function EH(n){n!==void 0&amp;amp;amp;&amp;amp;amp;(EU=n);let t=EU+=1831565813;return t=Math.imul(t^t&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;15,t|1),t^=t+Math.imul(t^t&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;7,t|61),((t^t&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;14)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0)/4294967296}function bH(n){return n*mu}function TH(n){return n*yu}function AH(n){return(n&amp;amp;amp;n-1)===0&amp;amp;amp;&amp;amp;amp;n!==0}function RH(n){return Math.pow(2,Math.ceil(Math.log(n)/Math.LN2))}function CH(n){return Math.pow(2,Math.floor(Math.log(n)/Math.LN2))}function wH(n,t,e,i,a){let s=Math.cos,o=Math.sin,u=s(e/2),c=o(e/2),h=s((t+i)/2),d=o((t+i)/2),m=s((t-i)/2),g=o((t-i)/2),y=s((i-t)/2),x=o((i-t)/2);switch(a){case&amp;amp;quot;XYX&amp;amp;quot;:n.set(u*d,c*m,c*g,u*h);break;case&amp;amp;quot;YZY&amp;amp;quot;:n.set(c*g,u*d,c*m,u*h);break;case&amp;amp;quot;ZXZ&amp;amp;quot;:n.set(c*m,c*g,u*d,u*h);break;case&amp;amp;quot;XZX&amp;amp;quot;:n.set(u*d,c*x,c*y,u*h);break;case&amp;amp;quot;YXY&amp;amp;quot;:n.set(c*y,u*d,c*x,u*h);break;case&amp;amp;quot;ZYZ&amp;amp;quot;:n.set(c*x,c*y,u*d,u*h);break;default:console.warn(&amp;amp;quot;THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: &amp;amp;quot;+a)}}function Xi(n,t){switch(t.constructor){case Float32Array:return n;case Uint32Array:return n/4294967295;case Uint16Array:return n/65535;case Uint8Array:return n/255;case Int32Array:return Math.max(n/2147483647,-1);case Int16Array:return Math.max(n/32767,-1);case Int8Array:return Math.max(n/127,-1);default:throw new Error(&amp;amp;quot;Invalid component type.&amp;amp;quot;)}}function _e(n,t){switch(t.constructor){case Float32Array:return n;case Uint32Array:return Math.round(n*4294967295);case Uint16Array:return Math.round(n*65535);case Uint8Array:return Math.round(n*255);case Int32Array:return Math.round(n*2147483647);case Int16Array:return Math.round(n*32767);case Int8Array:return Math.round(n*127);default:throw new Error(&amp;amp;quot;Invalid component type.&amp;amp;quot;)}}var mO={DEG2RAD:mu,RAD2DEG:yu,generateUUID:Na,clamp:le,euclideanModulo:DT,mapLinear:pH,inverseLerp:mH,lerp:Np,damp:gH,pingpong:vH,smoothstep:yH,smootherstep:_H,randInt:xH,randFloat:SH,randFloatSpread:MH,seededRandom:EH,degToRad:bH,radToDeg:TH,isPowerOfTwo:AH,ceilPowerOfTwo:RH,floorPowerOfTwo:CH,setQuaternionFromProperEuler:wH,normalize:_e,denormalize:Xi},ct=class n{constructor(t=0,e=0){n.prototype.isVector2=!0,this.x=t,this.y=e}get width(){return this.x}set width(t){this.x=t}get height(){return this.y}set height(t){this.y=t}set(t,e){return this.x=t,this.y=e,this}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(&amp;amp;quot;index is out of range: &amp;amp;quot;+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(&amp;amp;quot;index is out of range: &amp;amp;quot;+t)}}clone(){return new this.constructor(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t){return this.x*=t,this.y*=t,this}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}applyMatrix3(t){let e=this.x,i=this.y,a=t.elements;return this.x=a[0]*e+a[3]*i+a[6],this.y=a[1]*e+a[4]*i+a[7],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}clamp(t,e){return this.x=le(this.x,t.x,e.x),this.y=le(this.y,t.y,e.y),this}clampScalar(t,e){return this.x=le(this.x,t,e),this.y=le(this.y,t,e),this}clampLength(t,e){let i=this.length();return this.divideScalar(i||1).multiplyScalar(le(i,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this}negate(){return this.x=-this.x,this.y=-this.y,this}dot(t){return this.x*t.x+this.y*t.y}cross(t){return this.x*t.y-this.y*t.x}lengthSq(){return this.x*this.x+this.y*this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}normalize(){return this.divideScalar(this.length()||1)}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let i=this.dot(t)/e;return Math.acos(le(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,i=this.y-t.y;return e*e+i*i}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this}equals(t){return t.x===this.x&amp;amp;amp;&amp;amp;amp;t.y===this.y}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}rotateAround(t,e){let i=Math.cos(e),a=Math.sin(e),s=this.x-t.x,o=this.y-t.y;return this.x=s*i-o*a+t.x,this.y=s*a+o*i+t.y,this}random(){return this.x=Math.random(),this.y=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y}},vi=class{constructor(t=0,e=0,i=0,a=1){this.isQuaternion=!0,this._x=t,this._y=e,this._z=i,this._w=a}static slerpFlat(t,e,i,a,s,o,u){let c=i[a+0],h=i[a+1],d=i[a+2],m=i[a+3],g=s[o+0],y=s[o+1],x=s[o+2],b=s[o+3];if(u===0){t[e+0]=c,t[e+1]=h,t[e+2]=d,t[e+3]=m;return}if(u===1){t[e+0]=g,t[e+1]=y,t[e+2]=x,t[e+3]=b;return}if(m!==b||c!==g||h!==y||d!==x){let M=1-u,v=c*g+h*y+d*x+m*b,S=v&amp;amp;gt;=0?1:-1,E=1-v*v;if(E&amp;amp;gt;Number.EPSILON){let w=Math.sqrt(E),U=Math.atan2(w,v*S);M=Math.sin(M*U)/w,u=Math.sin(u*U)/w}let T=u*S;if(c=c*M+g*T,h=h*M+y*T,d=d*M+x*T,m=m*M+b*T,M===1-u){let w=1/Math.sqrt(c*c+h*h+d*d+m*m);c*=w,h*=w,d*=w,m*=w}}t[e]=c,t[e+1]=h,t[e+2]=d,t[e+3]=m}static multiplyQuaternionsFlat(t,e,i,a,s,o){let u=i[a],c=i[a+1],h=i[a+2],d=i[a+3],m=s[o],g=s[o+1],y=s[o+2],x=s[o+3];return t[e]=u*x+d*m+c*y-h*g,t[e+1]=c*x+d*g+h*m-u*y,t[e+2]=h*x+d*y+u*g-c*m,t[e+3]=d*x-u*m-c*g-h*y,t}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get w(){return this._w}set w(t){this._w=t,this._onChangeCallback()}set(t,e,i,a){return this._x=t,this._y=e,this._z=i,this._w=a,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._w)}copy(t){return this._x=t.x,this._y=t.y,this._z=t.z,this._w=t.w,this._onChangeCallback(),this}setFromEuler(t,e=!0){let i=t._x,a=t._y,s=t._z,o=t._order,u=Math.cos,c=Math.sin,h=u(i/2),d=u(a/2),m=u(s/2),g=c(i/2),y=c(a/2),x=c(s/2);switch(o){case&amp;amp;quot;XYZ&amp;amp;quot;:this._x=g*d*m+h*y*x,this._y=h*y*m-g*d*x,this._z=h*d*x+g*y*m,this._w=h*d*m-g*y*x;break;case&amp;amp;quot;YXZ&amp;amp;quot;:this._x=g*d*m+h*y*x,this._y=h*y*m-g*d*x,this._z=h*d*x-g*y*m,this._w=h*d*m+g*y*x;break;case&amp;amp;quot;ZXY&amp;amp;quot;:this._x=g*d*m-h*y*x,this._y=h*y*m+g*d*x,this._z=h*d*x+g*y*m,this._w=h*d*m-g*y*x;break;case&amp;amp;quot;ZYX&amp;amp;quot;:this._x=g*d*m-h*y*x,this._y=h*y*m+g*d*x,this._z=h*d*x-g*y*m,this._w=h*d*m+g*y*x;break;case&amp;amp;quot;YZX&amp;amp;quot;:this._x=g*d*m+h*y*x,this._y=h*y*m+g*d*x,this._z=h*d*x-g*y*m,this._w=h*d*m-g*y*x;break;case&amp;amp;quot;XZY&amp;amp;quot;:this._x=g*d*m-h*y*x,this._y=h*y*m-g*d*x,this._z=h*d*x+g*y*m,this._w=h*d*m+g*y*x;break;default:console.warn(&amp;amp;quot;THREE.Quaternion: .setFromEuler() encountered an unknown order: &amp;amp;quot;+o)}return e===!0&amp;amp;amp;&amp;amp;amp;this._onChangeCallback(),this}setFromAxisAngle(t,e){let i=e/2,a=Math.sin(i);return this._x=t.x*a,this._y=t.y*a,this._z=t.z*a,this._w=Math.cos(i),this._onChangeCallback(),this}setFromRotationMatrix(t){let e=t.elements,i=e[0],a=e[4],s=e[8],o=e[1],u=e[5],c=e[9],h=e[2],d=e[6],m=e[10],g=i+u+m;if(g&amp;amp;gt;0){let y=.5/Math.sqrt(g+1);this._w=.25/y,this._x=(d-c)*y,this._y=(s-h)*y,this._z=(o-a)*y}else if(i&amp;amp;gt;u&amp;amp;amp;&amp;amp;amp;i&amp;amp;gt;m){let y=2*Math.sqrt(1+i-u-m);this._w=(d-c)/y,this._x=.25*y,this._y=(a+o)/y,this._z=(s+h)/y}else if(u&amp;amp;gt;m){let y=2*Math.sqrt(1+u-i-m);this._w=(s-h)/y,this._x=(a+o)/y,this._y=.25*y,this._z=(c+d)/y}else{let y=2*Math.sqrt(1+m-i-u);this._w=(o-a)/y,this._x=(s+h)/y,this._y=(c+d)/y,this._z=.25*y}return this._onChangeCallback(),this}setFromUnitVectors(t,e){let i=t.dot(e)+1;return i&amp;amp;lt;1e-8?(i=0,Math.abs(t.x)&amp;amp;gt;Math.abs(t.z)?(this._x=-t.y,this._y=t.x,this._z=0,this._w=i):(this._x=0,this._y=-t.z,this._z=t.y,this._w=i)):(this._x=t.y*e.z-t.z*e.y,this._y=t.z*e.x-t.x*e.z,this._z=t.x*e.y-t.y*e.x,this._w=i),this.normalize()}angleTo(t){return 2*Math.acos(Math.abs(le(this.dot(t),-1,1)))}rotateTowards(t,e){let i=this.angleTo(t);if(i===0)return this;let a=Math.min(1,e/i);return this.slerp(t,a),this}identity(){return this.set(0,0,0,1)}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w}lengthSq(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let t=this.length();return t===0?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this._onChangeCallback(),this}multiply(t){return this.multiplyQuaternions(this,t)}premultiply(t){return this.multiplyQuaternions(t,this)}multiplyQuaternions(t,e){let i=t._x,a=t._y,s=t._z,o=t._w,u=e._x,c=e._y,h=e._z,d=e._w;return this._x=i*d+o*u+a*h-s*c,this._y=a*d+o*c+s*u-i*h,this._z=s*d+o*h+i*c-a*u,this._w=o*d-i*u-a*c-s*h,this._onChangeCallback(),this}slerp(t,e){if(e===0)return this;if(e===1)return this.copy(t);let i=this._x,a=this._y,s=this._z,o=this._w,u=o*t._w+i*t._x+a*t._y+s*t._z;if(u&amp;amp;lt;0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,u=-u):this.copy(t),u&amp;amp;gt;=1)return this._w=o,this._x=i,this._y=a,this._z=s,this;let c=1-u*u;if(c&amp;amp;lt;=Number.EPSILON){let y=1-e;return this._w=y*o+e*this._w,this._x=y*i+e*this._x,this._y=y*a+e*this._y,this._z=y*s+e*this._z,this.normalize(),this}let h=Math.sqrt(c),d=Math.atan2(h,u),m=Math.sin((1-e)*d)/h,g=Math.sin(e*d)/h;return this._w=o*m+this._w*g,this._x=i*m+this._x*g,this._y=a*m+this._y*g,this._z=s*m+this._z*g,this._onChangeCallback(),this}slerpQuaternions(t,e,i){return this.copy(t).slerp(e,i)}random(){let t=2*Math.PI*Math.random(),e=2*Math.PI*Math.random(),i=Math.random(),a=Math.sqrt(1-i),s=Math.sqrt(i);return this.set(a*Math.sin(t),a*Math.cos(t),s*Math.sin(e),s*Math.cos(e))}equals(t){return t._x===this._x&amp;amp;amp;&amp;amp;amp;t._y===this._y&amp;amp;amp;&amp;amp;amp;t._z===this._z&amp;amp;amp;&amp;amp;amp;t._w===this._w}fromArray(t,e=0){return this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t}fromBufferAttribute(t,e){return this._x=t.getX(e),this._y=t.getY(e),this._z=t.getZ(e),this._w=t.getW(e),this._onChangeCallback(),this}toJSON(){return this.toArray()}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._w}},B=class n{constructor(t=0,e=0,i=0){n.prototype.isVector3=!0,this.x=t,this.y=e,this.z=i}set(t,e,i){return i===void 0&amp;amp;amp;&amp;amp;amp;(i=this.z),this.x=t,this.y=e,this.z=i,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(&amp;amp;quot;index is out of range: &amp;amp;quot;+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(&amp;amp;quot;index is out of range: &amp;amp;quot;+t)}}clone(){return new this.constructor(this.x,this.y,this.z)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this}applyEuler(t){return this.applyQuaternion(bU.setFromEuler(t))}applyAxisAngle(t,e){return this.applyQuaternion(bU.setFromAxisAngle(t,e))}applyMatrix3(t){let e=this.x,i=this.y,a=this.z,s=t.elements;return this.x=s[0]*e+s[3]*i+s[6]*a,this.y=s[1]*e+s[4]*i+s[7]*a,this.z=s[2]*e+s[5]*i+s[8]*a,this}applyNormalMatrix(t){return this.applyMatrix3(t).normalize()}applyMatrix4(t){let e=this.x,i=this.y,a=this.z,s=t.elements,o=1/(s[3]*e+s[7]*i+s[11]*a+s[15]);return this.x=(s[0]*e+s[4]*i+s[8]*a+s[12])*o,this.y=(s[1]*e+s[5]*i+s[9]*a+s[13])*o,this.z=(s[2]*e+s[6]*i+s[10]*a+s[14])*o,this}applyQuaternion(t){let e=this.x,i=this.y,a=this.z,s=t.x,o=t.y,u=t.z,c=t.w,h=2*(o*a-u*i),d=2*(u*e-s*a),m=2*(s*i-o*e);return this.x=e+c*h+o*m-u*d,this.y=i+c*d+u*h-s*m,this.z=a+c*m+s*d-o*h,this}project(t){return this.applyMatrix4(t.matrixWorldInverse).applyMatrix4(t.projectionMatrix)}unproject(t){return this.applyMatrix4(t.projectionMatrixInverse).applyMatrix4(t.matrixWorld)}transformDirection(t){let e=this.x,i=this.y,a=this.z,s=t.elements;return this.x=s[0]*e+s[4]*i+s[8]*a,this.y=s[1]*e+s[5]*i+s[9]*a,this.z=s[2]*e+s[6]*i+s[10]*a,this.normalize()}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this}divideScalar(t){return this.multiplyScalar(1/t)}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this}clamp(t,e){return this.x=le(this.x,t.x,e.x),this.y=le(this.y,t.y,e.y),this.z=le(this.z,t.z,e.z),this}clampScalar(t,e){return this.x=le(this.x,t,e),this.y=le(this.y,t,e),this.z=le(this.z,t,e),this}clampLength(t,e){let i=this.length();return this.divideScalar(i||1).multiplyScalar(le(i,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this}cross(t){return this.crossVectors(this,t)}crossVectors(t,e){let i=t.x,a=t.y,s=t.z,o=e.x,u=e.y,c=e.z;return this.x=a*c-s*u,this.y=s*o-i*c,this.z=i*u-a*o,this}projectOnVector(t){let e=t.lengthSq();if(e===0)return this.set(0,0,0);let i=t.dot(this)/e;return this.copy(t).multiplyScalar(i)}projectOnPlane(t){return YE.copy(this).projectOnVector(t),this.sub(YE)}reflect(t){return this.sub(YE.copy(t).multiplyScalar(2*this.dot(t)))}angleTo(t){let e=Math.sqrt(this.lengthSq()*t.lengthSq());if(e===0)return Math.PI/2;let i=this.dot(t)/e;return Math.acos(le(i,-1,1))}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){let e=this.x-t.x,i=this.y-t.y,a=this.z-t.z;return e*e+i*i+a*a}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)}setFromSpherical(t){return this.setFromSphericalCoords(t.radius,t.phi,t.theta)}setFromSphericalCoords(t,e,i){let a=Math.sin(e)*t;return this.x=a*Math.sin(i),this.y=Math.cos(e)*t,this.z=a*Math.cos(i),this}setFromCylindrical(t){return this.setFromCylindricalCoords(t.radius,t.theta,t.y)}setFromCylindricalCoords(t,e,i){return this.x=t*Math.sin(e),this.y=i,this.z=t*Math.cos(e),this}setFromMatrixPosition(t){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this}setFromMatrixScale(t){let e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),a=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=a,this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*4)}setFromMatrix3Column(t,e){return this.fromArray(t.elements,e*3)}setFromEuler(t){return this.x=t._x,this.y=t._y,this.z=t._z,this}setFromColor(t){return this.x=t.r,this.y=t.g,this.z=t.b,this}equals(t){return t.x===this.x&amp;amp;amp;&amp;amp;amp;t.y===this.y&amp;amp;amp;&amp;amp;amp;t.z===this.z}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this}randomDirection(){let t=Math.random()*Math.PI*2,e=Math.random()*2-1,i=Math.sqrt(1-e*e);return this.x=i*Math.cos(t),this.y=e,this.z=i*Math.sin(t),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z}},YE=new B,bU=new vi,ge=class n{constructor(t,e,i,a,s,o,u,c,h){n.prototype.isMatrix3=!0,this.elements=[1,0,0,0,1,0,0,0,1],t!==void 0&amp;amp;amp;&amp;amp;amp;this.set(t,e,i,a,s,o,u,c,h)}set(t,e,i,a,s,o,u,c,h){let d=this.elements;return d[0]=t,d[1]=a,d[2]=u,d[3]=e,d[4]=s,d[5]=c,d[6]=i,d[7]=o,d[8]=h,this}identity(){return this.set(1,0,0,0,1,0,0,0,1),this}copy(t){let e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],this}extractBasis(t,e,i){return t.setFromMatrix3Column(this,0),e.setFromMatrix3Column(this,1),i.setFromMatrix3Column(this,2),this}setFromMatrix4(t){let e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let i=t.elements,a=e.elements,s=this.elements,o=i[0],u=i[3],c=i[6],h=i[1],d=i[4],m=i[7],g=i[2],y=i[5],x=i[8],b=a[0],M=a[3],v=a[6],S=a[1],E=a[4],T=a[7],w=a[2],U=a[5],O=a[8];return s[0]=o*b+u*S+c*w,s[3]=o*M+u*E+c*U,s[6]=o*v+u*T+c*O,s[1]=h*b+d*S+m*w,s[4]=h*M+d*E+m*U,s[7]=h*v+d*T+m*O,s[2]=g*b+y*S+x*w,s[5]=g*M+y*E+x*U,s[8]=g*v+y*T+x*O,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[3]*=t,e[6]*=t,e[1]*=t,e[4]*=t,e[7]*=t,e[2]*=t,e[5]*=t,e[8]*=t,this}determinant(){let t=this.elements,e=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],h=t[7],d=t[8];return e*o*d-e*u*h-i*s*d+i*u*c+a*s*h-a*o*c}invert(){let t=this.elements,e=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],h=t[7],d=t[8],m=d*o-u*h,g=u*c-d*s,y=h*s-o*c,x=e*m+i*g+a*y;if(x===0)return this.set(0,0,0,0,0,0,0,0,0);let b=1/x;return t[0]=m*b,t[1]=(a*h-d*i)*b,t[2]=(u*i-a*o)*b,t[3]=g*b,t[4]=(d*e-a*c)*b,t[5]=(a*s-u*e)*b,t[6]=y*b,t[7]=(i*c-h*e)*b,t[8]=(o*e-i*s)*b,this}transpose(){let t,e=this.elements;return t=e[1],e[1]=e[3],e[3]=t,t=e[2],e[2]=e[6],e[6]=t,t=e[5],e[5]=e[7],e[7]=t,this}getNormalMatrix(t){return this.setFromMatrix4(t).invert().transpose()}transposeIntoArray(t){let e=this.elements;return t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],this}setUvTransform(t,e,i,a,s,o,u){let c=Math.cos(s),h=Math.sin(s);return this.set(i*c,i*h,-i*(c*o+h*u)+o+t,-a*h,a*c,-a*(-h*o+c*u)+u+e,0,0,1),this}scale(t,e){return this.premultiply(WE.makeScale(t,e)),this}rotate(t){return this.premultiply(WE.makeRotation(-t)),this}translate(t,e){return this.premultiply(WE.makeTranslation(t,e)),this}makeTranslation(t,e){return t.isVector2?this.set(1,0,t.x,0,1,t.y,0,0,1):this.set(1,0,t,0,1,e,0,0,1),this}makeRotation(t){let e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,i,e,0,0,0,1),this}makeScale(t,e){return this.set(t,0,0,0,e,0,0,0,1),this}equals(t){let e=this.elements,i=t.elements;for(let a=0;a&amp;amp;lt;9;a++)if(e[a]!==i[a])return!1;return!0}fromArray(t,e=0){for(let i=0;i&amp;amp;lt;9;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){let i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t}clone(){return new this.constructor().fromArray(this.elements)}},WE=new ge;function UT(n){for(let t=n.length-1;t&amp;amp;gt;=0;--t)if(n[t]&amp;amp;gt;=65535)return!0;return!1}var DH={Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array};function Lf(n,t){return new DH[n](t)}function Gf(n){return document.createElementNS(&amp;amp;quot;http://www.w3.org/1999/xhtml&amp;amp;quot;,n)}function NT(){let n=Gf(&amp;amp;quot;canvas&amp;amp;quot;);return n.style.display=&amp;amp;quot;block&amp;amp;quot;,n}var TU={};function _u(n){n in TU||(TU[n]=!0,console.warn(n))}function gO(n,t,e){return new Promise(function(i,a){function s(){switch(n.clientWaitSync(t,n.SYNC_FLUSH_COMMANDS_BIT,0)){case n.WAIT_FAILED:a();break;case n.TIMEOUT_EXPIRED:setTimeout(s,e);break;default:i()}}setTimeout(s,e)})}var AU=new ge().set(.4123908,.3575843,.1804808,.212639,.7151687,.0721923,.0193308,.1191948,.9505322),RU=new ge().set(3.2409699,-1.5373832,-.4986108,-.9692436,1.8759675,.0415551,.0556301,-.203977,1.0569715);function UH(){let n={enabled:!0,workingColorSpace:er,spaces:{},convert:function(a,s,o){return this.enabled===!1||s===o||!s||!o||(this.spaces[s].transfer===We&amp;amp;amp;&amp;amp;amp;(a.r=kr(a.r),a.g=kr(a.g),a.b=kr(a.b)),this.spaces[s].primaries!==this.spaces[o].primaries&amp;amp;amp;&amp;amp;amp;(a.applyMatrix3(this.spaces[s].toXYZ),a.applyMatrix3(this.spaces[o].fromXYZ)),this.spaces[o].transfer===We&amp;amp;amp;&amp;amp;amp;(a.r=zf(a.r),a.g=zf(a.g),a.b=zf(a.b))),a},workingToColorSpace:function(a,s){return this.convert(a,this.workingColorSpace,s)},colorSpaceToWorking:function(a,s){return this.convert(a,s,this.workingColorSpace)},getPrimaries:function(a){return this.spaces[a].primaries},getTransfer:function(a){return a===lr?Ff:this.spaces[a].transfer},getLuminanceCoefficients:function(a,s=this.workingColorSpace){return a.fromArray(this.spaces[s].luminanceCoefficients)},define:function(a){Object.assign(this.spaces,a)},_getMatrix:function(a,s,o){return a.copy(this.spaces[s].toXYZ).multiply(this.spaces[o].fromXYZ)},_getDrawingBufferColorSpace:function(a){return this.spaces[a].outputColorSpaceConfig.drawingBufferColorSpace},_getUnpackColorSpace:function(a=this.workingColorSpace){return this.spaces[a].workingColorSpaceConfig.unpackColorSpace},fromWorkingColorSpace:function(a,s){return _u(&amp;amp;quot;THREE.ColorManagement: .fromWorkingColorSpace() has been renamed to .workingToColorSpace().&amp;amp;quot;),n.workingToColorSpace(a,s)},toWorkingColorSpace:function(a,s){return _u(&amp;amp;quot;THREE.ColorManagement: .toWorkingColorSpace() has been renamed to .colorSpaceToWorking().&amp;amp;quot;),n.colorSpaceToWorking(a,s)}},t=[.64,.33,.3,.6,.15,.06],e=[.2126,.7152,.0722],i=[.3127,.329];return n.define({[er]:{primaries:t,whitePoint:i,transfer:Ff,toXYZ:AU,fromXYZ:RU,luminanceCoefficients:e,workingColorSpaceConfig:{unpackColorSpace:ri},outputColorSpaceConfig:{drawingBufferColorSpace:ri}},[ri]:{primaries:t,whitePoint:i,transfer:We,toXYZ:AU,fromXYZ:RU,luminanceCoefficients:e,outputColorSpaceConfig:{drawingBufferColorSpace:ri}}}),n}var we=UH();function kr(n){return n&amp;amp;lt;.04045?n*.0773993808:Math.pow(n*.9478672986+.0521327014,2.4)}function zf(n){return n&amp;amp;lt;.0031308?n*12.92:1.055*Math.pow(n,.41666)-.055}var pf,Ip=class{static getDataURL(t,e=&amp;amp;quot;image/png&amp;amp;quot;){if(/^data:/i.test(t.src)||typeof HTMLCanvasElement&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return t.src;let i;if(t instanceof HTMLCanvasElement)i=t;else{pf===void 0&amp;amp;amp;&amp;amp;amp;(pf=Gf(&amp;amp;quot;canvas&amp;amp;quot;)),pf.width=t.width,pf.height=t.height;let a=pf.getContext(&amp;amp;quot;2d&amp;amp;quot;);t instanceof ImageData?a.putImageData(t,0,0):a.drawImage(t,0,0,t.width,t.height),i=pf}return i.toDataURL(e)}static sRGBToLinear(t){if(typeof HTMLImageElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t instanceof HTMLImageElement||typeof HTMLCanvasElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t instanceof HTMLCanvasElement||typeof ImageBitmap&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t instanceof ImageBitmap){let e=Gf(&amp;amp;quot;canvas&amp;amp;quot;);e.width=t.width,e.height=t.height;let i=e.getContext(&amp;amp;quot;2d&amp;amp;quot;);i.drawImage(t,0,0,t.width,t.height);let a=i.getImageData(0,0,t.width,t.height),s=a.data;for(let o=0;o&amp;amp;lt;s.length;o++)s[o]=kr(s[o]/255)*255;return i.putImageData(a,0,0),e}else if(t.data){let e=t.data.slice(0);for(let i=0;i&amp;amp;lt;e.length;i++)e instanceof Uint8Array||e instanceof Uint8ClampedArray?e[i]=Math.floor(kr(e[i]/255)*255):e[i]=kr(e[i]);return{data:e,width:t.width,height:t.height}}else return console.warn(&amp;amp;quot;THREE.ImageUtils.sRGBToLinear(): Unsupported image type. No color space conversion applied.&amp;amp;quot;),t}},NH=0,Ts=class{constructor(t=null){this.isSource=!0,Object.defineProperty(this,&amp;amp;quot;id&amp;amp;quot;,{value:NH++}),this.uuid=Na(),this.data=t,this.dataReady=!0,this.version=0}getSize(t){let e=this.data;return e instanceof HTMLVideoElement?t.set(e.videoWidth,e.videoHeight,0):e instanceof VideoFrame?t.set(e.displayHeight,e.displayWidth,0):e!==null?t.set(e.width,e.height,e.depth||0):t.set(0,0,0),t}set needsUpdate(t){t===!0&amp;amp;amp;&amp;amp;amp;this.version++}toJSON(t){let e=t===void 0||typeof t==&amp;amp;quot;string&amp;amp;quot;;if(!e&amp;amp;amp;&amp;amp;amp;t.images[this.uuid]!==void 0)return t.images[this.uuid];let i={uuid:this.uuid,url:&amp;amp;quot;&amp;amp;quot;},a=this.data;if(a!==null){let s;if(Array.isArray(a)){s=[];for(let o=0,u=a.length;o&amp;amp;lt;u;o++)a[o].isDataTexture?s.push(kE(a[o].image)):s.push(kE(a[o]))}else s=kE(a);i.url=s}return e||(t.images[this.uuid]=i),i}};function kE(n){return typeof HTMLImageElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n instanceof HTMLImageElement||typeof HTMLCanvasElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n instanceof HTMLCanvasElement||typeof ImageBitmap&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n instanceof ImageBitmap?Ip.getDataURL(n):n.data?{data:Array.from(n.data),width:n.width,height:n.height,type:n.data.constructor.name}:(console.warn(&amp;amp;quot;THREE.Texture: Unable to serialize Texture.&amp;amp;quot;),{})}var OH=0,ZE=new B,zn=class n extends La{constructor(t=n.DEFAULT_IMAGE,e=n.DEFAULT_MAPPING,i=Ua,a=Ua,s=Gn,o=Us,u=li,c=la,h=n.DEFAULT_ANISOTROPY,d=lr){super(),this.isTexture=!0,Object.defineProperty(this,&amp;amp;quot;id&amp;amp;quot;,{value:OH++}),this.uuid=Na(),this.name=&amp;amp;quot;&amp;amp;quot;,this.source=new Ts(t),this.mipmaps=[],this.mapping=e,this.channel=0,this.wrapS=i,this.wrapT=a,this.magFilter=s,this.minFilter=o,this.anisotropy=h,this.format=u,this.internalFormat=null,this.type=c,this.offset=new ct(0,0),this.repeat=new ct(1,1),this.center=new ct(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new ge,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=d,this.userData={},this.updateRanges=[],this.version=0,this.onUpdate=null,this.renderTarget=null,this.isRenderTargetTexture=!1,this.isArrayTexture=!!(t&amp;amp;amp;&amp;amp;amp;t.depth&amp;amp;amp;&amp;amp;amp;t.depth&amp;amp;gt;1),this.pmremVersion=0}get width(){return this.source.getSize(ZE).x}get height(){return this.source.getSize(ZE).y}get depth(){return this.source.getSize(ZE).z}get image(){return this.source.data}set image(t=null){this.source.data=t}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotation,this.center.x,this.center.y)}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}clone(){return new this.constructor().copy(this)}copy(t){return this.name=t.name,this.source=t.source,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.channel=t.channel,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.internalFormat=t.internalFormat,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotation=t.rotation,this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrix.copy(t.matrix),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.colorSpace=t.colorSpace,this.renderTarget=t.renderTarget,this.isRenderTargetTexture=t.isRenderTargetTexture,this.isArrayTexture=t.isArrayTexture,this.userData=JSON.parse(JSON.stringify(t.userData)),this.needsUpdate=!0,this}setValues(t){for(let e in t){let i=t[e];if(i===void 0){console.warn(`THREE.Texture.setValues(): parameter &amp;amp;#39;${e}&amp;amp;#39; has value of undefined.`);continue}let a=this[e];if(a===void 0){console.warn(`THREE.Texture.setValues(): property &amp;amp;#39;${e}&amp;amp;#39; does not exist.`);continue}a&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;a.isVector2&amp;amp;amp;&amp;amp;amp;i.isVector2||a&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;a.isVector3&amp;amp;amp;&amp;amp;amp;i.isVector3||a&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;a.isMatrix3&amp;amp;amp;&amp;amp;amp;i.isMatrix3?a.copy(i):this[e]=i}}toJSON(t){let e=t===void 0||typeof t==&amp;amp;quot;string&amp;amp;quot;;if(!e&amp;amp;amp;&amp;amp;amp;t.textures[this.uuid]!==void 0)return t.textures[this.uuid];let i={metadata:{version:4.7,type:&amp;amp;quot;Texture&amp;amp;quot;,generator:&amp;amp;quot;Texture.toJSON&amp;amp;quot;},uuid:this.uuid,name:this.name,image:this.source.toJSON(t).uuid,mapping:this.mapping,channel:this.channel,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],center:[this.center.x,this.center.y],rotation:this.rotation,wrap:[this.wrapS,this.wrapT],format:this.format,internalFormat:this.internalFormat,type:this.type,colorSpace:this.colorSpace,minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY,generateMipmaps:this.generateMipmaps,premultiplyAlpha:this.premultiplyAlpha,unpackAlignment:this.unpackAlignment};return Object.keys(this.userData).length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.userData=this.userData),e||(t.textures[this.uuid]=i),i}dispose(){this.dispatchEvent({type:&amp;amp;quot;dispose&amp;amp;quot;})}transformUv(t){if(this.mapping!==ig)return t;if(t.applyMatrix3(this.matrix),t.x&amp;amp;lt;0||t.x&amp;amp;gt;1)switch(this.wrapS){case Bf:t.x=t.x-Math.floor(t.x);break;case Ua:t.x=t.x&amp;amp;lt;0?0:1;break;case Pf:Math.abs(Math.floor(t.x)%2)===1?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x);break}if(t.y&amp;amp;lt;0||t.y&amp;amp;gt;1)switch(this.wrapT){case Bf:t.y=t.y-Math.floor(t.y);break;case Ua:t.y=t.y&amp;amp;lt;0?0:1;break;case Pf:Math.abs(Math.floor(t.y)%2)===1?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y);break}return this.flipY&amp;amp;amp;&amp;amp;amp;(t.y=1-t.y),t}set needsUpdate(t){t===!0&amp;amp;amp;&amp;amp;amp;(this.version++,this.source.needsUpdate=!0)}set needsPMREMUpdate(t){t===!0&amp;amp;amp;&amp;amp;amp;this.pmremVersion++}};zn.DEFAULT_IMAGE=null;zn.DEFAULT_MAPPING=ig;zn.DEFAULT_ANISOTROPY=1;var Oe=class n{constructor(t=0,e=0,i=0,a=1){n.prototype.isVector4=!0,this.x=t,this.y=e,this.z=i,this.w=a}get width(){return this.z}set width(t){this.z=t}get height(){return this.w}set height(t){this.w=t}set(t,e,i,a){return this.x=t,this.y=e,this.z=i,this.w=a,this}setScalar(t){return this.x=t,this.y=t,this.z=t,this.w=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}setW(t){return this.w=t,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;case 3:this.w=e;break;default:throw new Error(&amp;amp;quot;index is out of range: &amp;amp;quot;+t)}return this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;case 3:return this.w;default:throw new Error(&amp;amp;quot;index is out of range: &amp;amp;quot;+t)}}clone(){return new this.constructor(this.x,this.y,this.z,this.w)}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this.w=t.w!==void 0?t.w:1,this}add(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this.w+=t.w,this}addScalar(t){return this.x+=t,this.y+=t,this.z+=t,this.w+=t,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this.w=t.w+e.w,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this.w+=t.w*e,this}sub(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this.w-=t.w,this}subScalar(t){return this.x-=t,this.y-=t,this.z-=t,this.w-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this.w=t.w-e.w,this}multiply(t){return this.x*=t.x,this.y*=t.y,this.z*=t.z,this.w*=t.w,this}multiplyScalar(t){return this.x*=t,this.y*=t,this.z*=t,this.w*=t,this}applyMatrix4(t){let e=this.x,i=this.y,a=this.z,s=this.w,o=t.elements;return this.x=o[0]*e+o[4]*i+o[8]*a+o[12]*s,this.y=o[1]*e+o[5]*i+o[9]*a+o[13]*s,this.z=o[2]*e+o[6]*i+o[10]*a+o[14]*s,this.w=o[3]*e+o[7]*i+o[11]*a+o[15]*s,this}divide(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this.w/=t.w,this}divideScalar(t){return this.multiplyScalar(1/t)}setAxisAngleFromQuaternion(t){this.w=2*Math.acos(t.w);let e=Math.sqrt(1-t.w*t.w);return e&amp;amp;lt;1e-4?(this.x=1,this.y=0,this.z=0):(this.x=t.x/e,this.y=t.y/e,this.z=t.z/e),this}setAxisAngleFromRotationMatrix(t){let e,i,a,s,c=t.elements,h=c[0],d=c[4],m=c[8],g=c[1],y=c[5],x=c[9],b=c[2],M=c[6],v=c[10];if(Math.abs(d-g)&amp;amp;lt;.01&amp;amp;amp;&amp;amp;amp;Math.abs(m-b)&amp;amp;lt;.01&amp;amp;amp;&amp;amp;amp;Math.abs(x-M)&amp;amp;lt;.01){if(Math.abs(d+g)&amp;amp;lt;.1&amp;amp;amp;&amp;amp;amp;Math.abs(m+b)&amp;amp;lt;.1&amp;amp;amp;&amp;amp;amp;Math.abs(x+M)&amp;amp;lt;.1&amp;amp;amp;&amp;amp;amp;Math.abs(h+y+v-3)&amp;amp;lt;.1)return this.set(1,0,0,0),this;e=Math.PI;let E=(h+1)/2,T=(y+1)/2,w=(v+1)/2,U=(d+g)/4,O=(m+b)/4,z=(x+M)/4;return E&amp;amp;gt;T&amp;amp;amp;&amp;amp;amp;E&amp;amp;gt;w?E&amp;amp;lt;.01?(i=0,a=.707106781,s=.707106781):(i=Math.sqrt(E),a=U/i,s=O/i):T&amp;amp;gt;w?T&amp;amp;lt;.01?(i=.707106781,a=0,s=.707106781):(a=Math.sqrt(T),i=U/a,s=z/a):w&amp;amp;lt;.01?(i=.707106781,a=.707106781,s=0):(s=Math.sqrt(w),i=O/s,a=z/s),this.set(i,a,s,e),this}let S=Math.sqrt((M-x)*(M-x)+(m-b)*(m-b)+(g-d)*(g-d));return Math.abs(S)&amp;amp;lt;.001&amp;amp;amp;&amp;amp;amp;(S=1),this.x=(M-x)/S,this.y=(m-b)/S,this.z=(g-d)/S,this.w=Math.acos((h+y+v-1)/2),this}setFromMatrixPosition(t){let e=t.elements;return this.x=e[12],this.y=e[13],this.z=e[14],this.w=e[15],this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this.w=Math.min(this.w,t.w),this}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this.w=Math.max(this.w,t.w),this}clamp(t,e){return this.x=le(this.x,t.x,e.x),this.y=le(this.y,t.y,e.y),this.z=le(this.z,t.z,e.z),this.w=le(this.w,t.w,e.w),this}clampScalar(t,e){return this.x=le(this.x,t,e),this.y=le(this.y,t,e),this.z=le(this.z,t,e),this.w=le(this.w,t,e),this}clampLength(t,e){let i=this.length();return this.divideScalar(i||1).multiplyScalar(le(i,t,e))}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this.w=Math.ceil(this.w),this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this.w=Math.round(this.w),this}roundToZero(){return this.x=Math.trunc(this.x),this.y=Math.trunc(this.y),this.z=Math.trunc(this.z),this.w=Math.trunc(this.w),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this.w=-this.w,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z+this.w*t.w}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)+Math.abs(this.w)}normalize(){return this.divideScalar(this.length()||1)}setLength(t){return this.normalize().multiplyScalar(t)}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this.w+=(t.w-this.w)*e,this}lerpVectors(t,e,i){return this.x=t.x+(e.x-t.x)*i,this.y=t.y+(e.y-t.y)*i,this.z=t.z+(e.z-t.z)*i,this.w=t.w+(e.w-t.w)*i,this}equals(t){return t.x===this.x&amp;amp;amp;&amp;amp;amp;t.y===this.y&amp;amp;amp;&amp;amp;amp;t.z===this.z&amp;amp;amp;&amp;amp;amp;t.w===this.w}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this.w=t[e+3],this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t[e+3]=this.w,t}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this.z=t.getZ(e),this.w=t.getW(e),this}random(){return this.x=Math.random(),this.y=Math.random(),this.z=Math.random(),this.w=Math.random(),this}*[Symbol.iterator](){yield this.x,yield this.y,yield this.z,yield this.w}},Xf=class extends La{constructor(t=1,e=1,i={}){super(),i=Object.assign({generateMipmaps:!1,internalFormat:null,minFilter:Gn,depthBuffer:!0,stencilBuffer:!1,resolveDepthBuffer:!0,resolveStencilBuffer:!0,depthTexture:null,samples:0,count:1,depth:1,multiview:!1},i),this.isRenderTarget=!0,this.width=t,this.height=e,this.depth=i.depth,this.scissor=new Oe(0,0,t,e),this.scissorTest=!1,this.viewport=new Oe(0,0,t,e);let a={width:t,height:e,depth:i.depth},s=new zn(a);this.textures=[];let o=i.count;for(let u=0;u&amp;amp;lt;o;u++)this.textures[u]=s.clone(),this.textures[u].isRenderTargetTexture=!0,this.textures[u].renderTarget=this;this._setTextureOptions(i),this.depthBuffer=i.depthBuffer,this.stencilBuffer=i.stencilBuffer,this.resolveDepthBuffer=i.resolveDepthBuffer,this.resolveStencilBuffer=i.resolveStencilBuffer,this._depthTexture=null,this.depthTexture=i.depthTexture,this.samples=i.samples,this.multiview=i.multiview}_setTextureOptions(t={}){let e={minFilter:Gn,generateMipmaps:!1,flipY:!1,internalFormat:null};t.mapping!==void 0&amp;amp;amp;&amp;amp;amp;(e.mapping=t.mapping),t.wrapS!==void 0&amp;amp;amp;&amp;amp;amp;(e.wrapS=t.wrapS),t.wrapT!==void 0&amp;amp;amp;&amp;amp;amp;(e.wrapT=t.wrapT),t.wrapR!==void 0&amp;amp;amp;&amp;amp;amp;(e.wrapR=t.wrapR),t.magFilter!==void 0&amp;amp;amp;&amp;amp;amp;(e.magFilter=t.magFilter),t.minFilter!==void 0&amp;amp;amp;&amp;amp;amp;(e.minFilter=t.minFilter),t.format!==void 0&amp;amp;amp;&amp;amp;amp;(e.format=t.format),t.type!==void 0&amp;amp;amp;&amp;amp;amp;(e.type=t.type),t.anisotropy!==void 0&amp;amp;amp;&amp;amp;amp;(e.anisotropy=t.anisotropy),t.colorSpace!==void 0&amp;amp;amp;&amp;amp;amp;(e.colorSpace=t.colorSpace),t.flipY!==void 0&amp;amp;amp;&amp;amp;amp;(e.flipY=t.flipY),t.generateMipmaps!==void 0&amp;amp;amp;&amp;amp;amp;(e.generateMipmaps=t.generateMipmaps),t.internalFormat!==void 0&amp;amp;amp;&amp;amp;amp;(e.internalFormat=t.internalFormat);for(let i=0;i&amp;amp;lt;this.textures.length;i++)this.textures[i].setValues(e)}get texture(){return this.textures[0]}set texture(t){this.textures[0]=t}set depthTexture(t){this._depthTexture!==null&amp;amp;amp;&amp;amp;amp;(this._depthTexture.renderTarget=null),t!==null&amp;amp;amp;&amp;amp;amp;(t.renderTarget=this),this._depthTexture=t}get depthTexture(){return this._depthTexture}setSize(t,e,i=1){if(this.width!==t||this.height!==e||this.depth!==i){this.width=t,this.height=e,this.depth=i;for(let a=0,s=this.textures.length;a&amp;amp;lt;s;a++)this.textures[a].image.width=t,this.textures[a].image.height=e,this.textures[a].image.depth=i,this.textures[a].isArrayTexture=this.textures[a].image.depth&amp;amp;gt;1;this.dispose()}this.viewport.set(0,0,t,e),this.scissor.set(0,0,t,e)}clone(){return new this.constructor().copy(this)}copy(t){this.width=t.width,this.height=t.height,this.depth=t.depth,this.scissor.copy(t.scissor),this.scissorTest=t.scissorTest,this.viewport.copy(t.viewport),this.textures.length=0;for(let e=0,i=t.textures.length;e&amp;amp;lt;i;e++){this.textures[e]=t.textures[e].clone(),this.textures[e].isRenderTargetTexture=!0,this.textures[e].renderTarget=this;let a=Object.assign({},t.textures[e].image);this.textures[e].source=new Ts(a)}return this.depthBuffer=t.depthBuffer,this.stencilBuffer=t.stencilBuffer,this.resolveDepthBuffer=t.resolveDepthBuffer,this.resolveStencilBuffer=t.resolveStencilBuffer,t.depthTexture!==null&amp;amp;amp;&amp;amp;amp;(this.depthTexture=t.depthTexture.clone()),this.samples=t.samples,this}dispose(){this.dispatchEvent({type:&amp;amp;quot;dispose&amp;amp;quot;})}},za=class extends Xf{constructor(t=1,e=1,i={}){super(t,e,i),this.isWebGLRenderTarget=!0}},xu=class extends zn{constructor(t=null,e=1,i=1,a=1){super(null),this.isDataArrayTexture=!0,this.image={data:t,width:e,height:i,depth:a},this.magFilter=oi,this.minFilter=oi,this.wrapR=Ua,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1,this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}},Wy=class extends za{constructor(t=1,e=1,i=1,a={}){super(t,e,a),this.isWebGLArrayRenderTarget=!0,this.depth=i,this.texture=new xu(null,t,e,i),this._setTextureOptions(a),this.texture.isRenderTargetTexture=!0}},Su=class extends zn{constructor(t=null,e=1,i=1,a=1){super(null),this.isData3DTexture=!0,this.image={data:t,width:e,height:i,depth:a},this.magFilter=oi,this.minFilter=oi,this.wrapR=Ua,this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},ky=class extends za{constructor(t=1,e=1,i=1,a={}){super(t,e,a),this.isWebGL3DRenderTarget=!0,this.depth=i,this.texture=new Su(null,t,e,i),this._setTextureOptions(a),this.texture.isRenderTargetTexture=!0}},Zn=class{constructor(t=new B(1/0,1/0,1/0),e=new B(-1/0,-1/0,-1/0)){this.isBox3=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromArray(t){this.makeEmpty();for(let e=0,i=t.length;e&amp;amp;lt;i;e+=3)this.expandByPoint(xs.fromArray(t,e));return this}setFromBufferAttribute(t){this.makeEmpty();for(let e=0,i=t.count;e&amp;amp;lt;i;e++)this.expandByPoint(xs.fromBufferAttribute(t,e));return this}setFromPoints(t){this.makeEmpty();for(let e=0,i=t.length;e&amp;amp;lt;i;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){let i=xs.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(i),this.max.copy(t).add(i),this}setFromObject(t,e=!1){return this.makeEmpty(),this.expandByObject(t,e)}clone(){return new this.constructor().copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}isEmpty(){return this.max.x&amp;amp;lt;this.min.x||this.max.y&amp;amp;lt;this.min.y||this.max.z&amp;amp;lt;this.min.z}getCenter(t){return this.isEmpty()?t.set(0,0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}expandByObject(t,e=!1){t.updateWorldMatrix(!1,!1);let i=t.geometry;if(i!==void 0){let s=i.getAttribute(&amp;amp;quot;position&amp;amp;quot;);if(e===!0&amp;amp;amp;&amp;amp;amp;s!==void 0&amp;amp;amp;&amp;amp;amp;t.isInstancedMesh!==!0)for(let o=0,u=s.count;o&amp;amp;lt;u;o++)t.isMesh===!0?t.getVertexPosition(o,xs):xs.fromBufferAttribute(s,o),xs.applyMatrix4(t.matrixWorld),this.expandByPoint(xs);else t.boundingBox!==void 0?(t.boundingBox===null&amp;amp;amp;&amp;amp;amp;t.computeBoundingBox(),ny.copy(t.boundingBox)):(i.boundingBox===null&amp;amp;amp;&amp;amp;amp;i.computeBoundingBox(),ny.copy(i.boundingBox)),ny.applyMatrix4(t.matrixWorld),this.union(ny)}let a=t.children;for(let s=0,o=a.length;s&amp;amp;lt;o;s++)this.expandByObject(a[s],e);return this}containsPoint(t){return t.x&amp;amp;gt;=this.min.x&amp;amp;amp;&amp;amp;amp;t.x&amp;amp;lt;=this.max.x&amp;amp;amp;&amp;amp;amp;t.y&amp;amp;gt;=this.min.y&amp;amp;amp;&amp;amp;amp;t.y&amp;amp;lt;=this.max.y&amp;amp;amp;&amp;amp;amp;t.z&amp;amp;gt;=this.min.z&amp;amp;amp;&amp;amp;amp;t.z&amp;amp;lt;=this.max.z}containsBox(t){return this.min.x&amp;amp;lt;=t.min.x&amp;amp;amp;&amp;amp;amp;t.max.x&amp;amp;lt;=this.max.x&amp;amp;amp;&amp;amp;amp;this.min.y&amp;amp;lt;=t.min.y&amp;amp;amp;&amp;amp;amp;t.max.y&amp;amp;lt;=this.max.y&amp;amp;amp;&amp;amp;amp;this.min.z&amp;amp;lt;=t.min.z&amp;amp;amp;&amp;amp;amp;t.max.z&amp;amp;lt;=this.max.z}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))}intersectsBox(t){return t.max.x&amp;amp;gt;=this.min.x&amp;amp;amp;&amp;amp;amp;t.min.x&amp;amp;lt;=this.max.x&amp;amp;amp;&amp;amp;amp;t.max.y&amp;amp;gt;=this.min.y&amp;amp;amp;&amp;amp;amp;t.min.y&amp;amp;lt;=this.max.y&amp;amp;amp;&amp;amp;amp;t.max.z&amp;amp;gt;=this.min.z&amp;amp;amp;&amp;amp;amp;t.min.z&amp;amp;lt;=this.max.z}intersectsSphere(t){return this.clampPoint(t.center,xs),xs.distanceToSquared(t.center)&amp;amp;lt;=t.radius*t.radius}intersectsPlane(t){let e,i;return t.normal.x&amp;amp;gt;0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y&amp;amp;gt;0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z&amp;amp;gt;0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e&amp;amp;lt;=-t.constant&amp;amp;amp;&amp;amp;amp;i&amp;amp;gt;=-t.constant}intersectsTriangle(t){if(this.isEmpty())return!1;this.getCenter(vp),iy.subVectors(this.max,vp),mf.subVectors(t.a,vp),gf.subVectors(t.b,vp),vf.subVectors(t.c,vp),Zo.subVectors(gf,mf),jo.subVectors(vf,gf),nu.subVectors(mf,vf);let e=[0,-Zo.z,Zo.y,0,-jo.z,jo.y,0,-nu.z,nu.y,Zo.z,0,-Zo.x,jo.z,0,-jo.x,nu.z,0,-nu.x,-Zo.y,Zo.x,0,-jo.y,jo.x,0,-nu.y,nu.x,0];return!jE(e,mf,gf,vf,iy)||(e=[1,0,0,0,1,0,0,0,1],!jE(e,mf,gf,vf,iy))?!1:(ay.crossVectors(Zo,jo),e=[ay.x,ay.y,ay.z],jE(e,mf,gf,vf,iy))}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,xs).distanceTo(t)}getBoundingSphere(t){return this.isEmpty()?t.makeEmpty():(this.getCenter(t.center),t.radius=this.getSize(xs).length()*.5),t}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&amp;amp;amp;&amp;amp;amp;this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}applyMatrix4(t){return this.isEmpty()?this:(Hr[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(t),Hr[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(t),Hr[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(t),Hr[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(t),Hr[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(t),Hr[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(t),Hr[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(t),Hr[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(t),this.setFromPoints(Hr),this)}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&amp;amp;amp;&amp;amp;amp;t.max.equals(this.max)}toJSON(){return{min:this.min.toArray(),max:this.max.toArray()}}fromJSON(t){return this.min.fromArray(t.min),this.max.fromArray(t.max),this}},Hr=[new B,new B,new B,new B,new B,new B,new B,new B],xs=new B,ny=new Zn,mf=new B,gf=new B,vf=new B,Zo=new B,jo=new B,nu=new B,vp=new B,iy=new B,ay=new B,iu=new B;function jE(n,t,e,i,a){for(let s=0,o=n.length-3;s&amp;amp;lt;=o;s+=3){iu.fromArray(n,s);let u=a.x*Math.abs(iu.x)+a.y*Math.abs(iu.y)+a.z*Math.abs(iu.z),c=t.dot(iu),h=e.dot(iu),d=i.dot(iu);if(Math.max(-Math.max(c,h,d),Math.min(c,h,d))&amp;amp;gt;u)return!1}return!0}var LH=new Zn,yp=new B,QE=new B,Xn=class{constructor(t=new B,e=-1){this.isSphere=!0,this.center=t,this.radius=e}set(t,e){return this.center.copy(t),this.radius=e,this}setFromPoints(t,e){let i=this.center;e!==void 0?i.copy(e):LH.setFromPoints(t).getCenter(i);let a=0;for(let s=0,o=t.length;s&amp;amp;lt;o;s++)a=Math.max(a,i.distanceToSquared(t[s]));return this.radius=Math.sqrt(a),this}copy(t){return this.center.copy(t.center),this.radius=t.radius,this}isEmpty(){return this.radius&amp;amp;lt;0}makeEmpty(){return this.center.set(0,0,0),this.radius=-1,this}containsPoint(t){return t.distanceToSquared(this.center)&amp;amp;lt;=this.radius*this.radius}distanceToPoint(t){return t.distanceTo(this.center)-this.radius}intersectsSphere(t){let e=this.radius+t.radius;return t.center.distanceToSquared(this.center)&amp;amp;lt;=e*e}intersectsBox(t){return t.intersectsSphere(this)}intersectsPlane(t){return Math.abs(t.distanceToPoint(this.center))&amp;amp;lt;=this.radius}clampPoint(t,e){let i=this.center.distanceToSquared(t);return e.copy(t),i&amp;amp;gt;this.radius*this.radius&amp;amp;amp;&amp;amp;amp;(e.sub(this.center).normalize(),e.multiplyScalar(this.radius).add(this.center)),e}getBoundingBox(t){return this.isEmpty()?(t.makeEmpty(),t):(t.set(this.center,this.center),t.expandByScalar(this.radius),t)}applyMatrix4(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this}translate(t){return this.center.add(t),this}expandByPoint(t){if(this.isEmpty())return this.center.copy(t),this.radius=0,this;yp.subVectors(t,this.center);let e=yp.lengthSq();if(e&amp;amp;gt;this.radius*this.radius){let i=Math.sqrt(e),a=(i-this.radius)*.5;this.center.addScaledVector(yp,a/i),this.radius+=a}return this}union(t){return t.isEmpty()?this:this.isEmpty()?(this.copy(t),this):(this.center.equals(t.center)===!0?this.radius=Math.max(this.radius,t.radius):(QE.subVectors(t.center,this.center).setLength(t.radius),this.expandByPoint(yp.copy(t.center).add(QE)),this.expandByPoint(yp.copy(t.center).sub(QE))),this)}equals(t){return t.center.equals(this.center)&amp;amp;amp;&amp;amp;amp;t.radius===this.radius}clone(){return new this.constructor().copy(this)}toJSON(){return{radius:this.radius,center:this.center.toArray()}}fromJSON(t){return this.radius=t.radius,this.center.fromArray(t.center),this}},Fr=new B,KE=new B,sy=new B,Qo=new B,JE=new B,ry=new B,$E=new B,jr=class{constructor(t=new B,e=new B(0,0,-1)){this.origin=t,this.direction=e}set(t,e){return this.origin.copy(t),this.direction.copy(e),this}copy(t){return this.origin.copy(t.origin),this.direction.copy(t.direction),this}at(t,e){return e.copy(this.origin).addScaledVector(this.direction,t)}lookAt(t){return this.direction.copy(t).sub(this.origin).normalize(),this}recast(t){return this.origin.copy(this.at(t,Fr)),this}closestPointToPoint(t,e){e.subVectors(t,this.origin);let i=e.dot(this.direction);return i&amp;amp;lt;0?e.copy(this.origin):e.copy(this.origin).addScaledVector(this.direction,i)}distanceToPoint(t){return Math.sqrt(this.distanceSqToPoint(t))}distanceSqToPoint(t){let e=Fr.subVectors(t,this.origin).dot(this.direction);return e&amp;amp;lt;0?this.origin.distanceToSquared(t):(Fr.copy(this.origin).addScaledVector(this.direction,e),Fr.distanceToSquared(t))}distanceSqToSegment(t,e,i,a){KE.copy(t).add(e).multiplyScalar(.5),sy.copy(e).sub(t).normalize(),Qo.copy(this.origin).sub(KE);let s=t.distanceTo(e)*.5,o=-this.direction.dot(sy),u=Qo.dot(this.direction),c=-Qo.dot(sy),h=Qo.lengthSq(),d=Math.abs(1-o*o),m,g,y,x;if(d&amp;amp;gt;0)if(m=o*c-u,g=o*u-c,x=s*d,m&amp;amp;gt;=0)if(g&amp;amp;gt;=-x)if(g&amp;amp;lt;=x){let b=1/d;m*=b,g*=b,y=m*(m+o*g+2*u)+g*(o*m+g+2*c)+h}else g=s,m=Math.max(0,-(o*g+u)),y=-m*m+g*(g+2*c)+h;else g=-s,m=Math.max(0,-(o*g+u)),y=-m*m+g*(g+2*c)+h;else g&amp;amp;lt;=-x?(m=Math.max(0,-(-o*s+u)),g=m&amp;amp;gt;0?-s:Math.min(Math.max(-s,-c),s),y=-m*m+g*(g+2*c)+h):g&amp;amp;lt;=x?(m=0,g=Math.min(Math.max(-s,-c),s),y=g*(g+2*c)+h):(m=Math.max(0,-(o*s+u)),g=m&amp;amp;gt;0?s:Math.min(Math.max(-s,-c),s),y=-m*m+g*(g+2*c)+h);else g=o&amp;amp;gt;0?-s:s,m=Math.max(0,-(o*g+u)),y=-m*m+g*(g+2*c)+h;return i&amp;amp;amp;&amp;amp;amp;i.copy(this.origin).addScaledVector(this.direction,m),a&amp;amp;amp;&amp;amp;amp;a.copy(KE).addScaledVector(sy,g),y}intersectSphere(t,e){Fr.subVectors(t.center,this.origin);let i=Fr.dot(this.direction),a=Fr.dot(Fr)-i*i,s=t.radius*t.radius;if(a&amp;amp;gt;s)return null;let o=Math.sqrt(s-a),u=i-o,c=i+o;return c&amp;amp;lt;0?null:u&amp;amp;lt;0?this.at(c,e):this.at(u,e)}intersectsSphere(t){return t.radius&amp;amp;lt;0?!1:this.distanceSqToPoint(t.center)&amp;amp;lt;=t.radius*t.radius}distanceToPlane(t){let e=t.normal.dot(this.direction);if(e===0)return t.distanceToPoint(this.origin)===0?0:null;let i=-(this.origin.dot(t.normal)+t.constant)/e;return i&amp;amp;gt;=0?i:null}intersectPlane(t,e){let i=this.distanceToPlane(t);return i===null?null:this.at(i,e)}intersectsPlane(t){let e=t.distanceToPoint(this.origin);return e===0||t.normal.dot(this.direction)*e&amp;amp;lt;0}intersectBox(t,e){let i,a,s,o,u,c,h=1/this.direction.x,d=1/this.direction.y,m=1/this.direction.z,g=this.origin;return h&amp;amp;gt;=0?(i=(t.min.x-g.x)*h,a=(t.max.x-g.x)*h):(i=(t.max.x-g.x)*h,a=(t.min.x-g.x)*h),d&amp;amp;gt;=0?(s=(t.min.y-g.y)*d,o=(t.max.y-g.y)*d):(s=(t.max.y-g.y)*d,o=(t.min.y-g.y)*d),i&amp;amp;gt;o||s&amp;amp;gt;a||((s&amp;amp;gt;i||isNaN(i))&amp;amp;amp;&amp;amp;amp;(i=s),(o&amp;amp;lt;a||isNaN(a))&amp;amp;amp;&amp;amp;amp;(a=o),m&amp;amp;gt;=0?(u=(t.min.z-g.z)*m,c=(t.max.z-g.z)*m):(u=(t.max.z-g.z)*m,c=(t.min.z-g.z)*m),i&amp;amp;gt;c||u&amp;amp;gt;a)||((u&amp;amp;gt;i||i!==i)&amp;amp;amp;&amp;amp;amp;(i=u),(c&amp;amp;lt;a||a!==a)&amp;amp;amp;&amp;amp;amp;(a=c),a&amp;amp;lt;0)?null:this.at(i&amp;amp;gt;=0?i:a,e)}intersectsBox(t){return this.intersectBox(t,Fr)!==null}intersectTriangle(t,e,i,a,s){JE.subVectors(e,t),ry.subVectors(i,t),$E.crossVectors(JE,ry);let o=this.direction.dot($E),u;if(o&amp;amp;gt;0){if(a)return null;u=1}else if(o&amp;amp;lt;0)u=-1,o=-o;else return null;Qo.subVectors(this.origin,t);let c=u*this.direction.dot(ry.crossVectors(Qo,ry));if(c&amp;amp;lt;0)return null;let h=u*this.direction.dot(JE.cross(Qo));if(h&amp;amp;lt;0||c+h&amp;amp;gt;o)return null;let d=-u*Qo.dot($E);return d&amp;amp;lt;0?null:this.at(d/o,s)}applyMatrix4(t){return this.origin.applyMatrix4(t),this.direction.transformDirection(t),this}equals(t){return t.origin.equals(this.origin)&amp;amp;amp;&amp;amp;amp;t.direction.equals(this.direction)}clone(){return new this.constructor().copy(this)}},fe=class n{constructor(t,e,i,a,s,o,u,c,h,d,m,g,y,x,b,M){n.prototype.isMatrix4=!0,this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],t!==void 0&amp;amp;amp;&amp;amp;amp;this.set(t,e,i,a,s,o,u,c,h,d,m,g,y,x,b,M)}set(t,e,i,a,s,o,u,c,h,d,m,g,y,x,b,M){let v=this.elements;return v[0]=t,v[4]=e,v[8]=i,v[12]=a,v[1]=s,v[5]=o,v[9]=u,v[13]=c,v[2]=h,v[6]=d,v[10]=m,v[14]=g,v[3]=y,v[7]=x,v[11]=b,v[15]=M,this}identity(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this}clone(){return new n().fromArray(this.elements)}copy(t){let e=this.elements,i=t.elements;return e[0]=i[0],e[1]=i[1],e[2]=i[2],e[3]=i[3],e[4]=i[4],e[5]=i[5],e[6]=i[6],e[7]=i[7],e[8]=i[8],e[9]=i[9],e[10]=i[10],e[11]=i[11],e[12]=i[12],e[13]=i[13],e[14]=i[14],e[15]=i[15],this}copyPosition(t){let e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this}setFromMatrix3(t){let e=t.elements;return this.set(e[0],e[3],e[6],0,e[1],e[4],e[7],0,e[2],e[5],e[8],0,0,0,0,1),this}extractBasis(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this}makeBasis(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this}extractRotation(t){let e=this.elements,i=t.elements,a=1/yf.setFromMatrixColumn(t,0).length(),s=1/yf.setFromMatrixColumn(t,1).length(),o=1/yf.setFromMatrixColumn(t,2).length();return e[0]=i[0]*a,e[1]=i[1]*a,e[2]=i[2]*a,e[3]=0,e[4]=i[4]*s,e[5]=i[5]*s,e[6]=i[6]*s,e[7]=0,e[8]=i[8]*o,e[9]=i[9]*o,e[10]=i[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromEuler(t){let e=this.elements,i=t.x,a=t.y,s=t.z,o=Math.cos(i),u=Math.sin(i),c=Math.cos(a),h=Math.sin(a),d=Math.cos(s),m=Math.sin(s);if(t.order===&amp;amp;quot;XYZ&amp;amp;quot;){let g=o*d,y=o*m,x=u*d,b=u*m;e[0]=c*d,e[4]=-c*m,e[8]=h,e[1]=y+x*h,e[5]=g-b*h,e[9]=-u*c,e[2]=b-g*h,e[6]=x+y*h,e[10]=o*c}else if(t.order===&amp;amp;quot;YXZ&amp;amp;quot;){let g=c*d,y=c*m,x=h*d,b=h*m;e[0]=g+b*u,e[4]=x*u-y,e[8]=o*h,e[1]=o*m,e[5]=o*d,e[9]=-u,e[2]=y*u-x,e[6]=b+g*u,e[10]=o*c}else if(t.order===&amp;amp;quot;ZXY&amp;amp;quot;){let g=c*d,y=c*m,x=h*d,b=h*m;e[0]=g-b*u,e[4]=-o*m,e[8]=x+y*u,e[1]=y+x*u,e[5]=o*d,e[9]=b-g*u,e[2]=-o*h,e[6]=u,e[10]=o*c}else if(t.order===&amp;amp;quot;ZYX&amp;amp;quot;){let g=o*d,y=o*m,x=u*d,b=u*m;e[0]=c*d,e[4]=x*h-y,e[8]=g*h+b,e[1]=c*m,e[5]=b*h+g,e[9]=y*h-x,e[2]=-h,e[6]=u*c,e[10]=o*c}else if(t.order===&amp;amp;quot;YZX&amp;amp;quot;){let g=o*c,y=o*h,x=u*c,b=u*h;e[0]=c*d,e[4]=b-g*m,e[8]=x*m+y,e[1]=m,e[5]=o*d,e[9]=-u*d,e[2]=-h*d,e[6]=y*m+x,e[10]=g-b*m}else if(t.order===&amp;amp;quot;XZY&amp;amp;quot;){let g=o*c,y=o*h,x=u*c,b=u*h;e[0]=c*d,e[4]=-m,e[8]=h*d,e[1]=g*m+b,e[5]=o*d,e[9]=y*m-x,e[2]=x*m-y,e[6]=u*d,e[10]=b*m+g}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this}makeRotationFromQuaternion(t){return this.compose(zH,t,BH)}lookAt(t,e,i){let a=this.elements;return wa.subVectors(t,e),wa.lengthSq()===0&amp;amp;amp;&amp;amp;amp;(wa.z=1),wa.normalize(),Ko.crossVectors(i,wa),Ko.lengthSq()===0&amp;amp;amp;&amp;amp;amp;(Math.abs(i.z)===1?wa.x+=1e-4:wa.z+=1e-4,wa.normalize(),Ko.crossVectors(i,wa)),Ko.normalize(),oy.crossVectors(wa,Ko),a[0]=Ko.x,a[4]=oy.x,a[8]=wa.x,a[1]=Ko.y,a[5]=oy.y,a[9]=wa.y,a[2]=Ko.z,a[6]=oy.z,a[10]=wa.z,this}multiply(t){return this.multiplyMatrices(this,t)}premultiply(t){return this.multiplyMatrices(t,this)}multiplyMatrices(t,e){let i=t.elements,a=e.elements,s=this.elements,o=i[0],u=i[4],c=i[8],h=i[12],d=i[1],m=i[5],g=i[9],y=i[13],x=i[2],b=i[6],M=i[10],v=i[14],S=i[3],E=i[7],T=i[11],w=i[15],U=a[0],O=a[4],z=a[8],C=a[12],R=a[1],P=a[5],j=a[9],X=a[13],Z=a[2],st=a[6],et=a[10],mt=a[14],K=a[3],_t=a[7],Ut=a[11],xt=a[15];return s[0]=o*U+u*R+c*Z+h*K,s[4]=o*O+u*P+c*st+h*_t,s[8]=o*z+u*j+c*et+h*Ut,s[12]=o*C+u*X+c*mt+h*xt,s[1]=d*U+m*R+g*Z+y*K,s[5]=d*O+m*P+g*st+y*_t,s[9]=d*z+m*j+g*et+y*Ut,s[13]=d*C+m*X+g*mt+y*xt,s[2]=x*U+b*R+M*Z+v*K,s[6]=x*O+b*P+M*st+v*_t,s[10]=x*z+b*j+M*et+v*Ut,s[14]=x*C+b*X+M*mt+v*xt,s[3]=S*U+E*R+T*Z+w*K,s[7]=S*O+E*P+T*st+w*_t,s[11]=S*z+E*j+T*et+w*Ut,s[15]=S*C+E*X+T*mt+w*xt,this}multiplyScalar(t){let e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this}determinant(){let t=this.elements,e=t[0],i=t[4],a=t[8],s=t[12],o=t[1],u=t[5],c=t[9],h=t[13],d=t[2],m=t[6],g=t[10],y=t[14],x=t[3],b=t[7],M=t[11],v=t[15];return x*(+s*c*m-a*h*m-s*u*g+i*h*g+a*u*y-i*c*y)+b*(+e*c*y-e*h*g+s*o*g-a*o*y+a*h*d-s*c*d)+M*(+e*h*m-e*u*y-s*o*m+i*o*y+s*u*d-i*h*d)+v*(-a*u*d-e*c*m+e*u*g+a*o*m-i*o*g+i*c*d)}transpose(){let t=this.elements,e;return e=t[1],t[1]=t[4],t[4]=e,e=t[2],t[2]=t[8],t[8]=e,e=t[6],t[6]=t[9],t[9]=e,e=t[3],t[3]=t[12],t[12]=e,e=t[7],t[7]=t[13],t[13]=e,e=t[11],t[11]=t[14],t[14]=e,this}setPosition(t,e,i){let a=this.elements;return t.isVector3?(a[12]=t.x,a[13]=t.y,a[14]=t.z):(a[12]=t,a[13]=e,a[14]=i),this}invert(){let t=this.elements,e=t[0],i=t[1],a=t[2],s=t[3],o=t[4],u=t[5],c=t[6],h=t[7],d=t[8],m=t[9],g=t[10],y=t[11],x=t[12],b=t[13],M=t[14],v=t[15],S=m*M*h-b*g*h+b*c*y-u*M*y-m*c*v+u*g*v,E=x*g*h-d*M*h-x*c*y+o*M*y+d*c*v-o*g*v,T=d*b*h-x*m*h+x*u*y-o*b*y-d*u*v+o*m*v,w=x*m*c-d*b*c-x*u*g+o*b*g+d*u*M-o*m*M,U=e*S+i*E+a*T+s*w;if(U===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let O=1/U;return t[0]=S*O,t[1]=(b*g*s-m*M*s-b*a*y+i*M*y+m*a*v-i*g*v)*O,t[2]=(u*M*s-b*c*s+b*a*h-i*M*h-u*a*v+i*c*v)*O,t[3]=(m*c*s-u*g*s-m*a*h+i*g*h+u*a*y-i*c*y)*O,t[4]=E*O,t[5]=(d*M*s-x*g*s+x*a*y-e*M*y-d*a*v+e*g*v)*O,t[6]=(x*c*s-o*M*s-x*a*h+e*M*h+o*a*v-e*c*v)*O,t[7]=(o*g*s-d*c*s+d*a*h-e*g*h-o*a*y+e*c*y)*O,t[8]=T*O,t[9]=(x*m*s-d*b*s-x*i*y+e*b*y+d*i*v-e*m*v)*O,t[10]=(o*b*s-x*u*s+x*i*h-e*b*h-o*i*v+e*u*v)*O,t[11]=(d*u*s-o*m*s-d*i*h+e*m*h+o*i*y-e*u*y)*O,t[12]=w*O,t[13]=(d*b*a-x*m*a+x*i*g-e*b*g-d*i*M+e*m*M)*O,t[14]=(x*u*a-o*b*a-x*i*c+e*b*c+o*i*M-e*u*M)*O,t[15]=(o*m*a-d*u*a+d*i*c-e*m*c-o*i*g+e*u*g)*O,this}scale(t){let e=this.elements,i=t.x,a=t.y,s=t.z;return e[0]*=i,e[4]*=a,e[8]*=s,e[1]*=i,e[5]*=a,e[9]*=s,e[2]*=i,e[6]*=a,e[10]*=s,e[3]*=i,e[7]*=a,e[11]*=s,this}getMaxScaleOnAxis(){let t=this.elements,e=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],i=t[4]*t[4]+t[5]*t[5]+t[6]*t[6],a=t[8]*t[8]+t[9]*t[9]+t[10]*t[10];return Math.sqrt(Math.max(e,i,a))}makeTranslation(t,e,i){return t.isVector3?this.set(1,0,0,t.x,0,1,0,t.y,0,0,1,t.z,0,0,0,1):this.set(1,0,0,t,0,1,0,e,0,0,1,i,0,0,0,1),this}makeRotationX(t){let e=Math.cos(t),i=Math.sin(t);return this.set(1,0,0,0,0,e,-i,0,0,i,e,0,0,0,0,1),this}makeRotationY(t){let e=Math.cos(t),i=Math.sin(t);return this.set(e,0,i,0,0,1,0,0,-i,0,e,0,0,0,0,1),this}makeRotationZ(t){let e=Math.cos(t),i=Math.sin(t);return this.set(e,-i,0,0,i,e,0,0,0,0,1,0,0,0,0,1),this}makeRotationAxis(t,e){let i=Math.cos(e),a=Math.sin(e),s=1-i,o=t.x,u=t.y,c=t.z,h=s*o,d=s*u;return this.set(h*o+i,h*u-a*c,h*c+a*u,0,h*u+a*c,d*u+i,d*c-a*o,0,h*c-a*u,d*c+a*o,s*c*c+i,0,0,0,0,1),this}makeScale(t,e,i){return this.set(t,0,0,0,0,e,0,0,0,0,i,0,0,0,0,1),this}makeShear(t,e,i,a,s,o){return this.set(1,i,s,0,t,1,o,0,e,a,1,0,0,0,0,1),this}compose(t,e,i){let a=this.elements,s=e._x,o=e._y,u=e._z,c=e._w,h=s+s,d=o+o,m=u+u,g=s*h,y=s*d,x=s*m,b=o*d,M=o*m,v=u*m,S=c*h,E=c*d,T=c*m,w=i.x,U=i.y,O=i.z;return a[0]=(1-(b+v))*w,a[1]=(y+T)*w,a[2]=(x-E)*w,a[3]=0,a[4]=(y-T)*U,a[5]=(1-(g+v))*U,a[6]=(M+S)*U,a[7]=0,a[8]=(x+E)*O,a[9]=(M-S)*O,a[10]=(1-(g+b))*O,a[11]=0,a[12]=t.x,a[13]=t.y,a[14]=t.z,a[15]=1,this}decompose(t,e,i){let a=this.elements,s=yf.set(a[0],a[1],a[2]).length(),o=yf.set(a[4],a[5],a[6]).length(),u=yf.set(a[8],a[9],a[10]).length();this.determinant()&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(s=-s),t.x=a[12],t.y=a[13],t.z=a[14],Ss.copy(this);let h=1/s,d=1/o,m=1/u;return Ss.elements[0]*=h,Ss.elements[1]*=h,Ss.elements[2]*=h,Ss.elements[4]*=d,Ss.elements[5]*=d,Ss.elements[6]*=d,Ss.elements[8]*=m,Ss.elements[9]*=m,Ss.elements[10]*=m,e.setFromRotationMatrix(Ss),i.x=s,i.y=o,i.z=u,this}makePerspective(t,e,i,a,s,o,u=aa,c=!1){let h=this.elements,d=2*s/(e-t),m=2*s/(i-a),g=(e+t)/(e-t),y=(i+a)/(i-a),x,b;if(c)x=s/(o-s),b=o*s/(o-s);else if(u===aa)x=-(o+s)/(o-s),b=-2*o*s/(o-s);else if(u===vu)x=-o/(o-s),b=-o*s/(o-s);else throw new Error(&amp;amp;quot;THREE.Matrix4.makePerspective(): Invalid coordinate system: &amp;amp;quot;+u);return h[0]=d,h[4]=0,h[8]=g,h[12]=0,h[1]=0,h[5]=m,h[9]=y,h[13]=0,h[2]=0,h[6]=0,h[10]=x,h[14]=b,h[3]=0,h[7]=0,h[11]=-1,h[15]=0,this}makeOrthographic(t,e,i,a,s,o,u=aa,c=!1){let h=this.elements,d=2/(e-t),m=2/(i-a),g=-(e+t)/(e-t),y=-(i+a)/(i-a),x,b;if(c)x=1/(o-s),b=o/(o-s);else if(u===aa)x=-2/(o-s),b=-(o+s)/(o-s);else if(u===vu)x=-1/(o-s),b=-s/(o-s);else throw new Error(&amp;amp;quot;THREE.Matrix4.makeOrthographic(): Invalid coordinate system: &amp;amp;quot;+u);return h[0]=d,h[4]=0,h[8]=0,h[12]=g,h[1]=0,h[5]=m,h[9]=0,h[13]=y,h[2]=0,h[6]=0,h[10]=x,h[14]=b,h[3]=0,h[7]=0,h[11]=0,h[15]=1,this}equals(t){let e=this.elements,i=t.elements;for(let a=0;a&amp;amp;lt;16;a++)if(e[a]!==i[a])return!1;return!0}fromArray(t,e=0){for(let i=0;i&amp;amp;lt;16;i++)this.elements[i]=t[i+e];return this}toArray(t=[],e=0){let i=this.elements;return t[e]=i[0],t[e+1]=i[1],t[e+2]=i[2],t[e+3]=i[3],t[e+4]=i[4],t[e+5]=i[5],t[e+6]=i[6],t[e+7]=i[7],t[e+8]=i[8],t[e+9]=i[9],t[e+10]=i[10],t[e+11]=i[11],t[e+12]=i[12],t[e+13]=i[13],t[e+14]=i[14],t[e+15]=i[15],t}},yf=new B,Ss=new fe,zH=new B(0,0,0),BH=new B(1,1,1),Ko=new B,oy=new B,wa=new B,CU=new fe,wU=new vi,sa=class n{constructor(t=0,e=0,i=0,a=n.DEFAULT_ORDER){this.isEuler=!0,this._x=t,this._y=e,this._z=i,this._order=a}get x(){return this._x}set x(t){this._x=t,this._onChangeCallback()}get y(){return this._y}set y(t){this._y=t,this._onChangeCallback()}get z(){return this._z}set z(t){this._z=t,this._onChangeCallback()}get order(){return this._order}set order(t){this._order=t,this._onChangeCallback()}set(t,e,i,a=this._order){return this._x=t,this._y=e,this._z=i,this._order=a,this._onChangeCallback(),this}clone(){return new this.constructor(this._x,this._y,this._z,this._order)}copy(t){return this._x=t._x,this._y=t._y,this._z=t._z,this._order=t._order,this._onChangeCallback(),this}setFromRotationMatrix(t,e=this._order,i=!0){let a=t.elements,s=a[0],o=a[4],u=a[8],c=a[1],h=a[5],d=a[9],m=a[2],g=a[6],y=a[10];switch(e){case&amp;amp;quot;XYZ&amp;amp;quot;:this._y=Math.asin(le(u,-1,1)),Math.abs(u)&amp;amp;lt;.9999999?(this._x=Math.atan2(-d,y),this._z=Math.atan2(-o,s)):(this._x=Math.atan2(g,h),this._z=0);break;case&amp;amp;quot;YXZ&amp;amp;quot;:this._x=Math.asin(-le(d,-1,1)),Math.abs(d)&amp;amp;lt;.9999999?(this._y=Math.atan2(u,y),this._z=Math.atan2(c,h)):(this._y=Math.atan2(-m,s),this._z=0);break;case&amp;amp;quot;ZXY&amp;amp;quot;:this._x=Math.asin(le(g,-1,1)),Math.abs(g)&amp;amp;lt;.9999999?(this._y=Math.atan2(-m,y),this._z=Math.atan2(-o,h)):(this._y=0,this._z=Math.atan2(c,s));break;case&amp;amp;quot;ZYX&amp;amp;quot;:this._y=Math.asin(-le(m,-1,1)),Math.abs(m)&amp;amp;lt;.9999999?(this._x=Math.atan2(g,y),this._z=Math.atan2(c,s)):(this._x=0,this._z=Math.atan2(-o,h));break;case&amp;amp;quot;YZX&amp;amp;quot;:this._z=Math.asin(le(c,-1,1)),Math.abs(c)&amp;amp;lt;.9999999?(this._x=Math.atan2(-d,h),this._y=Math.atan2(-m,s)):(this._x=0,this._y=Math.atan2(u,y));break;case&amp;amp;quot;XZY&amp;amp;quot;:this._z=Math.asin(-le(o,-1,1)),Math.abs(o)&amp;amp;lt;.9999999?(this._x=Math.atan2(g,h),this._y=Math.atan2(u,s)):(this._x=Math.atan2(-d,y),this._y=0);break;default:console.warn(&amp;amp;quot;THREE.Euler: .setFromRotationMatrix() encountered an unknown order: &amp;amp;quot;+e)}return this._order=e,i===!0&amp;amp;amp;&amp;amp;amp;this._onChangeCallback(),this}setFromQuaternion(t,e,i){return CU.makeRotationFromQuaternion(t),this.setFromRotationMatrix(CU,e,i)}setFromVector3(t,e=this._order){return this.set(t.x,t.y,t.z,e)}reorder(t){return wU.setFromEuler(this),this.setFromQuaternion(wU,t)}equals(t){return t._x===this._x&amp;amp;amp;&amp;amp;amp;t._y===this._y&amp;amp;amp;&amp;amp;amp;t._z===this._z&amp;amp;amp;&amp;amp;amp;t._order===this._order}fromArray(t){return this._x=t[0],this._y=t[1],this._z=t[2],t[3]!==void 0&amp;amp;amp;&amp;amp;amp;(this._order=t[3]),this._onChangeCallback(),this}toArray(t=[],e=0){return t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._order,t}_onChange(t){return this._onChangeCallback=t,this}_onChangeCallback(){}*[Symbol.iterator](){yield this._x,yield this._y,yield this._z,yield this._order}};sa.DEFAULT_ORDER=&amp;amp;quot;XYZ&amp;amp;quot;;var nr=class{constructor(){this.mask=1}set(t){this.mask=(1&amp;amp;lt;&amp;amp;lt;t|0)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0}enable(t){this.mask|=1&amp;amp;lt;&amp;amp;lt;t|0}enableAll(){this.mask=-1}toggle(t){this.mask^=1&amp;amp;lt;&amp;amp;lt;t|0}disable(t){this.mask&amp;amp;amp;=~(1&amp;amp;lt;&amp;amp;lt;t|0)}disableAll(){this.mask=0}test(t){return(this.mask&amp;amp;amp;t.mask)!==0}isEnabled(t){return(this.mask&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;t|0))!==0}},PH=0,DU=new B,_f=new vi,Vr=new fe,ly=new B,_p=new B,IH=new B,HH=new vi,UU=new B(1,0,0),NU=new B(0,1,0),OU=new B(0,0,1),LU={type:&amp;amp;quot;added&amp;amp;quot;},FH={type:&amp;amp;quot;removed&amp;amp;quot;},xf={type:&amp;amp;quot;childadded&amp;amp;quot;,child:null},tb={type:&amp;amp;quot;childremoved&amp;amp;quot;,child:null},Ie=class n extends La{constructor(){super(),this.isObject3D=!0,Object.defineProperty(this,&amp;amp;quot;id&amp;amp;quot;,{value:PH++}),this.uuid=Na(),this.name=&amp;amp;quot;&amp;amp;quot;,this.type=&amp;amp;quot;Object3D&amp;amp;quot;,this.parent=null,this.children=[],this.up=n.DEFAULT_UP.clone();let t=new B,e=new sa,i=new vi,a=new B(1,1,1);function s(){i.setFromEuler(e,!1)}function o(){e.setFromQuaternion(i,void 0,!1)}e._onChange(s),i._onChange(o),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:e},quaternion:{configurable:!0,enumerable:!0,value:i},scale:{configurable:!0,enumerable:!0,value:a},modelViewMatrix:{value:new fe},normalMatrix:{value:new ge}}),this.matrix=new fe,this.matrixWorld=new fe,this.matrixAutoUpdate=n.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldAutoUpdate=n.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.layers=new nr,this.visible=!0,this.castShadow=!1,this.receiveShadow=!1,this.frustumCulled=!0,this.renderOrder=0,this.animations=[],this.customDepthMaterial=void 0,this.customDistanceMaterial=void 0,this.userData={}}onBeforeShadow(){}onAfterShadow(){}onBeforeRender(){}onAfterRender(){}applyMatrix4(t){this.matrixAutoUpdate&amp;amp;amp;&amp;amp;amp;this.updateMatrix(),this.matrix.premultiply(t),this.matrix.decompose(this.position,this.quaternion,this.scale)}applyQuaternion(t){return this.quaternion.premultiply(t),this}setRotationFromAxisAngle(t,e){this.quaternion.setFromAxisAngle(t,e)}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}setRotationFromQuaternion(t){this.quaternion.copy(t)}rotateOnAxis(t,e){return _f.setFromAxisAngle(t,e),this.quaternion.multiply(_f),this}rotateOnWorldAxis(t,e){return _f.setFromAxisAngle(t,e),this.quaternion.premultiply(_f),this}rotateX(t){return this.rotateOnAxis(UU,t)}rotateY(t){return this.rotateOnAxis(NU,t)}rotateZ(t){return this.rotateOnAxis(OU,t)}translateOnAxis(t,e){return DU.copy(t).applyQuaternion(this.quaternion),this.position.add(DU.multiplyScalar(e)),this}translateX(t){return this.translateOnAxis(UU,t)}translateY(t){return this.translateOnAxis(NU,t)}translateZ(t){return this.translateOnAxis(OU,t)}localToWorld(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(this.matrixWorld)}worldToLocal(t){return this.updateWorldMatrix(!0,!1),t.applyMatrix4(Vr.copy(this.matrixWorld).invert())}lookAt(t,e,i){t.isVector3?ly.copy(t):ly.set(t,e,i);let a=this.parent;this.updateWorldMatrix(!0,!1),_p.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Vr.lookAt(_p,ly,this.up):Vr.lookAt(ly,_p,this.up),this.quaternion.setFromRotationMatrix(Vr),a&amp;amp;amp;&amp;amp;amp;(Vr.extractRotation(a.matrixWorld),_f.setFromRotationMatrix(Vr),this.quaternion.premultiply(_f.invert()))}add(t){if(arguments.length&amp;amp;gt;1){for(let e=0;e&amp;amp;lt;arguments.length;e++)this.add(arguments[e]);return this}return t===this?(console.error(&amp;amp;quot;THREE.Object3D.add: object can&amp;amp;#39;t be added as a child of itself.&amp;amp;quot;,t),this):(t&amp;amp;amp;&amp;amp;amp;t.isObject3D?(t.removeFromParent(),t.parent=this,this.children.push(t),t.dispatchEvent(LU),xf.child=t,this.dispatchEvent(xf),xf.child=null):console.error(&amp;amp;quot;THREE.Object3D.add: object not an instance of THREE.Object3D.&amp;amp;quot;,t),this)}remove(t){if(arguments.length&amp;amp;gt;1){for(let i=0;i&amp;amp;lt;arguments.length;i++)this.remove(arguments[i]);return this}let e=this.children.indexOf(t);return e!==-1&amp;amp;amp;&amp;amp;amp;(t.parent=null,this.children.splice(e,1),t.dispatchEvent(FH),tb.child=t,this.dispatchEvent(tb),tb.child=null),this}removeFromParent(){let t=this.parent;return t!==null&amp;amp;amp;&amp;amp;amp;t.remove(this),this}clear(){return this.remove(...this.children)}attach(t){return this.updateWorldMatrix(!0,!1),Vr.copy(this.matrixWorld).invert(),t.parent!==null&amp;amp;amp;&amp;amp;amp;(t.parent.updateWorldMatrix(!0,!1),Vr.multiply(t.parent.matrixWorld)),t.applyMatrix4(Vr),t.removeFromParent(),t.parent=this,this.children.push(t),t.updateWorldMatrix(!1,!0),t.dispatchEvent(LU),xf.child=t,this.dispatchEvent(xf),xf.child=null,this}getObjectById(t){return this.getObjectByProperty(&amp;amp;quot;id&amp;amp;quot;,t)}getObjectByName(t){return this.getObjectByProperty(&amp;amp;quot;name&amp;amp;quot;,t)}getObjectByProperty(t,e){if(this[t]===e)return this;for(let i=0,a=this.children.length;i&amp;amp;lt;a;i++){let o=this.children[i].getObjectByProperty(t,e);if(o!==void 0)return o}}getObjectsByProperty(t,e,i=[]){this[t]===e&amp;amp;amp;&amp;amp;amp;i.push(this);let a=this.children;for(let s=0,o=a.length;s&amp;amp;lt;o;s++)a[s].getObjectsByProperty(t,e,i);return i}getWorldPosition(t){return this.updateWorldMatrix(!0,!1),t.setFromMatrixPosition(this.matrixWorld)}getWorldQuaternion(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(_p,t,IH),t}getWorldScale(t){return this.updateWorldMatrix(!0,!1),this.matrixWorld.decompose(_p,HH,t),t}getWorldDirection(t){this.updateWorldMatrix(!0,!1);let e=this.matrixWorld.elements;return t.set(e[8],e[9],e[10]).normalize()}raycast(){}traverse(t){t(this);let e=this.children;for(let i=0,a=e.length;i&amp;amp;lt;a;i++)e[i].traverse(t)}traverseVisible(t){if(this.visible===!1)return;t(this);let e=this.children;for(let i=0,a=e.length;i&amp;amp;lt;a;i++)e[i].traverseVisible(t)}traverseAncestors(t){let e=this.parent;e!==null&amp;amp;amp;&amp;amp;amp;(t(e),e.traverseAncestors(t))}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&amp;amp;amp;&amp;amp;amp;this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&amp;amp;amp;&amp;amp;amp;(this.matrixWorldAutoUpdate===!0&amp;amp;amp;&amp;amp;amp;(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),this.matrixWorldNeedsUpdate=!1,t=!0);let e=this.children;for(let i=0,a=e.length;i&amp;amp;lt;a;i++)e[i].updateMatrixWorld(t)}updateWorldMatrix(t,e){let i=this.parent;if(t===!0&amp;amp;amp;&amp;amp;amp;i!==null&amp;amp;amp;&amp;amp;amp;i.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&amp;amp;amp;&amp;amp;amp;this.updateMatrix(),this.matrixWorldAutoUpdate===!0&amp;amp;amp;&amp;amp;amp;(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix)),e===!0){let a=this.children;for(let s=0,o=a.length;s&amp;amp;lt;o;s++)a[s].updateWorldMatrix(!1,!0)}}toJSON(t){let e=t===void 0||typeof t==&amp;amp;quot;string&amp;amp;quot;,i={};e&amp;amp;amp;&amp;amp;amp;(t={geometries:{},materials:{},textures:{},images:{},shapes:{},skeletons:{},animations:{},nodes:{}},i.metadata={version:4.7,type:&amp;amp;quot;Object&amp;amp;quot;,generator:&amp;amp;quot;Object3D.toJSON&amp;amp;quot;});let a={};a.uuid=this.uuid,a.type=this.type,this.name!==&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a.name=this.name),this.castShadow===!0&amp;amp;amp;&amp;amp;amp;(a.castShadow=!0),this.receiveShadow===!0&amp;amp;amp;&amp;amp;amp;(a.receiveShadow=!0),this.visible===!1&amp;amp;amp;&amp;amp;amp;(a.visible=!1),this.frustumCulled===!1&amp;amp;amp;&amp;amp;amp;(a.frustumCulled=!1),this.renderOrder!==0&amp;amp;amp;&amp;amp;amp;(a.renderOrder=this.renderOrder),Object.keys(this.userData).length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(a.userData=this.userData),a.layers=this.layers.mask,a.matrix=this.matrix.toArray(),a.up=this.up.toArray(),this.matrixAutoUpdate===!1&amp;amp;amp;&amp;amp;amp;(a.matrixAutoUpdate=!1),this.isInstancedMesh&amp;amp;amp;&amp;amp;amp;(a.type=&amp;amp;quot;InstancedMesh&amp;amp;quot;,a.count=this.count,a.instanceMatrix=this.instanceMatrix.toJSON(),this.instanceColor!==null&amp;amp;amp;&amp;amp;amp;(a.instanceColor=this.instanceColor.toJSON())),this.isBatchedMesh&amp;amp;amp;&amp;amp;amp;(a.type=&amp;amp;quot;BatchedMesh&amp;amp;quot;,a.perObjectFrustumCulled=this.perObjectFrustumCulled,a.sortObjects=this.sortObjects,a.drawRanges=this._drawRanges,a.reservedRanges=this._reservedRanges,a.geometryInfo=this._geometryInfo.map(u=&amp;amp;gt;({...u,boundingBox:u.boundingBox?u.boundingBox.toJSON():void 0,boundingSphere:u.boundingSphere?u.boundingSphere.toJSON():void 0})),a.instanceInfo=this._instanceInfo.map(u=&amp;amp;gt;({...u})),a.availableInstanceIds=this._availableInstanceIds.slice(),a.availableGeometryIds=this._availableGeometryIds.slice(),a.nextIndexStart=this._nextIndexStart,a.nextVertexStart=this._nextVertexStart,a.geometryCount=this._geometryCount,a.maxInstanceCount=this._maxInstanceCount,a.maxVertexCount=this._maxVertexCount,a.maxIndexCount=this._maxIndexCount,a.geometryInitialized=this._geometryInitialized,a.matricesTexture=this._matricesTexture.toJSON(t),a.indirectTexture=this._indirectTexture.toJSON(t),this._colorsTexture!==null&amp;amp;amp;&amp;amp;amp;(a.colorsTexture=this._colorsTexture.toJSON(t)),this.boundingSphere!==null&amp;amp;amp;&amp;amp;amp;(a.boundingSphere=this.boundingSphere.toJSON()),this.boundingBox!==null&amp;amp;amp;&amp;amp;amp;(a.boundingBox=this.boundingBox.toJSON()));function s(u,c){return u[c.uuid]===void 0&amp;amp;amp;&amp;amp;amp;(u[c.uuid]=c.toJSON(t)),c.uuid}if(this.isScene)this.background&amp;amp;amp;&amp;amp;amp;(this.background.isColor?a.background=this.background.toJSON():this.background.isTexture&amp;amp;amp;&amp;amp;amp;(a.background=this.background.toJSON(t).uuid)),this.environment&amp;amp;amp;&amp;amp;amp;this.environment.isTexture&amp;amp;amp;&amp;amp;amp;this.environment.isRenderTargetTexture!==!0&amp;amp;amp;&amp;amp;amp;(a.environment=this.environment.toJSON(t).uuid);else if(this.isMesh||this.isLine||this.isPoints){a.geometry=s(t.geometries,this.geometry);let u=this.geometry.parameters;if(u!==void 0&amp;amp;amp;&amp;amp;amp;u.shapes!==void 0){let c=u.shapes;if(Array.isArray(c))for(let h=0,d=c.length;h&amp;amp;lt;d;h++){let m=c[h];s(t.shapes,m)}else s(t.shapes,c)}}if(this.isSkinnedMesh&amp;amp;amp;&amp;amp;amp;(a.bindMode=this.bindMode,a.bindMatrix=this.bindMatrix.toArray(),this.skeleton!==void 0&amp;amp;amp;&amp;amp;amp;(s(t.skeletons,this.skeleton),a.skeleton=this.skeleton.uuid)),this.material!==void 0)if(Array.isArray(this.material)){let u=[];for(let c=0,h=this.material.length;c&amp;amp;lt;h;c++)u.push(s(t.materials,this.material[c]));a.material=u}else a.material=s(t.materials,this.material);if(this.children.length&amp;amp;gt;0){a.children=[];for(let u=0;u&amp;amp;lt;this.children.length;u++)a.children.push(this.children[u].toJSON(t).object)}if(this.animations.length&amp;amp;gt;0){a.animations=[];for(let u=0;u&amp;amp;lt;this.animations.length;u++){let c=this.animations[u];a.animations.push(s(t.animations,c))}}if(e){let u=o(t.geometries),c=o(t.materials),h=o(t.textures),d=o(t.images),m=o(t.shapes),g=o(t.skeletons),y=o(t.animations),x=o(t.nodes);u.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.geometries=u),c.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.materials=c),h.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.textures=h),d.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.images=d),m.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.shapes=m),g.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.skeletons=g),y.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.animations=y),x.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.nodes=x)}return i.object=a,i;function o(u){let c=[];for(let h in u){let d=u[h];delete d.metadata,c.push(d)}return c}}clone(t){return new this.constructor().copy(this,t)}copy(t,e=!0){if(this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.rotation.order=t.rotation.order,this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldAutoUpdate=t.matrixWorldAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.layers.mask=t.layers.mask,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.animations=t.animations.slice(),this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(let i=0;i&amp;amp;lt;t.children.length;i++){let a=t.children[i];this.add(a.clone())}return this}};Ie.DEFAULT_UP=new B(0,1,0);Ie.DEFAULT_MATRIX_AUTO_UPDATE=!0;Ie.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;var Ms=new B,Gr=new B,eb=new B,Xr=new B,Sf=new B,Mf=new B,zU=new B,nb=new B,ib=new B,ab=new B,sb=new Oe,rb=new Oe,ob=new Oe,bs=class n{constructor(t=new B,e=new B,i=new B){this.a=t,this.b=e,this.c=i}static getNormal(t,e,i,a){a.subVectors(i,e),Ms.subVectors(t,e),a.cross(Ms);let s=a.lengthSq();return s&amp;amp;gt;0?a.multiplyScalar(1/Math.sqrt(s)):a.set(0,0,0)}static getBarycoord(t,e,i,a,s){Ms.subVectors(a,e),Gr.subVectors(i,e),eb.subVectors(t,e);let o=Ms.dot(Ms),u=Ms.dot(Gr),c=Ms.dot(eb),h=Gr.dot(Gr),d=Gr.dot(eb),m=o*h-u*u;if(m===0)return s.set(0,0,0),null;let g=1/m,y=(h*c-u*d)*g,x=(o*d-u*c)*g;return s.set(1-y-x,x,y)}static containsPoint(t,e,i,a){return this.getBarycoord(t,e,i,a,Xr)===null?!1:Xr.x&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;Xr.y&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;Xr.x+Xr.y&amp;amp;lt;=1}static getInterpolation(t,e,i,a,s,o,u,c){return this.getBarycoord(t,e,i,a,Xr)===null?(c.x=0,c.y=0,&amp;amp;quot;z&amp;amp;quot;in c&amp;amp;amp;&amp;amp;amp;(c.z=0),&amp;amp;quot;w&amp;amp;quot;in c&amp;amp;amp;&amp;amp;amp;(c.w=0),null):(c.setScalar(0),c.addScaledVector(s,Xr.x),c.addScaledVector(o,Xr.y),c.addScaledVector(u,Xr.z),c)}static getInterpolatedAttribute(t,e,i,a,s,o){return sb.setScalar(0),rb.setScalar(0),ob.setScalar(0),sb.fromBufferAttribute(t,e),rb.fromBufferAttribute(t,i),ob.fromBufferAttribute(t,a),o.setScalar(0),o.addScaledVector(sb,s.x),o.addScaledVector(rb,s.y),o.addScaledVector(ob,s.z),o}static isFrontFacing(t,e,i,a){return Ms.subVectors(i,e),Gr.subVectors(t,e),Ms.cross(Gr).dot(a)&amp;amp;lt;0}set(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this}setFromPointsAndIndices(t,e,i,a){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[a]),this}setFromAttributeAndIndices(t,e,i,a){return this.a.fromBufferAttribute(t,e),this.b.fromBufferAttribute(t,i),this.c.fromBufferAttribute(t,a),this}clone(){return new this.constructor().copy(this)}copy(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this}getArea(){return Ms.subVectors(this.c,this.b),Gr.subVectors(this.a,this.b),Ms.cross(Gr).length()*.5}getMidpoint(t){return t.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)}getNormal(t){return n.getNormal(this.a,this.b,this.c,t)}getPlane(t){return t.setFromCoplanarPoints(this.a,this.b,this.c)}getBarycoord(t,e){return n.getBarycoord(t,this.a,this.b,this.c,e)}getInterpolation(t,e,i,a,s){return n.getInterpolation(t,this.a,this.b,this.c,e,i,a,s)}containsPoint(t){return n.containsPoint(t,this.a,this.b,this.c)}isFrontFacing(t){return n.isFrontFacing(this.a,this.b,this.c,t)}intersectsBox(t){return t.intersectsTriangle(this)}closestPointToPoint(t,e){let i=this.a,a=this.b,s=this.c,o,u;Sf.subVectors(a,i),Mf.subVectors(s,i),nb.subVectors(t,i);let c=Sf.dot(nb),h=Mf.dot(nb);if(c&amp;amp;lt;=0&amp;amp;amp;&amp;amp;amp;h&amp;amp;lt;=0)return e.copy(i);ib.subVectors(t,a);let d=Sf.dot(ib),m=Mf.dot(ib);if(d&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;m&amp;amp;lt;=d)return e.copy(a);let g=c*m-d*h;if(g&amp;amp;lt;=0&amp;amp;amp;&amp;amp;amp;c&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;d&amp;amp;lt;=0)return o=c/(c-d),e.copy(i).addScaledVector(Sf,o);ab.subVectors(t,s);let y=Sf.dot(ab),x=Mf.dot(ab);if(x&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;y&amp;amp;lt;=x)return e.copy(s);let b=y*h-c*x;if(b&amp;amp;lt;=0&amp;amp;amp;&amp;amp;amp;h&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;x&amp;amp;lt;=0)return u=h/(h-x),e.copy(i).addScaledVector(Mf,u);let M=d*x-y*m;if(M&amp;amp;lt;=0&amp;amp;amp;&amp;amp;amp;m-d&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;y-x&amp;amp;gt;=0)return zU.subVectors(s,a),u=(m-d)/(m-d+(y-x)),e.copy(a).addScaledVector(zU,u);let v=1/(M+b+g);return o=b*v,u=g*v,e.copy(i).addScaledVector(Sf,o).addScaledVector(Mf,u)}equals(t){return t.a.equals(this.a)&amp;amp;amp;&amp;amp;amp;t.b.equals(this.b)&amp;amp;amp;&amp;amp;amp;t.c.equals(this.c)}},vO={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Jo={h:0,s:0,l:0},uy={h:0,s:0,l:0};function lb(n,t,e){return e&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(e+=1),e&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(e-=1),e&amp;amp;lt;1/6?n+(t-n)*6*e:e&amp;amp;lt;1/2?t:e&amp;amp;lt;2/3?n+(t-n)*6*(2/3-e):n}var Bt=class{constructor(t,e,i){return this.isColor=!0,this.r=1,this.g=1,this.b=1,this.set(t,e,i)}set(t,e,i){if(e===void 0&amp;amp;amp;&amp;amp;amp;i===void 0){let a=t;a&amp;amp;amp;&amp;amp;amp;a.isColor?this.copy(a):typeof a==&amp;amp;quot;number&amp;amp;quot;?this.setHex(a):typeof a==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.setStyle(a)}else this.setRGB(t,e,i);return this}setScalar(t){return this.r=t,this.g=t,this.b=t,this}setHex(t,e=ri){return t=Math.floor(t),this.r=(t&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)/255,this.g=(t&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)/255,this.b=(t&amp;amp;amp;255)/255,we.colorSpaceToWorking(this,e),this}setRGB(t,e,i,a=we.workingColorSpace){return this.r=t,this.g=e,this.b=i,we.colorSpaceToWorking(this,a),this}setHSL(t,e,i,a=we.workingColorSpace){if(t=DT(t,1),e=le(e,0,1),i=le(i,0,1),e===0)this.r=this.g=this.b=i;else{let s=i&amp;amp;lt;=.5?i*(1+e):i+e-i*e,o=2*i-s;this.r=lb(o,s,t+1/3),this.g=lb(o,s,t),this.b=lb(o,s,t-1/3)}return we.colorSpaceToWorking(this,a),this}setStyle(t,e=ri){function i(s){s!==void 0&amp;amp;amp;&amp;amp;amp;parseFloat(s)&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.Color: Alpha component of &amp;amp;quot;+t+&amp;amp;quot; will be ignored.&amp;amp;quot;)}let a;if(a=/^(\w+)\(([^\)]*)\)/.exec(t)){let s,o=a[1],u=a[2];switch(o){case&amp;amp;quot;rgb&amp;amp;quot;:case&amp;amp;quot;rgba&amp;amp;quot;:if(s=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setRGB(Math.min(255,parseInt(s[1],10))/255,Math.min(255,parseInt(s[2],10))/255,Math.min(255,parseInt(s[3],10))/255,e);if(s=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setRGB(Math.min(100,parseInt(s[1],10))/100,Math.min(100,parseInt(s[2],10))/100,Math.min(100,parseInt(s[3],10))/100,e);break;case&amp;amp;quot;hsl&amp;amp;quot;:case&amp;amp;quot;hsla&amp;amp;quot;:if(s=/^\s*(\d*\.?\d+)\s*,\s*(\d*\.?\d+)\%\s*,\s*(\d*\.?\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return i(s[4]),this.setHSL(parseFloat(s[1])/360,parseFloat(s[2])/100,parseFloat(s[3])/100,e);break;default:console.warn(&amp;amp;quot;THREE.Color: Unknown color model &amp;amp;quot;+t)}}else if(a=/^\#([A-Fa-f\d]+)$/.exec(t)){let s=a[1],o=s.length;if(o===3)return this.setRGB(parseInt(s.charAt(0),16)/15,parseInt(s.charAt(1),16)/15,parseInt(s.charAt(2),16)/15,e);if(o===6)return this.setHex(parseInt(s,16),e);console.warn(&amp;amp;quot;THREE.Color: Invalid hex color &amp;amp;quot;+t)}else if(t&amp;amp;amp;&amp;amp;amp;t.length&amp;amp;gt;0)return this.setColorName(t,e);return this}setColorName(t,e=ri){let i=vO[t.toLowerCase()];return i!==void 0?this.setHex(i,e):console.warn(&amp;amp;quot;THREE.Color: Unknown color &amp;amp;quot;+t),this}clone(){return new this.constructor(this.r,this.g,this.b)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this}copySRGBToLinear(t){return this.r=kr(t.r),this.g=kr(t.g),this.b=kr(t.b),this}copyLinearToSRGB(t){return this.r=zf(t.r),this.g=zf(t.g),this.b=zf(t.b),this}convertSRGBToLinear(){return this.copySRGBToLinear(this),this}convertLinearToSRGB(){return this.copyLinearToSRGB(this),this}getHex(t=ri){return we.workingToColorSpace(Di.copy(this),t),Math.round(le(Di.r*255,0,255))*65536+Math.round(le(Di.g*255,0,255))*256+Math.round(le(Di.b*255,0,255))}getHexString(t=ri){return(&amp;amp;quot;000000&amp;amp;quot;+this.getHex(t).toString(16)).slice(-6)}getHSL(t,e=we.workingColorSpace){we.workingToColorSpace(Di.copy(this),e);let i=Di.r,a=Di.g,s=Di.b,o=Math.max(i,a,s),u=Math.min(i,a,s),c,h,d=(u+o)/2;if(u===o)c=0,h=0;else{let m=o-u;switch(h=d&amp;amp;lt;=.5?m/(o+u):m/(2-o-u),o){case i:c=(a-s)/m+(a&amp;amp;lt;s?6:0);break;case a:c=(s-i)/m+2;break;case s:c=(i-a)/m+4;break}c/=6}return t.h=c,t.s=h,t.l=d,t}getRGB(t,e=we.workingColorSpace){return we.workingToColorSpace(Di.copy(this),e),t.r=Di.r,t.g=Di.g,t.b=Di.b,t}getStyle(t=ri){we.workingToColorSpace(Di.copy(this),t);let e=Di.r,i=Di.g,a=Di.b;return t!==ri?`color(${t} ${e.toFixed(3)} ${i.toFixed(3)} ${a.toFixed(3)})`:`rgb(${Math.round(e*255)},${Math.round(i*255)},${Math.round(a*255)})`}offsetHSL(t,e,i){return this.getHSL(Jo),this.setHSL(Jo.h+t,Jo.s+e,Jo.l+i)}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,i){return this.r=t.r+(e.r-t.r)*i,this.g=t.g+(e.g-t.g)*i,this.b=t.b+(e.b-t.b)*i,this}lerpHSL(t,e){this.getHSL(Jo),t.getHSL(uy);let i=Np(Jo.h,uy.h,e),a=Np(Jo.s,uy.s,e),s=Np(Jo.l,uy.l,e);return this.setHSL(i,a,s),this}setFromVector3(t){return this.r=t.x,this.g=t.y,this.b=t.z,this}applyMatrix3(t){let e=this.r,i=this.g,a=this.b,s=t.elements;return this.r=s[0]*e+s[3]*i+s[6]*a,this.g=s[1]*e+s[4]*i+s[7]*a,this.b=s[2]*e+s[5]*i+s[8]*a,this}equals(t){return t.r===this.r&amp;amp;amp;&amp;amp;amp;t.g===this.g&amp;amp;amp;&amp;amp;amp;t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this}toArray(t=[],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}},Di=new Bt;Bt.NAMES=vO;var VH=0,jn=class extends La{constructor(){super(),this.isMaterial=!0,Object.defineProperty(this,&amp;amp;quot;id&amp;amp;quot;,{value:VH++}),this.uuid=Na(),this.name=&amp;amp;quot;&amp;amp;quot;,this.type=&amp;amp;quot;Material&amp;amp;quot;,this.blending=al,this.side=tr,this.vertexColors=!1,this.opacity=1,this.transparent=!1,this.alphaHash=!1,this.blendSrc=zp,this.blendDst=Bp,this.blendEquation=Zr,this.blendSrcAlpha=null,this.blendDstAlpha=null,this.blendEquationAlpha=null,this.blendColor=new Bt(0,0,0),this.blendAlpha=0,this.depthFunc=sl,this.depthTest=!0,this.depthWrite=!0,this.stencilWriteMask=255,this.stencilFunc=Yy,this.stencilRef=0,this.stencilFuncMask=255,this.stencilFail=el,this.stencilZFail=el,this.stencilZPass=el,this.stencilWrite=!1,this.clippingPlanes=null,this.clipIntersection=!1,this.clipShadows=!1,this.shadowSide=null,this.colorWrite=!0,this.precision=null,this.polygonOffset=!1,this.polygonOffsetFactor=0,this.polygonOffsetUnits=0,this.dithering=!1,this.alphaToCoverage=!1,this.premultipliedAlpha=!1,this.forceSinglePass=!1,this.allowOverride=!0,this.visible=!0,this.toneMapped=!0,this.userData={},this.version=0,this._alphaTest=0}get alphaTest(){return this._alphaTest}set alphaTest(t){this._alphaTest&amp;amp;gt;0!=t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.version++,this._alphaTest=t}onBeforeRender(){}onBeforeCompile(){}customProgramCacheKey(){return this.onBeforeCompile.toString()}setValues(t){if(t!==void 0)for(let e in t){let i=t[e];if(i===void 0){console.warn(`THREE.Material: parameter &amp;amp;#39;${e}&amp;amp;#39; has value of undefined.`);continue}let a=this[e];if(a===void 0){console.warn(`THREE.Material: &amp;amp;#39;${e}&amp;amp;#39; is not a property of THREE.${this.type}.`);continue}a&amp;amp;amp;&amp;amp;amp;a.isColor?a.set(i):a&amp;amp;amp;&amp;amp;amp;a.isVector3&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;i.isVector3?a.copy(i):this[e]=i}}toJSON(t){let e=t===void 0||typeof t==&amp;amp;quot;string&amp;amp;quot;;e&amp;amp;amp;&amp;amp;amp;(t={textures:{},images:{}});let i={metadata:{version:4.7,type:&amp;amp;quot;Material&amp;amp;quot;,generator:&amp;amp;quot;Material.toJSON&amp;amp;quot;}};i.uuid=this.uuid,i.type=this.type,this.name!==&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.name=this.name),this.color&amp;amp;amp;&amp;amp;amp;this.color.isColor&amp;amp;amp;&amp;amp;amp;(i.color=this.color.getHex()),this.roughness!==void 0&amp;amp;amp;&amp;amp;amp;(i.roughness=this.roughness),this.metalness!==void 0&amp;amp;amp;&amp;amp;amp;(i.metalness=this.metalness),this.sheen!==void 0&amp;amp;amp;&amp;amp;amp;(i.sheen=this.sheen),this.sheenColor&amp;amp;amp;&amp;amp;amp;this.sheenColor.isColor&amp;amp;amp;&amp;amp;amp;(i.sheenColor=this.sheenColor.getHex()),this.sheenRoughness!==void 0&amp;amp;amp;&amp;amp;amp;(i.sheenRoughness=this.sheenRoughness),this.emissive&amp;amp;amp;&amp;amp;amp;this.emissive.isColor&amp;amp;amp;&amp;amp;amp;(i.emissive=this.emissive.getHex()),this.emissiveIntensity!==void 0&amp;amp;amp;&amp;amp;amp;this.emissiveIntensity!==1&amp;amp;amp;&amp;amp;amp;(i.emissiveIntensity=this.emissiveIntensity),this.specular&amp;amp;amp;&amp;amp;amp;this.specular.isColor&amp;amp;amp;&amp;amp;amp;(i.specular=this.specular.getHex()),this.specularIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(i.specularIntensity=this.specularIntensity),this.specularColor&amp;amp;amp;&amp;amp;amp;this.specularColor.isColor&amp;amp;amp;&amp;amp;amp;(i.specularColor=this.specularColor.getHex()),this.shininess!==void 0&amp;amp;amp;&amp;amp;amp;(i.shininess=this.shininess),this.clearcoat!==void 0&amp;amp;amp;&amp;amp;amp;(i.clearcoat=this.clearcoat),this.clearcoatRoughness!==void 0&amp;amp;amp;&amp;amp;amp;(i.clearcoatRoughness=this.clearcoatRoughness),this.clearcoatMap&amp;amp;amp;&amp;amp;amp;this.clearcoatMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.clearcoatMap=this.clearcoatMap.toJSON(t).uuid),this.clearcoatRoughnessMap&amp;amp;amp;&amp;amp;amp;this.clearcoatRoughnessMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.clearcoatRoughnessMap=this.clearcoatRoughnessMap.toJSON(t).uuid),this.clearcoatNormalMap&amp;amp;amp;&amp;amp;amp;this.clearcoatNormalMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.clearcoatNormalMap=this.clearcoatNormalMap.toJSON(t).uuid,i.clearcoatNormalScale=this.clearcoatNormalScale.toArray()),this.dispersion!==void 0&amp;amp;amp;&amp;amp;amp;(i.dispersion=this.dispersion),this.iridescence!==void 0&amp;amp;amp;&amp;amp;amp;(i.iridescence=this.iridescence),this.iridescenceIOR!==void 0&amp;amp;amp;&amp;amp;amp;(i.iridescenceIOR=this.iridescenceIOR),this.iridescenceThicknessRange!==void 0&amp;amp;amp;&amp;amp;amp;(i.iridescenceThicknessRange=this.iridescenceThicknessRange),this.iridescenceMap&amp;amp;amp;&amp;amp;amp;this.iridescenceMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.iridescenceMap=this.iridescenceMap.toJSON(t).uuid),this.iridescenceThicknessMap&amp;amp;amp;&amp;amp;amp;this.iridescenceThicknessMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.iridescenceThicknessMap=this.iridescenceThicknessMap.toJSON(t).uuid),this.anisotropy!==void 0&amp;amp;amp;&amp;amp;amp;(i.anisotropy=this.anisotropy),this.anisotropyRotation!==void 0&amp;amp;amp;&amp;amp;amp;(i.anisotropyRotation=this.anisotropyRotation),this.anisotropyMap&amp;amp;amp;&amp;amp;amp;this.anisotropyMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.anisotropyMap=this.anisotropyMap.toJSON(t).uuid),this.map&amp;amp;amp;&amp;amp;amp;this.map.isTexture&amp;amp;amp;&amp;amp;amp;(i.map=this.map.toJSON(t).uuid),this.matcap&amp;amp;amp;&amp;amp;amp;this.matcap.isTexture&amp;amp;amp;&amp;amp;amp;(i.matcap=this.matcap.toJSON(t).uuid),this.alphaMap&amp;amp;amp;&amp;amp;amp;this.alphaMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.alphaMap=this.alphaMap.toJSON(t).uuid),this.lightMap&amp;amp;amp;&amp;amp;amp;this.lightMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.lightMap=this.lightMap.toJSON(t).uuid,i.lightMapIntensity=this.lightMapIntensity),this.aoMap&amp;amp;amp;&amp;amp;amp;this.aoMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.aoMap=this.aoMap.toJSON(t).uuid,i.aoMapIntensity=this.aoMapIntensity),this.bumpMap&amp;amp;amp;&amp;amp;amp;this.bumpMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.bumpMap=this.bumpMap.toJSON(t).uuid,i.bumpScale=this.bumpScale),this.normalMap&amp;amp;amp;&amp;amp;amp;this.normalMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.normalMap=this.normalMap.toJSON(t).uuid,i.normalMapType=this.normalMapType,i.normalScale=this.normalScale.toArray()),this.displacementMap&amp;amp;amp;&amp;amp;amp;this.displacementMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.displacementMap=this.displacementMap.toJSON(t).uuid,i.displacementScale=this.displacementScale,i.displacementBias=this.displacementBias),this.roughnessMap&amp;amp;amp;&amp;amp;amp;this.roughnessMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.roughnessMap=this.roughnessMap.toJSON(t).uuid),this.metalnessMap&amp;amp;amp;&amp;amp;amp;this.metalnessMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.metalnessMap=this.metalnessMap.toJSON(t).uuid),this.emissiveMap&amp;amp;amp;&amp;amp;amp;this.emissiveMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.emissiveMap=this.emissiveMap.toJSON(t).uuid),this.specularMap&amp;amp;amp;&amp;amp;amp;this.specularMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.specularMap=this.specularMap.toJSON(t).uuid),this.specularIntensityMap&amp;amp;amp;&amp;amp;amp;this.specularIntensityMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.specularIntensityMap=this.specularIntensityMap.toJSON(t).uuid),this.specularColorMap&amp;amp;amp;&amp;amp;amp;this.specularColorMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.specularColorMap=this.specularColorMap.toJSON(t).uuid),this.envMap&amp;amp;amp;&amp;amp;amp;this.envMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.envMap=this.envMap.toJSON(t).uuid,this.combine!==void 0&amp;amp;amp;&amp;amp;amp;(i.combine=this.combine)),this.envMapRotation!==void 0&amp;amp;amp;&amp;amp;amp;(i.envMapRotation=this.envMapRotation.toArray()),this.envMapIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(i.envMapIntensity=this.envMapIntensity),this.reflectivity!==void 0&amp;amp;amp;&amp;amp;amp;(i.reflectivity=this.reflectivity),this.refractionRatio!==void 0&amp;amp;amp;&amp;amp;amp;(i.refractionRatio=this.refractionRatio),this.gradientMap&amp;amp;amp;&amp;amp;amp;this.gradientMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.gradientMap=this.gradientMap.toJSON(t).uuid),this.transmission!==void 0&amp;amp;amp;&amp;amp;amp;(i.transmission=this.transmission),this.transmissionMap&amp;amp;amp;&amp;amp;amp;this.transmissionMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.transmissionMap=this.transmissionMap.toJSON(t).uuid),this.thickness!==void 0&amp;amp;amp;&amp;amp;amp;(i.thickness=this.thickness),this.thicknessMap&amp;amp;amp;&amp;amp;amp;this.thicknessMap.isTexture&amp;amp;amp;&amp;amp;amp;(i.thicknessMap=this.thicknessMap.toJSON(t).uuid),this.attenuationDistance!==void 0&amp;amp;amp;&amp;amp;amp;this.attenuationDistance!==1/0&amp;amp;amp;&amp;amp;amp;(i.attenuationDistance=this.attenuationDistance),this.attenuationColor!==void 0&amp;amp;amp;&amp;amp;amp;(i.attenuationColor=this.attenuationColor.getHex()),this.size!==void 0&amp;amp;amp;&amp;amp;amp;(i.size=this.size),this.shadowSide!==null&amp;amp;amp;&amp;amp;amp;(i.shadowSide=this.shadowSide),this.sizeAttenuation!==void 0&amp;amp;amp;&amp;amp;amp;(i.sizeAttenuation=this.sizeAttenuation),this.blending!==al&amp;amp;amp;&amp;amp;amp;(i.blending=this.blending),this.side!==tr&amp;amp;amp;&amp;amp;amp;(i.side=this.side),this.vertexColors===!0&amp;amp;amp;&amp;amp;amp;(i.vertexColors=!0),this.opacity&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;(i.opacity=this.opacity),this.transparent===!0&amp;amp;amp;&amp;amp;amp;(i.transparent=!0),this.blendSrc!==zp&amp;amp;amp;&amp;amp;amp;(i.blendSrc=this.blendSrc),this.blendDst!==Bp&amp;amp;amp;&amp;amp;amp;(i.blendDst=this.blendDst),this.blendEquation!==Zr&amp;amp;amp;&amp;amp;amp;(i.blendEquation=this.blendEquation),this.blendSrcAlpha!==null&amp;amp;amp;&amp;amp;amp;(i.blendSrcAlpha=this.blendSrcAlpha),this.blendDstAlpha!==null&amp;amp;amp;&amp;amp;amp;(i.blendDstAlpha=this.blendDstAlpha),this.blendEquationAlpha!==null&amp;amp;amp;&amp;amp;amp;(i.blendEquationAlpha=this.blendEquationAlpha),this.blendColor&amp;amp;amp;&amp;amp;amp;this.blendColor.isColor&amp;amp;amp;&amp;amp;amp;(i.blendColor=this.blendColor.getHex()),this.blendAlpha!==0&amp;amp;amp;&amp;amp;amp;(i.blendAlpha=this.blendAlpha),this.depthFunc!==sl&amp;amp;amp;&amp;amp;amp;(i.depthFunc=this.depthFunc),this.depthTest===!1&amp;amp;amp;&amp;amp;amp;(i.depthTest=this.depthTest),this.depthWrite===!1&amp;amp;amp;&amp;amp;amp;(i.depthWrite=this.depthWrite),this.colorWrite===!1&amp;amp;amp;&amp;amp;amp;(i.colorWrite=this.colorWrite),this.stencilWriteMask!==255&amp;amp;amp;&amp;amp;amp;(i.stencilWriteMask=this.stencilWriteMask),this.stencilFunc!==Yy&amp;amp;amp;&amp;amp;amp;(i.stencilFunc=this.stencilFunc),this.stencilRef!==0&amp;amp;amp;&amp;amp;amp;(i.stencilRef=this.stencilRef),this.stencilFuncMask!==255&amp;amp;amp;&amp;amp;amp;(i.stencilFuncMask=this.stencilFuncMask),this.stencilFail!==el&amp;amp;amp;&amp;amp;amp;(i.stencilFail=this.stencilFail),this.stencilZFail!==el&amp;amp;amp;&amp;amp;amp;(i.stencilZFail=this.stencilZFail),this.stencilZPass!==el&amp;amp;amp;&amp;amp;amp;(i.stencilZPass=this.stencilZPass),this.stencilWrite===!0&amp;amp;amp;&amp;amp;amp;(i.stencilWrite=this.stencilWrite),this.rotation!==void 0&amp;amp;amp;&amp;amp;amp;this.rotation!==0&amp;amp;amp;&amp;amp;amp;(i.rotation=this.rotation),this.polygonOffset===!0&amp;amp;amp;&amp;amp;amp;(i.polygonOffset=!0),this.polygonOffsetFactor!==0&amp;amp;amp;&amp;amp;amp;(i.polygonOffsetFactor=this.polygonOffsetFactor),this.polygonOffsetUnits!==0&amp;amp;amp;&amp;amp;amp;(i.polygonOffsetUnits=this.polygonOffsetUnits),this.linewidth!==void 0&amp;amp;amp;&amp;amp;amp;this.linewidth!==1&amp;amp;amp;&amp;amp;amp;(i.linewidth=this.linewidth),this.dashSize!==void 0&amp;amp;amp;&amp;amp;amp;(i.dashSize=this.dashSize),this.gapSize!==void 0&amp;amp;amp;&amp;amp;amp;(i.gapSize=this.gapSize),this.scale!==void 0&amp;amp;amp;&amp;amp;amp;(i.scale=this.scale),this.dithering===!0&amp;amp;amp;&amp;amp;amp;(i.dithering=!0),this.alphaTest&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.alphaTest=this.alphaTest),this.alphaHash===!0&amp;amp;amp;&amp;amp;amp;(i.alphaHash=!0),this.alphaToCoverage===!0&amp;amp;amp;&amp;amp;amp;(i.alphaToCoverage=!0),this.premultipliedAlpha===!0&amp;amp;amp;&amp;amp;amp;(i.premultipliedAlpha=!0),this.forceSinglePass===!0&amp;amp;amp;&amp;amp;amp;(i.forceSinglePass=!0),this.wireframe===!0&amp;amp;amp;&amp;amp;amp;(i.wireframe=!0),this.wireframeLinewidth&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(i.wireframeLinewidth=this.wireframeLinewidth),this.wireframeLinecap!==&amp;amp;quot;round&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.wireframeLinecap=this.wireframeLinecap),this.wireframeLinejoin!==&amp;amp;quot;round&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.wireframeLinejoin=this.wireframeLinejoin),this.flatShading===!0&amp;amp;amp;&amp;amp;amp;(i.flatShading=!0),this.visible===!1&amp;amp;amp;&amp;amp;amp;(i.visible=!1),this.toneMapped===!1&amp;amp;amp;&amp;amp;amp;(i.toneMapped=!1),this.fog===!1&amp;amp;amp;&amp;amp;amp;(i.fog=!1),Object.keys(this.userData).length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.userData=this.userData);function a(s){let o=[];for(let u in s){let c=s[u];delete c.metadata,o.push(c)}return o}if(e){let s=a(t.textures),o=a(t.images);s.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.textures=s),o.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.images=o)}return i}clone(){return new this.constructor().copy(this)}copy(t){this.name=t.name,this.blending=t.blending,this.side=t.side,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.blendColor.copy(t.blendColor),this.blendAlpha=t.blendAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.stencilWriteMask=t.stencilWriteMask,this.stencilFunc=t.stencilFunc,this.stencilRef=t.stencilRef,this.stencilFuncMask=t.stencilFuncMask,this.stencilFail=t.stencilFail,this.stencilZFail=t.stencilZFail,this.stencilZPass=t.stencilZPass,this.stencilWrite=t.stencilWrite;let e=t.clippingPlanes,i=null;if(e!==null){let a=e.length;i=new Array(a);for(let s=0;s!==a;++s)i[s]=e[s].clone()}return this.clippingPlanes=i,this.clipIntersection=t.clipIntersection,this.clipShadows=t.clipShadows,this.shadowSide=t.shadowSide,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.dithering=t.dithering,this.alphaTest=t.alphaTest,this.alphaHash=t.alphaHash,this.alphaToCoverage=t.alphaToCoverage,this.premultipliedAlpha=t.premultipliedAlpha,this.forceSinglePass=t.forceSinglePass,this.visible=t.visible,this.toneMapped=t.toneMapped,this.userData=JSON.parse(JSON.stringify(t.userData)),this}dispose(){this.dispatchEvent({type:&amp;amp;quot;dispose&amp;amp;quot;})}set needsUpdate(t){t===!0&amp;amp;amp;&amp;amp;amp;this.version++}},Rs=class extends jn{constructor(t){super(),this.isMeshBasicMaterial=!0,this.type=&amp;amp;quot;MeshBasicMaterial&amp;amp;quot;,this.color=new Bt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new sa,this.combine=gh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=&amp;amp;quot;round&amp;amp;quot;,this.wireframeLinejoin=&amp;amp;quot;round&amp;amp;quot;,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}},Yr=GH();function GH(){let n=new ArrayBuffer(4),t=new Float32Array(n),e=new Uint32Array(n),i=new Uint32Array(512),a=new Uint32Array(512);for(let c=0;c&amp;amp;lt;256;++c){let h=c-127;h&amp;amp;lt;-27?(i[c]=0,i[c|256]=32768,a[c]=24,a[c|256]=24):h&amp;amp;lt;-14?(i[c]=1024&amp;amp;gt;&amp;amp;gt;-h-14,i[c|256]=1024&amp;amp;gt;&amp;amp;gt;-h-14|32768,a[c]=-h-1,a[c|256]=-h-1):h&amp;amp;lt;=15?(i[c]=h+15&amp;amp;lt;&amp;amp;lt;10,i[c|256]=h+15&amp;amp;lt;&amp;amp;lt;10|32768,a[c]=13,a[c|256]=13):h&amp;amp;lt;128?(i[c]=31744,i[c|256]=64512,a[c]=24,a[c|256]=24):(i[c]=31744,i[c|256]=64512,a[c]=13,a[c|256]=13)}let s=new Uint32Array(2048),o=new Uint32Array(64),u=new Uint32Array(64);for(let c=1;c&amp;amp;lt;1024;++c){let h=c&amp;amp;lt;&amp;amp;lt;13,d=0;for(;(h&amp;amp;amp;8388608)===0;)h&amp;amp;lt;&amp;amp;lt;=1,d-=8388608;h&amp;amp;amp;=-8388609,d+=947912704,s[c]=h|d}for(let c=1024;c&amp;amp;lt;2048;++c)s[c]=939524096+(c-1024&amp;amp;lt;&amp;amp;lt;13);for(let c=1;c&amp;amp;lt;31;++c)o[c]=c&amp;amp;lt;&amp;amp;lt;23;o[31]=1199570944,o[32]=2147483648;for(let c=33;c&amp;amp;lt;63;++c)o[c]=2147483648+(c-32&amp;amp;lt;&amp;amp;lt;23);o[63]=3347054592;for(let c=1;c&amp;amp;lt;64;++c)c!==32&amp;amp;amp;&amp;amp;amp;(u[c]=1024);return{floatView:t,uint32View:e,baseTable:i,shiftTable:a,mantissaTable:s,exponentTable:o,offsetTable:u}}function ia(n){Math.abs(n)&amp;amp;gt;65504&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.DataUtils.toHalfFloat(): Value out of range.&amp;amp;quot;),n=le(n,-65504,65504),Yr.floatView[0]=n;let t=Yr.uint32View[0],e=t&amp;amp;gt;&amp;amp;gt;23&amp;amp;amp;511;return Yr.baseTable[e]+((t&amp;amp;amp;8388607)&amp;amp;gt;&amp;amp;gt;Yr.shiftTable[e])}function wp(n){let t=n&amp;amp;gt;&amp;amp;gt;10;return Yr.uint32View[0]=Yr.mantissaTable[Yr.offsetTable[t]+(n&amp;amp;amp;1023)]+Yr.exponentTable[t],Yr.floatView[0]}var Zy=class{static toHalfFloat(t){return ia(t)}static fromHalfFloat(t){return wp(t)}},Vn=new B,cy=new ct,XH=0,Xe=class{constructor(t,e,i=!1){if(Array.isArray(t))throw new TypeError(&amp;amp;quot;THREE.BufferAttribute: array should be a Typed Array.&amp;amp;quot;);this.isBufferAttribute=!0,Object.defineProperty(this,&amp;amp;quot;id&amp;amp;quot;,{value:XH++}),this.name=&amp;amp;quot;&amp;amp;quot;,this.array=t,this.itemSize=e,this.count=t!==void 0?t.length/e:0,this.normalized=i,this.usage=Vf,this.updateRanges=[],this.gpuType=qi,this.version=0}onUploadCallback(){}set needsUpdate(t){t===!0&amp;amp;amp;&amp;amp;amp;this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.name=t.name,this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.count=t.count,this.normalized=t.normalized,this.usage=t.usage,this.gpuType=t.gpuType,this}copyAt(t,e,i){t*=this.itemSize,i*=e.itemSize;for(let a=0,s=this.itemSize;a&amp;amp;lt;s;a++)this.array[t+a]=e.array[i+a];return this}copyArray(t){return this.array.set(t),this}applyMatrix3(t){if(this.itemSize===2)for(let e=0,i=this.count;e&amp;amp;lt;i;e++)cy.fromBufferAttribute(this,e),cy.applyMatrix3(t),this.setXY(e,cy.x,cy.y);else if(this.itemSize===3)for(let e=0,i=this.count;e&amp;amp;lt;i;e++)Vn.fromBufferAttribute(this,e),Vn.applyMatrix3(t),this.setXYZ(e,Vn.x,Vn.y,Vn.z);return this}applyMatrix4(t){for(let e=0,i=this.count;e&amp;amp;lt;i;e++)Vn.fromBufferAttribute(this,e),Vn.applyMatrix4(t),this.setXYZ(e,Vn.x,Vn.y,Vn.z);return this}applyNormalMatrix(t){for(let e=0,i=this.count;e&amp;amp;lt;i;e++)Vn.fromBufferAttribute(this,e),Vn.applyNormalMatrix(t),this.setXYZ(e,Vn.x,Vn.y,Vn.z);return this}transformDirection(t){for(let e=0,i=this.count;e&amp;amp;lt;i;e++)Vn.fromBufferAttribute(this,e),Vn.transformDirection(t),this.setXYZ(e,Vn.x,Vn.y,Vn.z);return this}set(t,e=0){return this.array.set(t,e),this}getComponent(t,e){let i=this.array[t*this.itemSize+e];return this.normalized&amp;amp;amp;&amp;amp;amp;(i=Xi(i,this.array)),i}setComponent(t,e,i){return this.normalized&amp;amp;amp;&amp;amp;amp;(i=_e(i,this.array)),this.array[t*this.itemSize+e]=i,this}getX(t){let e=this.array[t*this.itemSize];return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setX(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.array[t*this.itemSize]=e,this}getY(t){let e=this.array[t*this.itemSize+1];return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setY(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.array[t*this.itemSize+1]=e,this}getZ(t){let e=this.array[t*this.itemSize+2];return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setZ(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.array[t*this.itemSize+2]=e,this}getW(t){let e=this.array[t*this.itemSize+3];return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setW(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.array[t*this.itemSize+3]=e,this}setXY(t,e,i){return t*=this.itemSize,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array)),this.array[t+0]=e,this.array[t+1]=i,this}setXYZ(t,e,i,a){return t*=this.itemSize,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array),a=_e(a,this.array)),this.array[t+0]=e,this.array[t+1]=i,this.array[t+2]=a,this}setXYZW(t,e,i,a,s){return t*=this.itemSize,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array),a=_e(a,this.array),s=_e(s,this.array)),this.array[t+0]=e,this.array[t+1]=i,this.array[t+2]=a,this.array[t+3]=s,this}onUpload(t){return this.onUploadCallback=t,this}clone(){return new this.constructor(this.array,this.itemSize).copy(this)}toJSON(){let t={itemSize:this.itemSize,type:this.array.constructor.name,array:Array.from(this.array),normalized:this.normalized};return this.name!==&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.name=this.name),this.usage!==Vf&amp;amp;amp;&amp;amp;amp;(t.usage=this.usage),t}},jy=class extends Xe{constructor(t,e,i){super(new Int8Array(t),e,i)}},Qy=class extends Xe{constructor(t,e,i){super(new Uint8Array(t),e,i)}},Ky=class extends Xe{constructor(t,e,i){super(new Uint8ClampedArray(t),e,i)}},Jy=class extends Xe{constructor(t,e,i){super(new Int16Array(t),e,i)}},qf=class extends Xe{constructor(t,e,i){super(new Uint16Array(t),e,i)}},$y=class extends Xe{constructor(t,e,i){super(new Int32Array(t),e,i)}},Yf=class extends Xe{constructor(t,e,i){super(new Uint32Array(t),e,i)}},t_=class extends Xe{constructor(t,e,i){super(new Uint16Array(t),e,i),this.isFloat16BufferAttribute=!0}getX(t){let e=wp(this.array[t*this.itemSize]);return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setX(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.array[t*this.itemSize]=ia(e),this}getY(t){let e=wp(this.array[t*this.itemSize+1]);return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setY(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.array[t*this.itemSize+1]=ia(e),this}getZ(t){let e=wp(this.array[t*this.itemSize+2]);return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setZ(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.array[t*this.itemSize+2]=ia(e),this}getW(t){let e=wp(this.array[t*this.itemSize+3]);return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setW(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.array[t*this.itemSize+3]=ia(e),this}setXY(t,e,i){return t*=this.itemSize,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array)),this.array[t+0]=ia(e),this.array[t+1]=ia(i),this}setXYZ(t,e,i,a){return t*=this.itemSize,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array),a=_e(a,this.array)),this.array[t+0]=ia(e),this.array[t+1]=ia(i),this.array[t+2]=ia(a),this}setXYZW(t,e,i,a,s){return t*=this.itemSize,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array),a=_e(a,this.array),s=_e(s,this.array)),this.array[t+0]=ia(e),this.array[t+1]=ia(i),this.array[t+2]=ia(a),this.array[t+3]=ia(s),this}},Xt=class extends Xe{constructor(t,e,i){super(new Float32Array(t),e,i)}},qH=0,rs=new fe,ub=new Ie,Ef=new B,Da=new Zn,xp=new Zn,si=new B,ve=class n extends La{constructor(){super(),this.isBufferGeometry=!0,Object.defineProperty(this,&amp;amp;quot;id&amp;amp;quot;,{value:qH++}),this.uuid=Na(),this.name=&amp;amp;quot;&amp;amp;quot;,this.type=&amp;amp;quot;BufferGeometry&amp;amp;quot;,this.index=null,this.indirect=null,this.attributes={},this.morphAttributes={},this.morphTargetsRelative=!1,this.groups=[],this.boundingBox=null,this.boundingSphere=null,this.drawRange={start:0,count:1/0},this.userData={}}getIndex(){return this.index}setIndex(t){return Array.isArray(t)?this.index=new(UT(t)?Yf:qf)(t,1):this.index=t,this}setIndirect(t){return this.indirect=t,this}getIndirect(){return this.indirect}getAttribute(t){return this.attributes[t]}setAttribute(t,e){return this.attributes[t]=e,this}deleteAttribute(t){return delete this.attributes[t],this}hasAttribute(t){return this.attributes[t]!==void 0}addGroup(t,e,i=0){this.groups.push({start:t,count:e,materialIndex:i})}clearGroups(){this.groups=[]}setDrawRange(t,e){this.drawRange.start=t,this.drawRange.count=e}applyMatrix4(t){let e=this.attributes.position;e!==void 0&amp;amp;amp;&amp;amp;amp;(e.applyMatrix4(t),e.needsUpdate=!0);let i=this.attributes.normal;if(i!==void 0){let s=new ge().getNormalMatrix(t);i.applyNormalMatrix(s),i.needsUpdate=!0}let a=this.attributes.tangent;return a!==void 0&amp;amp;amp;&amp;amp;amp;(a.transformDirection(t),a.needsUpdate=!0),this.boundingBox!==null&amp;amp;amp;&amp;amp;amp;this.computeBoundingBox(),this.boundingSphere!==null&amp;amp;amp;&amp;amp;amp;this.computeBoundingSphere(),this}applyQuaternion(t){return rs.makeRotationFromQuaternion(t),this.applyMatrix4(rs),this}rotateX(t){return rs.makeRotationX(t),this.applyMatrix4(rs),this}rotateY(t){return rs.makeRotationY(t),this.applyMatrix4(rs),this}rotateZ(t){return rs.makeRotationZ(t),this.applyMatrix4(rs),this}translate(t,e,i){return rs.makeTranslation(t,e,i),this.applyMatrix4(rs),this}scale(t,e,i){return rs.makeScale(t,e,i),this.applyMatrix4(rs),this}lookAt(t){return ub.lookAt(t),ub.updateMatrix(),this.applyMatrix4(ub.matrix),this}center(){return this.computeBoundingBox(),this.boundingBox.getCenter(Ef).negate(),this.translate(Ef.x,Ef.y,Ef.z),this}setFromPoints(t){let e=this.getAttribute(&amp;amp;quot;position&amp;amp;quot;);if(e===void 0){let i=[];for(let a=0,s=t.length;a&amp;amp;lt;s;a++){let o=t[a];i.push(o.x,o.y,o.z||0)}this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(i,3))}else{let i=Math.min(t.length,e.count);for(let a=0;a&amp;amp;lt;i;a++){let s=t[a];e.setXYZ(a,s.x,s.y,s.z||0)}t.length&amp;amp;gt;e.count&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.BufferGeometry: Buffer size too small for points data. Use .dispose() and create a new geometry.&amp;amp;quot;),e.needsUpdate=!0}return this}computeBoundingBox(){this.boundingBox===null&amp;amp;amp;&amp;amp;amp;(this.boundingBox=new Zn);let t=this.attributes.position,e=this.morphAttributes.position;if(t&amp;amp;amp;&amp;amp;amp;t.isGLBufferAttribute){console.error(&amp;amp;quot;THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box.&amp;amp;quot;,this),this.boundingBox.set(new B(-1/0,-1/0,-1/0),new B(1/0,1/0,1/0));return}if(t!==void 0){if(this.boundingBox.setFromBufferAttribute(t),e)for(let i=0,a=e.length;i&amp;amp;lt;a;i++){let s=e[i];Da.setFromBufferAttribute(s),this.morphTargetsRelative?(si.addVectors(this.boundingBox.min,Da.min),this.boundingBox.expandByPoint(si),si.addVectors(this.boundingBox.max,Da.max),this.boundingBox.expandByPoint(si)):(this.boundingBox.expandByPoint(Da.min),this.boundingBox.expandByPoint(Da.max))}}else this.boundingBox.makeEmpty();(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&amp;amp;amp;&amp;amp;amp;console.error(&amp;amp;#39;THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The &amp;amp;quot;position&amp;amp;quot; attribute is likely to have NaN values.&amp;amp;#39;,this)}computeBoundingSphere(){this.boundingSphere===null&amp;amp;amp;&amp;amp;amp;(this.boundingSphere=new Xn);let t=this.attributes.position,e=this.morphAttributes.position;if(t&amp;amp;amp;&amp;amp;amp;t.isGLBufferAttribute){console.error(&amp;amp;quot;THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere.&amp;amp;quot;,this),this.boundingSphere.set(new B,1/0);return}if(t){let i=this.boundingSphere.center;if(Da.setFromBufferAttribute(t),e)for(let s=0,o=e.length;s&amp;amp;lt;o;s++){let u=e[s];xp.setFromBufferAttribute(u),this.morphTargetsRelative?(si.addVectors(Da.min,xp.min),Da.expandByPoint(si),si.addVectors(Da.max,xp.max),Da.expandByPoint(si)):(Da.expandByPoint(xp.min),Da.expandByPoint(xp.max))}Da.getCenter(i);let a=0;for(let s=0,o=t.count;s&amp;amp;lt;o;s++)si.fromBufferAttribute(t,s),a=Math.max(a,i.distanceToSquared(si));if(e)for(let s=0,o=e.length;s&amp;amp;lt;o;s++){let u=e[s],c=this.morphTargetsRelative;for(let h=0,d=u.count;h&amp;amp;lt;d;h++)si.fromBufferAttribute(u,h),c&amp;amp;amp;&amp;amp;amp;(Ef.fromBufferAttribute(t,h),si.add(Ef)),a=Math.max(a,i.distanceToSquared(si))}this.boundingSphere.radius=Math.sqrt(a),isNaN(this.boundingSphere.radius)&amp;amp;amp;&amp;amp;amp;console.error(&amp;amp;#39;THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The &amp;amp;quot;position&amp;amp;quot; attribute is likely to have NaN values.&amp;amp;#39;,this)}}computeTangents(){let t=this.index,e=this.attributes;if(t===null||e.position===void 0||e.normal===void 0||e.uv===void 0){console.error(&amp;amp;quot;THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)&amp;amp;quot;);return}let i=e.position,a=e.normal,s=e.uv;this.hasAttribute(&amp;amp;quot;tangent&amp;amp;quot;)===!1&amp;amp;amp;&amp;amp;amp;this.setAttribute(&amp;amp;quot;tangent&amp;amp;quot;,new Xe(new Float32Array(4*i.count),4));let o=this.getAttribute(&amp;amp;quot;tangent&amp;amp;quot;),u=[],c=[];for(let z=0;z&amp;amp;lt;i.count;z++)u[z]=new B,c[z]=new B;let h=new B,d=new B,m=new B,g=new ct,y=new ct,x=new ct,b=new B,M=new B;function v(z,C,R){h.fromBufferAttribute(i,z),d.fromBufferAttribute(i,C),m.fromBufferAttribute(i,R),g.fromBufferAttribute(s,z),y.fromBufferAttribute(s,C),x.fromBufferAttribute(s,R),d.sub(h),m.sub(h),y.sub(g),x.sub(g);let P=1/(y.x*x.y-x.x*y.y);isFinite(P)&amp;amp;amp;&amp;amp;amp;(b.copy(d).multiplyScalar(x.y).addScaledVector(m,-y.y).multiplyScalar(P),M.copy(m).multiplyScalar(y.x).addScaledVector(d,-x.x).multiplyScalar(P),u[z].add(b),u[C].add(b),u[R].add(b),c[z].add(M),c[C].add(M),c[R].add(M))}let S=this.groups;S.length===0&amp;amp;amp;&amp;amp;amp;(S=[{start:0,count:t.count}]);for(let z=0,C=S.length;z&amp;amp;lt;C;++z){let R=S[z],P=R.start,j=R.count;for(let X=P,Z=P+j;X&amp;amp;lt;Z;X+=3)v(t.getX(X+0),t.getX(X+1),t.getX(X+2))}let E=new B,T=new B,w=new B,U=new B;function O(z){w.fromBufferAttribute(a,z),U.copy(w);let C=u[z];E.copy(C),E.sub(w.multiplyScalar(w.dot(C))).normalize(),T.crossVectors(U,C);let P=T.dot(c[z])&amp;amp;lt;0?-1:1;o.setXYZW(z,E.x,E.y,E.z,P)}for(let z=0,C=S.length;z&amp;amp;lt;C;++z){let R=S[z],P=R.start,j=R.count;for(let X=P,Z=P+j;X&amp;amp;lt;Z;X+=3)O(t.getX(X+0)),O(t.getX(X+1)),O(t.getX(X+2))}}computeVertexNormals(){let t=this.index,e=this.getAttribute(&amp;amp;quot;position&amp;amp;quot;);if(e!==void 0){let i=this.getAttribute(&amp;amp;quot;normal&amp;amp;quot;);if(i===void 0)i=new Xe(new Float32Array(e.count*3),3),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,i);else for(let g=0,y=i.count;g&amp;amp;lt;y;g++)i.setXYZ(g,0,0,0);let a=new B,s=new B,o=new B,u=new B,c=new B,h=new B,d=new B,m=new B;if(t)for(let g=0,y=t.count;g&amp;amp;lt;y;g+=3){let x=t.getX(g+0),b=t.getX(g+1),M=t.getX(g+2);a.fromBufferAttribute(e,x),s.fromBufferAttribute(e,b),o.fromBufferAttribute(e,M),d.subVectors(o,s),m.subVectors(a,s),d.cross(m),u.fromBufferAttribute(i,x),c.fromBufferAttribute(i,b),h.fromBufferAttribute(i,M),u.add(d),c.add(d),h.add(d),i.setXYZ(x,u.x,u.y,u.z),i.setXYZ(b,c.x,c.y,c.z),i.setXYZ(M,h.x,h.y,h.z)}else for(let g=0,y=e.count;g&amp;amp;lt;y;g+=3)a.fromBufferAttribute(e,g+0),s.fromBufferAttribute(e,g+1),o.fromBufferAttribute(e,g+2),d.subVectors(o,s),m.subVectors(a,s),d.cross(m),i.setXYZ(g+0,d.x,d.y,d.z),i.setXYZ(g+1,d.x,d.y,d.z),i.setXYZ(g+2,d.x,d.y,d.z);this.normalizeNormals(),i.needsUpdate=!0}}normalizeNormals(){let t=this.attributes.normal;for(let e=0,i=t.count;e&amp;amp;lt;i;e++)si.fromBufferAttribute(t,e),si.normalize(),t.setXYZ(e,si.x,si.y,si.z)}toNonIndexed(){function t(u,c){let h=u.array,d=u.itemSize,m=u.normalized,g=new h.constructor(c.length*d),y=0,x=0;for(let b=0,M=c.length;b&amp;amp;lt;M;b++){u.isInterleavedBufferAttribute?y=c[b]*u.data.stride+u.offset:y=c[b]*d;for(let v=0;v&amp;amp;lt;d;v++)g[x++]=h[y++]}return new Xe(g,d,m)}if(this.index===null)return console.warn(&amp;amp;quot;THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.&amp;amp;quot;),this;let e=new n,i=this.index.array,a=this.attributes;for(let u in a){let c=a[u],h=t(c,i);e.setAttribute(u,h)}let s=this.morphAttributes;for(let u in s){let c=[],h=s[u];for(let d=0,m=h.length;d&amp;amp;lt;m;d++){let g=h[d],y=t(g,i);c.push(y)}e.morphAttributes[u]=c}e.morphTargetsRelative=this.morphTargetsRelative;let o=this.groups;for(let u=0,c=o.length;u&amp;amp;lt;c;u++){let h=o[u];e.addGroup(h.start,h.count,h.materialIndex)}return e}toJSON(){let t={metadata:{version:4.7,type:&amp;amp;quot;BufferGeometry&amp;amp;quot;,generator:&amp;amp;quot;BufferGeometry.toJSON&amp;amp;quot;}};if(t.uuid=this.uuid,t.type=this.type,this.name!==&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.name=this.name),Object.keys(this.userData).length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(t.userData=this.userData),this.parameters!==void 0){let c=this.parameters;for(let h in c)c[h]!==void 0&amp;amp;amp;&amp;amp;amp;(t[h]=c[h]);return t}t.data={attributes:{}};let e=this.index;e!==null&amp;amp;amp;&amp;amp;amp;(t.data.index={type:e.array.constructor.name,array:Array.prototype.slice.call(e.array)});let i=this.attributes;for(let c in i){let h=i[c];t.data.attributes[c]=h.toJSON(t.data)}let a={},s=!1;for(let c in this.morphAttributes){let h=this.morphAttributes[c],d=[];for(let m=0,g=h.length;m&amp;amp;lt;g;m++){let y=h[m];d.push(y.toJSON(t.data))}d.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(a[c]=d,s=!0)}s&amp;amp;amp;&amp;amp;amp;(t.data.morphAttributes=a,t.data.morphTargetsRelative=this.morphTargetsRelative);let o=this.groups;o.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(t.data.groups=JSON.parse(JSON.stringify(o)));let u=this.boundingSphere;return u!==null&amp;amp;amp;&amp;amp;amp;(t.data.boundingSphere=u.toJSON()),t}clone(){return new this.constructor().copy(this)}copy(t){this.index=null,this.attributes={},this.morphAttributes={},this.groups=[],this.boundingBox=null,this.boundingSphere=null;let e={};this.name=t.name;let i=t.index;i!==null&amp;amp;amp;&amp;amp;amp;this.setIndex(i.clone());let a=t.attributes;for(let h in a){let d=a[h];this.setAttribute(h,d.clone(e))}let s=t.morphAttributes;for(let h in s){let d=[],m=s[h];for(let g=0,y=m.length;g&amp;amp;lt;y;g++)d.push(m[g].clone(e));this.morphAttributes[h]=d}this.morphTargetsRelative=t.morphTargetsRelative;let o=t.groups;for(let h=0,d=o.length;h&amp;amp;lt;d;h++){let m=o[h];this.addGroup(m.start,m.count,m.materialIndex)}let u=t.boundingBox;u!==null&amp;amp;amp;&amp;amp;amp;(this.boundingBox=u.clone());let c=t.boundingSphere;return c!==null&amp;amp;amp;&amp;amp;amp;(this.boundingSphere=c.clone()),this.drawRange.start=t.drawRange.start,this.drawRange.count=t.drawRange.count,this.userData=t.userData,this}dispose(){this.dispatchEvent({type:&amp;amp;quot;dispose&amp;amp;quot;})}},BU=new fe,au=new jr,fy=new Xn,PU=new B,hy=new B,dy=new B,py=new B,cb=new B,my=new B,IU=new B,gy=new B,En=class extends Ie{constructor(t=new ve,e=new Rs){super(),this.isMesh=!0,this.type=&amp;amp;quot;Mesh&amp;amp;quot;,this.geometry=t,this.material=e,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.count=1,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),t.morphTargetInfluences!==void 0&amp;amp;amp;&amp;amp;amp;(this.morphTargetInfluences=t.morphTargetInfluences.slice()),t.morphTargetDictionary!==void 0&amp;amp;amp;&amp;amp;amp;(this.morphTargetDictionary=Object.assign({},t.morphTargetDictionary)),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}updateMorphTargets(){let e=this.geometry.morphAttributes,i=Object.keys(e);if(i.length&amp;amp;gt;0){let a=e[i[0]];if(a!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=a.length;s&amp;amp;lt;o;s++){let u=a[s].name||String(s);this.morphTargetInfluences.push(0),this.morphTargetDictionary[u]=s}}}}getVertexPosition(t,e){let i=this.geometry,a=i.attributes.position,s=i.morphAttributes.position,o=i.morphTargetsRelative;e.fromBufferAttribute(a,t);let u=this.morphTargetInfluences;if(s&amp;amp;amp;&amp;amp;amp;u){my.set(0,0,0);for(let c=0,h=s.length;c&amp;amp;lt;h;c++){let d=u[c],m=s[c];d!==0&amp;amp;amp;&amp;amp;amp;(cb.fromBufferAttribute(m,t),o?my.addScaledVector(cb,d):my.addScaledVector(cb.sub(e),d))}e.add(my)}return e}raycast(t,e){let i=this.geometry,a=this.material,s=this.matrixWorld;a!==void 0&amp;amp;amp;&amp;amp;amp;(i.boundingSphere===null&amp;amp;amp;&amp;amp;amp;i.computeBoundingSphere(),fy.copy(i.boundingSphere),fy.applyMatrix4(s),au.copy(t.ray).recast(t.near),!(fy.containsPoint(au.origin)===!1&amp;amp;amp;&amp;amp;amp;(au.intersectSphere(fy,PU)===null||au.origin.distanceToSquared(PU)&amp;amp;gt;(t.far-t.near)**2))&amp;amp;amp;&amp;amp;amp;(BU.copy(s).invert(),au.copy(t.ray).applyMatrix4(BU),!(i.boundingBox!==null&amp;amp;amp;&amp;amp;amp;au.intersectsBox(i.boundingBox)===!1)&amp;amp;amp;&amp;amp;amp;this._computeIntersections(t,e,au)))}_computeIntersections(t,e,i){let a,s=this.geometry,o=this.material,u=s.index,c=s.attributes.position,h=s.attributes.uv,d=s.attributes.uv1,m=s.attributes.normal,g=s.groups,y=s.drawRange;if(u!==null)if(Array.isArray(o))for(let x=0,b=g.length;x&amp;amp;lt;b;x++){let M=g[x],v=o[M.materialIndex],S=Math.max(M.start,y.start),E=Math.min(u.count,Math.min(M.start+M.count,y.start+y.count));for(let T=S,w=E;T&amp;amp;lt;w;T+=3){let U=u.getX(T),O=u.getX(T+1),z=u.getX(T+2);a=vy(this,v,t,i,h,d,m,U,O,z),a&amp;amp;amp;&amp;amp;amp;(a.faceIndex=Math.floor(T/3),a.face.materialIndex=M.materialIndex,e.push(a))}}else{let x=Math.max(0,y.start),b=Math.min(u.count,y.start+y.count);for(let M=x,v=b;M&amp;amp;lt;v;M+=3){let S=u.getX(M),E=u.getX(M+1),T=u.getX(M+2);a=vy(this,o,t,i,h,d,m,S,E,T),a&amp;amp;amp;&amp;amp;amp;(a.faceIndex=Math.floor(M/3),e.push(a))}}else if(c!==void 0)if(Array.isArray(o))for(let x=0,b=g.length;x&amp;amp;lt;b;x++){let M=g[x],v=o[M.materialIndex],S=Math.max(M.start,y.start),E=Math.min(c.count,Math.min(M.start+M.count,y.start+y.count));for(let T=S,w=E;T&amp;amp;lt;w;T+=3){let U=T,O=T+1,z=T+2;a=vy(this,v,t,i,h,d,m,U,O,z),a&amp;amp;amp;&amp;amp;amp;(a.faceIndex=Math.floor(T/3),a.face.materialIndex=M.materialIndex,e.push(a))}}else{let x=Math.max(0,y.start),b=Math.min(c.count,y.start+y.count);for(let M=x,v=b;M&amp;amp;lt;v;M+=3){let S=M,E=M+1,T=M+2;a=vy(this,o,t,i,h,d,m,S,E,T),a&amp;amp;amp;&amp;amp;amp;(a.faceIndex=Math.floor(M/3),e.push(a))}}}};function YH(n,t,e,i,a,s,o,u){let c;if(t.side===Ni?c=i.intersectTriangle(o,s,a,!0,u):c=i.intersectTriangle(a,s,o,t.side===tr,u),c===null)return null;gy.copy(u),gy.applyMatrix4(n.matrixWorld);let h=e.ray.origin.distanceTo(gy);return h&amp;amp;lt;e.near||h&amp;amp;gt;e.far?null:{distance:h,point:gy.clone(),object:n}}function vy(n,t,e,i,a,s,o,u,c,h){n.getVertexPosition(u,hy),n.getVertexPosition(c,dy),n.getVertexPosition(h,py);let d=YH(n,t,e,i,hy,dy,py,IU);if(d){let m=new B;bs.getBarycoord(IU,hy,dy,py,m),a&amp;amp;amp;&amp;amp;amp;(d.uv=bs.getInterpolatedAttribute(a,u,c,h,m,new ct)),s&amp;amp;amp;&amp;amp;amp;(d.uv1=bs.getInterpolatedAttribute(s,u,c,h,m,new ct)),o&amp;amp;amp;&amp;amp;amp;(d.normal=bs.getInterpolatedAttribute(o,u,c,h,m,new B),d.normal.dot(i.direction)&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;d.normal.multiplyScalar(-1));let g={a:u,b:c,c:h,normal:new B,materialIndex:0};bs.getNormal(hy,dy,py,g.normal),d.face=g,d.barycoord=m}return d}var rl=class n extends ve{constructor(t=1,e=1,i=1,a=1,s=1,o=1){super(),this.type=&amp;amp;quot;BoxGeometry&amp;amp;quot;,this.parameters={width:t,height:e,depth:i,widthSegments:a,heightSegments:s,depthSegments:o};let u=this;a=Math.floor(a),s=Math.floor(s),o=Math.floor(o);let c=[],h=[],d=[],m=[],g=0,y=0;x(&amp;amp;quot;z&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;x&amp;amp;quot;,-1,-1,i,e,t,o,s,0),x(&amp;amp;quot;z&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;x&amp;amp;quot;,1,-1,i,e,-t,o,s,1),x(&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;z&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,1,1,t,i,e,a,o,2),x(&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;z&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,1,-1,t,i,-e,a,o,3),x(&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;z&amp;amp;quot;,1,-1,t,e,i,a,s,4),x(&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;z&amp;amp;quot;,-1,-1,t,e,-i,a,s,5),this.setIndex(c),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(h,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(d,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(m,2));function x(b,M,v,S,E,T,w,U,O,z,C){let R=T/O,P=w/z,j=T/2,X=w/2,Z=U/2,st=O+1,et=z+1,mt=0,K=0,_t=new B;for(let Ut=0;Ut&amp;amp;lt;et;Ut++){let xt=Ut*P-X;for(let It=0;It&amp;amp;lt;st;It++){let se=It*R-j;_t[b]=se*S,_t[M]=xt*E,_t[v]=Z,h.push(_t.x,_t.y,_t.z),_t[b]=0,_t[M]=0,_t[v]=U&amp;amp;gt;0?1:-1,d.push(_t.x,_t.y,_t.z),m.push(It/O),m.push(1-Ut/z),mt+=1}}for(let Ut=0;Ut&amp;amp;lt;z;Ut++)for(let xt=0;xt&amp;amp;lt;O;xt++){let It=g+xt+st*Ut,se=g+xt+st*(Ut+1),Qt=g+(xt+1)+st*(Ut+1),it=g+(xt+1)+st*Ut;c.push(It,se,it),c.push(se,Qt,it),K+=6}u.addGroup(y,K,C),y+=K,g+=mt}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.width,t.height,t.depth,t.widthSegments,t.heightSegments,t.depthSegments)}};function Hu(n){let t={};for(let e in n){t[e]={};for(let i in n[e]){let a=n[e][i];a&amp;amp;amp;&amp;amp;amp;(a.isColor||a.isMatrix3||a.isMatrix4||a.isVector2||a.isVector3||a.isVector4||a.isTexture||a.isQuaternion)?a.isRenderTargetTexture?(console.warn(&amp;amp;quot;UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms().&amp;amp;quot;),t[e][i]=null):t[e][i]=a.clone():Array.isArray(a)?t[e][i]=a.slice():t[e][i]=a}}return t}function Oi(n){let t={};for(let e=0;e&amp;amp;lt;n.length;e++){let i=Hu(n[e]);for(let a in i)t[a]=i[a]}return t}function WH(n){let t=[];for(let e=0;e&amp;amp;lt;n.length;e++)t.push(n[e].clone());return t}function OT(n){let t=n.getRenderTarget();return t===null?n.outputColorSpace:t.isXRRenderTarget===!0?t.texture.colorSpace:we.workingColorSpace}var LT={clone:Hu,merge:Oi},kH=`void main() {
   1195 <a href="#l1176" class="line" id="l1176">   1176</a> &lt;a href=&quot;#l1157&quot; class=&quot;line&quot; id=&quot;l1157&quot;&gt;   1157&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-20&amp;quot; id=&amp;quot;h3-0-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
   1196 <a href="#l1177" class="line" id="l1177">   1177</a> &lt;a href=&quot;#l1158&quot; class=&quot;line&quot; id=&quot;l1158&quot;&gt;   1158&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-21&amp;quot; id=&amp;quot;h3-0-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,ZH=`void main() {
   1197 <a href="#l1178" class="line" id="l1178">   1178</a> &lt;a href=&quot;#l1159&quot; class=&quot;line&quot; id=&quot;l1159&quot;&gt;   1159&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-22&amp;quot; id=&amp;quot;h3-0-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );
   1198 <a href="#l1179" class="line" id="l1179">   1179</a> &lt;a href=&quot;#l1160&quot; class=&quot;line&quot; id=&quot;l1160&quot;&gt;   1160&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-23&amp;quot; id=&amp;quot;h3-0-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,ra=class extends jn{constructor(t){super(),this.isShaderMaterial=!0,this.type=&amp;amp;quot;ShaderMaterial&amp;amp;quot;,this.defines={},this.uniforms={},this.uniformsGroups=[],this.vertexShader=kH,this.fragmentShader=ZH,this.linewidth=1,this.wireframe=!1,this.wireframeLinewidth=1,this.fog=!1,this.lights=!1,this.clipping=!1,this.forceSinglePass=!0,this.extensions={clipCullDistance:!1,multiDraw:!1},this.defaultAttributeValues={color:[1,1,1],uv:[0,0],uv1:[0,0]},this.index0AttributeName=void 0,this.uniformsNeedUpdate=!1,this.glslVersion=null,t!==void 0&amp;amp;amp;&amp;amp;amp;this.setValues(t)}copy(t){return super.copy(t),this.fragmentShader=t.fragmentShader,this.vertexShader=t.vertexShader,this.uniforms=Hu(t.uniforms),this.uniformsGroups=WH(t.uniformsGroups),this.defines=Object.assign({},t.defines),this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.fog=t.fog,this.lights=t.lights,this.clipping=t.clipping,this.extensions=Object.assign({},t.extensions),this.glslVersion=t.glslVersion,this}toJSON(t){let e=super.toJSON(t);e.glslVersion=this.glslVersion,e.uniforms={};for(let a in this.uniforms){let o=this.uniforms[a].value;o&amp;amp;amp;&amp;amp;amp;o.isTexture?e.uniforms[a]={type:&amp;amp;quot;t&amp;amp;quot;,value:o.toJSON(t).uuid}:o&amp;amp;amp;&amp;amp;amp;o.isColor?e.uniforms[a]={type:&amp;amp;quot;c&amp;amp;quot;,value:o.getHex()}:o&amp;amp;amp;&amp;amp;amp;o.isVector2?e.uniforms[a]={type:&amp;amp;quot;v2&amp;amp;quot;,value:o.toArray()}:o&amp;amp;amp;&amp;amp;amp;o.isVector3?e.uniforms[a]={type:&amp;amp;quot;v3&amp;amp;quot;,value:o.toArray()}:o&amp;amp;amp;&amp;amp;amp;o.isVector4?e.uniforms[a]={type:&amp;amp;quot;v4&amp;amp;quot;,value:o.toArray()}:o&amp;amp;amp;&amp;amp;amp;o.isMatrix3?e.uniforms[a]={type:&amp;amp;quot;m3&amp;amp;quot;,value:o.toArray()}:o&amp;amp;amp;&amp;amp;amp;o.isMatrix4?e.uniforms[a]={type:&amp;amp;quot;m4&amp;amp;quot;,value:o.toArray()}:e.uniforms[a]={value:o}}Object.keys(this.defines).length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(e.defines=this.defines),e.vertexShader=this.vertexShader,e.fragmentShader=this.fragmentShader,e.lights=this.lights,e.clipping=this.clipping;let i={};for(let a in this.extensions)this.extensions[a]===!0&amp;amp;amp;&amp;amp;amp;(i[a]=!0);return Object.keys(i).length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(e.extensions=i),e}},Mu=class extends Ie{constructor(){super(),this.isCamera=!0,this.type=&amp;amp;quot;Camera&amp;amp;quot;,this.matrixWorldInverse=new fe,this.projectionMatrix=new fe,this.projectionMatrixInverse=new fe,this.coordinateSystem=aa,this._reversedDepth=!1}get reversedDepth(){return this._reversedDepth}copy(t,e){return super.copy(t,e),this.matrixWorldInverse.copy(t.matrixWorldInverse),this.projectionMatrix.copy(t.projectionMatrix),this.projectionMatrixInverse.copy(t.projectionMatrixInverse),this.coordinateSystem=t.coordinateSystem,this}getWorldDirection(t){return super.getWorldDirection(t).negate()}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,e){super.updateWorldMatrix(t,e),this.matrixWorldInverse.copy(this.matrixWorld).invert()}clone(){return new this.constructor().copy(this)}},$o=new B,HU=new ct,FU=new ct,Un=class extends Mu{constructor(t=50,e=1,i=.1,a=2e3){super(),this.isPerspectiveCamera=!0,this.type=&amp;amp;quot;PerspectiveCamera&amp;amp;quot;,this.fov=t,this.zoom=1,this.near=i,this.far=a,this.focus=10,this.aspect=e,this.view=null,this.filmGauge=35,this.filmOffset=0,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.fov=t.fov,this.zoom=t.zoom,this.near=t.near,this.far=t.far,this.focus=t.focus,this.aspect=t.aspect,this.view=t.view===null?null:Object.assign({},t.view),this.filmGauge=t.filmGauge,this.filmOffset=t.filmOffset,this}setFocalLength(t){let e=.5*this.getFilmHeight()/t;this.fov=yu*2*Math.atan(e),this.updateProjectionMatrix()}getFocalLength(){let t=Math.tan(mu*.5*this.fov);return .5*this.getFilmHeight()/t}getEffectiveFOV(){return yu*2*Math.atan(Math.tan(mu*.5*this.fov)/this.zoom)}getFilmWidth(){return this.filmGauge*Math.min(this.aspect,1)}getFilmHeight(){return this.filmGauge/Math.max(this.aspect,1)}getViewBounds(t,e,i){$o.set(-1,-1,.5).applyMatrix4(this.projectionMatrixInverse),e.set($o.x,$o.y).multiplyScalar(-t/$o.z),$o.set(1,1,.5).applyMatrix4(this.projectionMatrixInverse),i.set($o.x,$o.y).multiplyScalar(-t/$o.z)}getViewSize(t,e){return this.getViewBounds(t,HU,FU),e.subVectors(FU,HU)}setViewOffset(t,e,i,a,s,o){this.aspect=t/e,this.view===null&amp;amp;amp;&amp;amp;amp;(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=a,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&amp;amp;amp;&amp;amp;amp;(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=this.near,e=t*Math.tan(mu*.5*this.fov)/this.zoom,i=2*e,a=this.aspect*i,s=-.5*a,o=this.view;if(this.view!==null&amp;amp;amp;&amp;amp;amp;this.view.enabled){let c=o.fullWidth,h=o.fullHeight;s+=o.offsetX*a/c,e-=o.offsetY*i/h,a*=o.width/c,i*=o.height/h}let u=this.filmOffset;u!==0&amp;amp;amp;&amp;amp;amp;(s+=t*u/this.getFilmWidth()),this.projectionMatrix.makePerspective(s,s+a,e,e-i,t,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.fov=this.fov,e.object.zoom=this.zoom,e.object.near=this.near,e.object.far=this.far,e.object.focus=this.focus,e.object.aspect=this.aspect,this.view!==null&amp;amp;amp;&amp;amp;amp;(e.object.view=Object.assign({},this.view)),e.object.filmGauge=this.filmGauge,e.object.filmOffset=this.filmOffset,e}},bf=-90,Tf=1,Hp=class extends Ie{constructor(t,e,i){super(),this.type=&amp;amp;quot;CubeCamera&amp;amp;quot;,this.renderTarget=i,this.coordinateSystem=null,this.activeMipmapLevel=0;let a=new Un(bf,Tf,t,e);a.layers=this.layers,this.add(a);let s=new Un(bf,Tf,t,e);s.layers=this.layers,this.add(s);let o=new Un(bf,Tf,t,e);o.layers=this.layers,this.add(o);let u=new Un(bf,Tf,t,e);u.layers=this.layers,this.add(u);let c=new Un(bf,Tf,t,e);c.layers=this.layers,this.add(c);let h=new Un(bf,Tf,t,e);h.layers=this.layers,this.add(h)}updateCoordinateSystem(){let t=this.coordinateSystem,e=this.children.concat(),[i,a,s,o,u,c]=e;for(let h of e)this.remove(h);if(t===aa)i.up.set(0,1,0),i.lookAt(1,0,0),a.up.set(0,1,0),a.lookAt(-1,0,0),s.up.set(0,0,-1),s.lookAt(0,1,0),o.up.set(0,0,1),o.lookAt(0,-1,0),u.up.set(0,1,0),u.lookAt(0,0,1),c.up.set(0,1,0),c.lookAt(0,0,-1);else if(t===vu)i.up.set(0,-1,0),i.lookAt(-1,0,0),a.up.set(0,-1,0),a.lookAt(1,0,0),s.up.set(0,0,1),s.lookAt(0,1,0),o.up.set(0,0,-1),o.lookAt(0,-1,0),u.up.set(0,-1,0),u.lookAt(0,0,1),c.up.set(0,-1,0),c.lookAt(0,0,-1);else throw new Error(&amp;amp;quot;THREE.CubeCamera.updateCoordinateSystem(): Invalid coordinate system: &amp;amp;quot;+t);for(let h of e)this.add(h),h.updateMatrixWorld()}update(t,e){this.parent===null&amp;amp;amp;&amp;amp;amp;this.updateMatrixWorld();let{renderTarget:i,activeMipmapLevel:a}=this;this.coordinateSystem!==t.coordinateSystem&amp;amp;amp;&amp;amp;amp;(this.coordinateSystem=t.coordinateSystem,this.updateCoordinateSystem());let[s,o,u,c,h,d]=this.children,m=t.getRenderTarget(),g=t.getActiveCubeFace(),y=t.getActiveMipmapLevel(),x=t.xr.enabled;t.xr.enabled=!1;let b=i.texture.generateMipmaps;i.texture.generateMipmaps=!1,t.setRenderTarget(i,0,a),t.render(e,s),t.setRenderTarget(i,1,a),t.render(e,o),t.setRenderTarget(i,2,a),t.render(e,u),t.setRenderTarget(i,3,a),t.render(e,c),t.setRenderTarget(i,4,a),t.render(e,h),i.texture.generateMipmaps=b,t.setRenderTarget(i,5,a),t.render(e,d),t.setRenderTarget(m,g,y),t.xr.enabled=x,i.texture.needsPMREMUpdate=!0}},ol=class extends zn{constructor(t=[],e=rr,i,a,s,o,u,c,h,d){super(t,e,i,a,s,o,u,c,h,d),this.isCubeTexture=!0,this.flipY=!1}get images(){return this.image}set images(t){this.image=t}},Fp=class extends za{constructor(t=1,e={}){super(t,t,e),this.isWebGLCubeRenderTarget=!0;let i={width:t,height:t,depth:1},a=[i,i,i,i,i,i];this.texture=new ol(a),this._setTextureOptions(e),this.texture.isRenderTargetTexture=!0}fromEquirectangularTexture(t,e){this.texture.type=e.type,this.texture.colorSpace=e.colorSpace,this.texture.generateMipmaps=e.generateMipmaps,this.texture.minFilter=e.minFilter,this.texture.magFilter=e.magFilter;let i={uniforms:{tEquirect:{value:null}},vertexShader:`
   1199 <a href="#l1180" class="line" id="l1180">   1180</a> &lt;a href=&quot;#l1161&quot; class=&quot;line&quot; id=&quot;l1161&quot;&gt;   1161&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-24&amp;quot; id=&amp;quot;h3-0-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1200 <a href="#l1181" class="line" id="l1181">   1181</a> &lt;a href=&quot;#l1162&quot; class=&quot;line&quot; id=&quot;l1162&quot;&gt;   1162&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-25&amp;quot; id=&amp;quot;h3-0-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				varying vec3 vWorldDirection;
   1201 <a href="#l1182" class="line" id="l1182">   1182</a> &lt;a href=&quot;#l1163&quot; class=&quot;line&quot; id=&quot;l1163&quot;&gt;   1163&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-26&amp;quot; id=&amp;quot;h3-0-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1202 <a href="#l1183" class="line" id="l1183">   1183</a> &lt;a href=&quot;#l1164&quot; class=&quot;line&quot; id=&quot;l1164&quot;&gt;   1164&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-27&amp;quot; id=&amp;quot;h3-0-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
   1203 <a href="#l1184" class="line" id="l1184">   1184</a> &lt;a href=&quot;#l1165&quot; class=&quot;line&quot; id=&quot;l1165&quot;&gt;   1165&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-28&amp;quot; id=&amp;quot;h3-0-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1204 <a href="#l1185" class="line" id="l1185">   1185</a> &lt;a href=&quot;#l1166&quot; class=&quot;line&quot; id=&quot;l1166&quot;&gt;   1166&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-29&amp;quot; id=&amp;quot;h3-0-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
   1205 <a href="#l1186" class="line" id="l1186">   1186</a> &lt;a href=&quot;#l1167&quot; class=&quot;line&quot; id=&quot;l1167&quot;&gt;   1167&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-30&amp;quot; id=&amp;quot;h3-0-30&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1206 <a href="#l1187" class="line" id="l1187">   1187</a> &lt;a href=&quot;#l1168&quot; class=&quot;line&quot; id=&quot;l1168&quot;&gt;   1168&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-31&amp;quot; id=&amp;quot;h3-0-31&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				}
   1207 <a href="#l1188" class="line" id="l1188">   1188</a> &lt;a href=&quot;#l1169&quot; class=&quot;line&quot; id=&quot;l1169&quot;&gt;   1169&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-32&amp;quot; id=&amp;quot;h3-0-32&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1208 <a href="#l1189" class="line" id="l1189">   1189</a> &lt;a href=&quot;#l1170&quot; class=&quot;line&quot; id=&quot;l1170&quot;&gt;   1170&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-33&amp;quot; id=&amp;quot;h3-0-33&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				void main() {
   1209 <a href="#l1190" class="line" id="l1190">   1190</a> &lt;a href=&quot;#l1171&quot; class=&quot;line&quot; id=&quot;l1171&quot;&gt;   1171&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-34&amp;quot; id=&amp;quot;h3-0-34&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1210 <a href="#l1191" class="line" id="l1191">   1191</a> &lt;a href=&quot;#l1172&quot; class=&quot;line&quot; id=&quot;l1172&quot;&gt;   1172&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-35&amp;quot; id=&amp;quot;h3-0-35&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					vWorldDirection = transformDirection( position, modelMatrix );
   1211 <a href="#l1192" class="line" id="l1192">   1192</a> &lt;a href=&quot;#l1173&quot; class=&quot;line&quot; id=&quot;l1173&quot;&gt;   1173&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-36&amp;quot; id=&amp;quot;h3-0-36&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1212 <a href="#l1193" class="line" id="l1193">   1193</a> &lt;a href=&quot;#l1174&quot; class=&quot;line&quot; id=&quot;l1174&quot;&gt;   1174&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-37&amp;quot; id=&amp;quot;h3-0-37&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   1213 <a href="#l1194" class="line" id="l1194">   1194</a> &lt;a href=&quot;#l1175&quot; class=&quot;line&quot; id=&quot;l1175&quot;&gt;   1175&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-38&amp;quot; id=&amp;quot;h3-0-38&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					#include &amp;amp;lt;project_vertex&amp;amp;gt;
   1214 <a href="#l1195" class="line" id="l1195">   1195</a> &lt;a href=&quot;#l1176&quot; class=&quot;line&quot; id=&quot;l1176&quot;&gt;   1176&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-39&amp;quot; id=&amp;quot;h3-0-39&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1215 <a href="#l1196" class="line" id="l1196">   1196</a> &lt;a href=&quot;#l1177&quot; class=&quot;line&quot; id=&quot;l1177&quot;&gt;   1177&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-40&amp;quot; id=&amp;quot;h3-0-40&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				}
   1216 <a href="#l1197" class="line" id="l1197">   1197</a> &lt;a href=&quot;#l1178&quot; class=&quot;line&quot; id=&quot;l1178&quot;&gt;   1178&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-41&amp;quot; id=&amp;quot;h3-0-41&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			`,fragmentShader:`
   1217 <a href="#l1198" class="line" id="l1198">   1198</a> &lt;a href=&quot;#l1179&quot; class=&quot;line&quot; id=&quot;l1179&quot;&gt;   1179&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-42&amp;quot; id=&amp;quot;h3-0-42&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1218 <a href="#l1199" class="line" id="l1199">   1199</a> &lt;a href=&quot;#l1180&quot; class=&quot;line&quot; id=&quot;l1180&quot;&gt;   1180&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-43&amp;quot; id=&amp;quot;h3-0-43&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				uniform sampler2D tEquirect;
   1219 <a href="#l1200" class="line" id="l1200">   1200</a> &lt;a href=&quot;#l1181&quot; class=&quot;line&quot; id=&quot;l1181&quot;&gt;   1181&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-44&amp;quot; id=&amp;quot;h3-0-44&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1220 <a href="#l1201" class="line" id="l1201">   1201</a> &lt;a href=&quot;#l1182&quot; class=&quot;line&quot; id=&quot;l1182&quot;&gt;   1182&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-45&amp;quot; id=&amp;quot;h3-0-45&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				varying vec3 vWorldDirection;
   1221 <a href="#l1202" class="line" id="l1202">   1202</a> &lt;a href=&quot;#l1183&quot; class=&quot;line&quot; id=&quot;l1183&quot;&gt;   1183&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-46&amp;quot; id=&amp;quot;h3-0-46&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1222 <a href="#l1203" class="line" id="l1203">   1203</a> &lt;a href=&quot;#l1184&quot; class=&quot;line&quot; id=&quot;l1184&quot;&gt;   1184&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-47&amp;quot; id=&amp;quot;h3-0-47&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				#include &amp;amp;lt;common&amp;amp;gt;
   1223 <a href="#l1204" class="line" id="l1204">   1204</a> &lt;a href=&quot;#l1185&quot; class=&quot;line&quot; id=&quot;l1185&quot;&gt;   1185&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-48&amp;quot; id=&amp;quot;h3-0-48&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1224 <a href="#l1205" class="line" id="l1205">   1205</a> &lt;a href=&quot;#l1186&quot; class=&quot;line&quot; id=&quot;l1186&quot;&gt;   1186&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-49&amp;quot; id=&amp;quot;h3-0-49&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				void main() {
   1225 <a href="#l1206" class="line" id="l1206">   1206</a> &lt;a href=&quot;#l1187&quot; class=&quot;line&quot; id=&quot;l1187&quot;&gt;   1187&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-50&amp;quot; id=&amp;quot;h3-0-50&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1226 <a href="#l1207" class="line" id="l1207">   1207</a> &lt;a href=&quot;#l1188&quot; class=&quot;line&quot; id=&quot;l1188&quot;&gt;   1188&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-51&amp;quot; id=&amp;quot;h3-0-51&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					vec3 direction = normalize( vWorldDirection );
   1227 <a href="#l1208" class="line" id="l1208">   1208</a> &lt;a href=&quot;#l1189&quot; class=&quot;line&quot; id=&quot;l1189&quot;&gt;   1189&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-52&amp;quot; id=&amp;quot;h3-0-52&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1228 <a href="#l1209" class="line" id="l1209">   1209</a> &lt;a href=&quot;#l1190&quot; class=&quot;line&quot; id=&quot;l1190&quot;&gt;   1190&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-53&amp;quot; id=&amp;quot;h3-0-53&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					vec2 sampleUV = equirectUv( direction );
   1229 <a href="#l1210" class="line" id="l1210">   1210</a> &lt;a href=&quot;#l1191&quot; class=&quot;line&quot; id=&quot;l1191&quot;&gt;   1191&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-54&amp;quot; id=&amp;quot;h3-0-54&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1230 <a href="#l1211" class="line" id="l1211">   1211</a> &lt;a href=&quot;#l1192&quot; class=&quot;line&quot; id=&quot;l1192&quot;&gt;   1192&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-55&amp;quot; id=&amp;quot;h3-0-55&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					gl_FragColor = texture2D( tEquirect, sampleUV );
   1231 <a href="#l1212" class="line" id="l1212">   1212</a> &lt;a href=&quot;#l1193&quot; class=&quot;line&quot; id=&quot;l1193&quot;&gt;   1193&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-56&amp;quot; id=&amp;quot;h3-0-56&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1232 <a href="#l1213" class="line" id="l1213">   1213</a> &lt;a href=&quot;#l1194&quot; class=&quot;line&quot; id=&quot;l1194&quot;&gt;   1194&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-57&amp;quot; id=&amp;quot;h3-0-57&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				}
   1233 <a href="#l1214" class="line" id="l1214">   1214</a> &lt;a href=&quot;#l1195&quot; class=&quot;line&quot; id=&quot;l1195&quot;&gt;   1195&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-58&amp;quot; id=&amp;quot;h3-0-58&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			`},a=new rl(5,5,5),s=new ra({name:&amp;amp;quot;CubemapFromEquirect&amp;amp;quot;,uniforms:Hu(i.uniforms),vertexShader:i.vertexShader,fragmentShader:i.fragmentShader,side:Ni,blending:sr});s.uniforms.tEquirect.value=e;let o=new En(a,s),u=e.minFilter;return e.minFilter===Us&amp;amp;amp;&amp;amp;amp;(e.minFilter=Gn),new Hp(1,10,this).update(t,o),e.minFilter=u,o.geometry.dispose(),o.material.dispose(),this}clear(t,e=!0,i=!0,a=!0){let s=t.getRenderTarget();for(let o=0;o&amp;amp;lt;6;o++)t.setRenderTarget(this,o),t.clear(e,i,a);t.setRenderTarget(s)}},Wr=class extends Ie{constructor(){super(),this.isGroup=!0,this.type=&amp;amp;quot;Group&amp;amp;quot;}},jH={type:&amp;amp;quot;move&amp;amp;quot;},Eu=class{constructor(){this._targetRay=null,this._grip=null,this._hand=null}getHandSpace(){return this._hand===null&amp;amp;amp;&amp;amp;amp;(this._hand=new Wr,this._hand.matrixAutoUpdate=!1,this._hand.visible=!1,this._hand.joints={},this._hand.inputState={pinching:!1}),this._hand}getTargetRaySpace(){return this._targetRay===null&amp;amp;amp;&amp;amp;amp;(this._targetRay=new Wr,this._targetRay.matrixAutoUpdate=!1,this._targetRay.visible=!1,this._targetRay.hasLinearVelocity=!1,this._targetRay.linearVelocity=new B,this._targetRay.hasAngularVelocity=!1,this._targetRay.angularVelocity=new B),this._targetRay}getGripSpace(){return this._grip===null&amp;amp;amp;&amp;amp;amp;(this._grip=new Wr,this._grip.matrixAutoUpdate=!1,this._grip.visible=!1,this._grip.hasLinearVelocity=!1,this._grip.linearVelocity=new B,this._grip.hasAngularVelocity=!1,this._grip.angularVelocity=new B),this._grip}dispatchEvent(t){return this._targetRay!==null&amp;amp;amp;&amp;amp;amp;this._targetRay.dispatchEvent(t),this._grip!==null&amp;amp;amp;&amp;amp;amp;this._grip.dispatchEvent(t),this._hand!==null&amp;amp;amp;&amp;amp;amp;this._hand.dispatchEvent(t),this}connect(t){if(t&amp;amp;amp;&amp;amp;amp;t.hand){let e=this._hand;if(e)for(let i of t.hand.values())this._getHandJoint(e,i)}return this.dispatchEvent({type:&amp;amp;quot;connected&amp;amp;quot;,data:t}),this}disconnect(t){return this.dispatchEvent({type:&amp;amp;quot;disconnected&amp;amp;quot;,data:t}),this._targetRay!==null&amp;amp;amp;&amp;amp;amp;(this._targetRay.visible=!1),this._grip!==null&amp;amp;amp;&amp;amp;amp;(this._grip.visible=!1),this._hand!==null&amp;amp;amp;&amp;amp;amp;(this._hand.visible=!1),this}update(t,e,i){let a=null,s=null,o=null,u=this._targetRay,c=this._grip,h=this._hand;if(t&amp;amp;amp;&amp;amp;amp;e.session.visibilityState!==&amp;amp;quot;visible-blurred&amp;amp;quot;){if(h&amp;amp;amp;&amp;amp;amp;t.hand){o=!0;for(let b of t.hand.values()){let M=e.getJointPose(b,i),v=this._getHandJoint(h,b);M!==null&amp;amp;amp;&amp;amp;amp;(v.matrix.fromArray(M.transform.matrix),v.matrix.decompose(v.position,v.rotation,v.scale),v.matrixWorldNeedsUpdate=!0,v.jointRadius=M.radius),v.visible=M!==null}let d=h.joints[&amp;amp;quot;index-finger-tip&amp;amp;quot;],m=h.joints[&amp;amp;quot;thumb-tip&amp;amp;quot;],g=d.position.distanceTo(m.position),y=.02,x=.005;h.inputState.pinching&amp;amp;amp;&amp;amp;amp;g&amp;amp;gt;y+x?(h.inputState.pinching=!1,this.dispatchEvent({type:&amp;amp;quot;pinchend&amp;amp;quot;,handedness:t.handedness,target:this})):!h.inputState.pinching&amp;amp;amp;&amp;amp;amp;g&amp;amp;lt;=y-x&amp;amp;amp;&amp;amp;amp;(h.inputState.pinching=!0,this.dispatchEvent({type:&amp;amp;quot;pinchstart&amp;amp;quot;,handedness:t.handedness,target:this}))}else c!==null&amp;amp;amp;&amp;amp;amp;t.gripSpace&amp;amp;amp;&amp;amp;amp;(s=e.getPose(t.gripSpace,i),s!==null&amp;amp;amp;&amp;amp;amp;(c.matrix.fromArray(s.transform.matrix),c.matrix.decompose(c.position,c.rotation,c.scale),c.matrixWorldNeedsUpdate=!0,s.linearVelocity?(c.hasLinearVelocity=!0,c.linearVelocity.copy(s.linearVelocity)):c.hasLinearVelocity=!1,s.angularVelocity?(c.hasAngularVelocity=!0,c.angularVelocity.copy(s.angularVelocity)):c.hasAngularVelocity=!1));u!==null&amp;amp;amp;&amp;amp;amp;(a=e.getPose(t.targetRaySpace,i),a===null&amp;amp;amp;&amp;amp;amp;s!==null&amp;amp;amp;&amp;amp;amp;(a=s),a!==null&amp;amp;amp;&amp;amp;amp;(u.matrix.fromArray(a.transform.matrix),u.matrix.decompose(u.position,u.rotation,u.scale),u.matrixWorldNeedsUpdate=!0,a.linearVelocity?(u.hasLinearVelocity=!0,u.linearVelocity.copy(a.linearVelocity)):u.hasLinearVelocity=!1,a.angularVelocity?(u.hasAngularVelocity=!0,u.angularVelocity.copy(a.angularVelocity)):u.hasAngularVelocity=!1,this.dispatchEvent(jH)))}return u!==null&amp;amp;amp;&amp;amp;amp;(u.visible=a!==null),c!==null&amp;amp;amp;&amp;amp;amp;(c.visible=s!==null),h!==null&amp;amp;amp;&amp;amp;amp;(h.visible=o!==null),this}_getHandJoint(t,e){if(t.joints[e.jointName]===void 0){let i=new Wr;i.matrixAutoUpdate=!1,i.visible=!1,t.joints[e.jointName]=i,t.add(i)}return t.joints[e.jointName]}},Vp=class n{constructor(t,e=25e-5){this.isFogExp2=!0,this.name=&amp;amp;quot;&amp;amp;quot;,this.color=new Bt(t),this.density=e}clone(){return new n(this.color,this.density)}toJSON(){return{type:&amp;amp;quot;FogExp2&amp;amp;quot;,name:this.name,color:this.color.getHex(),density:this.density}}},Gp=class n{constructor(t,e=1,i=1e3){this.isFog=!0,this.name=&amp;amp;quot;&amp;amp;quot;,this.color=new Bt(t),this.near=e,this.far=i}clone(){return new n(this.color,this.near,this.far)}toJSON(){return{type:&amp;amp;quot;Fog&amp;amp;quot;,name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}},bu=class extends Ie{constructor(){super(),this.isScene=!0,this.type=&amp;amp;quot;Scene&amp;amp;quot;,this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.backgroundRotation=new sa,this.environmentIntensity=1,this.environmentRotation=new sa,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(&amp;amp;quot;observe&amp;amp;quot;,{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&amp;amp;amp;&amp;amp;amp;(this.background=t.background.clone()),t.environment!==null&amp;amp;amp;&amp;amp;amp;(this.environment=t.environment.clone()),t.fog!==null&amp;amp;amp;&amp;amp;amp;(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,this.backgroundRotation.copy(t.backgroundRotation),this.environmentIntensity=t.environmentIntensity,this.environmentRotation.copy(t.environmentRotation),t.overrideMaterial!==null&amp;amp;amp;&amp;amp;amp;(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){let e=super.toJSON(t);return this.fog!==null&amp;amp;amp;&amp;amp;amp;(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&amp;amp;amp;&amp;amp;amp;(e.object.backgroundIntensity=this.backgroundIntensity),e.object.backgroundRotation=this.backgroundRotation.toArray(),this.environmentIntensity!==1&amp;amp;amp;&amp;amp;amp;(e.object.environmentIntensity=this.environmentIntensity),e.object.environmentRotation=this.environmentRotation.toArray(),e}},Tu=class{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=Vf,this.updateRanges=[],this.version=0,this.uuid=Na()}onUploadCallback(){}set needsUpdate(t){t===!0&amp;amp;amp;&amp;amp;amp;this.version++}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,i){t*=this.stride,i*=e.stride;for(let a=0,s=this.stride;a&amp;amp;lt;s;a++)this.array[t+a]=e.array[i+a];return this}set(t,e=0){return this.array.set(t,e),this}clone(t){t.arrayBuffers===void 0&amp;amp;amp;&amp;amp;amp;(t.arrayBuffers={}),this.array.buffer._uuid===void 0&amp;amp;amp;&amp;amp;amp;(this.array.buffer._uuid=Na()),t.arrayBuffers[this.array.buffer._uuid]===void 0&amp;amp;amp;&amp;amp;amp;(t.arrayBuffers[this.array.buffer._uuid]=this.array.slice(0).buffer);let e=new this.array.constructor(t.arrayBuffers[this.array.buffer._uuid]),i=new this.constructor(e,this.stride);return i.setUsage(this.usage),i}onUpload(t){return this.onUploadCallback=t,this}toJSON(t){return t.arrayBuffers===void 0&amp;amp;amp;&amp;amp;amp;(t.arrayBuffers={}),this.array.buffer._uuid===void 0&amp;amp;amp;&amp;amp;amp;(this.array.buffer._uuid=Na()),t.arrayBuffers[this.array.buffer._uuid]===void 0&amp;amp;amp;&amp;amp;amp;(t.arrayBuffers[this.array.buffer._uuid]=Array.from(new Uint32Array(this.array.buffer))),{uuid:this.uuid,buffer:this.array.buffer._uuid,type:this.array.constructor.name,stride:this.stride}}},Gi=new B,ll=class n{constructor(t,e,i,a=!1){this.isInterleavedBufferAttribute=!0,this.name=&amp;amp;quot;&amp;amp;quot;,this.data=t,this.itemSize=e,this.offset=i,this.normalized=a}get count(){return this.data.count}get array(){return this.data.array}set needsUpdate(t){this.data.needsUpdate=t}applyMatrix4(t){for(let e=0,i=this.data.count;e&amp;amp;lt;i;e++)Gi.fromBufferAttribute(this,e),Gi.applyMatrix4(t),this.setXYZ(e,Gi.x,Gi.y,Gi.z);return this}applyNormalMatrix(t){for(let e=0,i=this.count;e&amp;amp;lt;i;e++)Gi.fromBufferAttribute(this,e),Gi.applyNormalMatrix(t),this.setXYZ(e,Gi.x,Gi.y,Gi.z);return this}transformDirection(t){for(let e=0,i=this.count;e&amp;amp;lt;i;e++)Gi.fromBufferAttribute(this,e),Gi.transformDirection(t),this.setXYZ(e,Gi.x,Gi.y,Gi.z);return this}getComponent(t,e){let i=this.array[t*this.data.stride+this.offset+e];return this.normalized&amp;amp;amp;&amp;amp;amp;(i=Xi(i,this.array)),i}setComponent(t,e,i){return this.normalized&amp;amp;amp;&amp;amp;amp;(i=_e(i,this.array)),this.data.array[t*this.data.stride+this.offset+e]=i,this}setX(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.data.array[t*this.data.stride+this.offset]=e,this}setY(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.data.array[t*this.data.stride+this.offset+1]=e,this}setZ(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.data.array[t*this.data.stride+this.offset+2]=e,this}setW(t,e){return this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array)),this.data.array[t*this.data.stride+this.offset+3]=e,this}getX(t){let e=this.data.array[t*this.data.stride+this.offset];return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}getY(t){let e=this.data.array[t*this.data.stride+this.offset+1];return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}getZ(t){let e=this.data.array[t*this.data.stride+this.offset+2];return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}getW(t){let e=this.data.array[t*this.data.stride+this.offset+3];return this.normalized&amp;amp;amp;&amp;amp;amp;(e=Xi(e,this.array)),e}setXY(t,e,i){return t=t*this.data.stride+this.offset,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=i,this}setXYZ(t,e,i,a){return t=t*this.data.stride+this.offset,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array),a=_e(a,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=i,this.data.array[t+2]=a,this}setXYZW(t,e,i,a,s){return t=t*this.data.stride+this.offset,this.normalized&amp;amp;amp;&amp;amp;amp;(e=_e(e,this.array),i=_e(i,this.array),a=_e(a,this.array),s=_e(s,this.array)),this.data.array[t+0]=e,this.data.array[t+1]=i,this.data.array[t+2]=a,this.data.array[t+3]=s,this}clone(t){if(t===void 0){console.log(&amp;amp;quot;THREE.InterleavedBufferAttribute.clone(): Cloning an interleaved buffer attribute will de-interleave buffer data.&amp;amp;quot;);let e=[];for(let i=0;i&amp;amp;lt;this.count;i++){let a=i*this.data.stride+this.offset;for(let s=0;s&amp;amp;lt;this.itemSize;s++)e.push(this.data.array[a+s])}return new Xe(new this.array.constructor(e),this.itemSize,this.normalized)}else return t.interleavedBuffers===void 0&amp;amp;amp;&amp;amp;amp;(t.interleavedBuffers={}),t.interleavedBuffers[this.data.uuid]===void 0&amp;amp;amp;&amp;amp;amp;(t.interleavedBuffers[this.data.uuid]=this.data.clone(t)),new n(t.interleavedBuffers[this.data.uuid],this.itemSize,this.offset,this.normalized)}toJSON(t){if(t===void 0){console.log(&amp;amp;quot;THREE.InterleavedBufferAttribute.toJSON(): Serializing an interleaved buffer attribute will de-interleave buffer data.&amp;amp;quot;);let e=[];for(let i=0;i&amp;amp;lt;this.count;i++){let a=i*this.data.stride+this.offset;for(let s=0;s&amp;amp;lt;this.itemSize;s++)e.push(this.data.array[a+s])}return{itemSize:this.itemSize,type:this.array.constructor.name,array:e,normalized:this.normalized}}else return t.interleavedBuffers===void 0&amp;amp;amp;&amp;amp;amp;(t.interleavedBuffers={}),t.interleavedBuffers[this.data.uuid]===void 0&amp;amp;amp;&amp;amp;amp;(t.interleavedBuffers[this.data.uuid]=this.data.toJSON(t)),{isInterleavedBufferAttribute:!0,itemSize:this.itemSize,data:this.data.uuid,offset:this.offset,normalized:this.normalized}}},Wf=class extends jn{constructor(t){super(),this.isSpriteMaterial=!0,this.type=&amp;amp;quot;SpriteMaterial&amp;amp;quot;,this.color=new Bt(16777215),this.map=null,this.alphaMap=null,this.rotation=0,this.sizeAttenuation=!0,this.transparent=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.rotation=t.rotation,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}},Af,Sp=new B,Rf=new B,Cf=new B,wf=new ct,Mp=new ct,yO=new fe,yy=new B,Ep=new B,_y=new B,VU=new ct,fb=new ct,GU=new ct,Xp=class extends Ie{constructor(t=new Wf){if(super(),this.isSprite=!0,this.type=&amp;amp;quot;Sprite&amp;amp;quot;,Af===void 0){Af=new ve;let e=new Float32Array([-.5,-.5,0,0,0,.5,-.5,0,1,0,.5,.5,0,1,1,-.5,.5,0,0,1]),i=new Tu(e,5);Af.setIndex([0,1,2,0,2,3]),Af.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new ll(i,3,0,!1)),Af.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new ll(i,2,3,!1))}this.geometry=Af,this.material=t,this.center=new ct(.5,.5),this.count=1}raycast(t,e){t.camera===null&amp;amp;amp;&amp;amp;amp;console.error(&amp;amp;#39;THREE.Sprite: &amp;amp;quot;Raycaster.camera&amp;amp;quot; needs to be set in order to raycast against sprites.&amp;amp;#39;),Rf.setFromMatrixScale(this.matrixWorld),yO.copy(t.camera.matrixWorld),this.modelViewMatrix.multiplyMatrices(t.camera.matrixWorldInverse,this.matrixWorld),Cf.setFromMatrixPosition(this.modelViewMatrix),t.camera.isPerspectiveCamera&amp;amp;amp;&amp;amp;amp;this.material.sizeAttenuation===!1&amp;amp;amp;&amp;amp;amp;Rf.multiplyScalar(-Cf.z);let i=this.material.rotation,a,s;i!==0&amp;amp;amp;&amp;amp;amp;(s=Math.cos(i),a=Math.sin(i));let o=this.center;xy(yy.set(-.5,-.5,0),Cf,o,Rf,a,s),xy(Ep.set(.5,-.5,0),Cf,o,Rf,a,s),xy(_y.set(.5,.5,0),Cf,o,Rf,a,s),VU.set(0,0),fb.set(1,0),GU.set(1,1);let u=t.ray.intersectTriangle(yy,Ep,_y,!1,Sp);if(u===null&amp;amp;amp;&amp;amp;amp;(xy(Ep.set(-.5,.5,0),Cf,o,Rf,a,s),fb.set(0,1),u=t.ray.intersectTriangle(yy,_y,Ep,!1,Sp),u===null))return;let c=t.ray.origin.distanceTo(Sp);c&amp;amp;lt;t.near||c&amp;amp;gt;t.far||e.push({distance:c,point:Sp.clone(),uv:bs.getInterpolation(Sp,yy,Ep,_y,VU,fb,GU,new ct),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&amp;amp;amp;&amp;amp;amp;this.center.copy(t.center),this.material=t.material,this}};function xy(n,t,e,i,a,s){wf.subVectors(n,e).addScalar(.5).multiply(i),a!==void 0?(Mp.x=s*wf.x-a*wf.y,Mp.y=a*wf.x+s*wf.y):Mp.copy(wf),n.copy(t),n.x+=Mp.x,n.y+=Mp.y,n.applyMatrix4(yO)}var Sy=new B,XU=new B,qp=class extends Ie{constructor(){super(),this.isLOD=!0,this._currentLevel=0,this.type=&amp;amp;quot;LOD&amp;amp;quot;,Object.defineProperties(this,{levels:{enumerable:!0,value:[]}}),this.autoUpdate=!0}copy(t){super.copy(t,!1);let e=t.levels;for(let i=0,a=e.length;i&amp;amp;lt;a;i++){let s=e[i];this.addLevel(s.object.clone(),s.distance,s.hysteresis)}return this.autoUpdate=t.autoUpdate,this}addLevel(t,e=0,i=0){e=Math.abs(e);let a=this.levels,s;for(s=0;s&amp;amp;lt;a.length&amp;amp;amp;&amp;amp;amp;!(e&amp;amp;lt;a[s].distance);s++);return a.splice(s,0,{distance:e,hysteresis:i,object:t}),this.add(t),this}removeLevel(t){let e=this.levels;for(let i=0;i&amp;amp;lt;e.length;i++)if(e[i].distance===t){let a=e.splice(i,1);return this.remove(a[0].object),!0}return!1}getCurrentLevel(){return this._currentLevel}getObjectForDistance(t){let e=this.levels;if(e.length&amp;amp;gt;0){let i,a;for(i=1,a=e.length;i&amp;amp;lt;a;i++){let s=e[i].distance;if(e[i].object.visible&amp;amp;amp;&amp;amp;amp;(s-=s*e[i].hysteresis),t&amp;amp;lt;s)break}return e[i-1].object}return null}raycast(t,e){if(this.levels.length&amp;amp;gt;0){Sy.setFromMatrixPosition(this.matrixWorld);let a=t.ray.origin.distanceTo(Sy);this.getObjectForDistance(a).raycast(t,e)}}update(t){let e=this.levels;if(e.length&amp;amp;gt;1){Sy.setFromMatrixPosition(t.matrixWorld),XU.setFromMatrixPosition(this.matrixWorld);let i=Sy.distanceTo(XU)/t.zoom;e[0].object.visible=!0;let a,s;for(a=1,s=e.length;a&amp;amp;lt;s;a++){let o=e[a].distance;if(e[a].object.visible&amp;amp;amp;&amp;amp;amp;(o-=o*e[a].hysteresis),i&amp;amp;gt;=o)e[a-1].object.visible=!1,e[a].object.visible=!0;else break}for(this._currentLevel=a-1;a&amp;amp;lt;s;a++)e[a].object.visible=!1}}toJSON(t){let e=super.toJSON(t);this.autoUpdate===!1&amp;amp;amp;&amp;amp;amp;(e.object.autoUpdate=!1),e.object.levels=[];let i=this.levels;for(let a=0,s=i.length;a&amp;amp;lt;s;a++){let o=i[a];e.object.levels.push({object:o.object.uuid,distance:o.distance,hysteresis:o.hysteresis})}return e}},qU=new B,YU=new Oe,WU=new Oe,QH=new B,kU=new fe,My=new B,hb=new Xn,ZU=new fe,db=new jr,Yp=class extends En{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type=&amp;amp;quot;SkinnedMesh&amp;amp;quot;,this.bindMode=qy,this.bindMatrix=new fe,this.bindMatrixInverse=new fe,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){let t=this.geometry;this.boundingBox===null&amp;amp;amp;&amp;amp;amp;(this.boundingBox=new Zn),this.boundingBox.makeEmpty();let e=t.getAttribute(&amp;amp;quot;position&amp;amp;quot;);for(let i=0;i&amp;amp;lt;e.count;i++)this.getVertexPosition(i,My),this.boundingBox.expandByPoint(My)}computeBoundingSphere(){let t=this.geometry;this.boundingSphere===null&amp;amp;amp;&amp;amp;amp;(this.boundingSphere=new Xn),this.boundingSphere.makeEmpty();let e=t.getAttribute(&amp;amp;quot;position&amp;amp;quot;);for(let i=0;i&amp;amp;lt;e.count;i++)this.getVertexPosition(i,My),this.boundingSphere.expandByPoint(My)}copy(t,e){return super.copy(t,e),this.bindMode=t.bindMode,this.bindMatrix.copy(t.bindMatrix),this.bindMatrixInverse.copy(t.bindMatrixInverse),this.skeleton=t.skeleton,t.boundingBox!==null&amp;amp;amp;&amp;amp;amp;(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&amp;amp;amp;&amp;amp;amp;(this.boundingSphere=t.boundingSphere.clone()),this}raycast(t,e){let i=this.material,a=this.matrixWorld;i!==void 0&amp;amp;amp;&amp;amp;amp;(this.boundingSphere===null&amp;amp;amp;&amp;amp;amp;this.computeBoundingSphere(),hb.copy(this.boundingSphere),hb.applyMatrix4(a),t.ray.intersectsSphere(hb)!==!1&amp;amp;amp;&amp;amp;amp;(ZU.copy(a).invert(),db.copy(t.ray).applyMatrix4(ZU),!(this.boundingBox!==null&amp;amp;amp;&amp;amp;amp;db.intersectsBox(this.boundingBox)===!1)&amp;amp;amp;&amp;amp;amp;this._computeIntersections(t,e,db)))}getVertexPosition(t,e){return super.getVertexPosition(t,e),this.applyBoneTransform(t,e),e}bind(t,e){this.skeleton=t,e===void 0&amp;amp;amp;&amp;amp;amp;(this.updateMatrixWorld(!0),this.skeleton.calculateInverses(),e=this.matrixWorld),this.bindMatrix.copy(e),this.bindMatrixInverse.copy(e).invert()}pose(){this.skeleton.pose()}normalizeSkinWeights(){let t=new Oe,e=this.geometry.attributes.skinWeight;for(let i=0,a=e.count;i&amp;amp;lt;a;i++){t.fromBufferAttribute(e,i);let s=1/t.manhattanLength();s!==1/0?t.multiplyScalar(s):t.set(1,0,0,0),e.setXYZW(i,t.x,t.y,t.z,t.w)}}updateMatrixWorld(t){super.updateMatrixWorld(t),this.bindMode===qy?this.bindMatrixInverse.copy(this.matrixWorld).invert():this.bindMode===gT?this.bindMatrixInverse.copy(this.bindMatrix).invert():console.warn(&amp;amp;quot;THREE.SkinnedMesh: Unrecognized bindMode: &amp;amp;quot;+this.bindMode)}applyBoneTransform(t,e){let i=this.skeleton,a=this.geometry;YU.fromBufferAttribute(a.attributes.skinIndex,t),WU.fromBufferAttribute(a.attributes.skinWeight,t),qU.copy(e).applyMatrix4(this.bindMatrix),e.set(0,0,0);for(let s=0;s&amp;amp;lt;4;s++){let o=WU.getComponent(s);if(o!==0){let u=YU.getComponent(s);kU.multiplyMatrices(i.bones[u].matrixWorld,i.boneInverses[u]),e.addScaledVector(QH.copy(qU).applyMatrix4(kU),o)}}return e.applyMatrix4(this.bindMatrixInverse)}},kf=class extends Ie{constructor(){super(),this.isBone=!0,this.type=&amp;amp;quot;Bone&amp;amp;quot;}},Oa=class extends zn{constructor(t=null,e=1,i=1,a,s,o,u,c,h=oi,d=oi,m,g){super(null,o,u,c,h,d,a,s,m,g),this.isDataTexture=!0,this.image={data:t,width:e,height:i},this.generateMipmaps=!1,this.flipY=!1,this.unpackAlignment=1}},jU=new fe,KH=new fe,Wp=class n{constructor(t=[],e=[]){this.uuid=Na(),this.bones=t.slice(0),this.boneInverses=e,this.boneMatrices=null,this.boneTexture=null,this.init()}init(){let t=this.bones,e=this.boneInverses;if(this.boneMatrices=new Float32Array(t.length*16),e.length===0)this.calculateInverses();else if(t.length!==e.length){console.warn(&amp;amp;quot;THREE.Skeleton: Number of inverse bone matrices does not match amount of bones.&amp;amp;quot;),this.boneInverses=[];for(let i=0,a=this.bones.length;i&amp;amp;lt;a;i++)this.boneInverses.push(new fe)}}calculateInverses(){this.boneInverses.length=0;for(let t=0,e=this.bones.length;t&amp;amp;lt;e;t++){let i=new fe;this.bones[t]&amp;amp;amp;&amp;amp;amp;i.copy(this.bones[t].matrixWorld).invert(),this.boneInverses.push(i)}}pose(){for(let t=0,e=this.bones.length;t&amp;amp;lt;e;t++){let i=this.bones[t];i&amp;amp;amp;&amp;amp;amp;i.matrixWorld.copy(this.boneInverses[t]).invert()}for(let t=0,e=this.bones.length;t&amp;amp;lt;e;t++){let i=this.bones[t];i&amp;amp;amp;&amp;amp;amp;(i.parent&amp;amp;amp;&amp;amp;amp;i.parent.isBone?(i.matrix.copy(i.parent.matrixWorld).invert(),i.matrix.multiply(i.matrixWorld)):i.matrix.copy(i.matrixWorld),i.matrix.decompose(i.position,i.quaternion,i.scale))}}update(){let t=this.bones,e=this.boneInverses,i=this.boneMatrices,a=this.boneTexture;for(let s=0,o=t.length;s&amp;amp;lt;o;s++){let u=t[s]?t[s].matrixWorld:KH;jU.multiplyMatrices(u,e[s]),jU.toArray(i,s*16)}a!==null&amp;amp;amp;&amp;amp;amp;(a.needsUpdate=!0)}clone(){return new n(this.bones,this.boneInverses)}computeBoneTexture(){let t=Math.sqrt(this.bones.length*4);t=Math.ceil(t/4)*4,t=Math.max(t,4);let e=new Float32Array(t*t*4);e.set(this.boneMatrices);let i=new Oa(e,t,t,li,qi);return i.needsUpdate=!0,this.boneMatrices=e,this.boneTexture=i,this}getBoneByName(t){for(let e=0,i=this.bones.length;e&amp;amp;lt;i;e++){let a=this.bones[e];if(a.name===t)return a}}dispose(){this.boneTexture!==null&amp;amp;amp;&amp;amp;amp;(this.boneTexture.dispose(),this.boneTexture=null)}fromJSON(t,e){this.uuid=t.uuid;for(let i=0,a=t.bones.length;i&amp;amp;lt;a;i++){let s=t.bones[i],o=e[s];o===void 0&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;THREE.Skeleton: No bone found with UUID:&amp;amp;quot;,s),o=new kf),this.bones.push(o),this.boneInverses.push(new fe().fromArray(t.boneInverses[i]))}return this.init(),this}toJSON(){let t={metadata:{version:4.7,type:&amp;amp;quot;Skeleton&amp;amp;quot;,generator:&amp;amp;quot;Skeleton.toJSON&amp;amp;quot;},bones:[],boneInverses:[]};t.uuid=this.uuid;let e=this.bones,i=this.boneInverses;for(let a=0,s=e.length;a&amp;amp;lt;s;a++){let o=e[a];t.bones.push(o.uuid);let u=i[a];t.boneInverses.push(u.toArray())}return t}},Qr=class extends Xe{constructor(t,e,i,a=1){super(t,e,i),this.isInstancedBufferAttribute=!0,this.meshPerAttribute=a}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}toJSON(){let t=super.toJSON();return t.meshPerAttribute=this.meshPerAttribute,t.isInstancedBufferAttribute=!0,t}},Df=new fe,QU=new fe,Ey=[],KU=new Zn,JH=new fe,bp=new En,Tp=new Xn,kp=class extends En{constructor(t,e,i){super(t,e),this.isInstancedMesh=!0,this.instanceMatrix=new Qr(new Float32Array(i*16),16),this.instanceColor=null,this.morphTexture=null,this.count=i,this.boundingBox=null,this.boundingSphere=null;for(let a=0;a&amp;amp;lt;i;a++)this.setMatrixAt(a,JH)}computeBoundingBox(){let t=this.geometry,e=this.count;this.boundingBox===null&amp;amp;amp;&amp;amp;amp;(this.boundingBox=new Zn),t.boundingBox===null&amp;amp;amp;&amp;amp;amp;t.computeBoundingBox(),this.boundingBox.makeEmpty();for(let i=0;i&amp;amp;lt;e;i++)this.getMatrixAt(i,Df),KU.copy(t.boundingBox).applyMatrix4(Df),this.boundingBox.union(KU)}computeBoundingSphere(){let t=this.geometry,e=this.count;this.boundingSphere===null&amp;amp;amp;&amp;amp;amp;(this.boundingSphere=new Xn),t.boundingSphere===null&amp;amp;amp;&amp;amp;amp;t.computeBoundingSphere(),this.boundingSphere.makeEmpty();for(let i=0;i&amp;amp;lt;e;i++)this.getMatrixAt(i,Df),Tp.copy(t.boundingSphere).applyMatrix4(Df),this.boundingSphere.union(Tp)}copy(t,e){return super.copy(t,e),this.instanceMatrix.copy(t.instanceMatrix),t.morphTexture!==null&amp;amp;amp;&amp;amp;amp;(this.morphTexture=t.morphTexture.clone()),t.instanceColor!==null&amp;amp;amp;&amp;amp;amp;(this.instanceColor=t.instanceColor.clone()),this.count=t.count,t.boundingBox!==null&amp;amp;amp;&amp;amp;amp;(this.boundingBox=t.boundingBox.clone()),t.boundingSphere!==null&amp;amp;amp;&amp;amp;amp;(this.boundingSphere=t.boundingSphere.clone()),this}getColorAt(t,e){e.fromArray(this.instanceColor.array,t*3)}getMatrixAt(t,e){e.fromArray(this.instanceMatrix.array,t*16)}getMorphAt(t,e){let i=e.morphTargetInfluences,a=this.morphTexture.source.data.data,s=i.length+1,o=t*s+1;for(let u=0;u&amp;amp;lt;i.length;u++)i[u]=a[o+u]}raycast(t,e){let i=this.matrixWorld,a=this.count;if(bp.geometry=this.geometry,bp.material=this.material,bp.material!==void 0&amp;amp;amp;&amp;amp;amp;(this.boundingSphere===null&amp;amp;amp;&amp;amp;amp;this.computeBoundingSphere(),Tp.copy(this.boundingSphere),Tp.applyMatrix4(i),t.ray.intersectsSphere(Tp)!==!1))for(let s=0;s&amp;amp;lt;a;s++){this.getMatrixAt(s,Df),QU.multiplyMatrices(i,Df),bp.matrixWorld=QU,bp.raycast(t,Ey);for(let o=0,u=Ey.length;o&amp;amp;lt;u;o++){let c=Ey[o];c.instanceId=s,c.object=this,e.push(c)}Ey.length=0}}setColorAt(t,e){this.instanceColor===null&amp;amp;amp;&amp;amp;amp;(this.instanceColor=new Qr(new Float32Array(this.instanceMatrix.count*3).fill(1),3)),e.toArray(this.instanceColor.array,t*3)}setMatrixAt(t,e){e.toArray(this.instanceMatrix.array,t*16)}setMorphAt(t,e){let i=e.morphTargetInfluences,a=i.length+1;this.morphTexture===null&amp;amp;amp;&amp;amp;amp;(this.morphTexture=new Oa(new Float32Array(a*this.count),a,this.count,og,qi));let s=this.morphTexture.source.data.data,o=0;for(let h=0;h&amp;amp;lt;i.length;h++)o+=i[h];let u=this.geometry.morphTargetsRelative?1:1-o,c=a*t;s[c]=u,s.set(i,c+1)}updateMorphTargets(){}dispose(){this.dispatchEvent({type:&amp;amp;quot;dispose&amp;amp;quot;}),this.morphTexture!==null&amp;amp;amp;&amp;amp;amp;(this.morphTexture.dispose(),this.morphTexture=null)}},pb=new B,$H=new B,t5=new ge,Es=class{constructor(t=new B(1,0,0),e=0){this.isPlane=!0,this.normal=t,this.constant=e}set(t,e){return this.normal.copy(t),this.constant=e,this}setComponents(t,e,i,a){return this.normal.set(t,e,i),this.constant=a,this}setFromNormalAndCoplanarPoint(t,e){return this.normal.copy(t),this.constant=-e.dot(this.normal),this}setFromCoplanarPoints(t,e,i){let a=pb.subVectors(i,e).cross($H.subVectors(t,e)).normalize();return this.setFromNormalAndCoplanarPoint(a,t),this}copy(t){return this.normal.copy(t.normal),this.constant=t.constant,this}normalize(){let t=1/this.normal.length();return this.normal.multiplyScalar(t),this.constant*=t,this}negate(){return this.constant*=-1,this.normal.negate(),this}distanceToPoint(t){return this.normal.dot(t)+this.constant}distanceToSphere(t){return this.distanceToPoint(t.center)-t.radius}projectPoint(t,e){return e.copy(t).addScaledVector(this.normal,-this.distanceToPoint(t))}intersectLine(t,e){let i=t.delta(pb),a=this.normal.dot(i);if(a===0)return this.distanceToPoint(t.start)===0?e.copy(t.start):null;let s=-(t.start.dot(this.normal)+this.constant)/a;return s&amp;amp;lt;0||s&amp;amp;gt;1?null:e.copy(t.start).addScaledVector(i,s)}intersectsLine(t){let e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;i&amp;amp;gt;0||i&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;e&amp;amp;gt;0}intersectsBox(t){return t.intersectsPlane(this)}intersectsSphere(t){return t.intersectsPlane(this)}coplanarPoint(t){return t.copy(this.normal).multiplyScalar(-this.constant)}applyMatrix4(t,e){let i=e||t5.getNormalMatrix(t),a=this.coplanarPoint(pb).applyMatrix4(t),s=this.normal.applyMatrix3(i).normalize();return this.constant=-a.dot(s),this}translate(t){return this.constant-=t.dot(this.normal),this}equals(t){return t.normal.equals(this.normal)&amp;amp;amp;&amp;amp;amp;t.constant===this.constant}clone(){return new this.constructor().copy(this)}},su=new Xn,e5=new ct(.5,.5),by=new B,Kr=class{constructor(t=new Es,e=new Es,i=new Es,a=new Es,s=new Es,o=new Es){this.planes=[t,e,i,a,s,o]}set(t,e,i,a,s,o){let u=this.planes;return u[0].copy(t),u[1].copy(e),u[2].copy(i),u[3].copy(a),u[4].copy(s),u[5].copy(o),this}copy(t){let e=this.planes;for(let i=0;i&amp;amp;lt;6;i++)e[i].copy(t.planes[i]);return this}setFromProjectionMatrix(t,e=aa,i=!1){let a=this.planes,s=t.elements,o=s[0],u=s[1],c=s[2],h=s[3],d=s[4],m=s[5],g=s[6],y=s[7],x=s[8],b=s[9],M=s[10],v=s[11],S=s[12],E=s[13],T=s[14],w=s[15];if(a[0].setComponents(h-o,y-d,v-x,w-S).normalize(),a[1].setComponents(h+o,y+d,v+x,w+S).normalize(),a[2].setComponents(h+u,y+m,v+b,w+E).normalize(),a[3].setComponents(h-u,y-m,v-b,w-E).normalize(),i)a[4].setComponents(c,g,M,T).normalize(),a[5].setComponents(h-c,y-g,v-M,w-T).normalize();else if(a[4].setComponents(h-c,y-g,v-M,w-T).normalize(),e===aa)a[5].setComponents(h+c,y+g,v+M,w+T).normalize();else if(e===vu)a[5].setComponents(c,g,M,T).normalize();else throw new Error(&amp;amp;quot;THREE.Frustum.setFromProjectionMatrix(): Invalid coordinate system: &amp;amp;quot;+e);return this}intersectsObject(t){if(t.boundingSphere!==void 0)t.boundingSphere===null&amp;amp;amp;&amp;amp;amp;t.computeBoundingSphere(),su.copy(t.boundingSphere).applyMatrix4(t.matrixWorld);else{let e=t.geometry;e.boundingSphere===null&amp;amp;amp;&amp;amp;amp;e.computeBoundingSphere(),su.copy(e.boundingSphere).applyMatrix4(t.matrixWorld)}return this.intersectsSphere(su)}intersectsSprite(t){su.center.set(0,0,0);let e=e5.distanceTo(t.center);return su.radius=.7071067811865476+e,su.applyMatrix4(t.matrixWorld),this.intersectsSphere(su)}intersectsSphere(t){let e=this.planes,i=t.center,a=-t.radius;for(let s=0;s&amp;amp;lt;6;s++)if(e[s].distanceToPoint(i)&amp;amp;lt;a)return!1;return!0}intersectsBox(t){let e=this.planes;for(let i=0;i&amp;amp;lt;6;i++){let a=e[i];if(by.x=a.normal.x&amp;amp;gt;0?t.max.x:t.min.x,by.y=a.normal.y&amp;amp;gt;0?t.max.y:t.min.y,by.z=a.normal.z&amp;amp;gt;0?t.max.z:t.min.z,a.distanceToPoint(by)&amp;amp;lt;0)return!1}return!0}containsPoint(t){let e=this.planes;for(let i=0;i&amp;amp;lt;6;i++)if(e[i].distanceToPoint(t)&amp;amp;lt;0)return!1;return!0}clone(){return new this.constructor().copy(this)}},Ks=new fe,Js=new Kr,Zp=class n{constructor(){this.coordinateSystem=aa}intersectsObject(t,e){if(!e.isArrayCamera||e.cameras.length===0)return!1;for(let i=0;i&amp;amp;lt;e.cameras.length;i++){let a=e.cameras[i];if(Ks.multiplyMatrices(a.projectionMatrix,a.matrixWorldInverse),Js.setFromProjectionMatrix(Ks,a.coordinateSystem,a.reversedDepth),Js.intersectsObject(t))return!0}return!1}intersectsSprite(t,e){if(!e||!e.cameras||e.cameras.length===0)return!1;for(let i=0;i&amp;amp;lt;e.cameras.length;i++){let a=e.cameras[i];if(Ks.multiplyMatrices(a.projectionMatrix,a.matrixWorldInverse),Js.setFromProjectionMatrix(Ks,a.coordinateSystem,a.reversedDepth),Js.intersectsSprite(t))return!0}return!1}intersectsSphere(t,e){if(!e||!e.cameras||e.cameras.length===0)return!1;for(let i=0;i&amp;amp;lt;e.cameras.length;i++){let a=e.cameras[i];if(Ks.multiplyMatrices(a.projectionMatrix,a.matrixWorldInverse),Js.setFromProjectionMatrix(Ks,a.coordinateSystem,a.reversedDepth),Js.intersectsSphere(t))return!0}return!1}intersectsBox(t,e){if(!e||!e.cameras||e.cameras.length===0)return!1;for(let i=0;i&amp;amp;lt;e.cameras.length;i++){let a=e.cameras[i];if(Ks.multiplyMatrices(a.projectionMatrix,a.matrixWorldInverse),Js.setFromProjectionMatrix(Ks,a.coordinateSystem,a.reversedDepth),Js.intersectsBox(t))return!0}return!1}containsPoint(t,e){if(!e||!e.cameras||e.cameras.length===0)return!1;for(let i=0;i&amp;amp;lt;e.cameras.length;i++){let a=e.cameras[i];if(Ks.multiplyMatrices(a.projectionMatrix,a.matrixWorldInverse),Js.setFromProjectionMatrix(Ks,a.coordinateSystem,a.reversedDepth),Js.containsPoint(t))return!0}return!1}clone(){return new n}};function mb(n,t){return n-t}function n5(n,t){return n.z-t.z}function i5(n,t){return t.z-n.z}var wb=class{constructor(){this.index=0,this.pool=[],this.list=[]}push(t,e,i,a){let s=this.pool,o=this.list;this.index&amp;amp;gt;=s.length&amp;amp;amp;&amp;amp;amp;s.push({start:-1,count:-1,z:-1,index:-1});let u=s[this.index];o.push(u),this.index++,u.start=t,u.count=e,u.z=i,u.index=a}reset(){this.list.length=0,this.index=0}},na=new fe,a5=new Bt(1,1,1),JU=new Kr,s5=new Zp,Ty=new Zn,ru=new Xn,Ap=new B,$U=new B,r5=new B,gb=new wb,Ui=new En,Ay=[];function o5(n,t,e=0){let i=t.itemSize;if(n.isInterleavedBufferAttribute||n.array.constructor!==t.array.constructor){let a=n.count;for(let s=0;s&amp;amp;lt;a;s++)for(let o=0;o&amp;amp;lt;i;o++)t.setComponent(s+e,o,n.getComponent(s,o))}else t.array.set(n.array,e*i);t.needsUpdate=!0}function ou(n,t){if(n.constructor!==t.constructor){let e=Math.min(n.length,t.length);for(let i=0;i&amp;amp;lt;e;i++)t[i]=n[i]}else{let e=Math.min(n.length,t.length);t.set(new n.constructor(n.buffer,0,e))}}var jp=class extends En{constructor(t,e,i=e*2,a){super(new ve,a),this.isBatchedMesh=!0,this.perObjectFrustumCulled=!0,this.sortObjects=!0,this.boundingBox=null,this.boundingSphere=null,this.customSort=null,this._instanceInfo=[],this._geometryInfo=[],this._availableInstanceIds=[],this._availableGeometryIds=[],this._nextIndexStart=0,this._nextVertexStart=0,this._geometryCount=0,this._visibilityChanged=!0,this._geometryInitialized=!1,this._maxInstanceCount=t,this._maxVertexCount=e,this._maxIndexCount=i,this._multiDrawCounts=new Int32Array(t),this._multiDrawStarts=new Int32Array(t),this._multiDrawCount=0,this._multiDrawInstances=null,this._matricesTexture=null,this._indirectTexture=null,this._colorsTexture=null,this._initMatricesTexture(),this._initIndirectTexture()}get maxInstanceCount(){return this._maxInstanceCount}get instanceCount(){return this._instanceInfo.length-this._availableInstanceIds.length}get unusedVertexCount(){return this._maxVertexCount-this._nextVertexStart}get unusedIndexCount(){return this._maxIndexCount-this._nextIndexStart}_initMatricesTexture(){let t=Math.sqrt(this._maxInstanceCount*4);t=Math.ceil(t/4)*4,t=Math.max(t,4);let e=new Float32Array(t*t*4),i=new Oa(e,t,t,li,qi);this._matricesTexture=i}_initIndirectTexture(){let t=Math.sqrt(this._maxInstanceCount);t=Math.ceil(t);let e=new Uint32Array(t*t),i=new Oa(e,t,t,xh,or);this._indirectTexture=i}_initColorsTexture(){let t=Math.sqrt(this._maxInstanceCount);t=Math.ceil(t);let e=new Float32Array(t*t*4).fill(1),i=new Oa(e,t,t,li,qi);i.colorSpace=we.workingColorSpace,this._colorsTexture=i}_initializeGeometry(t){let e=this.geometry,i=this._maxVertexCount,a=this._maxIndexCount;if(this._geometryInitialized===!1){for(let s in t.attributes){let o=t.getAttribute(s),{array:u,itemSize:c,normalized:h}=o,d=new u.constructor(i*c),m=new Xe(d,c,h);e.setAttribute(s,m)}if(t.getIndex()!==null){let s=i&amp;amp;gt;65535?new Uint32Array(a):new Uint16Array(a);e.setIndex(new Xe(s,1))}this._geometryInitialized=!0}}_validateGeometry(t){let e=this.geometry;if(!!t.getIndex()!=!!e.getIndex())throw new Error(&amp;amp;#39;THREE.BatchedMesh: All geometries must consistently have &amp;amp;quot;index&amp;amp;quot;.&amp;amp;#39;);for(let i in e.attributes){if(!t.hasAttribute(i))throw new Error(`THREE.BatchedMesh: Added geometry missing &amp;amp;quot;${i}&amp;amp;quot;. All geometries must have consistent attributes.`);let a=t.getAttribute(i),s=e.getAttribute(i);if(a.itemSize!==s.itemSize||a.normalized!==s.normalized)throw new Error(&amp;amp;quot;THREE.BatchedMesh: All attributes must have a consistent itemSize and normalized value.&amp;amp;quot;)}}validateInstanceId(t){let e=this._instanceInfo;if(t&amp;amp;lt;0||t&amp;amp;gt;=e.length||e[t].active===!1)throw new Error(`THREE.BatchedMesh: Invalid instanceId ${t}. Instance is either out of range or has been deleted.`)}validateGeometryId(t){let e=this._geometryInfo;if(t&amp;amp;lt;0||t&amp;amp;gt;=e.length||e[t].active===!1)throw new Error(`THREE.BatchedMesh: Invalid geometryId ${t}. Geometry is either out of range or has been deleted.`)}setCustomSort(t){return this.customSort=t,this}computeBoundingBox(){this.boundingBox===null&amp;amp;amp;&amp;amp;amp;(this.boundingBox=new Zn);let t=this.boundingBox,e=this._instanceInfo;t.makeEmpty();for(let i=0,a=e.length;i&amp;amp;lt;a;i++){if(e[i].active===!1)continue;let s=e[i].geometryIndex;this.getMatrixAt(i,na),this.getBoundingBoxAt(s,Ty).applyMatrix4(na),t.union(Ty)}}computeBoundingSphere(){this.boundingSphere===null&amp;amp;amp;&amp;amp;amp;(this.boundingSphere=new Xn);let t=this.boundingSphere,e=this._instanceInfo;t.makeEmpty();for(let i=0,a=e.length;i&amp;amp;lt;a;i++){if(e[i].active===!1)continue;let s=e[i].geometryIndex;this.getMatrixAt(i,na),this.getBoundingSphereAt(s,ru).applyMatrix4(na),t.union(ru)}}addInstance(t){if(this._instanceInfo.length&amp;amp;gt;=this.maxInstanceCount&amp;amp;amp;&amp;amp;amp;this._availableInstanceIds.length===0)throw new Error(&amp;amp;quot;THREE.BatchedMesh: Maximum item count reached.&amp;amp;quot;);let i={visible:!0,active:!0,geometryIndex:t},a=null;this._availableInstanceIds.length&amp;amp;gt;0?(this._availableInstanceIds.sort(mb),a=this._availableInstanceIds.shift(),this._instanceInfo[a]=i):(a=this._instanceInfo.length,this._instanceInfo.push(i));let s=this._matricesTexture;na.identity().toArray(s.image.data,a*16),s.needsUpdate=!0;let o=this._colorsTexture;return o&amp;amp;amp;&amp;amp;amp;(a5.toArray(o.image.data,a*4),o.needsUpdate=!0),this._visibilityChanged=!0,a}addGeometry(t,e=-1,i=-1){this._initializeGeometry(t),this._validateGeometry(t);let a={vertexStart:-1,vertexCount:-1,reservedVertexCount:-1,indexStart:-1,indexCount:-1,reservedIndexCount:-1,start:-1,count:-1,boundingBox:null,boundingSphere:null,active:!0},s=this._geometryInfo;a.vertexStart=this._nextVertexStart,a.reservedVertexCount=e===-1?t.getAttribute(&amp;amp;quot;position&amp;amp;quot;).count:e;let o=t.getIndex();if(o!==null&amp;amp;amp;&amp;amp;amp;(a.indexStart=this._nextIndexStart,a.reservedIndexCount=i===-1?o.count:i),a.indexStart!==-1&amp;amp;amp;&amp;amp;amp;a.indexStart+a.reservedIndexCount&amp;amp;gt;this._maxIndexCount||a.vertexStart+a.reservedVertexCount&amp;amp;gt;this._maxVertexCount)throw new Error(&amp;amp;quot;THREE.BatchedMesh: Reserved space request exceeds the maximum buffer size.&amp;amp;quot;);let c;return this._availableGeometryIds.length&amp;amp;gt;0?(this._availableGeometryIds.sort(mb),c=this._availableGeometryIds.shift(),s[c]=a):(c=this._geometryCount,this._geometryCount++,s.push(a)),this.setGeometryAt(c,t),this._nextIndexStart=a.indexStart+a.reservedIndexCount,this._nextVertexStart=a.vertexStart+a.reservedVertexCount,c}setGeometryAt(t,e){if(t&amp;amp;gt;=this._geometryCount)throw new Error(&amp;amp;quot;THREE.BatchedMesh: Maximum geometry count reached.&amp;amp;quot;);this._validateGeometry(e);let i=this.geometry,a=i.getIndex()!==null,s=i.getIndex(),o=e.getIndex(),u=this._geometryInfo[t];if(a&amp;amp;amp;&amp;amp;amp;o.count&amp;amp;gt;u.reservedIndexCount||e.attributes.position.count&amp;amp;gt;u.reservedVertexCount)throw new Error(&amp;amp;quot;THREE.BatchedMesh: Reserved space not large enough for provided geometry.&amp;amp;quot;);let c=u.vertexStart,h=u.reservedVertexCount;u.vertexCount=e.getAttribute(&amp;amp;quot;position&amp;amp;quot;).count;for(let d in i.attributes){let m=e.getAttribute(d),g=i.getAttribute(d);o5(m,g,c);let y=m.itemSize;for(let x=m.count,b=h;x&amp;amp;lt;b;x++){let M=c+x;for(let v=0;v&amp;amp;lt;y;v++)g.setComponent(M,v,0)}g.needsUpdate=!0,g.addUpdateRange(c*y,h*y)}if(a){let d=u.indexStart,m=u.reservedIndexCount;u.indexCount=e.getIndex().count;for(let g=0;g&amp;amp;lt;o.count;g++)s.setX(d+g,c+o.getX(g));for(let g=o.count,y=m;g&amp;amp;lt;y;g++)s.setX(d+g,c);s.needsUpdate=!0,s.addUpdateRange(d,u.reservedIndexCount)}return u.start=a?u.indexStart:u.vertexStart,u.count=a?u.indexCount:u.vertexCount,u.boundingBox=null,e.boundingBox!==null&amp;amp;amp;&amp;amp;amp;(u.boundingBox=e.boundingBox.clone()),u.boundingSphere=null,e.boundingSphere!==null&amp;amp;amp;&amp;amp;amp;(u.boundingSphere=e.boundingSphere.clone()),this._visibilityChanged=!0,t}deleteGeometry(t){let e=this._geometryInfo;if(t&amp;amp;gt;=e.length||e[t].active===!1)return this;let i=this._instanceInfo;for(let a=0,s=i.length;a&amp;amp;lt;s;a++)i[a].active&amp;amp;amp;&amp;amp;amp;i[a].geometryIndex===t&amp;amp;amp;&amp;amp;amp;this.deleteInstance(a);return e[t].active=!1,this._availableGeometryIds.push(t),this._visibilityChanged=!0,this}deleteInstance(t){return this.validateInstanceId(t),this._instanceInfo[t].active=!1,this._availableInstanceIds.push(t),this._visibilityChanged=!0,this}optimize(){let t=0,e=0,i=this._geometryInfo,a=i.map((o,u)=&amp;amp;gt;u).sort((o,u)=&amp;amp;gt;i[o].vertexStart-i[u].vertexStart),s=this.geometry;for(let o=0,u=i.length;o&amp;amp;lt;u;o++){let c=a[o],h=i[c];if(h.active!==!1){if(s.index!==null){if(h.indexStart!==e){let{indexStart:d,vertexStart:m,reservedIndexCount:g}=h,y=s.index,x=y.array,b=t-m;for(let M=d;M&amp;amp;lt;d+g;M++)x[M]=x[M]+b;y.array.copyWithin(e,d,d+g),y.addUpdateRange(e,g),h.indexStart=e}e+=h.reservedIndexCount}if(h.vertexStart!==t){let{vertexStart:d,reservedVertexCount:m}=h,g=s.attributes;for(let y in g){let x=g[y],{array:b,itemSize:M}=x;b.copyWithin(t*M,d*M,(d+m)*M),x.addUpdateRange(t*M,m*M)}h.vertexStart=t}t+=h.reservedVertexCount,h.start=s.index?h.indexStart:h.vertexStart,this._nextIndexStart=s.index?h.indexStart+h.reservedIndexCount:0,this._nextVertexStart=h.vertexStart+h.reservedVertexCount}}return this}getBoundingBoxAt(t,e){if(t&amp;amp;gt;=this._geometryCount)return null;let i=this.geometry,a=this._geometryInfo[t];if(a.boundingBox===null){let s=new Zn,o=i.index,u=i.attributes.position;for(let c=a.start,h=a.start+a.count;c&amp;amp;lt;h;c++){let d=c;o&amp;amp;amp;&amp;amp;amp;(d=o.getX(d)),s.expandByPoint(Ap.fromBufferAttribute(u,d))}a.boundingBox=s}return e.copy(a.boundingBox),e}getBoundingSphereAt(t,e){if(t&amp;amp;gt;=this._geometryCount)return null;let i=this.geometry,a=this._geometryInfo[t];if(a.boundingSphere===null){let s=new Xn;this.getBoundingBoxAt(t,Ty),Ty.getCenter(s.center);let o=i.index,u=i.attributes.position,c=0;for(let h=a.start,d=a.start+a.count;h&amp;amp;lt;d;h++){let m=h;o&amp;amp;amp;&amp;amp;amp;(m=o.getX(m)),Ap.fromBufferAttribute(u,m),c=Math.max(c,s.center.distanceToSquared(Ap))}s.radius=Math.sqrt(c),a.boundingSphere=s}return e.copy(a.boundingSphere),e}setMatrixAt(t,e){this.validateInstanceId(t);let i=this._matricesTexture,a=this._matricesTexture.image.data;return e.toArray(a,t*16),i.needsUpdate=!0,this}getMatrixAt(t,e){return this.validateInstanceId(t),e.fromArray(this._matricesTexture.image.data,t*16)}setColorAt(t,e){return this.validateInstanceId(t),this._colorsTexture===null&amp;amp;amp;&amp;amp;amp;this._initColorsTexture(),e.toArray(this._colorsTexture.image.data,t*4),this._colorsTexture.needsUpdate=!0,this}getColorAt(t,e){return this.validateInstanceId(t),e.fromArray(this._colorsTexture.image.data,t*4)}setVisibleAt(t,e){return this.validateInstanceId(t),this._instanceInfo[t].visible===e?this:(this._instanceInfo[t].visible=e,this._visibilityChanged=!0,this)}getVisibleAt(t){return this.validateInstanceId(t),this._instanceInfo[t].visible}setGeometryIdAt(t,e){return this.validateInstanceId(t),this.validateGeometryId(e),this._instanceInfo[t].geometryIndex=e,this}getGeometryIdAt(t){return this.validateInstanceId(t),this._instanceInfo[t].geometryIndex}getGeometryRangeAt(t,e={}){this.validateGeometryId(t);let i=this._geometryInfo[t];return e.vertexStart=i.vertexStart,e.vertexCount=i.vertexCount,e.reservedVertexCount=i.reservedVertexCount,e.indexStart=i.indexStart,e.indexCount=i.indexCount,e.reservedIndexCount=i.reservedIndexCount,e.start=i.start,e.count=i.count,e}setInstanceCount(t){let e=this._availableInstanceIds,i=this._instanceInfo;for(e.sort(mb);e[e.length-1]===i.length-1;)i.pop(),e.pop();if(t&amp;amp;lt;i.length)throw new Error(`BatchedMesh: Instance ids outside the range ${t} are being used. Cannot shrink instance count.`);let a=new Int32Array(t),s=new Int32Array(t);ou(this._multiDrawCounts,a),ou(this._multiDrawStarts,s),this._multiDrawCounts=a,this._multiDrawStarts=s,this._maxInstanceCount=t;let o=this._indirectTexture,u=this._matricesTexture,c=this._colorsTexture;o.dispose(),this._initIndirectTexture(),ou(o.image.data,this._indirectTexture.image.data),u.dispose(),this._initMatricesTexture(),ou(u.image.data,this._matricesTexture.image.data),c&amp;amp;amp;&amp;amp;amp;(c.dispose(),this._initColorsTexture(),ou(c.image.data,this._colorsTexture.image.data))}setGeometrySize(t,e){let i=[...this._geometryInfo].filter(u=&amp;amp;gt;u.active);if(Math.max(...i.map(u=&amp;amp;gt;u.vertexStart+u.reservedVertexCount))&amp;amp;gt;t)throw new Error(`BatchedMesh: Geometry vertex values are being used outside the range ${e}. Cannot shrink further.`);if(this.geometry.index&amp;amp;amp;&amp;amp;amp;Math.max(...i.map(c=&amp;amp;gt;c.indexStart+c.reservedIndexCount))&amp;amp;gt;e)throw new Error(`BatchedMesh: Geometry index values are being used outside the range ${e}. Cannot shrink further.`);let s=this.geometry;s.dispose(),this._maxVertexCount=t,this._maxIndexCount=e,this._geometryInitialized&amp;amp;amp;&amp;amp;amp;(this._geometryInitialized=!1,this.geometry=new ve,this._initializeGeometry(s));let o=this.geometry;s.index&amp;amp;amp;&amp;amp;amp;ou(s.index.array,o.index.array);for(let u in s.attributes)ou(s.attributes[u].array,o.attributes[u].array)}raycast(t,e){let i=this._instanceInfo,a=this._geometryInfo,s=this.matrixWorld,o=this.geometry;Ui.material=this.material,Ui.geometry.index=o.index,Ui.geometry.attributes=o.attributes,Ui.geometry.boundingBox===null&amp;amp;amp;&amp;amp;amp;(Ui.geometry.boundingBox=new Zn),Ui.geometry.boundingSphere===null&amp;amp;amp;&amp;amp;amp;(Ui.geometry.boundingSphere=new Xn);for(let u=0,c=i.length;u&amp;amp;lt;c;u++){if(!i[u].visible||!i[u].active)continue;let h=i[u].geometryIndex,d=a[h];Ui.geometry.setDrawRange(d.start,d.count),this.getMatrixAt(u,Ui.matrixWorld).premultiply(s),this.getBoundingBoxAt(h,Ui.geometry.boundingBox),this.getBoundingSphereAt(h,Ui.geometry.boundingSphere),Ui.raycast(t,Ay);for(let m=0,g=Ay.length;m&amp;amp;lt;g;m++){let y=Ay[m];y.object=this,y.batchId=u,e.push(y)}Ay.length=0}Ui.material=null,Ui.geometry.index=null,Ui.geometry.attributes={},Ui.geometry.setDrawRange(0,1/0)}copy(t){return super.copy(t),this.geometry=t.geometry.clone(),this.perObjectFrustumCulled=t.perObjectFrustumCulled,this.sortObjects=t.sortObjects,this.boundingBox=t.boundingBox!==null?t.boundingBox.clone():null,this.boundingSphere=t.boundingSphere!==null?t.boundingSphere.clone():null,this._geometryInfo=t._geometryInfo.map(e=&amp;amp;gt;({...e,boundingBox:e.boundingBox!==null?e.boundingBox.clone():null,boundingSphere:e.boundingSphere!==null?e.boundingSphere.clone():null})),this._instanceInfo=t._instanceInfo.map(e=&amp;amp;gt;({...e})),this._availableInstanceIds=t._availableInstanceIds.slice(),this._availableGeometryIds=t._availableGeometryIds.slice(),this._nextIndexStart=t._nextIndexStart,this._nextVertexStart=t._nextVertexStart,this._geometryCount=t._geometryCount,this._maxInstanceCount=t._maxInstanceCount,this._maxVertexCount=t._maxVertexCount,this._maxIndexCount=t._maxIndexCount,this._geometryInitialized=t._geometryInitialized,this._multiDrawCounts=t._multiDrawCounts.slice(),this._multiDrawStarts=t._multiDrawStarts.slice(),this._indirectTexture=t._indirectTexture.clone(),this._indirectTexture.image.data=this._indirectTexture.image.data.slice(),this._matricesTexture=t._matricesTexture.clone(),this._matricesTexture.image.data=this._matricesTexture.image.data.slice(),this._colorsTexture!==null&amp;amp;amp;&amp;amp;amp;(this._colorsTexture=t._colorsTexture.clone(),this._colorsTexture.image.data=this._colorsTexture.image.data.slice()),this}dispose(){this.geometry.dispose(),this._matricesTexture.dispose(),this._matricesTexture=null,this._indirectTexture.dispose(),this._indirectTexture=null,this._colorsTexture!==null&amp;amp;amp;&amp;amp;amp;(this._colorsTexture.dispose(),this._colorsTexture=null)}onBeforeRender(t,e,i,a,s){if(!this._visibilityChanged&amp;amp;amp;&amp;amp;amp;!this.perObjectFrustumCulled&amp;amp;amp;&amp;amp;amp;!this.sortObjects)return;let o=a.getIndex(),u=o===null?1:o.array.BYTES_PER_ELEMENT,c=this._instanceInfo,h=this._multiDrawStarts,d=this._multiDrawCounts,m=this._geometryInfo,g=this.perObjectFrustumCulled,y=this._indirectTexture,x=y.image.data,b=i.isArrayCamera?s5:JU;g&amp;amp;amp;&amp;amp;amp;!i.isArrayCamera&amp;amp;amp;&amp;amp;amp;(na.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse).multiply(this.matrixWorld),JU.setFromProjectionMatrix(na,i.coordinateSystem,i.reversedDepth));let M=0;if(this.sortObjects){na.copy(this.matrixWorld).invert(),Ap.setFromMatrixPosition(i.matrixWorld).applyMatrix4(na),$U.set(0,0,-1).transformDirection(i.matrixWorld).transformDirection(na);for(let E=0,T=c.length;E&amp;amp;lt;T;E++)if(c[E].visible&amp;amp;amp;&amp;amp;amp;c[E].active){let w=c[E].geometryIndex;this.getMatrixAt(E,na),this.getBoundingSphereAt(w,ru).applyMatrix4(na);let U=!1;if(g&amp;amp;amp;&amp;amp;amp;(U=!b.intersectsSphere(ru,i)),!U){let O=m[w],z=r5.subVectors(ru.center,Ap).dot($U);gb.push(O.start,O.count,z,E)}}let v=gb.list,S=this.customSort;S===null?v.sort(s.transparent?i5:n5):S.call(this,v,i);for(let E=0,T=v.length;E&amp;amp;lt;T;E++){let w=v[E];h[M]=w.start*u,d[M]=w.count,x[M]=w.index,M++}gb.reset()}else for(let v=0,S=c.length;v&amp;amp;lt;S;v++)if(c[v].visible&amp;amp;amp;&amp;amp;amp;c[v].active){let E=c[v].geometryIndex,T=!1;if(g&amp;amp;amp;&amp;amp;amp;(this.getMatrixAt(v,na),this.getBoundingSphereAt(E,ru).applyMatrix4(na),T=!b.intersectsSphere(ru,i)),!T){let w=m[E];h[M]=w.start*u,d[M]=w.count,x[M]=v,M++}}y.needsUpdate=!0,this._multiDrawCount=M,this._visibilityChanged=!1}onBeforeShadow(t,e,i,a,s,o){this.onBeforeRender(t,null,a,s,o)}},ui=class extends jn{constructor(t){super(),this.isLineBasicMaterial=!0,this.type=&amp;amp;quot;LineBasicMaterial&amp;amp;quot;,this.color=new Bt(16777215),this.map=null,this.linewidth=1,this.linecap=&amp;amp;quot;round&amp;amp;quot;,this.linejoin=&amp;amp;quot;round&amp;amp;quot;,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.linewidth=t.linewidth,this.linecap=t.linecap,this.linejoin=t.linejoin,this.fog=t.fog,this}},e_=new B,n_=new B,tN=new fe,Rp=new jr,Ry=new Xn,vb=new B,eN=new B,Cs=class extends Ie{constructor(t=new ve,e=new ui){super(),this.isLine=!0,this.type=&amp;amp;quot;Line&amp;amp;quot;,this.geometry=t,this.material=e,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}computeLineDistances(){let t=this.geometry;if(t.index===null){let e=t.attributes.position,i=[0];for(let a=1,s=e.count;a&amp;amp;lt;s;a++)e_.fromBufferAttribute(e,a-1),n_.fromBufferAttribute(e,a),i[a]=i[a-1],i[a]+=e_.distanceTo(n_);t.setAttribute(&amp;amp;quot;lineDistance&amp;amp;quot;,new Xt(i,1))}else console.warn(&amp;amp;quot;THREE.Line.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.&amp;amp;quot;);return this}raycast(t,e){let i=this.geometry,a=this.matrixWorld,s=t.params.Line.threshold,o=i.drawRange;if(i.boundingSphere===null&amp;amp;amp;&amp;amp;amp;i.computeBoundingSphere(),Ry.copy(i.boundingSphere),Ry.applyMatrix4(a),Ry.radius+=s,t.ray.intersectsSphere(Ry)===!1)return;tN.copy(a).invert(),Rp.copy(t.ray).applyMatrix4(tN);let u=s/((this.scale.x+this.scale.y+this.scale.z)/3),c=u*u,h=this.isLineSegments?2:1,d=i.index,g=i.attributes.position;if(d!==null){let y=Math.max(0,o.start),x=Math.min(d.count,o.start+o.count);for(let b=y,M=x-1;b&amp;amp;lt;M;b+=h){let v=d.getX(b),S=d.getX(b+1),E=Cy(this,t,Rp,c,v,S,b);E&amp;amp;amp;&amp;amp;amp;e.push(E)}if(this.isLineLoop){let b=d.getX(x-1),M=d.getX(y),v=Cy(this,t,Rp,c,b,M,x-1);v&amp;amp;amp;&amp;amp;amp;e.push(v)}}else{let y=Math.max(0,o.start),x=Math.min(g.count,o.start+o.count);for(let b=y,M=x-1;b&amp;amp;lt;M;b+=h){let v=Cy(this,t,Rp,c,b,b+1,b);v&amp;amp;amp;&amp;amp;amp;e.push(v)}if(this.isLineLoop){let b=Cy(this,t,Rp,c,x-1,y,x-1);b&amp;amp;amp;&amp;amp;amp;e.push(b)}}}updateMorphTargets(){let e=this.geometry.morphAttributes,i=Object.keys(e);if(i.length&amp;amp;gt;0){let a=e[i[0]];if(a!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=a.length;s&amp;amp;lt;o;s++){let u=a[s].name||String(s);this.morphTargetInfluences.push(0),this.morphTargetDictionary[u]=s}}}}};function Cy(n,t,e,i,a,s,o){let u=n.geometry.attributes.position;if(e_.fromBufferAttribute(u,a),n_.fromBufferAttribute(u,s),e.distanceSqToSegment(e_,n_,vb,eN)&amp;amp;gt;i)return;vb.applyMatrix4(n.matrixWorld);let h=t.ray.origin.distanceTo(vb);if(!(h&amp;amp;lt;t.near||h&amp;amp;gt;t.far))return{distance:h,point:eN.clone().applyMatrix4(n.matrixWorld),index:o,face:null,faceIndex:null,barycoord:null,object:n}}var nN=new B,iN=new B,Ba=class extends Cs{constructor(t,e){super(t,e),this.isLineSegments=!0,this.type=&amp;amp;quot;LineSegments&amp;amp;quot;}computeLineDistances(){let t=this.geometry;if(t.index===null){let e=t.attributes.position,i=[];for(let a=0,s=e.count;a&amp;amp;lt;s;a+=2)nN.fromBufferAttribute(e,a),iN.fromBufferAttribute(e,a+1),i[a]=a===0?0:i[a-1],i[a+1]=i[a]+nN.distanceTo(iN);t.setAttribute(&amp;amp;quot;lineDistance&amp;amp;quot;,new Xt(i,1))}else console.warn(&amp;amp;quot;THREE.LineSegments.computeLineDistances(): Computation only possible with non-indexed BufferGeometry.&amp;amp;quot;);return this}},Qp=class extends Cs{constructor(t,e){super(t,e),this.isLineLoop=!0,this.type=&amp;amp;quot;LineLoop&amp;amp;quot;}},Zf=class extends jn{constructor(t){super(),this.isPointsMaterial=!0,this.type=&amp;amp;quot;PointsMaterial&amp;amp;quot;,this.color=new Bt(16777215),this.map=null,this.alphaMap=null,this.size=1,this.sizeAttenuation=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.alphaMap=t.alphaMap,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this.fog=t.fog,this}},aN=new fe,Db=new jr,wy=new Xn,Dy=new B,Kp=class extends Ie{constructor(t=new ve,e=new Zf){super(),this.isPoints=!0,this.type=&amp;amp;quot;Points&amp;amp;quot;,this.geometry=t,this.material=e,this.morphTargetDictionary=void 0,this.morphTargetInfluences=void 0,this.updateMorphTargets()}copy(t,e){return super.copy(t,e),this.material=Array.isArray(t.material)?t.material.slice():t.material,this.geometry=t.geometry,this}raycast(t,e){let i=this.geometry,a=this.matrixWorld,s=t.params.Points.threshold,o=i.drawRange;if(i.boundingSphere===null&amp;amp;amp;&amp;amp;amp;i.computeBoundingSphere(),wy.copy(i.boundingSphere),wy.applyMatrix4(a),wy.radius+=s,t.ray.intersectsSphere(wy)===!1)return;aN.copy(a).invert(),Db.copy(t.ray).applyMatrix4(aN);let u=s/((this.scale.x+this.scale.y+this.scale.z)/3),c=u*u,h=i.index,m=i.attributes.position;if(h!==null){let g=Math.max(0,o.start),y=Math.min(h.count,o.start+o.count);for(let x=g,b=y;x&amp;amp;lt;b;x++){let M=h.getX(x);Dy.fromBufferAttribute(m,M),sN(Dy,M,c,a,t,e,this)}}else{let g=Math.max(0,o.start),y=Math.min(m.count,o.start+o.count);for(let x=g,b=y;x&amp;amp;lt;b;x++)Dy.fromBufferAttribute(m,x),sN(Dy,x,c,a,t,e,this)}}updateMorphTargets(){let e=this.geometry.morphAttributes,i=Object.keys(e);if(i.length&amp;amp;gt;0){let a=e[i[0]];if(a!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=a.length;s&amp;amp;lt;o;s++){let u=a[s].name||String(s);this.morphTargetInfluences.push(0),this.morphTargetDictionary[u]=s}}}}};function sN(n,t,e,i,a,s,o){let u=Db.distanceSqToPoint(n);if(u&amp;amp;lt;e){let c=new B;Db.closestPointToPoint(n,c),c.applyMatrix4(i);let h=a.ray.origin.distanceTo(c);if(h&amp;amp;lt;a.near||h&amp;amp;gt;a.far)return;s.push({distance:h,distanceToRay:Math.sqrt(u),point:c,index:t,face:null,faceIndex:null,barycoord:null,object:o})}}var Jp=class extends zn{constructor(t,e,i,a,s=Gn,o=Gn,u,c,h){super(t,e,i,a,s,o,u,c,h),this.isVideoTexture=!0,this.generateMipmaps=!1,this._requestVideoFrameCallbackId=0;let d=this;function m(){d.needsUpdate=!0,d._requestVideoFrameCallbackId=t.requestVideoFrameCallback(m)}&amp;amp;quot;requestVideoFrameCallback&amp;amp;quot;in t&amp;amp;amp;&amp;amp;amp;(this._requestVideoFrameCallbackId=t.requestVideoFrameCallback(m))}clone(){return new this.constructor(this.image).copy(this)}update(){let t=this.image;&amp;amp;quot;requestVideoFrameCallback&amp;amp;quot;in t===!1&amp;amp;amp;&amp;amp;amp;t.readyState&amp;amp;gt;=t.HAVE_CURRENT_DATA&amp;amp;amp;&amp;amp;amp;(this.needsUpdate=!0)}dispose(){this._requestVideoFrameCallbackId!==0&amp;amp;amp;&amp;amp;amp;this.source.data.cancelVideoFrameCallback(this._requestVideoFrameCallbackId),super.dispose()}},i_=class extends Jp{constructor(t,e,i,a,s,o,u,c){super({},t,e,i,a,s,o,u,c),this.isVideoFrameTexture=!0}update(){}clone(){return new this.constructor().copy(this)}setFrame(t){this.image=t,this.needsUpdate=!0}},a_=class extends zn{constructor(t,e){super({width:t,height:e}),this.isFramebufferTexture=!0,this.magFilter=oi,this.minFilter=oi,this.generateMipmaps=!1,this.needsUpdate=!0}},Au=class extends zn{constructor(t,e,i,a,s,o,u,c,h,d,m,g){super(null,o,u,c,h,d,a,s,m,g),this.isCompressedTexture=!0,this.image={width:e,height:i},this.mipmaps=t,this.flipY=!1,this.generateMipmaps=!1}},s_=class extends Au{constructor(t,e,i,a,s,o){super(t,e,i,s,o),this.isCompressedArrayTexture=!0,this.image.depth=a,this.wrapR=Ua,this.layerUpdates=new Set}addLayerUpdate(t){this.layerUpdates.add(t)}clearLayerUpdates(){this.layerUpdates.clear()}},r_=class extends Au{constructor(t,e,i){super(void 0,t[0].width,t[0].height,e,i,rr),this.isCompressedCubeTexture=!0,this.isCubeTexture=!0,this.image=t}},o_=class extends zn{constructor(t,e,i,a,s,o,u,c,h){super(t,e,i,a,s,o,u,c,h),this.isCanvasTexture=!0,this.needsUpdate=!0}},jf=class extends zn{constructor(t,e,i=or,a,s,o,u=oi,c=oi,h,d=gu,m=1){if(d!==gu&amp;amp;amp;&amp;amp;amp;d!==Iu)throw new Error(&amp;amp;quot;DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat&amp;amp;quot;);let g={width:t,height:e,depth:m};super(g,a,s,o,u,c,d,i,h),this.isDepthTexture=!0,this.flipY=!1,this.generateMipmaps=!1,this.compareFunction=null}copy(t){return super.copy(t),this.source=new Ts(Object.assign({},t.image)),this.compareFunction=t.compareFunction,this}toJSON(t){let e=super.toJSON(t);return this.compareFunction!==null&amp;amp;amp;&amp;amp;amp;(e.compareFunction=this.compareFunction),e}},$p=class n extends ve{constructor(t=1,e=1,i=4,a=8,s=1){super(),this.type=&amp;amp;quot;CapsuleGeometry&amp;amp;quot;,this.parameters={radius:t,height:e,capSegments:i,radialSegments:a,heightSegments:s},e=Math.max(0,e),i=Math.max(1,Math.floor(i)),a=Math.max(3,Math.floor(a)),s=Math.max(1,Math.floor(s));let o=[],u=[],c=[],h=[],d=e/2,m=Math.PI/2*t,g=e,y=2*m+g,x=i*2+s,b=a+1,M=new B,v=new B;for(let S=0;S&amp;amp;lt;=x;S++){let E=0,T=0,w=0,U=0;if(S&amp;amp;lt;=i){let C=S/i,R=C*Math.PI/2;T=-d-t*Math.cos(R),w=t*Math.sin(R),U=-t*Math.cos(R),E=C*m}else if(S&amp;amp;lt;=i+s){let C=(S-i)/s;T=-d+C*e,w=t,U=0,E=m+C*g}else{let C=(S-i-s)/i,R=C*Math.PI/2;T=d+t*Math.sin(R),w=t*Math.cos(R),U=t*Math.sin(R),E=m+g+C*m}let O=Math.max(0,Math.min(1,E/y)),z=0;S===0?z=.5/a:S===x&amp;amp;amp;&amp;amp;amp;(z=-.5/a);for(let C=0;C&amp;amp;lt;=a;C++){let R=C/a,P=R*Math.PI*2,j=Math.sin(P),X=Math.cos(P);v.x=-w*X,v.y=T,v.z=w*j,u.push(v.x,v.y,v.z),M.set(-w*X,U,w*j),M.normalize(),c.push(M.x,M.y,M.z),h.push(R+z,O)}if(S&amp;amp;gt;0){let C=(S-1)*b;for(let R=0;R&amp;amp;lt;a;R++){let P=C+R,j=C+R+1,X=S*b+R,Z=S*b+R+1;o.push(P,j,X),o.push(j,Z,X)}}}this.setIndex(o),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(u,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(c,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(h,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.radius,t.height,t.capSegments,t.radialSegments,t.heightSegments)}},tm=class n extends ve{constructor(t=1,e=32,i=0,a=Math.PI*2){super(),this.type=&amp;amp;quot;CircleGeometry&amp;amp;quot;,this.parameters={radius:t,segments:e,thetaStart:i,thetaLength:a},e=Math.max(3,e);let s=[],o=[],u=[],c=[],h=new B,d=new ct;o.push(0,0,0),u.push(0,0,1),c.push(.5,.5);for(let m=0,g=3;m&amp;amp;lt;=e;m++,g+=3){let y=i+m/e*a;h.x=t*Math.cos(y),h.y=t*Math.sin(y),o.push(h.x,h.y,h.z),u.push(0,0,1),d.x=(o[g]/t+1)/2,d.y=(o[g+1]/t+1)/2,c.push(d.x,d.y)}for(let m=1;m&amp;amp;lt;=e;m++)s.push(m,m+1,0);this.setIndex(s),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(o,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(u,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(c,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.radius,t.segments,t.thetaStart,t.thetaLength)}},Qf=class n extends ve{constructor(t=1,e=1,i=1,a=32,s=1,o=!1,u=0,c=Math.PI*2){super(),this.type=&amp;amp;quot;CylinderGeometry&amp;amp;quot;,this.parameters={radiusTop:t,radiusBottom:e,height:i,radialSegments:a,heightSegments:s,openEnded:o,thetaStart:u,thetaLength:c};let h=this;a=Math.floor(a),s=Math.floor(s);let d=[],m=[],g=[],y=[],x=0,b=[],M=i/2,v=0;S(),o===!1&amp;amp;amp;&amp;amp;amp;(t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;E(!0),e&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;E(!1)),this.setIndex(d),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(m,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(g,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(y,2));function S(){let T=new B,w=new B,U=0,O=(e-t)/i;for(let z=0;z&amp;amp;lt;=s;z++){let C=[],R=z/s,P=R*(e-t)+t;for(let j=0;j&amp;amp;lt;=a;j++){let X=j/a,Z=X*c+u,st=Math.sin(Z),et=Math.cos(Z);w.x=P*st,w.y=-R*i+M,w.z=P*et,m.push(w.x,w.y,w.z),T.set(st,O,et).normalize(),g.push(T.x,T.y,T.z),y.push(X,1-R),C.push(x++)}b.push(C)}for(let z=0;z&amp;amp;lt;a;z++)for(let C=0;C&amp;amp;lt;s;C++){let R=b[C][z],P=b[C+1][z],j=b[C+1][z+1],X=b[C][z+1];(t&amp;amp;gt;0||C!==0)&amp;amp;amp;&amp;amp;amp;(d.push(R,P,X),U+=3),(e&amp;amp;gt;0||C!==s-1)&amp;amp;amp;&amp;amp;amp;(d.push(P,j,X),U+=3)}h.addGroup(v,U,0),v+=U}function E(T){let w=x,U=new ct,O=new B,z=0,C=T===!0?t:e,R=T===!0?1:-1;for(let j=1;j&amp;amp;lt;=a;j++)m.push(0,M*R,0),g.push(0,R,0),y.push(.5,.5),x++;let P=x;for(let j=0;j&amp;amp;lt;=a;j++){let Z=j/a*c+u,st=Math.cos(Z),et=Math.sin(Z);O.x=C*et,O.y=M*R,O.z=C*st,m.push(O.x,O.y,O.z),g.push(0,R,0),U.x=st*.5+.5,U.y=et*.5*R+.5,y.push(U.x,U.y),x++}for(let j=0;j&amp;amp;lt;a;j++){let X=w+j,Z=P+j;T===!0?d.push(Z,Z+1,X):d.push(Z+1,Z,X),z+=3}h.addGroup(v,z,T===!0?1:2),v+=z}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.radiusTop,t.radiusBottom,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}},Kf=class n extends Qf{constructor(t=1,e=1,i=32,a=1,s=!1,o=0,u=Math.PI*2){super(0,t,e,i,a,s,o,u),this.type=&amp;amp;quot;ConeGeometry&amp;amp;quot;,this.parameters={radius:t,height:e,radialSegments:i,heightSegments:a,openEnded:s,thetaStart:o,thetaLength:u}}static fromJSON(t){return new n(t.radius,t.height,t.radialSegments,t.heightSegments,t.openEnded,t.thetaStart,t.thetaLength)}},Jr=class n extends ve{constructor(t=[],e=[],i=1,a=0){super(),this.type=&amp;amp;quot;PolyhedronGeometry&amp;amp;quot;,this.parameters={vertices:t,indices:e,radius:i,detail:a};let s=[],o=[];u(a),h(i),d(),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(s,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(s.slice(),3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(o,2)),a===0?this.computeVertexNormals():this.normalizeNormals();function u(S){let E=new B,T=new B,w=new B;for(let U=0;U&amp;amp;lt;e.length;U+=3)y(e[U+0],E),y(e[U+1],T),y(e[U+2],w),c(E,T,w,S)}function c(S,E,T,w){let U=w+1,O=[];for(let z=0;z&amp;amp;lt;=U;z++){O[z]=[];let C=S.clone().lerp(T,z/U),R=E.clone().lerp(T,z/U),P=U-z;for(let j=0;j&amp;amp;lt;=P;j++)j===0&amp;amp;amp;&amp;amp;amp;z===U?O[z][j]=C:O[z][j]=C.clone().lerp(R,j/P)}for(let z=0;z&amp;amp;lt;U;z++)for(let C=0;C&amp;amp;lt;2*(U-z)-1;C++){let R=Math.floor(C/2);C%2===0?(g(O[z][R+1]),g(O[z+1][R]),g(O[z][R])):(g(O[z][R+1]),g(O[z+1][R+1]),g(O[z+1][R]))}}function h(S){let E=new B;for(let T=0;T&amp;amp;lt;s.length;T+=3)E.x=s[T+0],E.y=s[T+1],E.z=s[T+2],E.normalize().multiplyScalar(S),s[T+0]=E.x,s[T+1]=E.y,s[T+2]=E.z}function d(){let S=new B;for(let E=0;E&amp;amp;lt;s.length;E+=3){S.x=s[E+0],S.y=s[E+1],S.z=s[E+2];let T=M(S)/2/Math.PI+.5,w=v(S)/Math.PI+.5;o.push(T,1-w)}x(),m()}function m(){for(let S=0;S&amp;amp;lt;o.length;S+=6){let E=o[S+0],T=o[S+2],w=o[S+4],U=Math.max(E,T,w),O=Math.min(E,T,w);U&amp;amp;gt;.9&amp;amp;amp;&amp;amp;amp;O&amp;amp;lt;.1&amp;amp;amp;&amp;amp;amp;(E&amp;amp;lt;.2&amp;amp;amp;&amp;amp;amp;(o[S+0]+=1),T&amp;amp;lt;.2&amp;amp;amp;&amp;amp;amp;(o[S+2]+=1),w&amp;amp;lt;.2&amp;amp;amp;&amp;amp;amp;(o[S+4]+=1))}}function g(S){s.push(S.x,S.y,S.z)}function y(S,E){let T=S*3;E.x=t[T+0],E.y=t[T+1],E.z=t[T+2]}function x(){let S=new B,E=new B,T=new B,w=new B,U=new ct,O=new ct,z=new ct;for(let C=0,R=0;C&amp;amp;lt;s.length;C+=9,R+=6){S.set(s[C+0],s[C+1],s[C+2]),E.set(s[C+3],s[C+4],s[C+5]),T.set(s[C+6],s[C+7],s[C+8]),U.set(o[R+0],o[R+1]),O.set(o[R+2],o[R+3]),z.set(o[R+4],o[R+5]),w.copy(S).add(E).add(T).divideScalar(3);let P=M(w);b(U,R+0,S,P),b(O,R+2,E,P),b(z,R+4,T,P)}}function b(S,E,T,w){w&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;S.x===1&amp;amp;amp;&amp;amp;amp;(o[E]=S.x-1),T.x===0&amp;amp;amp;&amp;amp;amp;T.z===0&amp;amp;amp;&amp;amp;amp;(o[E]=w/2/Math.PI+.5)}function M(S){return Math.atan2(S.z,-S.x)}function v(S){return Math.atan2(-S.y,Math.sqrt(S.x*S.x+S.z*S.z))}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.vertices,t.indices,t.radius,t.details)}},em=class n extends Jr{constructor(t=1,e=0){let i=(1+Math.sqrt(5))/2,a=1/i,s=[-1,-1,-1,-1,-1,1,-1,1,-1,-1,1,1,1,-1,-1,1,-1,1,1,1,-1,1,1,1,0,-a,-i,0,-a,i,0,a,-i,0,a,i,-a,-i,0,-a,i,0,a,-i,0,a,i,0,-i,0,-a,i,0,-a,-i,0,a,i,0,a],o=[3,11,7,3,7,15,3,15,13,7,19,17,7,17,6,7,6,15,17,4,8,17,8,10,17,10,6,8,0,16,8,16,2,8,2,10,0,12,1,0,1,18,0,18,16,6,10,2,6,2,13,6,13,15,2,16,18,2,18,3,2,3,13,18,1,9,18,9,11,18,11,3,4,14,12,4,12,0,4,0,8,11,9,5,11,5,19,11,19,7,19,5,14,19,14,4,19,4,17,1,12,14,1,14,5,1,5,9];super(s,o,t,e),this.type=&amp;amp;quot;DodecahedronGeometry&amp;amp;quot;,this.parameters={radius:t,detail:e}}static fromJSON(t){return new n(t.radius,t.detail)}},Uy=new B,Ny=new B,yb=new B,Oy=new bs,nm=class extends ve{constructor(t=null,e=1){if(super(),this.type=&amp;amp;quot;EdgesGeometry&amp;amp;quot;,this.parameters={geometry:t,thresholdAngle:e},t!==null){let a=Math.pow(10,4),s=Math.cos(mu*e),o=t.getIndex(),u=t.getAttribute(&amp;amp;quot;position&amp;amp;quot;),c=o?o.count:u.count,h=[0,0,0],d=[&amp;amp;quot;a&amp;amp;quot;,&amp;amp;quot;b&amp;amp;quot;,&amp;amp;quot;c&amp;amp;quot;],m=new Array(3),g={},y=[];for(let x=0;x&amp;amp;lt;c;x+=3){o?(h[0]=o.getX(x),h[1]=o.getX(x+1),h[2]=o.getX(x+2)):(h[0]=x,h[1]=x+1,h[2]=x+2);let{a:b,b:M,c:v}=Oy;if(b.fromBufferAttribute(u,h[0]),M.fromBufferAttribute(u,h[1]),v.fromBufferAttribute(u,h[2]),Oy.getNormal(yb),m[0]=`${Math.round(b.x*a)},${Math.round(b.y*a)},${Math.round(b.z*a)}`,m[1]=`${Math.round(M.x*a)},${Math.round(M.y*a)},${Math.round(M.z*a)}`,m[2]=`${Math.round(v.x*a)},${Math.round(v.y*a)},${Math.round(v.z*a)}`,!(m[0]===m[1]||m[1]===m[2]||m[2]===m[0]))for(let S=0;S&amp;amp;lt;3;S++){let E=(S+1)%3,T=m[S],w=m[E],U=Oy[d[S]],O=Oy[d[E]],z=`${T}_${w}`,C=`${w}_${T}`;C in g&amp;amp;amp;&amp;amp;amp;g[C]?(yb.dot(g[C].normal)&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;(y.push(U.x,U.y,U.z),y.push(O.x,O.y,O.z)),g[C]=null):z in g||(g[z]={index0:h[S],index1:h[E],normal:yb.clone()})}}for(let x in g)if(g[x]){let{index0:b,index1:M}=g[x];Uy.fromBufferAttribute(u,b),Ny.fromBufferAttribute(u,M),y.push(Uy.x,Uy.y,Uy.z),y.push(Ny.x,Ny.y,Ny.z)}this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(y,3))}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}},oa=class{constructor(){this.type=&amp;amp;quot;Curve&amp;amp;quot;,this.arcLengthDivisions=200,this.needsUpdate=!1,this.cacheArcLengths=null}getPoint(){console.warn(&amp;amp;quot;THREE.Curve: .getPoint() not implemented.&amp;amp;quot;)}getPointAt(t,e){let i=this.getUtoTmapping(t);return this.getPoint(i,e)}getPoints(t=5){let e=[];for(let i=0;i&amp;amp;lt;=t;i++)e.push(this.getPoint(i/t));return e}getSpacedPoints(t=5){let e=[];for(let i=0;i&amp;amp;lt;=t;i++)e.push(this.getPointAt(i/t));return e}getLength(){let t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&amp;amp;amp;&amp;amp;amp;this.cacheArcLengths.length===t+1&amp;amp;amp;&amp;amp;amp;!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let e=[],i,a=this.getPoint(0),s=0;e.push(0);for(let o=1;o&amp;amp;lt;=t;o++)i=this.getPoint(o/t),s+=i.distanceTo(a),e.push(s),a=i;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e=null){let i=this.getLengths(),a=0,s=i.length,o;e?o=e:o=t*i[s-1];let u=0,c=s-1,h;for(;u&amp;amp;lt;=c;)if(a=Math.floor(u+(c-u)/2),h=i[a]-o,h&amp;amp;lt;0)u=a+1;else if(h&amp;amp;gt;0)c=a-1;else{c=a;break}if(a=c,i[a]===o)return a/(s-1);let d=i[a],g=i[a+1]-d,y=(o-d)/g;return(a+y)/(s-1)}getTangent(t,e){let a=t-1e-4,s=t+1e-4;a&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(a=0),s&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(s=1);let o=this.getPoint(a),u=this.getPoint(s),c=e||(o.isVector2?new ct:new B);return c.copy(u).sub(o).normalize(),c}getTangentAt(t,e){let i=this.getUtoTmapping(t);return this.getTangent(i,e)}computeFrenetFrames(t,e=!1){let i=new B,a=[],s=[],o=[],u=new B,c=new fe;for(let y=0;y&amp;amp;lt;=t;y++){let x=y/t;a[y]=this.getTangentAt(x,new B)}s[0]=new B,o[0]=new B;let h=Number.MAX_VALUE,d=Math.abs(a[0].x),m=Math.abs(a[0].y),g=Math.abs(a[0].z);d&amp;amp;lt;=h&amp;amp;amp;&amp;amp;amp;(h=d,i.set(1,0,0)),m&amp;amp;lt;=h&amp;amp;amp;&amp;amp;amp;(h=m,i.set(0,1,0)),g&amp;amp;lt;=h&amp;amp;amp;&amp;amp;amp;i.set(0,0,1),u.crossVectors(a[0],i).normalize(),s[0].crossVectors(a[0],u),o[0].crossVectors(a[0],s[0]);for(let y=1;y&amp;amp;lt;=t;y++){if(s[y]=s[y-1].clone(),o[y]=o[y-1].clone(),u.crossVectors(a[y-1],a[y]),u.length()&amp;amp;gt;Number.EPSILON){u.normalize();let x=Math.acos(le(a[y-1].dot(a[y]),-1,1));s[y].applyMatrix4(c.makeRotationAxis(u,x))}o[y].crossVectors(a[y],s[y])}if(e===!0){let y=Math.acos(le(s[0].dot(s[t]),-1,1));y/=t,a[0].dot(u.crossVectors(s[0],s[t]))&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(y=-y);for(let x=1;x&amp;amp;lt;=t;x++)s[x].applyMatrix4(c.makeRotationAxis(a[x],y*x)),o[x].crossVectors(a[x],s[x])}return{tangents:a,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){let t={metadata:{version:4.7,type:&amp;amp;quot;Curve&amp;amp;quot;,generator:&amp;amp;quot;Curve.toJSON&amp;amp;quot;}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}},Ru=class extends oa{constructor(t=0,e=0,i=1,a=1,s=0,o=Math.PI*2,u=!1,c=0){super(),this.isEllipseCurve=!0,this.type=&amp;amp;quot;EllipseCurve&amp;amp;quot;,this.aX=t,this.aY=e,this.xRadius=i,this.yRadius=a,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=u,this.aRotation=c}getPoint(t,e=new ct){let i=e,a=Math.PI*2,s=this.aEndAngle-this.aStartAngle,o=Math.abs(s)&amp;amp;lt;Number.EPSILON;for(;s&amp;amp;lt;0;)s+=a;for(;s&amp;amp;gt;a;)s-=a;s&amp;amp;lt;Number.EPSILON&amp;amp;amp;&amp;amp;amp;(o?s=0:s=a),this.aClockwise===!0&amp;amp;amp;&amp;amp;amp;!o&amp;amp;amp;&amp;amp;amp;(s===a?s=-a:s=s-a);let u=this.aStartAngle+t*s,c=this.aX+this.xRadius*Math.cos(u),h=this.aY+this.yRadius*Math.sin(u);if(this.aRotation!==0){let d=Math.cos(this.aRotation),m=Math.sin(this.aRotation),g=c-this.aX,y=h-this.aY;c=g*d-y*m+this.aX,h=g*m+y*d+this.aY}return i.set(c,h)}copy(t){return super.copy(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}toJSON(){let t=super.toJSON();return t.aX=this.aX,t.aY=this.aY,t.xRadius=this.xRadius,t.yRadius=this.yRadius,t.aStartAngle=this.aStartAngle,t.aEndAngle=this.aEndAngle,t.aClockwise=this.aClockwise,t.aRotation=this.aRotation,t}fromJSON(t){return super.fromJSON(t),this.aX=t.aX,this.aY=t.aY,this.xRadius=t.xRadius,this.yRadius=t.yRadius,this.aStartAngle=t.aStartAngle,this.aEndAngle=t.aEndAngle,this.aClockwise=t.aClockwise,this.aRotation=t.aRotation,this}},im=class extends Ru{constructor(t,e,i,a,s,o){super(t,e,i,i,a,s,o),this.isArcCurve=!0,this.type=&amp;amp;quot;ArcCurve&amp;amp;quot;}};function zT(){let n=0,t=0,e=0,i=0;function a(s,o,u,c){n=s,t=u,e=-3*s+3*o-2*u-c,i=2*s-2*o+u+c}return{initCatmullRom:function(s,o,u,c,h){a(o,u,h*(u-s),h*(c-o))},initNonuniformCatmullRom:function(s,o,u,c,h,d,m){let g=(o-s)/h-(u-s)/(h+d)+(u-o)/d,y=(u-o)/d-(c-o)/(d+m)+(c-u)/m;g*=d,y*=d,a(o,u,g,y)},calc:function(s){let o=s*s,u=o*s;return n+t*s+e*o+i*u}}}var Ly=new B,_b=new zT,xb=new zT,Sb=new zT,am=class extends oa{constructor(t=[],e=!1,i=&amp;amp;quot;centripetal&amp;amp;quot;,a=.5){super(),this.isCatmullRomCurve3=!0,this.type=&amp;amp;quot;CatmullRomCurve3&amp;amp;quot;,this.points=t,this.closed=e,this.curveType=i,this.tension=a}getPoint(t,e=new B){let i=e,a=this.points,s=a.length,o=(s-(this.closed?0:1))*t,u=Math.floor(o),c=o-u;this.closed?u+=u&amp;amp;gt;0?0:(Math.floor(Math.abs(u)/s)+1)*s:c===0&amp;amp;amp;&amp;amp;amp;u===s-1&amp;amp;amp;&amp;amp;amp;(u=s-2,c=1);let h,d;this.closed||u&amp;amp;gt;0?h=a[(u-1)%s]:(Ly.subVectors(a[0],a[1]).add(a[0]),h=Ly);let m=a[u%s],g=a[(u+1)%s];if(this.closed||u+2&amp;amp;lt;s?d=a[(u+2)%s]:(Ly.subVectors(a[s-1],a[s-2]).add(a[s-1]),d=Ly),this.curveType===&amp;amp;quot;centripetal&amp;amp;quot;||this.curveType===&amp;amp;quot;chordal&amp;amp;quot;){let y=this.curveType===&amp;amp;quot;chordal&amp;amp;quot;?.5:.25,x=Math.pow(h.distanceToSquared(m),y),b=Math.pow(m.distanceToSquared(g),y),M=Math.pow(g.distanceToSquared(d),y);b&amp;amp;lt;1e-4&amp;amp;amp;&amp;amp;amp;(b=1),x&amp;amp;lt;1e-4&amp;amp;amp;&amp;amp;amp;(x=b),M&amp;amp;lt;1e-4&amp;amp;amp;&amp;amp;amp;(M=b),_b.initNonuniformCatmullRom(h.x,m.x,g.x,d.x,x,b,M),xb.initNonuniformCatmullRom(h.y,m.y,g.y,d.y,x,b,M),Sb.initNonuniformCatmullRom(h.z,m.z,g.z,d.z,x,b,M)}else this.curveType===&amp;amp;quot;catmullrom&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(_b.initCatmullRom(h.x,m.x,g.x,d.x,this.tension),xb.initCatmullRom(h.y,m.y,g.y,d.y,this.tension),Sb.initCatmullRom(h.z,m.z,g.z,d.z,this.tension));return i.set(_b.calc(c),xb.calc(c),Sb.calc(c)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e&amp;amp;lt;i;e++){let a=t.points[e];this.points.push(a.clone())}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}toJSON(){let t=super.toJSON();t.points=[];for(let e=0,i=this.points.length;e&amp;amp;lt;i;e++){let a=this.points[e];t.points.push(a.toArray())}return t.closed=this.closed,t.curveType=this.curveType,t.tension=this.tension,t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,i=t.points.length;e&amp;amp;lt;i;e++){let a=t.points[e];this.points.push(new B().fromArray(a))}return this.closed=t.closed,this.curveType=t.curveType,this.tension=t.tension,this}};function rN(n,t,e,i,a){let s=(i-t)*.5,o=(a-e)*.5,u=n*n,c=n*u;return(2*e-2*i+s+o)*c+(-3*e+3*i-2*s-o)*u+s*n+e}function l5(n,t){let e=1-n;return e*e*t}function u5(n,t){return 2*(1-n)*n*t}function c5(n,t){return n*n*t}function Op(n,t,e,i){return l5(n,t)+u5(n,e)+c5(n,i)}function f5(n,t){let e=1-n;return e*e*e*t}function h5(n,t){let e=1-n;return 3*e*e*n*t}function d5(n,t){return 3*(1-n)*n*n*t}function p5(n,t){return n*n*n*t}function Lp(n,t,e,i,a){return f5(n,t)+h5(n,e)+d5(n,i)+p5(n,a)}var Jf=class extends oa{constructor(t=new ct,e=new ct,i=new ct,a=new ct){super(),this.isCubicBezierCurve=!0,this.type=&amp;amp;quot;CubicBezierCurve&amp;amp;quot;,this.v0=t,this.v1=e,this.v2=i,this.v3=a}getPoint(t,e=new ct){let i=e,a=this.v0,s=this.v1,o=this.v2,u=this.v3;return i.set(Lp(t,a.x,s.x,o.x,u.x),Lp(t,a.y,s.y,o.y,u.y)),i}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){let t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}},sm=class extends oa{constructor(t=new B,e=new B,i=new B,a=new B){super(),this.isCubicBezierCurve3=!0,this.type=&amp;amp;quot;CubicBezierCurve3&amp;amp;quot;,this.v0=t,this.v1=e,this.v2=i,this.v3=a}getPoint(t,e=new B){let i=e,a=this.v0,s=this.v1,o=this.v2,u=this.v3;return i.set(Lp(t,a.x,s.x,o.x,u.x),Lp(t,a.y,s.y,o.y,u.y),Lp(t,a.z,s.z,o.z,u.z)),i}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this.v3.copy(t.v3),this}toJSON(){let t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t.v3=this.v3.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this.v3.fromArray(t.v3),this}},$f=class extends oa{constructor(t=new ct,e=new ct){super(),this.isLineCurve=!0,this.type=&amp;amp;quot;LineCurve&amp;amp;quot;,this.v1=t,this.v2=e}getPoint(t,e=new ct){let i=e;return t===1?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(t).add(this.v1)),i}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new ct){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){let t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},rm=class extends oa{constructor(t=new B,e=new B){super(),this.isLineCurve3=!0,this.type=&amp;amp;quot;LineCurve3&amp;amp;quot;,this.v1=t,this.v2=e}getPoint(t,e=new B){let i=e;return t===1?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(t).add(this.v1)),i}getPointAt(t,e){return this.getPoint(t,e)}getTangent(t,e=new B){return e.subVectors(this.v2,this.v1).normalize()}getTangentAt(t,e){return this.getTangent(t,e)}copy(t){return super.copy(t),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){let t=super.toJSON();return t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},th=class extends oa{constructor(t=new ct,e=new ct,i=new ct){super(),this.isQuadraticBezierCurve=!0,this.type=&amp;amp;quot;QuadraticBezierCurve&amp;amp;quot;,this.v0=t,this.v1=e,this.v2=i}getPoint(t,e=new ct){let i=e,a=this.v0,s=this.v1,o=this.v2;return i.set(Op(t,a.x,s.x,o.x),Op(t,a.y,s.y,o.y)),i}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){let t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},eh=class extends oa{constructor(t=new B,e=new B,i=new B){super(),this.isQuadraticBezierCurve3=!0,this.type=&amp;amp;quot;QuadraticBezierCurve3&amp;amp;quot;,this.v0=t,this.v1=e,this.v2=i}getPoint(t,e=new B){let i=e,a=this.v0,s=this.v1,o=this.v2;return i.set(Op(t,a.x,s.x,o.x),Op(t,a.y,s.y,o.y),Op(t,a.z,s.z,o.z)),i}copy(t){return super.copy(t),this.v0.copy(t.v0),this.v1.copy(t.v1),this.v2.copy(t.v2),this}toJSON(){let t=super.toJSON();return t.v0=this.v0.toArray(),t.v1=this.v1.toArray(),t.v2=this.v2.toArray(),t}fromJSON(t){return super.fromJSON(t),this.v0.fromArray(t.v0),this.v1.fromArray(t.v1),this.v2.fromArray(t.v2),this}},nh=class extends oa{constructor(t=[]){super(),this.isSplineCurve=!0,this.type=&amp;amp;quot;SplineCurve&amp;amp;quot;,this.points=t}getPoint(t,e=new ct){let i=e,a=this.points,s=(a.length-1)*t,o=Math.floor(s),u=s-o,c=a[o===0?o:o-1],h=a[o],d=a[o&amp;amp;gt;a.length-2?a.length-1:o+1],m=a[o&amp;amp;gt;a.length-3?a.length-1:o+2];return i.set(rN(u,c.x,h.x,d.x,m.x),rN(u,c.y,h.y,d.y,m.y)),i}copy(t){super.copy(t),this.points=[];for(let e=0,i=t.points.length;e&amp;amp;lt;i;e++){let a=t.points[e];this.points.push(a.clone())}return this}toJSON(){let t=super.toJSON();t.points=[];for(let e=0,i=this.points.length;e&amp;amp;lt;i;e++){let a=this.points[e];t.points.push(a.toArray())}return t}fromJSON(t){super.fromJSON(t),this.points=[];for(let e=0,i=t.points.length;e&amp;amp;lt;i;e++){let a=t.points[e];this.points.push(new ct().fromArray(a))}return this}},l_=Object.freeze({__proto__:null,ArcCurve:im,CatmullRomCurve3:am,CubicBezierCurve:Jf,CubicBezierCurve3:sm,EllipseCurve:Ru,LineCurve:$f,LineCurve3:rm,QuadraticBezierCurve:th,QuadraticBezierCurve3:eh,SplineCurve:nh}),om=class extends oa{constructor(){super(),this.type=&amp;amp;quot;CurvePath&amp;amp;quot;,this.curves=[],this.autoClose=!1}add(t){this.curves.push(t)}closePath(){let t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);if(!t.equals(e)){let i=t.isVector2===!0?&amp;amp;quot;LineCurve&amp;amp;quot;:&amp;amp;quot;LineCurve3&amp;amp;quot;;this.curves.push(new l_[i](e,t))}return this}getPoint(t,e){let i=t*this.getLength(),a=this.getCurveLengths(),s=0;for(;s&amp;amp;lt;a.length;){if(a[s]&amp;amp;gt;=i){let o=a[s]-i,u=this.curves[s],c=u.getLength(),h=c===0?0:1-o/c;return u.getPointAt(h,e)}s++}return null}getLength(){let t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&amp;amp;amp;&amp;amp;amp;this.cacheLengths.length===this.curves.length)return this.cacheLengths;let t=[],e=0;for(let i=0,a=this.curves.length;i&amp;amp;lt;a;i++)e+=this.curves[i].getLength(),t.push(e);return this.cacheLengths=t,t}getSpacedPoints(t=40){let e=[];for(let i=0;i&amp;amp;lt;=t;i++)e.push(this.getPoint(i/t));return this.autoClose&amp;amp;amp;&amp;amp;amp;e.push(e[0]),e}getPoints(t=12){let e=[],i;for(let a=0,s=this.curves;a&amp;amp;lt;s.length;a++){let o=s[a],u=o.isEllipseCurve?t*2:o.isLineCurve||o.isLineCurve3?1:o.isSplineCurve?t*o.points.length:t,c=o.getPoints(u);for(let h=0;h&amp;amp;lt;c.length;h++){let d=c[h];i&amp;amp;amp;&amp;amp;amp;i.equals(d)||(e.push(d),i=d)}}return this.autoClose&amp;amp;amp;&amp;amp;amp;e.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;!e[e.length-1].equals(e[0])&amp;amp;amp;&amp;amp;amp;e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,i=t.curves.length;e&amp;amp;lt;i;e++){let a=t.curves[e];this.curves.push(a.clone())}return this.autoClose=t.autoClose,this}toJSON(){let t=super.toJSON();t.autoClose=this.autoClose,t.curves=[];for(let e=0,i=this.curves.length;e&amp;amp;lt;i;e++){let a=this.curves[e];t.curves.push(a.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.autoClose=t.autoClose,this.curves=[];for(let e=0,i=t.curves.length;e&amp;amp;lt;i;e++){let a=t.curves[e];this.curves.push(new l_[a.type]().fromJSON(a))}return this}},Cu=class extends om{constructor(t){super(),this.type=&amp;amp;quot;Path&amp;amp;quot;,this.currentPoint=new ct,t&amp;amp;amp;&amp;amp;amp;this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let e=1,i=t.length;e&amp;amp;lt;i;e++)this.lineTo(t[e].x,t[e].y);return this}moveTo(t,e){return this.currentPoint.set(t,e),this}lineTo(t,e){let i=new $f(this.currentPoint.clone(),new ct(t,e));return this.curves.push(i),this.currentPoint.set(t,e),this}quadraticCurveTo(t,e,i,a){let s=new th(this.currentPoint.clone(),new ct(t,e),new ct(i,a));return this.curves.push(s),this.currentPoint.set(i,a),this}bezierCurveTo(t,e,i,a,s,o){let u=new Jf(this.currentPoint.clone(),new ct(t,e),new ct(i,a),new ct(s,o));return this.curves.push(u),this.currentPoint.set(s,o),this}splineThru(t){let e=[this.currentPoint.clone()].concat(t),i=new nh(e);return this.curves.push(i),this.currentPoint.copy(t[t.length-1]),this}arc(t,e,i,a,s,o){let u=this.currentPoint.x,c=this.currentPoint.y;return this.absarc(t+u,e+c,i,a,s,o),this}absarc(t,e,i,a,s,o){return this.absellipse(t,e,i,i,a,s,o),this}ellipse(t,e,i,a,s,o,u,c){let h=this.currentPoint.x,d=this.currentPoint.y;return this.absellipse(t+h,e+d,i,a,s,o,u,c),this}absellipse(t,e,i,a,s,o,u,c){let h=new Ru(t,e,i,a,s,o,u,c);if(this.curves.length&amp;amp;gt;0){let m=h.getPoint(0);m.equals(this.currentPoint)||this.lineTo(m.x,m.y)}this.curves.push(h);let d=h.getPoint(1);return this.currentPoint.copy(d),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){let t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}},$s=class extends Cu{constructor(t){super(t),this.uuid=Na(),this.type=&amp;amp;quot;Shape&amp;amp;quot;,this.holes=[]}getPointsHoles(t){let e=[];for(let i=0,a=this.holes.length;i&amp;amp;lt;a;i++)e[i]=this.holes[i].getPoints(t);return e}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}copy(t){super.copy(t),this.holes=[];for(let e=0,i=t.holes.length;e&amp;amp;lt;i;e++){let a=t.holes[e];this.holes.push(a.clone())}return this}toJSON(){let t=super.toJSON();t.uuid=this.uuid,t.holes=[];for(let e=0,i=this.holes.length;e&amp;amp;lt;i;e++){let a=this.holes[e];t.holes.push(a.toJSON())}return t}fromJSON(t){super.fromJSON(t),this.uuid=t.uuid,this.holes=[];for(let e=0,i=t.holes.length;e&amp;amp;lt;i;e++){let a=t.holes[e];this.holes.push(new Cu().fromJSON(a))}return this}};function m5(n,t,e=2){let i=t&amp;amp;amp;&amp;amp;amp;t.length,a=i?t[0]*e:n.length,s=_O(n,0,a,e,!0),o=[];if(!s||s.next===s.prev)return o;let u,c,h;if(i&amp;amp;amp;&amp;amp;amp;(s=x5(n,t,s,e)),n.length&amp;amp;gt;80*e){u=1/0,c=1/0;let d=-1/0,m=-1/0;for(let g=e;g&amp;amp;lt;a;g+=e){let y=n[g],x=n[g+1];y&amp;amp;lt;u&amp;amp;amp;&amp;amp;amp;(u=y),x&amp;amp;lt;c&amp;amp;amp;&amp;amp;amp;(c=x),y&amp;amp;gt;d&amp;amp;amp;&amp;amp;amp;(d=y),x&amp;amp;gt;m&amp;amp;amp;&amp;amp;amp;(m=x)}h=Math.max(d-u,m-c),h=h!==0?32767/h:0}return lm(s,o,e,u,c,h,0),o}function _O(n,t,e,i,a){let s;if(a===U5(n,t,e,i)&amp;amp;gt;0)for(let o=t;o&amp;amp;lt;e;o+=i)s=oN(o/i|0,n[o],n[o+1],s);else for(let o=e-i;o&amp;amp;gt;=t;o-=i)s=oN(o/i|0,n[o],n[o+1],s);return s&amp;amp;amp;&amp;amp;amp;ih(s,s.next)&amp;amp;amp;&amp;amp;amp;(cm(s),s=s.next),s}function wu(n,t){if(!n)return n;t||(t=n);let e=n,i;do if(i=!1,!e.steiner&amp;amp;amp;&amp;amp;amp;(ih(e,e.next)||Mn(e.prev,e,e.next)===0)){if(cm(e),e=t=e.prev,e===e.next)break;i=!0}else e=e.next;while(i||e!==t);return t}function lm(n,t,e,i,a,s,o){if(!n)return;!o&amp;amp;amp;&amp;amp;amp;s&amp;amp;amp;&amp;amp;amp;T5(n,i,a,s);let u=n;for(;n.prev!==n.next;){let c=n.prev,h=n.next;if(s?v5(n,i,a,s):g5(n)){t.push(c.i,n.i,h.i),cm(n),n=h.next,u=h.next;continue}if(n=h,n===u){o?o===1?(n=y5(wu(n),t),lm(n,t,e,i,a,s,2)):o===2&amp;amp;amp;&amp;amp;amp;_5(n,t,e,i,a,s):lm(wu(n),t,e,i,a,s,1);break}}}function g5(n){let t=n.prev,e=n,i=n.next;if(Mn(t,e,i)&amp;amp;gt;=0)return!1;let a=t.x,s=e.x,o=i.x,u=t.y,c=e.y,h=i.y,d=Math.min(a,s,o),m=Math.min(u,c,h),g=Math.max(a,s,o),y=Math.max(u,c,h),x=i.next;for(;x!==t;){if(x.x&amp;amp;gt;=d&amp;amp;amp;&amp;amp;amp;x.x&amp;amp;lt;=g&amp;amp;amp;&amp;amp;amp;x.y&amp;amp;gt;=m&amp;amp;amp;&amp;amp;amp;x.y&amp;amp;lt;=y&amp;amp;amp;&amp;amp;amp;Dp(a,u,s,c,o,h,x.x,x.y)&amp;amp;amp;&amp;amp;amp;Mn(x.prev,x,x.next)&amp;amp;gt;=0)return!1;x=x.next}return!0}function v5(n,t,e,i){let a=n.prev,s=n,o=n.next;if(Mn(a,s,o)&amp;amp;gt;=0)return!1;let u=a.x,c=s.x,h=o.x,d=a.y,m=s.y,g=o.y,y=Math.min(u,c,h),x=Math.min(d,m,g),b=Math.max(u,c,h),M=Math.max(d,m,g),v=Ub(y,x,t,e,i),S=Ub(b,M,t,e,i),E=n.prevZ,T=n.nextZ;for(;E&amp;amp;amp;&amp;amp;amp;E.z&amp;amp;gt;=v&amp;amp;amp;&amp;amp;amp;T&amp;amp;amp;&amp;amp;amp;T.z&amp;amp;lt;=S;){if(E.x&amp;amp;gt;=y&amp;amp;amp;&amp;amp;amp;E.x&amp;amp;lt;=b&amp;amp;amp;&amp;amp;amp;E.y&amp;amp;gt;=x&amp;amp;amp;&amp;amp;amp;E.y&amp;amp;lt;=M&amp;amp;amp;&amp;amp;amp;E!==a&amp;amp;amp;&amp;amp;amp;E!==o&amp;amp;amp;&amp;amp;amp;Dp(u,d,c,m,h,g,E.x,E.y)&amp;amp;amp;&amp;amp;amp;Mn(E.prev,E,E.next)&amp;amp;gt;=0||(E=E.prevZ,T.x&amp;amp;gt;=y&amp;amp;amp;&amp;amp;amp;T.x&amp;amp;lt;=b&amp;amp;amp;&amp;amp;amp;T.y&amp;amp;gt;=x&amp;amp;amp;&amp;amp;amp;T.y&amp;amp;lt;=M&amp;amp;amp;&amp;amp;amp;T!==a&amp;amp;amp;&amp;amp;amp;T!==o&amp;amp;amp;&amp;amp;amp;Dp(u,d,c,m,h,g,T.x,T.y)&amp;amp;amp;&amp;amp;amp;Mn(T.prev,T,T.next)&amp;amp;gt;=0))return!1;T=T.nextZ}for(;E&amp;amp;amp;&amp;amp;amp;E.z&amp;amp;gt;=v;){if(E.x&amp;amp;gt;=y&amp;amp;amp;&amp;amp;amp;E.x&amp;amp;lt;=b&amp;amp;amp;&amp;amp;amp;E.y&amp;amp;gt;=x&amp;amp;amp;&amp;amp;amp;E.y&amp;amp;lt;=M&amp;amp;amp;&amp;amp;amp;E!==a&amp;amp;amp;&amp;amp;amp;E!==o&amp;amp;amp;&amp;amp;amp;Dp(u,d,c,m,h,g,E.x,E.y)&amp;amp;amp;&amp;amp;amp;Mn(E.prev,E,E.next)&amp;amp;gt;=0)return!1;E=E.prevZ}for(;T&amp;amp;amp;&amp;amp;amp;T.z&amp;amp;lt;=S;){if(T.x&amp;amp;gt;=y&amp;amp;amp;&amp;amp;amp;T.x&amp;amp;lt;=b&amp;amp;amp;&amp;amp;amp;T.y&amp;amp;gt;=x&amp;amp;amp;&amp;amp;amp;T.y&amp;amp;lt;=M&amp;amp;amp;&amp;amp;amp;T!==a&amp;amp;amp;&amp;amp;amp;T!==o&amp;amp;amp;&amp;amp;amp;Dp(u,d,c,m,h,g,T.x,T.y)&amp;amp;amp;&amp;amp;amp;Mn(T.prev,T,T.next)&amp;amp;gt;=0)return!1;T=T.nextZ}return!0}function y5(n,t){let e=n;do{let i=e.prev,a=e.next.next;!ih(i,a)&amp;amp;amp;&amp;amp;amp;SO(i,e,e.next,a)&amp;amp;amp;&amp;amp;amp;um(i,a)&amp;amp;amp;&amp;amp;amp;um(a,i)&amp;amp;amp;&amp;amp;amp;(t.push(i.i,e.i,a.i),cm(e),cm(e.next),e=n=a),e=e.next}while(e!==n);return wu(e)}function _5(n,t,e,i,a,s){let o=n;do{let u=o.next.next;for(;u!==o.prev;){if(o.i!==u.i&amp;amp;amp;&amp;amp;amp;C5(o,u)){let c=MO(o,u);o=wu(o,o.next),c=wu(c,c.next),lm(o,t,e,i,a,s,0),lm(c,t,e,i,a,s,0);return}u=u.next}o=o.next}while(o!==n)}function x5(n,t,e,i){let a=[];for(let s=0,o=t.length;s&amp;amp;lt;o;s++){let u=t[s]*i,c=s&amp;amp;lt;o-1?t[s+1]*i:n.length,h=_O(n,u,c,i,!1);h===h.next&amp;amp;amp;&amp;amp;amp;(h.steiner=!0),a.push(R5(h))}a.sort(S5);for(let s=0;s&amp;amp;lt;a.length;s++)e=M5(a[s],e);return e}function S5(n,t){let e=n.x-t.x;if(e===0&amp;amp;amp;&amp;amp;amp;(e=n.y-t.y,e===0)){let i=(n.next.y-n.y)/(n.next.x-n.x),a=(t.next.y-t.y)/(t.next.x-t.x);e=i-a}return e}function M5(n,t){let e=E5(n,t);if(!e)return t;let i=MO(e,n);return wu(i,i.next),wu(e,e.next)}function E5(n,t){let e=t,i=n.x,a=n.y,s=-1/0,o;if(ih(n,e))return e;do{if(ih(n,e.next))return e.next;if(a&amp;amp;lt;=e.y&amp;amp;amp;&amp;amp;amp;a&amp;amp;gt;=e.next.y&amp;amp;amp;&amp;amp;amp;e.next.y!==e.y){let m=e.x+(a-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(m&amp;amp;lt;=i&amp;amp;amp;&amp;amp;amp;m&amp;amp;gt;s&amp;amp;amp;&amp;amp;amp;(s=m,o=e.x&amp;amp;lt;e.next.x?e:e.next,m===i))return o}e=e.next}while(e!==t);if(!o)return null;let u=o,c=o.x,h=o.y,d=1/0;e=o;do{if(i&amp;amp;gt;=e.x&amp;amp;amp;&amp;amp;amp;e.x&amp;amp;gt;=c&amp;amp;amp;&amp;amp;amp;i!==e.x&amp;amp;amp;&amp;amp;amp;xO(a&amp;amp;lt;h?i:s,a,c,h,a&amp;amp;lt;h?s:i,a,e.x,e.y)){let m=Math.abs(a-e.y)/(i-e.x);um(e,n)&amp;amp;amp;&amp;amp;amp;(m&amp;amp;lt;d||m===d&amp;amp;amp;&amp;amp;amp;(e.x&amp;amp;gt;o.x||e.x===o.x&amp;amp;amp;&amp;amp;amp;b5(o,e)))&amp;amp;amp;&amp;amp;amp;(o=e,d=m)}e=e.next}while(e!==u);return o}function b5(n,t){return Mn(n.prev,n,t.prev)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;Mn(t.next,n,n.next)&amp;amp;lt;0}function T5(n,t,e,i){let a=n;do a.z===0&amp;amp;amp;&amp;amp;amp;(a.z=Ub(a.x,a.y,t,e,i)),a.prevZ=a.prev,a.nextZ=a.next,a=a.next;while(a!==n);a.prevZ.nextZ=null,a.prevZ=null,A5(a)}function A5(n){let t,e=1;do{let i=n,a;n=null;let s=null;for(t=0;i;){t++;let o=i,u=0;for(let h=0;h&amp;amp;lt;e&amp;amp;amp;&amp;amp;amp;(u++,o=o.nextZ,!!o);h++);let c=e;for(;u&amp;amp;gt;0||c&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;o;)u!==0&amp;amp;amp;&amp;amp;amp;(c===0||!o||i.z&amp;amp;lt;=o.z)?(a=i,i=i.nextZ,u--):(a=o,o=o.nextZ,c--),s?s.nextZ=a:n=a,a.prevZ=s,s=a;i=o}s.nextZ=null,e*=2}while(t&amp;amp;gt;1);return n}function Ub(n,t,e,i,a){return n=(n-e)*a|0,t=(t-i)*a|0,n=(n|n&amp;amp;lt;&amp;amp;lt;8)&amp;amp;amp;16711935,n=(n|n&amp;amp;lt;&amp;amp;lt;4)&amp;amp;amp;252645135,n=(n|n&amp;amp;lt;&amp;amp;lt;2)&amp;amp;amp;858993459,n=(n|n&amp;amp;lt;&amp;amp;lt;1)&amp;amp;amp;1431655765,t=(t|t&amp;amp;lt;&amp;amp;lt;8)&amp;amp;amp;16711935,t=(t|t&amp;amp;lt;&amp;amp;lt;4)&amp;amp;amp;252645135,t=(t|t&amp;amp;lt;&amp;amp;lt;2)&amp;amp;amp;858993459,t=(t|t&amp;amp;lt;&amp;amp;lt;1)&amp;amp;amp;1431655765,n|t&amp;amp;lt;&amp;amp;lt;1}function R5(n){let t=n,e=n;do(t.x&amp;amp;lt;e.x||t.x===e.x&amp;amp;amp;&amp;amp;amp;t.y&amp;amp;lt;e.y)&amp;amp;amp;&amp;amp;amp;(e=t),t=t.next;while(t!==n);return e}function xO(n,t,e,i,a,s,o,u){return(a-o)*(t-u)&amp;amp;gt;=(n-o)*(s-u)&amp;amp;amp;&amp;amp;amp;(n-o)*(i-u)&amp;amp;gt;=(e-o)*(t-u)&amp;amp;amp;&amp;amp;amp;(e-o)*(s-u)&amp;amp;gt;=(a-o)*(i-u)}function Dp(n,t,e,i,a,s,o,u){return!(n===o&amp;amp;amp;&amp;amp;amp;t===u)&amp;amp;amp;&amp;amp;amp;xO(n,t,e,i,a,s,o,u)}function C5(n,t){return n.next.i!==t.i&amp;amp;amp;&amp;amp;amp;n.prev.i!==t.i&amp;amp;amp;&amp;amp;amp;!w5(n,t)&amp;amp;amp;&amp;amp;amp;(um(n,t)&amp;amp;amp;&amp;amp;amp;um(t,n)&amp;amp;amp;&amp;amp;amp;D5(n,t)&amp;amp;amp;&amp;amp;amp;(Mn(n.prev,n,t.prev)||Mn(n,t.prev,t))||ih(n,t)&amp;amp;amp;&amp;amp;amp;Mn(n.prev,n,n.next)&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;Mn(t.prev,t,t.next)&amp;amp;gt;0)}function Mn(n,t,e){return(t.y-n.y)*(e.x-t.x)-(t.x-n.x)*(e.y-t.y)}function ih(n,t){return n.x===t.x&amp;amp;amp;&amp;amp;amp;n.y===t.y}function SO(n,t,e,i){let a=By(Mn(n,t,e)),s=By(Mn(n,t,i)),o=By(Mn(e,i,n)),u=By(Mn(e,i,t));return!!(a!==s&amp;amp;amp;&amp;amp;amp;o!==u||a===0&amp;amp;amp;&amp;amp;amp;zy(n,e,t)||s===0&amp;amp;amp;&amp;amp;amp;zy(n,i,t)||o===0&amp;amp;amp;&amp;amp;amp;zy(e,n,i)||u===0&amp;amp;amp;&amp;amp;amp;zy(e,t,i))}function zy(n,t,e){return t.x&amp;amp;lt;=Math.max(n.x,e.x)&amp;amp;amp;&amp;amp;amp;t.x&amp;amp;gt;=Math.min(n.x,e.x)&amp;amp;amp;&amp;amp;amp;t.y&amp;amp;lt;=Math.max(n.y,e.y)&amp;amp;amp;&amp;amp;amp;t.y&amp;amp;gt;=Math.min(n.y,e.y)}function By(n){return n&amp;amp;gt;0?1:n&amp;amp;lt;0?-1:0}function w5(n,t){let e=n;do{if(e.i!==n.i&amp;amp;amp;&amp;amp;amp;e.next.i!==n.i&amp;amp;amp;&amp;amp;amp;e.i!==t.i&amp;amp;amp;&amp;amp;amp;e.next.i!==t.i&amp;amp;amp;&amp;amp;amp;SO(e,e.next,n,t))return!0;e=e.next}while(e!==n);return!1}function um(n,t){return Mn(n.prev,n,n.next)&amp;amp;lt;0?Mn(n,t,n.next)&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;Mn(n,n.prev,t)&amp;amp;gt;=0:Mn(n,t,n.prev)&amp;amp;lt;0||Mn(n,n.next,t)&amp;amp;lt;0}function D5(n,t){let e=n,i=!1,a=(n.x+t.x)/2,s=(n.y+t.y)/2;do e.y&amp;amp;gt;s!=e.next.y&amp;amp;gt;s&amp;amp;amp;&amp;amp;amp;e.next.y!==e.y&amp;amp;amp;&amp;amp;amp;a&amp;amp;lt;(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&amp;amp;amp;&amp;amp;amp;(i=!i),e=e.next;while(e!==n);return i}function MO(n,t){let e=Nb(n.i,n.x,n.y),i=Nb(t.i,t.x,t.y),a=n.next,s=t.prev;return n.next=t,t.prev=n,e.next=a,a.prev=e,i.next=e,e.prev=i,s.next=i,i.prev=s,i}function oN(n,t,e,i){let a=Nb(n,t,e);return i?(a.next=i.next,a.prev=i,i.next.prev=a,i.next=a):(a.prev=a,a.next=a),a}function cm(n){n.next.prev=n.prev,n.prev.next=n.next,n.prevZ&amp;amp;amp;&amp;amp;amp;(n.prevZ.nextZ=n.nextZ),n.nextZ&amp;amp;amp;&amp;amp;amp;(n.nextZ.prevZ=n.prevZ)}function Nb(n,t,e){return{i:n,x:t,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function U5(n,t,e,i){let a=0;for(let s=t,o=e-i;s&amp;amp;lt;e;s+=i)a+=(n[o]-n[s])*(n[s+1]+n[o+1]),o=s;return a}var Ob=class{static triangulate(t,e,i=2){return m5(t,e,i)}},os=class n{static area(t){let e=t.length,i=0;for(let a=e-1,s=0;s&amp;amp;lt;e;a=s++)i+=t[a].x*t[s].y-t[s].x*t[a].y;return i*.5}static isClockWise(t){return n.area(t)&amp;amp;lt;0}static triangulateShape(t,e){let i=[],a=[],s=[];lN(t),uN(i,t);let o=t.length;e.forEach(lN);for(let c=0;c&amp;amp;lt;e.length;c++)a.push(o),o+=e[c].length,uN(i,e[c]);let u=Ob.triangulate(i,a);for(let c=0;c&amp;amp;lt;u.length;c+=3)s.push(u.slice(c,c+3));return s}};function lN(n){let t=n.length;t&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;n[t-1].equals(n[0])&amp;amp;amp;&amp;amp;amp;n.pop()}function uN(n,t){for(let e=0;e&amp;amp;lt;t.length;e++)n.push(t[e].x),n.push(t[e].y)}var fm=class n extends ve{constructor(t=new $s([new ct(.5,.5),new ct(-.5,.5),new ct(-.5,-.5),new ct(.5,-.5)]),e={}){super(),this.type=&amp;amp;quot;ExtrudeGeometry&amp;amp;quot;,this.parameters={shapes:t,options:e},t=Array.isArray(t)?t:[t];let i=this,a=[],s=[];for(let u=0,c=t.length;u&amp;amp;lt;c;u++){let h=t[u];o(h)}this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(a,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(s,2)),this.computeVertexNormals();function o(u){let c=[],h=e.curveSegments!==void 0?e.curveSegments:12,d=e.steps!==void 0?e.steps:1,m=e.depth!==void 0?e.depth:1,g=e.bevelEnabled!==void 0?e.bevelEnabled:!0,y=e.bevelThickness!==void 0?e.bevelThickness:.2,x=e.bevelSize!==void 0?e.bevelSize:y-.1,b=e.bevelOffset!==void 0?e.bevelOffset:0,M=e.bevelSegments!==void 0?e.bevelSegments:3,v=e.extrudePath,S=e.UVGenerator!==void 0?e.UVGenerator:N5,E,T=!1,w,U,O,z;v&amp;amp;amp;&amp;amp;amp;(E=v.getSpacedPoints(d),T=!0,g=!1,w=v.computeFrenetFrames(d,!1),U=new B,O=new B,z=new B),g||(M=0,y=0,x=0,b=0);let C=u.extractPoints(h),R=C.shape,P=C.holes;if(!os.isClockWise(R)){R=R.reverse();for(let ht=0,rt=P.length;ht&amp;amp;lt;rt;ht++){let pt=P[ht];os.isClockWise(pt)&amp;amp;amp;&amp;amp;amp;(P[ht]=pt.reverse())}}function X(ht){let pt=10000000000000001e-36,lt=ht[0];for(let Ct=1;Ct&amp;amp;lt;=ht.length;Ct++){let dt=Ct%ht.length,Rt=ht[dt],de=Rt.x-lt.x,ue=Rt.y-lt.y,I=de*de+ue*ue,D=Math.max(Math.abs(Rt.x),Math.abs(Rt.y),Math.abs(lt.x),Math.abs(lt.y)),k=pt*D*D;if(I&amp;amp;lt;=k){ht.splice(dt,1),Ct--;continue}lt=Rt}}X(R),P.forEach(X);let Z=P.length,st=R;for(let ht=0;ht&amp;amp;lt;Z;ht++){let rt=P[ht];R=R.concat(rt)}function et(ht,rt,pt){return rt||console.error(&amp;amp;quot;THREE.ExtrudeGeometry: vec does not exist&amp;amp;quot;),ht.clone().addScaledVector(rt,pt)}let mt=R.length;function K(ht,rt,pt){let lt,Ct,dt,Rt=ht.x-rt.x,de=ht.y-rt.y,ue=pt.x-ht.x,I=pt.y-ht.y,D=Rt*Rt+de*de,k=Rt*I-de*ue;if(Math.abs(k)&amp;amp;gt;Number.EPSILON){let nt=Math.sqrt(D),gt=Math.sqrt(ue*ue+I*I),at=rt.x-de/nt,jt=rt.y+Rt/nt,Tt=pt.x-I/gt,Wt=pt.y+ue/gt,Ft=((Tt-at)*I-(Wt-jt)*ue)/(Rt*I-de*ue);lt=at+Rt*Ft-ht.x,Ct=jt+de*Ft-ht.y;let vt=lt*lt+Ct*Ct;if(vt&amp;amp;lt;=2)return new ct(lt,Ct);dt=Math.sqrt(vt/2)}else{let nt=!1;Rt&amp;amp;gt;Number.EPSILON?ue&amp;amp;gt;Number.EPSILON&amp;amp;amp;&amp;amp;amp;(nt=!0):Rt&amp;amp;lt;-Number.EPSILON?ue&amp;amp;lt;-Number.EPSILON&amp;amp;amp;&amp;amp;amp;(nt=!0):Math.sign(de)===Math.sign(I)&amp;amp;amp;&amp;amp;amp;(nt=!0),nt?(lt=-de,Ct=Rt,dt=Math.sqrt(D)):(lt=Rt,Ct=de,dt=Math.sqrt(D/2))}return new ct(lt/dt,Ct/dt)}let _t=[];for(let ht=0,rt=st.length,pt=rt-1,lt=ht+1;ht&amp;amp;lt;rt;ht++,pt++,lt++)pt===rt&amp;amp;amp;&amp;amp;amp;(pt=0),lt===rt&amp;amp;amp;&amp;amp;amp;(lt=0),_t[ht]=K(st[ht],st[pt],st[lt]);let Ut=[],xt,It=_t.concat();for(let ht=0,rt=Z;ht&amp;amp;lt;rt;ht++){let pt=P[ht];xt=[];for(let lt=0,Ct=pt.length,dt=Ct-1,Rt=lt+1;lt&amp;amp;lt;Ct;lt++,dt++,Rt++)dt===Ct&amp;amp;amp;&amp;amp;amp;(dt=0),Rt===Ct&amp;amp;amp;&amp;amp;amp;(Rt=0),xt[lt]=K(pt[lt],pt[dt],pt[Rt]);Ut.push(xt),It=It.concat(xt)}let se;if(M===0)se=os.triangulateShape(st,P);else{let ht=[],rt=[];for(let pt=0;pt&amp;amp;lt;M;pt++){let lt=pt/M,Ct=y*Math.cos(lt*Math.PI/2),dt=x*Math.sin(lt*Math.PI/2)+b;for(let Rt=0,de=st.length;Rt&amp;amp;lt;de;Rt++){let ue=et(st[Rt],_t[Rt],dt);Zt(ue.x,ue.y,-Ct),lt===0&amp;amp;amp;&amp;amp;amp;ht.push(ue)}for(let Rt=0,de=Z;Rt&amp;amp;lt;de;Rt++){let ue=P[Rt];xt=Ut[Rt];let I=[];for(let D=0,k=ue.length;D&amp;amp;lt;k;D++){let nt=et(ue[D],xt[D],dt);Zt(nt.x,nt.y,-Ct),lt===0&amp;amp;amp;&amp;amp;amp;I.push(nt)}lt===0&amp;amp;amp;&amp;amp;amp;rt.push(I)}}se=os.triangulateShape(ht,rt)}let Qt=se.length,it=x+b;for(let ht=0;ht&amp;amp;lt;mt;ht++){let rt=g?et(R[ht],It[ht],it):R[ht];T?(O.copy(w.normals[0]).multiplyScalar(rt.x),U.copy(w.binormals[0]).multiplyScalar(rt.y),z.copy(E[0]).add(O).add(U),Zt(z.x,z.y,z.z)):Zt(rt.x,rt.y,0)}for(let ht=1;ht&amp;amp;lt;=d;ht++)for(let rt=0;rt&amp;amp;lt;mt;rt++){let pt=g?et(R[rt],It[rt],it):R[rt];T?(O.copy(w.normals[ht]).multiplyScalar(pt.x),U.copy(w.binormals[ht]).multiplyScalar(pt.y),z.copy(E[ht]).add(O).add(U),Zt(z.x,z.y,z.z)):Zt(pt.x,pt.y,m/d*ht)}for(let ht=M-1;ht&amp;amp;gt;=0;ht--){let rt=ht/M,pt=y*Math.cos(rt*Math.PI/2),lt=x*Math.sin(rt*Math.PI/2)+b;for(let Ct=0,dt=st.length;Ct&amp;amp;lt;dt;Ct++){let Rt=et(st[Ct],_t[Ct],lt);Zt(Rt.x,Rt.y,m+pt)}for(let Ct=0,dt=P.length;Ct&amp;amp;lt;dt;Ct++){let Rt=P[Ct];xt=Ut[Ct];for(let de=0,ue=Rt.length;de&amp;amp;lt;ue;de++){let I=et(Rt[de],xt[de],lt);T?Zt(I.x,I.y+E[d-1].y,E[d-1].x+pt):Zt(I.x,I.y,m+pt)}}}wt(),bt();function wt(){let ht=a.length/3;if(g){let rt=0,pt=mt*rt;for(let lt=0;lt&amp;amp;lt;Qt;lt++){let Ct=se[lt];te(Ct[2]+pt,Ct[1]+pt,Ct[0]+pt)}rt=d+M*2,pt=mt*rt;for(let lt=0;lt&amp;amp;lt;Qt;lt++){let Ct=se[lt];te(Ct[0]+pt,Ct[1]+pt,Ct[2]+pt)}}else{for(let rt=0;rt&amp;amp;lt;Qt;rt++){let pt=se[rt];te(pt[2],pt[1],pt[0])}for(let rt=0;rt&amp;amp;lt;Qt;rt++){let pt=se[rt];te(pt[0]+mt*d,pt[1]+mt*d,pt[2]+mt*d)}}i.addGroup(ht,a.length/3-ht,0)}function bt(){let ht=a.length/3,rt=0;Jt(st,rt),rt+=st.length;for(let pt=0,lt=P.length;pt&amp;amp;lt;lt;pt++){let Ct=P[pt];Jt(Ct,rt),rt+=Ct.length}i.addGroup(ht,a.length/3-ht,1)}function Jt(ht,rt){let pt=ht.length;for(;--pt&amp;amp;gt;=0;){let lt=pt,Ct=pt-1;Ct&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(Ct=ht.length-1);for(let dt=0,Rt=d+M*2;dt&amp;amp;lt;Rt;dt++){let de=mt*dt,ue=mt*(dt+1),I=rt+lt+de,D=rt+Ct+de,k=rt+Ct+ue,nt=rt+lt+ue;ke(I,D,k,nt)}}}function Zt(ht,rt,pt){c.push(ht),c.push(rt),c.push(pt)}function te(ht,rt,pt){re(ht),re(rt),re(pt);let lt=a.length/3,Ct=S.generateTopUV(i,a,lt-3,lt-2,lt-1);H(Ct[0]),H(Ct[1]),H(Ct[2])}function ke(ht,rt,pt,lt){re(ht),re(rt),re(lt),re(rt),re(pt),re(lt);let Ct=a.length/3,dt=S.generateSideWallUV(i,a,Ct-6,Ct-3,Ct-2,Ct-1);H(dt[0]),H(dt[1]),H(dt[3]),H(dt[1]),H(dt[2]),H(dt[3])}function re(ht){a.push(c[ht*3+0]),a.push(c[ht*3+1]),a.push(c[ht*3+2])}function H(ht){s.push(ht.x),s.push(ht.y)}}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){let t=super.toJSON(),e=this.parameters.shapes,i=this.parameters.options;return O5(e,i,t)}static fromJSON(t,e){let i=[];for(let s=0,o=t.shapes.length;s&amp;amp;lt;o;s++){let u=e[t.shapes[s]];i.push(u)}let a=t.options.extrudePath;return a!==void 0&amp;amp;amp;&amp;amp;amp;(t.options.extrudePath=new l_[a.type]().fromJSON(a)),new n(i,t.options)}},N5={generateTopUV:function(n,t,e,i,a){let s=t[e*3],o=t[e*3+1],u=t[i*3],c=t[i*3+1],h=t[a*3],d=t[a*3+1];return[new ct(s,o),new ct(u,c),new ct(h,d)]},generateSideWallUV:function(n,t,e,i,a,s){let o=t[e*3],u=t[e*3+1],c=t[e*3+2],h=t[i*3],d=t[i*3+1],m=t[i*3+2],g=t[a*3],y=t[a*3+1],x=t[a*3+2],b=t[s*3],M=t[s*3+1],v=t[s*3+2];return Math.abs(u-d)&amp;amp;lt;Math.abs(o-h)?[new ct(o,1-c),new ct(h,1-m),new ct(g,1-x),new ct(b,1-v)]:[new ct(u,1-c),new ct(d,1-m),new ct(y,1-x),new ct(M,1-v)]}};function O5(n,t,e){if(e.shapes=[],Array.isArray(n))for(let i=0,a=n.length;i&amp;amp;lt;a;i++){let s=n[i];e.shapes.push(s.uuid)}else e.shapes.push(n.uuid);return e.options=Object.assign({},t),t.extrudePath!==void 0&amp;amp;amp;&amp;amp;amp;(e.options.extrudePath=t.extrudePath.toJSON()),e}var hm=class n extends Jr{constructor(t=1,e=0){let i=(1+Math.sqrt(5))/2,a=[-1,i,0,1,i,0,-1,-i,0,1,-i,0,0,-1,i,0,1,i,0,-1,-i,0,1,-i,i,0,-1,i,0,1,-i,0,-1,-i,0,1],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1];super(a,s,t,e),this.type=&amp;amp;quot;IcosahedronGeometry&amp;amp;quot;,this.parameters={radius:t,detail:e}}static fromJSON(t){return new n(t.radius,t.detail)}},dm=class n extends ve{constructor(t=[new ct(0,-.5),new ct(.5,0),new ct(0,.5)],e=12,i=0,a=Math.PI*2){super(),this.type=&amp;amp;quot;LatheGeometry&amp;amp;quot;,this.parameters={points:t,segments:e,phiStart:i,phiLength:a},e=Math.floor(e),a=le(a,0,Math.PI*2);let s=[],o=[],u=[],c=[],h=[],d=1/e,m=new B,g=new ct,y=new B,x=new B,b=new B,M=0,v=0;for(let S=0;S&amp;amp;lt;=t.length-1;S++)switch(S){case 0:M=t[S+1].x-t[S].x,v=t[S+1].y-t[S].y,y.x=v*1,y.y=-M,y.z=v*0,b.copy(y),y.normalize(),c.push(y.x,y.y,y.z);break;case t.length-1:c.push(b.x,b.y,b.z);break;default:M=t[S+1].x-t[S].x,v=t[S+1].y-t[S].y,y.x=v*1,y.y=-M,y.z=v*0,x.copy(y),y.x+=b.x,y.y+=b.y,y.z+=b.z,y.normalize(),c.push(y.x,y.y,y.z),b.copy(x)}for(let S=0;S&amp;amp;lt;=e;S++){let E=i+S*d*a,T=Math.sin(E),w=Math.cos(E);for(let U=0;U&amp;amp;lt;=t.length-1;U++){m.x=t[U].x*T,m.y=t[U].y,m.z=t[U].x*w,o.push(m.x,m.y,m.z),g.x=S/e,g.y=U/(t.length-1),u.push(g.x,g.y);let O=c[3*U+0]*T,z=c[3*U+1],C=c[3*U+0]*w;h.push(O,z,C)}}for(let S=0;S&amp;amp;lt;e;S++)for(let E=0;E&amp;amp;lt;t.length-1;E++){let T=E+S*t.length,w=T,U=T+t.length,O=T+t.length+1,z=T+1;s.push(w,U,z),s.push(O,z,U)}this.setIndex(s),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(o,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(u,2)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(h,3))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.points,t.segments,t.phiStart,t.phiLength)}},ah=class n extends Jr{constructor(t=1,e=0){let i=[1,0,0,-1,0,0,0,1,0,0,-1,0,0,0,1,0,0,-1],a=[0,2,4,0,4,3,0,3,5,0,5,2,1,2,5,1,5,3,1,3,4,1,4,2];super(i,a,t,e),this.type=&amp;amp;quot;OctahedronGeometry&amp;amp;quot;,this.parameters={radius:t,detail:e}}static fromJSON(t){return new n(t.radius,t.detail)}},Du=class n extends ve{constructor(t=1,e=1,i=1,a=1){super(),this.type=&amp;amp;quot;PlaneGeometry&amp;amp;quot;,this.parameters={width:t,height:e,widthSegments:i,heightSegments:a};let s=t/2,o=e/2,u=Math.floor(i),c=Math.floor(a),h=u+1,d=c+1,m=t/u,g=e/c,y=[],x=[],b=[],M=[];for(let v=0;v&amp;amp;lt;d;v++){let S=v*g-o;for(let E=0;E&amp;amp;lt;h;E++){let T=E*m-s;x.push(T,-S,0),b.push(0,0,1),M.push(E/u),M.push(1-v/c)}}for(let v=0;v&amp;amp;lt;c;v++)for(let S=0;S&amp;amp;lt;u;S++){let E=S+h*v,T=S+h*(v+1),w=S+1+h*(v+1),U=S+1+h*v;y.push(E,T,U),y.push(T,w,U)}this.setIndex(y),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(x,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(b,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(M,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.width,t.height,t.widthSegments,t.heightSegments)}},pm=class n extends ve{constructor(t=.5,e=1,i=32,a=1,s=0,o=Math.PI*2){super(),this.type=&amp;amp;quot;RingGeometry&amp;amp;quot;,this.parameters={innerRadius:t,outerRadius:e,thetaSegments:i,phiSegments:a,thetaStart:s,thetaLength:o},i=Math.max(3,i),a=Math.max(1,a);let u=[],c=[],h=[],d=[],m=t,g=(e-t)/a,y=new B,x=new ct;for(let b=0;b&amp;amp;lt;=a;b++){for(let M=0;M&amp;amp;lt;=i;M++){let v=s+M/i*o;y.x=m*Math.cos(v),y.y=m*Math.sin(v),c.push(y.x,y.y,y.z),h.push(0,0,1),x.x=(y.x/e+1)/2,x.y=(y.y/e+1)/2,d.push(x.x,x.y)}m+=g}for(let b=0;b&amp;amp;lt;a;b++){let M=b*(i+1);for(let v=0;v&amp;amp;lt;i;v++){let S=v+M,E=S,T=S+i+1,w=S+i+2,U=S+1;u.push(E,T,U),u.push(T,w,U)}}this.setIndex(u),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(c,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(h,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(d,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.innerRadius,t.outerRadius,t.thetaSegments,t.phiSegments,t.thetaStart,t.thetaLength)}},mm=class n extends ve{constructor(t=new $s([new ct(0,.5),new ct(-.5,-.5),new ct(.5,-.5)]),e=12){super(),this.type=&amp;amp;quot;ShapeGeometry&amp;amp;quot;,this.parameters={shapes:t,curveSegments:e};let i=[],a=[],s=[],o=[],u=0,c=0;if(Array.isArray(t)===!1)h(t);else for(let d=0;d&amp;amp;lt;t.length;d++)h(t[d]),this.addGroup(u,c,d),u+=c,c=0;this.setIndex(i),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(a,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(s,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(o,2));function h(d){let m=a.length/3,g=d.extractPoints(e),y=g.shape,x=g.holes;os.isClockWise(y)===!1&amp;amp;amp;&amp;amp;amp;(y=y.reverse());for(let M=0,v=x.length;M&amp;amp;lt;v;M++){let S=x[M];os.isClockWise(S)===!0&amp;amp;amp;&amp;amp;amp;(x[M]=S.reverse())}let b=os.triangulateShape(y,x);for(let M=0,v=x.length;M&amp;amp;lt;v;M++){let S=x[M];y=y.concat(S)}for(let M=0,v=y.length;M&amp;amp;lt;v;M++){let S=y[M];a.push(S.x,S.y,0),s.push(0,0,1),o.push(S.x,S.y)}for(let M=0,v=b.length;M&amp;amp;lt;v;M++){let S=b[M],E=S[0]+m,T=S[1]+m,w=S[2]+m;i.push(E,T,w),c+=3}}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){let t=super.toJSON(),e=this.parameters.shapes;return L5(e,t)}static fromJSON(t,e){let i=[];for(let a=0,s=t.shapes.length;a&amp;amp;lt;s;a++){let o=e[t.shapes[a]];i.push(o)}return new n(i,t.curveSegments)}};function L5(n,t){if(t.shapes=[],Array.isArray(n))for(let e=0,i=n.length;e&amp;amp;lt;i;e++){let a=n[e];t.shapes.push(a.uuid)}else t.shapes.push(n.uuid);return t}var sh=class n extends ve{constructor(t=1,e=32,i=16,a=0,s=Math.PI*2,o=0,u=Math.PI){super(),this.type=&amp;amp;quot;SphereGeometry&amp;amp;quot;,this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:a,phiLength:s,thetaStart:o,thetaLength:u},e=Math.max(3,Math.floor(e)),i=Math.max(2,Math.floor(i));let c=Math.min(o+u,Math.PI),h=0,d=[],m=new B,g=new B,y=[],x=[],b=[],M=[];for(let v=0;v&amp;amp;lt;=i;v++){let S=[],E=v/i,T=0;v===0&amp;amp;amp;&amp;amp;amp;o===0?T=.5/e:v===i&amp;amp;amp;&amp;amp;amp;c===Math.PI&amp;amp;amp;&amp;amp;amp;(T=-.5/e);for(let w=0;w&amp;amp;lt;=e;w++){let U=w/e;m.x=-t*Math.cos(a+U*s)*Math.sin(o+E*u),m.y=t*Math.cos(o+E*u),m.z=t*Math.sin(a+U*s)*Math.sin(o+E*u),x.push(m.x,m.y,m.z),g.copy(m).normalize(),b.push(g.x,g.y,g.z),M.push(U+T,1-E),S.push(h++)}d.push(S)}for(let v=0;v&amp;amp;lt;i;v++)for(let S=0;S&amp;amp;lt;e;S++){let E=d[v][S+1],T=d[v][S],w=d[v+1][S],U=d[v+1][S+1];(v!==0||o&amp;amp;gt;0)&amp;amp;amp;&amp;amp;amp;y.push(E,T,U),(v!==i-1||c&amp;amp;lt;Math.PI)&amp;amp;amp;&amp;amp;amp;y.push(T,w,U)}this.setIndex(y),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(x,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(b,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(M,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.radius,t.widthSegments,t.heightSegments,t.phiStart,t.phiLength,t.thetaStart,t.thetaLength)}},gm=class n extends Jr{constructor(t=1,e=0){let i=[1,1,1,-1,-1,1,-1,1,-1,1,-1,-1],a=[2,1,0,0,3,2,1,3,0,2,3,1];super(i,a,t,e),this.type=&amp;amp;quot;TetrahedronGeometry&amp;amp;quot;,this.parameters={radius:t,detail:e}}static fromJSON(t){return new n(t.radius,t.detail)}},vm=class n extends ve{constructor(t=1,e=.4,i=12,a=48,s=Math.PI*2){super(),this.type=&amp;amp;quot;TorusGeometry&amp;amp;quot;,this.parameters={radius:t,tube:e,radialSegments:i,tubularSegments:a,arc:s},i=Math.floor(i),a=Math.floor(a);let o=[],u=[],c=[],h=[],d=new B,m=new B,g=new B;for(let y=0;y&amp;amp;lt;=i;y++)for(let x=0;x&amp;amp;lt;=a;x++){let b=x/a*s,M=y/i*Math.PI*2;m.x=(t+e*Math.cos(M))*Math.cos(b),m.y=(t+e*Math.cos(M))*Math.sin(b),m.z=e*Math.sin(M),u.push(m.x,m.y,m.z),d.x=t*Math.cos(b),d.y=t*Math.sin(b),g.subVectors(m,d).normalize(),c.push(g.x,g.y,g.z),h.push(x/a),h.push(y/i)}for(let y=1;y&amp;amp;lt;=i;y++)for(let x=1;x&amp;amp;lt;=a;x++){let b=(a+1)*y+x-1,M=(a+1)*(y-1)+x-1,v=(a+1)*(y-1)+x,S=(a+1)*y+x;o.push(b,M,S),o.push(M,v,S)}this.setIndex(o),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(u,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(c,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(h,2))}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.radius,t.tube,t.radialSegments,t.tubularSegments,t.arc)}},ym=class n extends ve{constructor(t=1,e=.4,i=64,a=8,s=2,o=3){super(),this.type=&amp;amp;quot;TorusKnotGeometry&amp;amp;quot;,this.parameters={radius:t,tube:e,tubularSegments:i,radialSegments:a,p:s,q:o},i=Math.floor(i),a=Math.floor(a);let u=[],c=[],h=[],d=[],m=new B,g=new B,y=new B,x=new B,b=new B,M=new B,v=new B;for(let E=0;E&amp;amp;lt;=i;++E){let T=E/i*s*Math.PI*2;S(T,s,o,t,y),S(T+.01,s,o,t,x),M.subVectors(x,y),v.addVectors(x,y),b.crossVectors(M,v),v.crossVectors(b,M),b.normalize(),v.normalize();for(let w=0;w&amp;amp;lt;=a;++w){let U=w/a*Math.PI*2,O=-e*Math.cos(U),z=e*Math.sin(U);m.x=y.x+(O*v.x+z*b.x),m.y=y.y+(O*v.y+z*b.y),m.z=y.z+(O*v.z+z*b.z),c.push(m.x,m.y,m.z),g.subVectors(m,y).normalize(),h.push(g.x,g.y,g.z),d.push(E/i),d.push(w/a)}}for(let E=1;E&amp;amp;lt;=i;E++)for(let T=1;T&amp;amp;lt;=a;T++){let w=(a+1)*(E-1)+(T-1),U=(a+1)*E+(T-1),O=(a+1)*E+T,z=(a+1)*(E-1)+T;u.push(w,U,z),u.push(U,O,z)}this.setIndex(u),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(c,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(h,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(d,2));function S(E,T,w,U,O){let z=Math.cos(E),C=Math.sin(E),R=w/T*E,P=Math.cos(R);O.x=U*(2+P)*.5*z,O.y=U*(2+P)*C*.5,O.z=U*Math.sin(R)*.5}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}static fromJSON(t){return new n(t.radius,t.tube,t.tubularSegments,t.radialSegments,t.p,t.q)}},_m=class n extends ve{constructor(t=new eh(new B(-1,-1,0),new B(-1,1,0),new B(1,1,0)),e=64,i=1,a=8,s=!1){super(),this.type=&amp;amp;quot;TubeGeometry&amp;amp;quot;,this.parameters={path:t,tubularSegments:e,radius:i,radialSegments:a,closed:s};let o=t.computeFrenetFrames(e,s);this.tangents=o.tangents,this.normals=o.normals,this.binormals=o.binormals;let u=new B,c=new B,h=new ct,d=new B,m=[],g=[],y=[],x=[];b(),this.setIndex(x),this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(m,3)),this.setAttribute(&amp;amp;quot;normal&amp;amp;quot;,new Xt(g,3)),this.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xt(y,2));function b(){for(let E=0;E&amp;amp;lt;e;E++)M(E);M(s===!1?e:0),S(),v()}function M(E){d=t.getPointAt(E/e,d);let T=o.normals[E],w=o.binormals[E];for(let U=0;U&amp;amp;lt;=a;U++){let O=U/a*Math.PI*2,z=Math.sin(O),C=-Math.cos(O);c.x=C*T.x+z*w.x,c.y=C*T.y+z*w.y,c.z=C*T.z+z*w.z,c.normalize(),g.push(c.x,c.y,c.z),u.x=d.x+i*c.x,u.y=d.y+i*c.y,u.z=d.z+i*c.z,m.push(u.x,u.y,u.z)}}function v(){for(let E=1;E&amp;amp;lt;=e;E++)for(let T=1;T&amp;amp;lt;=a;T++){let w=(a+1)*(E-1)+(T-1),U=(a+1)*E+(T-1),O=(a+1)*E+T,z=(a+1)*(E-1)+T;x.push(w,U,z),x.push(U,O,z)}}function S(){for(let E=0;E&amp;amp;lt;=e;E++)for(let T=0;T&amp;amp;lt;=a;T++)h.x=E/e,h.y=T/a,y.push(h.x,h.y)}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}toJSON(){let t=super.toJSON();return t.path=this.parameters.path.toJSON(),t}static fromJSON(t){return new n(new l_[t.path.type]().fromJSON(t.path),t.tubularSegments,t.radius,t.radialSegments,t.closed)}},xm=class extends ve{constructor(t=null){if(super(),this.type=&amp;amp;quot;WireframeGeometry&amp;amp;quot;,this.parameters={geometry:t},t!==null){let e=[],i=new Set,a=new B,s=new B;if(t.index!==null){let o=t.attributes.position,u=t.index,c=t.groups;c.length===0&amp;amp;amp;&amp;amp;amp;(c=[{start:0,count:u.count,materialIndex:0}]);for(let h=0,d=c.length;h&amp;amp;lt;d;++h){let m=c[h],g=m.start,y=m.count;for(let x=g,b=g+y;x&amp;amp;lt;b;x+=3)for(let M=0;M&amp;amp;lt;3;M++){let v=u.getX(x+M),S=u.getX(x+(M+1)%3);a.fromBufferAttribute(o,v),s.fromBufferAttribute(o,S),cN(a,s,i)===!0&amp;amp;amp;&amp;amp;amp;(e.push(a.x,a.y,a.z),e.push(s.x,s.y,s.z))}}}else{let o=t.attributes.position;for(let u=0,c=o.count/3;u&amp;amp;lt;c;u++)for(let h=0;h&amp;amp;lt;3;h++){let d=3*u+h,m=3*u+(h+1)%3;a.fromBufferAttribute(o,d),s.fromBufferAttribute(o,m),cN(a,s,i)===!0&amp;amp;amp;&amp;amp;amp;(e.push(a.x,a.y,a.z),e.push(s.x,s.y,s.z))}}this.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(e,3))}}copy(t){return super.copy(t),this.parameters=Object.assign({},t.parameters),this}};function cN(n,t,e){let i=`${n.x},${n.y},${n.z}-${t.x},${t.y},${t.z}`,a=`${t.x},${t.y},${t.z}-${n.x},${n.y},${n.z}`;return e.has(i)===!0||e.has(a)===!0?!1:(e.add(i),e.add(a),!0)}var fN=Object.freeze({__proto__:null,BoxGeometry:rl,CapsuleGeometry:$p,CircleGeometry:tm,ConeGeometry:Kf,CylinderGeometry:Qf,DodecahedronGeometry:em,EdgesGeometry:nm,ExtrudeGeometry:fm,IcosahedronGeometry:hm,LatheGeometry:dm,OctahedronGeometry:ah,PlaneGeometry:Du,PolyhedronGeometry:Jr,RingGeometry:pm,ShapeGeometry:mm,SphereGeometry:sh,TetrahedronGeometry:gm,TorusGeometry:vm,TorusKnotGeometry:ym,TubeGeometry:_m,WireframeGeometry:xm}),Sm=class extends jn{constructor(t){super(),this.isShadowMaterial=!0,this.type=&amp;amp;quot;ShadowMaterial&amp;amp;quot;,this.color=new Bt(0),this.transparent=!0,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.fog=t.fog,this}},Mm=class extends ra{constructor(t){super(t),this.isRawShaderMaterial=!0,this.type=&amp;amp;quot;RawShaderMaterial&amp;amp;quot;}},rh=class extends jn{constructor(t){super(),this.isMeshStandardMaterial=!0,this.type=&amp;amp;quot;MeshStandardMaterial&amp;amp;quot;,this.defines={STANDARD:&amp;amp;quot;&amp;amp;quot;},this.color=new Bt(16777215),this.roughness=1,this.metalness=0,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=eo,this.normalScale=new ct(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.roughnessMap=null,this.metalnessMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new sa,this.envMapIntensity=1,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=&amp;amp;quot;round&amp;amp;quot;,this.wireframeLinejoin=&amp;amp;quot;round&amp;amp;quot;,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={STANDARD:&amp;amp;quot;&amp;amp;quot;},this.color.copy(t.color),this.roughness=t.roughness,this.metalness=t.metalness,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.roughnessMap=t.roughnessMap,this.metalnessMap=t.metalnessMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.envMapIntensity=t.envMapIntensity,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}},Em=class extends rh{constructor(t){super(),this.isMeshPhysicalMaterial=!0,this.defines={STANDARD:&amp;amp;quot;&amp;amp;quot;,PHYSICAL:&amp;amp;quot;&amp;amp;quot;},this.type=&amp;amp;quot;MeshPhysicalMaterial&amp;amp;quot;,this.anisotropyRotation=0,this.anisotropyMap=null,this.clearcoatMap=null,this.clearcoatRoughness=0,this.clearcoatRoughnessMap=null,this.clearcoatNormalScale=new ct(1,1),this.clearcoatNormalMap=null,this.ior=1.5,Object.defineProperty(this,&amp;amp;quot;reflectivity&amp;amp;quot;,{get:function(){return le(2.5*(this.ior-1)/(this.ior+1),0,1)},set:function(e){this.ior=(1+.4*e)/(1-.4*e)}}),this.iridescenceMap=null,this.iridescenceIOR=1.3,this.iridescenceThicknessRange=[100,400],this.iridescenceThicknessMap=null,this.sheenColor=new Bt(0),this.sheenColorMap=null,this.sheenRoughness=1,this.sheenRoughnessMap=null,this.transmissionMap=null,this.thickness=0,this.thicknessMap=null,this.attenuationDistance=1/0,this.attenuationColor=new Bt(1,1,1),this.specularIntensity=1,this.specularIntensityMap=null,this.specularColor=new Bt(1,1,1),this.specularColorMap=null,this._anisotropy=0,this._clearcoat=0,this._dispersion=0,this._iridescence=0,this._sheen=0,this._transmission=0,this.setValues(t)}get anisotropy(){return this._anisotropy}set anisotropy(t){this._anisotropy&amp;amp;gt;0!=t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat&amp;amp;gt;0!=t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence&amp;amp;gt;0!=t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.version++,this._iridescence=t}get dispersion(){return this._dispersion}set dispersion(t){this._dispersion&amp;amp;gt;0!=t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.version++,this._dispersion=t}get sheen(){return this._sheen}set sheen(t){this._sheen&amp;amp;gt;0!=t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission&amp;amp;gt;0!=t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:&amp;amp;quot;&amp;amp;quot;,PHYSICAL:&amp;amp;quot;&amp;amp;quot;},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.dispersion=t.dispersion,this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}},bm=class extends jn{constructor(t){super(),this.isMeshPhongMaterial=!0,this.type=&amp;amp;quot;MeshPhongMaterial&amp;amp;quot;,this.color=new Bt(16777215),this.specular=new Bt(1118481),this.shininess=30,this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=eo,this.normalScale=new ct(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new sa,this.combine=gh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=&amp;amp;quot;round&amp;amp;quot;,this.wireframeLinejoin=&amp;amp;quot;round&amp;amp;quot;,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.specular.copy(t.specular),this.shininess=t.shininess,this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}},Tm=class extends jn{constructor(t){super(),this.isMeshToonMaterial=!0,this.defines={TOON:&amp;amp;quot;&amp;amp;quot;},this.type=&amp;amp;quot;MeshToonMaterial&amp;amp;quot;,this.color=new Bt(16777215),this.map=null,this.gradientMap=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=eo,this.normalScale=new ct(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=&amp;amp;quot;round&amp;amp;quot;,this.wireframeLinejoin=&amp;amp;quot;round&amp;amp;quot;,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.gradientMap=t.gradientMap,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.fog=t.fog,this}},Am=class extends jn{constructor(t){super(),this.isMeshNormalMaterial=!0,this.type=&amp;amp;quot;MeshNormalMaterial&amp;amp;quot;,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=eo,this.normalScale=new ct(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.flatShading=!1,this.setValues(t)}copy(t){return super.copy(t),this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.flatShading=t.flatShading,this}},Rm=class extends jn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type=&amp;amp;quot;MeshLambertMaterial&amp;amp;quot;,this.color=new Bt(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Bt(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=eo,this.normalScale=new ct(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.envMapRotation=new sa,this.combine=gh,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=&amp;amp;quot;round&amp;amp;quot;,this.wireframeLinejoin=&amp;amp;quot;round&amp;amp;quot;,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.envMapRotation.copy(t.envMapRotation),this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}},oh=class extends jn{constructor(t){super(),this.isMeshDepthMaterial=!0,this.type=&amp;amp;quot;MeshDepthMaterial&amp;amp;quot;,this.depthPacking=xT,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.wireframe=!1,this.wireframeLinewidth=1,this.setValues(t)}copy(t){return super.copy(t),this.depthPacking=t.depthPacking,this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this}},lh=class extends jn{constructor(t){super(),this.isMeshDistanceMaterial=!0,this.type=&amp;amp;quot;MeshDistanceMaterial&amp;amp;quot;,this.map=null,this.alphaMap=null,this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.setValues(t)}copy(t){return super.copy(t),this.map=t.map,this.alphaMap=t.alphaMap,this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this}},Cm=class extends jn{constructor(t){super(),this.isMeshMatcapMaterial=!0,this.defines={MATCAP:&amp;amp;quot;&amp;amp;quot;},this.type=&amp;amp;quot;MeshMatcapMaterial&amp;amp;quot;,this.color=new Bt(16777215),this.matcap=null,this.map=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=eo,this.normalScale=new ct(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.alphaMap=null,this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.defines={MATCAP:&amp;amp;quot;&amp;amp;quot;},this.color.copy(t.color),this.matcap=t.matcap,this.map=t.map,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.alphaMap=t.alphaMap,this.flatShading=t.flatShading,this.fog=t.fog,this}},wm=class extends ui{constructor(t){super(),this.isLineDashedMaterial=!0,this.type=&amp;amp;quot;LineDashedMaterial&amp;amp;quot;,this.scale=1,this.dashSize=3,this.gapSize=1,this.setValues(t)}copy(t){return super.copy(t),this.scale=t.scale,this.dashSize=t.dashSize,this.gapSize=t.gapSize,this}};function pu(n,t){return!n||n.constructor===t?n:typeof t.BYTES_PER_ELEMENT==&amp;amp;quot;number&amp;amp;quot;?new t(n):Array.prototype.slice.call(n)}function EO(n){return ArrayBuffer.isView(n)&amp;amp;amp;&amp;amp;amp;!(n instanceof DataView)}function bO(n){function t(a,s){return n[a]-n[s]}let e=n.length,i=new Array(e);for(let a=0;a!==e;++a)i[a]=a;return i.sort(t),i}function Lb(n,t,e){let i=n.length,a=new n.constructor(i);for(let s=0,o=0;o!==i;++s){let u=e[s]*t;for(let c=0;c!==t;++c)a[o++]=n[u+c]}return a}function BT(n,t,e,i){let a=1,s=n[0];for(;s!==void 0&amp;amp;amp;&amp;amp;amp;s[i]===void 0;)s=n[a++];if(s===void 0)return;let o=s[i];if(o!==void 0)if(Array.isArray(o))do o=s[i],o!==void 0&amp;amp;amp;&amp;amp;amp;(t.push(s.time),e.push(...o)),s=n[a++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[i],o!==void 0&amp;amp;amp;&amp;amp;amp;(t.push(s.time),o.toArray(e,e.length)),s=n[a++];while(s!==void 0);else do o=s[i],o!==void 0&amp;amp;amp;&amp;amp;amp;(t.push(s.time),e.push(o)),s=n[a++];while(s!==void 0)}function z5(n,t,e,i,a=30){let s=n.clone();s.name=t;let o=[];for(let c=0;c&amp;amp;lt;s.tracks.length;++c){let h=s.tracks[c],d=h.getValueSize(),m=[],g=[];for(let y=0;y&amp;amp;lt;h.times.length;++y){let x=h.times[y]*a;if(!(x&amp;amp;lt;e||x&amp;amp;gt;=i)){m.push(h.times[y]);for(let b=0;b&amp;amp;lt;d;++b)g.push(h.values[y*d+b])}}m.length!==0&amp;amp;amp;&amp;amp;amp;(h.times=pu(m,h.times.constructor),h.values=pu(g,h.values.constructor),o.push(h))}s.tracks=o;let u=1/0;for(let c=0;c&amp;amp;lt;s.tracks.length;++c)u&amp;amp;gt;s.tracks[c].times[0]&amp;amp;amp;&amp;amp;amp;(u=s.tracks[c].times[0]);for(let c=0;c&amp;amp;lt;s.tracks.length;++c)s.tracks[c].shift(-1*u);return s.resetDuration(),s}function B5(n,t=0,e=n,i=30){i&amp;amp;lt;=0&amp;amp;amp;&amp;amp;amp;(i=30);let a=e.tracks.length,s=t/i;for(let o=0;o&amp;amp;lt;a;++o){let u=e.tracks[o],c=u.ValueTypeName;if(c===&amp;amp;quot;bool&amp;amp;quot;||c===&amp;amp;quot;string&amp;amp;quot;)continue;let h=n.tracks.find(function(v){return v.name===u.name&amp;amp;amp;&amp;amp;amp;v.ValueTypeName===c});if(h===void 0)continue;let d=0,m=u.getValueSize();u.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&amp;amp;amp;&amp;amp;amp;(d=m/3);let g=0,y=h.getValueSize();h.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline&amp;amp;amp;&amp;amp;amp;(g=y/3);let x=u.times.length-1,b;if(s&amp;amp;lt;=u.times[0]){let v=d,S=m-d;b=u.values.slice(v,S)}else if(s&amp;amp;gt;=u.times[x]){let v=x*m+d,S=v+m-d;b=u.values.slice(v,S)}else{let v=u.createInterpolant(),S=d,E=m-d;v.evaluate(s),b=v.resultBuffer.slice(S,E)}c===&amp;amp;quot;quaternion&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;new vi().fromArray(b).normalize().conjugate().toArray(b);let M=h.times.length;for(let v=0;v&amp;amp;lt;M;++v){let S=v*y+g;if(c===&amp;amp;quot;quaternion&amp;amp;quot;)vi.multiplyQuaternionsFlat(h.values,S,b,0,h.values,S);else{let E=y-g*2;for(let T=0;T&amp;amp;lt;E;++T)h.values[S+T]-=b[T]}}}return n.blendMode=cx,n}var u_=class{static convertArray(t,e){return pu(t,e)}static isTypedArray(t){return EO(t)}static getKeyframeOrder(t){return bO(t)}static sortedArray(t,e,i){return Lb(t,e,i)}static flattenJSON(t,e,i,a){BT(t,e,i,a)}static subclip(t,e,i,a,s=30){return z5(t,e,i,a,s)}static makeClipAdditive(t,e=0,i=t,a=30){return B5(t,e,i,a)}},ul=class{constructor(t,e,i,a){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=a!==void 0?a:new e.constructor(i),this.sampleValues=e,this.valueSize=i,this.settings=null,this.DefaultSettings_={}}evaluate(t){let e=this.parameterPositions,i=this._cachedIndex,a=e[i],s=e[i-1];t:{e:{let o;n:{i:if(!(t&amp;amp;lt;a)){for(let u=i+2;;){if(a===void 0){if(t&amp;amp;lt;s)break i;return i=e.length,this._cachedIndex=i,this.copySampleValue_(i-1)}if(i===u)break;if(s=a,a=e[++i],t&amp;amp;lt;a)break e}o=e.length;break n}if(!(t&amp;amp;gt;=s)){let u=e[1];t&amp;amp;lt;u&amp;amp;amp;&amp;amp;amp;(i=2,s=u);for(let c=i-2;;){if(s===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(i===c)break;if(a=s,s=e[--i-1],t&amp;amp;gt;=s)break e}o=i,i=0;break n}break t}for(;i&amp;amp;lt;o;){let u=i+o&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1;t&amp;amp;lt;e[u]?o=u:i=u+1}if(a=e[i],s=e[i-1],s===void 0)return this._cachedIndex=0,this.copySampleValue_(0);if(a===void 0)return i=e.length,this._cachedIndex=i,this.copySampleValue_(i-1)}this._cachedIndex=i,this.intervalChanged_(i,s,a)}return this.interpolate_(i,s,t,a)}getSettings_(){return this.settings||this.DefaultSettings_}copySampleValue_(t){let e=this.resultBuffer,i=this.sampleValues,a=this.valueSize,s=t*a;for(let o=0;o!==a;++o)e[o]=i[s+o];return e}interpolate_(){throw new Error(&amp;amp;quot;call to abstract method&amp;amp;quot;)}intervalChanged_(){}},Dm=class extends ul{constructor(t,e,i,a){super(t,e,i,a),this._weightPrev=-0,this._offsetPrev=-0,this._weightNext=-0,this._offsetNext=-0,this.DefaultSettings_={endingStart:nl,endingEnd:nl}}intervalChanged_(t,e,i){let a=this.parameterPositions,s=t-2,o=t+1,u=a[s],c=a[o];if(u===void 0)switch(this.getSettings_().endingStart){case il:s=t,u=2*e-i;break;case Hf:s=a.length-2,u=e+a[s]-a[s+1];break;default:s=t,u=i}if(c===void 0)switch(this.getSettings_().endingEnd){case il:o=t,c=2*i-e;break;case Hf:o=1,c=i+a[1]-a[0];break;default:o=t-1,c=e}let h=(i-e)*.5,d=this.valueSize;this._weightPrev=h/(e-u),this._weightNext=h/(c-i),this._offsetPrev=s*d,this._offsetNext=o*d}interpolate_(t,e,i,a){let s=this.resultBuffer,o=this.sampleValues,u=this.valueSize,c=t*u,h=c-u,d=this._offsetPrev,m=this._offsetNext,g=this._weightPrev,y=this._weightNext,x=(i-e)/(a-e),b=x*x,M=b*x,v=-g*M+2*g*b-g*x,S=(1+g)*M+(-1.5-2*g)*b+(-.5+g)*x+1,E=(-1-y)*M+(1.5+y)*b+.5*x,T=y*M-y*b;for(let w=0;w!==u;++w)s[w]=v*o[d+w]+S*o[h+w]+E*o[c+w]+T*o[m+w];return s}},uh=class extends ul{constructor(t,e,i,a){super(t,e,i,a)}interpolate_(t,e,i,a){let s=this.resultBuffer,o=this.sampleValues,u=this.valueSize,c=t*u,h=c-u,d=(i-e)/(a-e),m=1-d;for(let g=0;g!==u;++g)s[g]=o[h+g]*m+o[c+g]*d;return s}},Um=class extends ul{constructor(t,e,i,a){super(t,e,i,a)}interpolate_(t){return this.copySampleValue_(t-1)}},Yi=class{constructor(t,e,i,a){if(t===void 0)throw new Error(&amp;amp;quot;THREE.KeyframeTrack: track name is undefined&amp;amp;quot;);if(e===void 0||e.length===0)throw new Error(&amp;amp;quot;THREE.KeyframeTrack: no keyframes in track named &amp;amp;quot;+t);this.name=t,this.times=pu(e,this.TimeBufferType),this.values=pu(i,this.ValueBufferType),this.setInterpolation(a||this.DefaultInterpolation)}static toJSON(t){let e=t.constructor,i;if(e.toJSON!==this.toJSON)i=e.toJSON(t);else{i={name:t.name,times:pu(t.times,Array),values:pu(t.values,Array)};let a=t.getInterpolation();a!==t.DefaultInterpolation&amp;amp;amp;&amp;amp;amp;(i.interpolation=a)}return i.type=t.ValueTypeName,i}InterpolantFactoryMethodDiscrete(t){return new Um(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodLinear(t){return new uh(this.times,this.values,this.getValueSize(),t)}InterpolantFactoryMethodSmooth(t){return new Dm(this.times,this.values,this.getValueSize(),t)}setInterpolation(t){let e;switch(t){case If:e=this.InterpolantFactoryMethodDiscrete;break;case Pp:e=this.InterpolantFactoryMethodLinear;break;case Up:e=this.InterpolantFactoryMethodSmooth;break}if(e===void 0){let i=&amp;amp;quot;unsupported interpolation for &amp;amp;quot;+this.ValueTypeName+&amp;amp;quot; keyframe track named &amp;amp;quot;+this.name;if(this.createInterpolant===void 0)if(t!==this.DefaultInterpolation)this.setInterpolation(this.DefaultInterpolation);else throw new Error(i);return console.warn(&amp;amp;quot;THREE.KeyframeTrack:&amp;amp;quot;,i),this}return this.createInterpolant=e,this}getInterpolation(){switch(this.createInterpolant){case this.InterpolantFactoryMethodDiscrete:return If;case this.InterpolantFactoryMethodLinear:return Pp;case this.InterpolantFactoryMethodSmooth:return Up}}getValueSize(){return this.values.length/this.times.length}shift(t){if(t!==0){let e=this.times;for(let i=0,a=e.length;i!==a;++i)e[i]+=t}return this}scale(t){if(t!==1){let e=this.times;for(let i=0,a=e.length;i!==a;++i)e[i]*=t}return this}trim(t,e){let i=this.times,a=i.length,s=0,o=a-1;for(;s!==a&amp;amp;amp;&amp;amp;amp;i[s]&amp;amp;lt;t;)++s;for(;o!==-1&amp;amp;amp;&amp;amp;amp;i[o]&amp;amp;gt;e;)--o;if(++o,s!==0||o!==a){s&amp;amp;gt;=o&amp;amp;amp;&amp;amp;amp;(o=Math.max(o,1),s=o-1);let u=this.getValueSize();this.times=i.slice(s,o),this.values=this.values.slice(s*u,o*u)}return this}validate(){let t=!0,e=this.getValueSize();e-Math.floor(e)!==0&amp;amp;amp;&amp;amp;amp;(console.error(&amp;amp;quot;THREE.KeyframeTrack: Invalid value size in track.&amp;amp;quot;,this),t=!1);let i=this.times,a=this.values,s=i.length;s===0&amp;amp;amp;&amp;amp;amp;(console.error(&amp;amp;quot;THREE.KeyframeTrack: Track is empty.&amp;amp;quot;,this),t=!1);let o=null;for(let u=0;u!==s;u++){let c=i[u];if(typeof c==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;isNaN(c)){console.error(&amp;amp;quot;THREE.KeyframeTrack: Time is not a valid number.&amp;amp;quot;,this,u,c),t=!1;break}if(o!==null&amp;amp;amp;&amp;amp;amp;o&amp;amp;gt;c){console.error(&amp;amp;quot;THREE.KeyframeTrack: Out of order keys.&amp;amp;quot;,this,u,c,o),t=!1;break}o=c}if(a!==void 0&amp;amp;amp;&amp;amp;amp;EO(a))for(let u=0,c=a.length;u!==c;++u){let h=a[u];if(isNaN(h)){console.error(&amp;amp;quot;THREE.KeyframeTrack: Value is not a valid number.&amp;amp;quot;,this,u,h),t=!1;break}}return t}optimize(){let t=this.times.slice(),e=this.values.slice(),i=this.getValueSize(),a=this.getInterpolation()===Up,s=t.length-1,o=1;for(let u=1;u&amp;amp;lt;s;++u){let c=!1,h=t[u],d=t[u+1];if(h!==d&amp;amp;amp;&amp;amp;amp;(u!==1||h!==t[0]))if(a)c=!0;else{let m=u*i,g=m-i,y=m+i;for(let x=0;x!==i;++x){let b=e[m+x];if(b!==e[g+x]||b!==e[y+x]){c=!0;break}}}if(c){if(u!==o){t[o]=t[u];let m=u*i,g=o*i;for(let y=0;y!==i;++y)e[g+y]=e[m+y]}++o}}if(s&amp;amp;gt;0){t[o]=t[s];for(let u=s*i,c=o*i,h=0;h!==i;++h)e[c+h]=e[u+h];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*i)):(this.times=t,this.values=e),this}clone(){let t=this.times.slice(),e=this.values.slice(),i=this.constructor,a=new i(this.name,t,e);return a.createInterpolant=this.createInterpolant,a}};Yi.prototype.ValueTypeName=&amp;amp;quot;&amp;amp;quot;;Yi.prototype.TimeBufferType=Float32Array;Yi.prototype.ValueBufferType=Float32Array;Yi.prototype.DefaultInterpolation=Pp;var ir=class extends Yi{constructor(t,e,i){super(t,e,i)}};ir.prototype.ValueTypeName=&amp;amp;quot;bool&amp;amp;quot;;ir.prototype.ValueBufferType=Array;ir.prototype.DefaultInterpolation=If;ir.prototype.InterpolantFactoryMethodLinear=void 0;ir.prototype.InterpolantFactoryMethodSmooth=void 0;var ch=class extends Yi{constructor(t,e,i,a){super(t,e,i,a)}};ch.prototype.ValueTypeName=&amp;amp;quot;color&amp;amp;quot;;var cl=class extends Yi{constructor(t,e,i,a){super(t,e,i,a)}};cl.prototype.ValueTypeName=&amp;amp;quot;number&amp;amp;quot;;var Nm=class extends ul{constructor(t,e,i,a){super(t,e,i,a)}interpolate_(t,e,i,a){let s=this.resultBuffer,o=this.sampleValues,u=this.valueSize,c=(i-e)/(a-e),h=t*u;for(let d=h+u;h!==d;h+=4)vi.slerpFlat(s,0,o,h-u,o,h,c);return s}},fl=class extends Yi{constructor(t,e,i,a){super(t,e,i,a)}InterpolantFactoryMethodLinear(t){return new Nm(this.times,this.values,this.getValueSize(),t)}};fl.prototype.ValueTypeName=&amp;amp;quot;quaternion&amp;amp;quot;;fl.prototype.InterpolantFactoryMethodSmooth=void 0;var ar=class extends Yi{constructor(t,e,i){super(t,e,i)}};ar.prototype.ValueTypeName=&amp;amp;quot;string&amp;amp;quot;;ar.prototype.ValueBufferType=Array;ar.prototype.DefaultInterpolation=If;ar.prototype.InterpolantFactoryMethodLinear=void 0;ar.prototype.InterpolantFactoryMethodSmooth=void 0;var hl=class extends Yi{constructor(t,e,i,a){super(t,e,i,a)}};hl.prototype.ValueTypeName=&amp;amp;quot;vector&amp;amp;quot;;var dl=class{constructor(t=&amp;amp;quot;&amp;amp;quot;,e=-1,i=[],a=Bg){this.name=t,this.tracks=i,this.duration=e,this.blendMode=a,this.uuid=Na(),this.duration&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;this.resetDuration()}static parse(t){let e=[],i=t.tracks,a=1/(t.fps||1);for(let o=0,u=i.length;o!==u;++o)e.push(I5(i[o]).scale(a));let s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){let e=[],i=t.tracks,a={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=i.length;s!==o;++s)e.push(Yi.toJSON(i[s]));return a}static CreateFromMorphTargetSequence(t,e,i,a){let s=e.length,o=[];for(let u=0;u&amp;amp;lt;s;u++){let c=[],h=[];c.push((u+s-1)%s,u,(u+1)%s),h.push(0,1,0);let d=bO(c);c=Lb(c,1,d),h=Lb(h,1,d),!a&amp;amp;amp;&amp;amp;amp;c[0]===0&amp;amp;amp;&amp;amp;amp;(c.push(s),h.push(h[0])),o.push(new cl(&amp;amp;quot;.morphTargetInfluences[&amp;amp;quot;+e[u].name+&amp;amp;quot;]&amp;amp;quot;,c,h).scale(1/i))}return new this(t,-1,o)}static findByName(t,e){let i=t;if(!Array.isArray(t)){let a=t;i=a.geometry&amp;amp;amp;&amp;amp;amp;a.geometry.animations||a.animations}for(let a=0;a&amp;amp;lt;i.length;a++)if(i[a].name===e)return i[a];return null}static CreateClipsFromMorphTargetSequences(t,e,i){let a={},s=/^([\w-]*?)([\d]+)$/;for(let u=0,c=t.length;u&amp;amp;lt;c;u++){let h=t[u],d=h.name.match(s);if(d&amp;amp;amp;&amp;amp;amp;d.length&amp;amp;gt;1){let m=d[1],g=a[m];g||(a[m]=g=[]),g.push(h)}}let o=[];for(let u in a)o.push(this.CreateFromMorphTargetSequence(u,a[u],e,i));return o}static parseAnimation(t,e){if(console.warn(&amp;amp;quot;THREE.AnimationClip: parseAnimation() is deprecated and will be removed with r185&amp;amp;quot;),!t)return console.error(&amp;amp;quot;THREE.AnimationClip: No animation in JSONLoader data.&amp;amp;quot;),null;let i=function(m,g,y,x,b){if(y.length!==0){let M=[],v=[];BT(y,M,v,x),M.length!==0&amp;amp;amp;&amp;amp;amp;b.push(new m(g,M,v))}},a=[],s=t.name||&amp;amp;quot;default&amp;amp;quot;,o=t.fps||30,u=t.blendMode,c=t.length||-1,h=t.hierarchy||[];for(let m=0;m&amp;amp;lt;h.length;m++){let g=h[m].keys;if(!(!g||g.length===0))if(g[0].morphTargets){let y={},x;for(x=0;x&amp;amp;lt;g.length;x++)if(g[x].morphTargets)for(let b=0;b&amp;amp;lt;g[x].morphTargets.length;b++)y[g[x].morphTargets[b]]=-1;for(let b in y){let M=[],v=[];for(let S=0;S!==g[x].morphTargets.length;++S){let E=g[x];M.push(E.time),v.push(E.morphTarget===b?1:0)}a.push(new cl(&amp;amp;quot;.morphTargetInfluence[&amp;amp;quot;+b+&amp;amp;quot;]&amp;amp;quot;,M,v))}c=y.length*o}else{let y=&amp;amp;quot;.bones[&amp;amp;quot;+e[m].name+&amp;amp;quot;]&amp;amp;quot;;i(hl,y+&amp;amp;quot;.position&amp;amp;quot;,g,&amp;amp;quot;pos&amp;amp;quot;,a),i(fl,y+&amp;amp;quot;.quaternion&amp;amp;quot;,g,&amp;amp;quot;rot&amp;amp;quot;,a),i(hl,y+&amp;amp;quot;.scale&amp;amp;quot;,g,&amp;amp;quot;scl&amp;amp;quot;,a)}}return a.length===0?null:new this(s,c,a,u)}resetDuration(){let t=this.tracks,e=0;for(let i=0,a=t.length;i!==a;++i){let s=this.tracks[i];e=Math.max(e,s.times[s.times.length-1])}return this.duration=e,this}trim(){for(let t=0;t&amp;amp;lt;this.tracks.length;t++)this.tracks[t].trim(0,this.duration);return this}validate(){let t=!0;for(let e=0;e&amp;amp;lt;this.tracks.length;e++)t=t&amp;amp;amp;&amp;amp;amp;this.tracks[e].validate();return t}optimize(){for(let t=0;t&amp;amp;lt;this.tracks.length;t++)this.tracks[t].optimize();return this}clone(){let t=[];for(let e=0;e&amp;amp;lt;this.tracks.length;e++)t.push(this.tracks[e].clone());return new this.constructor(this.name,this.duration,t,this.blendMode)}toJSON(){return this.constructor.toJSON(this)}};function P5(n){switch(n.toLowerCase()){case&amp;amp;quot;scalar&amp;amp;quot;:case&amp;amp;quot;double&amp;amp;quot;:case&amp;amp;quot;float&amp;amp;quot;:case&amp;amp;quot;number&amp;amp;quot;:case&amp;amp;quot;integer&amp;amp;quot;:return cl;case&amp;amp;quot;vector&amp;amp;quot;:case&amp;amp;quot;vector2&amp;amp;quot;:case&amp;amp;quot;vector3&amp;amp;quot;:case&amp;amp;quot;vector4&amp;amp;quot;:return hl;case&amp;amp;quot;color&amp;amp;quot;:return ch;case&amp;amp;quot;quaternion&amp;amp;quot;:return fl;case&amp;amp;quot;bool&amp;amp;quot;:case&amp;amp;quot;boolean&amp;amp;quot;:return ir;case&amp;amp;quot;string&amp;amp;quot;:return ar}throw new Error(&amp;amp;quot;THREE.KeyframeTrack: Unsupported typeName: &amp;amp;quot;+n)}function I5(n){if(n.type===void 0)throw new Error(&amp;amp;quot;THREE.KeyframeTrack: track type undefined, can not parse&amp;amp;quot;);let t=P5(n.type);if(n.times===void 0){let e=[],i=[];BT(n.keys,e,i,&amp;amp;quot;value&amp;amp;quot;),n.times=e,n.values=i}return t.parse!==void 0?t.parse(n):new t(n.name,n.times,n.values,n.interpolation)}var As={enabled:!1,files:{},add:function(n,t){this.enabled!==!1&amp;amp;amp;&amp;amp;amp;(this.files[n]=t)},get:function(n){if(this.enabled!==!1)return this.files[n]},remove:function(n){delete this.files[n]},clear:function(){this.files={}}},fh=class{constructor(t,e,i){let a=this,s=!1,o=0,u=0,c,h=[];this.onStart=void 0,this.onLoad=t,this.onProgress=e,this.onError=i,this.abortController=new AbortController,this.itemStart=function(d){u++,s===!1&amp;amp;amp;&amp;amp;amp;a.onStart!==void 0&amp;amp;amp;&amp;amp;amp;a.onStart(d,o,u),s=!0},this.itemEnd=function(d){o++,a.onProgress!==void 0&amp;amp;amp;&amp;amp;amp;a.onProgress(d,o,u),o===u&amp;amp;amp;&amp;amp;amp;(s=!1,a.onLoad!==void 0&amp;amp;amp;&amp;amp;amp;a.onLoad())},this.itemError=function(d){a.onError!==void 0&amp;amp;amp;&amp;amp;amp;a.onError(d)},this.resolveURL=function(d){return c?c(d):d},this.setURLModifier=function(d){return c=d,this},this.addHandler=function(d,m){return h.push(d,m),this},this.removeHandler=function(d){let m=h.indexOf(d);return m!==-1&amp;amp;amp;&amp;amp;amp;h.splice(m,2),this},this.getHandler=function(d){for(let m=0,g=h.length;m&amp;amp;lt;g;m+=2){let y=h[m],x=h[m+1];if(y.global&amp;amp;amp;&amp;amp;amp;(y.lastIndex=0),y.test(d))return x}return null},this.abort=function(){return this.abortController.abort(),this.abortController=new AbortController,this}}},PT=new fh,yi=class{constructor(t){this.manager=t!==void 0?t:PT,this.crossOrigin=&amp;amp;quot;anonymous&amp;amp;quot;,this.withCredentials=!1,this.path=&amp;amp;quot;&amp;amp;quot;,this.resourcePath=&amp;amp;quot;&amp;amp;quot;,this.requestHeader={}}load(){}loadAsync(t,e){let i=this;return new Promise(function(a,s){i.load(t,a,e,s)})}parse(){}setCrossOrigin(t){return this.crossOrigin=t,this}setWithCredentials(t){return this.withCredentials=t,this}setPath(t){return this.path=t,this}setResourcePath(t){return this.resourcePath=t,this}setRequestHeader(t){return this.requestHeader=t,this}abort(){return this}};yi.DEFAULT_MATERIAL_NAME=&amp;amp;quot;__DEFAULT&amp;amp;quot;;var qr={},zb=class extends Error{constructor(t,e){super(t),this.response=e}},ls=class extends yi{constructor(t){super(t),this.mimeType=&amp;amp;quot;&amp;amp;quot;,this.responseType=&amp;amp;quot;&amp;amp;quot;,this._abortController=new AbortController}load(t,e,i,a){t===void 0&amp;amp;amp;&amp;amp;amp;(t=&amp;amp;quot;&amp;amp;quot;),this.path!==void 0&amp;amp;amp;&amp;amp;amp;(t=this.path+t),t=this.manager.resolveURL(t);let s=As.get(`file:${t}`);if(s!==void 0)return this.manager.itemStart(t),setTimeout(()=&amp;amp;gt;{e&amp;amp;amp;&amp;amp;amp;e(s),this.manager.itemEnd(t)},0),s;if(qr[t]!==void 0){qr[t].push({onLoad:e,onProgress:i,onError:a});return}qr[t]=[],qr[t].push({onLoad:e,onProgress:i,onError:a});let o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?&amp;amp;quot;include&amp;amp;quot;:&amp;amp;quot;same-origin&amp;amp;quot;,signal:typeof AbortSignal.any==&amp;amp;quot;function&amp;amp;quot;?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal}),u=this.mimeType,c=this.responseType;fetch(o).then(h=&amp;amp;gt;{if(h.status===200||h.status===0){if(h.status===0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.FileLoader: HTTP Status 0 received.&amp;amp;quot;),typeof ReadableStream&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||h.body===void 0||h.body.getReader===void 0)return h;let d=qr[t],m=h.body.getReader(),g=h.headers.get(&amp;amp;quot;X-File-Size&amp;amp;quot;)||h.headers.get(&amp;amp;quot;Content-Length&amp;amp;quot;),y=g?parseInt(g):0,x=y!==0,b=0,M=new ReadableStream({start(v){S();function S(){m.read().then(({done:E,value:T})=&amp;amp;gt;{if(E)v.close();else{b+=T.byteLength;let w=new ProgressEvent(&amp;amp;quot;progress&amp;amp;quot;,{lengthComputable:x,loaded:b,total:y});for(let U=0,O=d.length;U&amp;amp;lt;O;U++){let z=d[U];z.onProgress&amp;amp;amp;&amp;amp;amp;z.onProgress(w)}v.enqueue(T),S()}},E=&amp;amp;gt;{v.error(E)})}}});return new Response(M)}else throw new zb(`fetch for &amp;amp;quot;${h.url}&amp;amp;quot; responded with ${h.status}: ${h.statusText}`,h)}).then(h=&amp;amp;gt;{switch(c){case&amp;amp;quot;arraybuffer&amp;amp;quot;:return h.arrayBuffer();case&amp;amp;quot;blob&amp;amp;quot;:return h.blob();case&amp;amp;quot;document&amp;amp;quot;:return h.text().then(d=&amp;amp;gt;new DOMParser().parseFromString(d,u));case&amp;amp;quot;json&amp;amp;quot;:return h.json();default:if(u===&amp;amp;quot;&amp;amp;quot;)return h.text();{let m=/charset=&amp;amp;quot;?([^;&amp;amp;quot;\s]*)&amp;amp;quot;?/i.exec(u),g=m&amp;amp;amp;&amp;amp;amp;m[1]?m[1].toLowerCase():void 0,y=new TextDecoder(g);return h.arrayBuffer().then(x=&amp;amp;gt;y.decode(x))}}}).then(h=&amp;amp;gt;{As.add(`file:${t}`,h);let d=qr[t];delete qr[t];for(let m=0,g=d.length;m&amp;amp;lt;g;m++){let y=d[m];y.onLoad&amp;amp;amp;&amp;amp;amp;y.onLoad(h)}}).catch(h=&amp;amp;gt;{let d=qr[t];if(d===void 0)throw this.manager.itemError(t),h;delete qr[t];for(let m=0,g=d.length;m&amp;amp;lt;g;m++){let y=d[m];y.onError&amp;amp;amp;&amp;amp;amp;y.onError(h)}this.manager.itemError(t)}).finally(()=&amp;amp;gt;{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},c_=class extends yi{constructor(t){super(t)}load(t,e,i,a){let s=this,o=new ls(this.manager);o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,function(u){try{e(s.parse(JSON.parse(u)))}catch(c){a?a(c):console.error(c),s.manager.itemError(t)}},i,a)}parse(t){let e=[];for(let i=0;i&amp;amp;lt;t.length;i++){let a=dl.parse(t[i]);e.push(a)}return e}},f_=class extends yi{constructor(t){super(t)}load(t,e,i,a){let s=this,o=[],u=new Au,c=new ls(this.manager);c.setPath(this.path),c.setResponseType(&amp;amp;quot;arraybuffer&amp;amp;quot;),c.setRequestHeader(this.requestHeader),c.setWithCredentials(s.withCredentials);let h=0;function d(m){c.load(t[m],function(g){let y=s.parse(g,!0);o[m]={width:y.width,height:y.height,format:y.format,mipmaps:y.mipmaps},h+=1,h===6&amp;amp;amp;&amp;amp;amp;(y.mipmapCount===1&amp;amp;amp;&amp;amp;amp;(u.minFilter=Gn),u.image=o,u.format=y.format,u.needsUpdate=!0,e&amp;amp;amp;&amp;amp;amp;e(u))},i,a)}if(Array.isArray(t))for(let m=0,g=t.length;m&amp;amp;lt;g;++m)d(m);else c.load(t,function(m){let g=s.parse(m,!0);if(g.isCubemap){let y=g.mipmaps.length/g.mipmapCount;for(let x=0;x&amp;amp;lt;y;x++){o[x]={mipmaps:[]};for(let b=0;b&amp;amp;lt;g.mipmapCount;b++)o[x].mipmaps.push(g.mipmaps[x*g.mipmapCount+b]),o[x].format=g.format,o[x].width=g.width,o[x].height=g.height}u.image=o}else u.image.width=g.width,u.image.height=g.height,u.mipmaps=g.mipmaps;g.mipmapCount===1&amp;amp;amp;&amp;amp;amp;(u.minFilter=Gn),u.format=g.format,u.needsUpdate=!0,e&amp;amp;amp;&amp;amp;amp;e(u)},i,a);return u}},Uf=new WeakMap,pl=class extends yi{constructor(t){super(t)}load(t,e,i,a){this.path!==void 0&amp;amp;amp;&amp;amp;amp;(t=this.path+t),t=this.manager.resolveURL(t);let s=this,o=As.get(`image:${t}`);if(o!==void 0){if(o.complete===!0)s.manager.itemStart(t),setTimeout(function(){e&amp;amp;amp;&amp;amp;amp;e(o),s.manager.itemEnd(t)},0);else{let m=Uf.get(o);m===void 0&amp;amp;amp;&amp;amp;amp;(m=[],Uf.set(o,m)),m.push({onLoad:e,onError:a})}return o}let u=Gf(&amp;amp;quot;img&amp;amp;quot;);function c(){d(),e&amp;amp;amp;&amp;amp;amp;e(this);let m=Uf.get(this)||[];for(let g=0;g&amp;amp;lt;m.length;g++){let y=m[g];y.onLoad&amp;amp;amp;&amp;amp;amp;y.onLoad(this)}Uf.delete(this),s.manager.itemEnd(t)}function h(m){d(),a&amp;amp;amp;&amp;amp;amp;a(m),As.remove(`image:${t}`);let g=Uf.get(this)||[];for(let y=0;y&amp;amp;lt;g.length;y++){let x=g[y];x.onError&amp;amp;amp;&amp;amp;amp;x.onError(m)}Uf.delete(this),s.manager.itemError(t),s.manager.itemEnd(t)}function d(){u.removeEventListener(&amp;amp;quot;load&amp;amp;quot;,c,!1),u.removeEventListener(&amp;amp;quot;error&amp;amp;quot;,h,!1)}return u.addEventListener(&amp;amp;quot;load&amp;amp;quot;,c,!1),u.addEventListener(&amp;amp;quot;error&amp;amp;quot;,h,!1),t.slice(0,5)!==&amp;amp;quot;data:&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.crossOrigin!==void 0&amp;amp;amp;&amp;amp;amp;(u.crossOrigin=this.crossOrigin),As.add(`image:${t}`,u),s.manager.itemStart(t),u.src=t,u}},h_=class extends yi{constructor(t){super(t)}load(t,e,i,a){let s=new ol;s.colorSpace=ri;let o=new pl(this.manager);o.setCrossOrigin(this.crossOrigin),o.setPath(this.path);let u=0;function c(h){o.load(t[h],function(d){s.images[h]=d,u++,u===6&amp;amp;amp;&amp;amp;amp;(s.needsUpdate=!0,e&amp;amp;amp;&amp;amp;amp;e(s))},void 0,a)}for(let h=0;h&amp;amp;lt;t.length;++h)c(h);return s}},d_=class extends yi{constructor(t){super(t)}load(t,e,i,a){let s=this,o=new Oa,u=new ls(this.manager);return u.setResponseType(&amp;amp;quot;arraybuffer&amp;amp;quot;),u.setRequestHeader(this.requestHeader),u.setPath(this.path),u.setWithCredentials(s.withCredentials),u.load(t,function(c){let h;try{h=s.parse(c)}catch(d){if(a!==void 0)a(d);else{console.error(d);return}}h.image!==void 0?o.image=h.image:h.data!==void 0&amp;amp;amp;&amp;amp;amp;(o.image.width=h.width,o.image.height=h.height,o.image.data=h.data),o.wrapS=h.wrapS!==void 0?h.wrapS:Ua,o.wrapT=h.wrapT!==void 0?h.wrapT:Ua,o.magFilter=h.magFilter!==void 0?h.magFilter:Gn,o.minFilter=h.minFilter!==void 0?h.minFilter:Gn,o.anisotropy=h.anisotropy!==void 0?h.anisotropy:1,h.colorSpace!==void 0&amp;amp;amp;&amp;amp;amp;(o.colorSpace=h.colorSpace),h.flipY!==void 0&amp;amp;amp;&amp;amp;amp;(o.flipY=h.flipY),h.format!==void 0&amp;amp;amp;&amp;amp;amp;(o.format=h.format),h.type!==void 0&amp;amp;amp;&amp;amp;amp;(o.type=h.type),h.mipmaps!==void 0&amp;amp;amp;&amp;amp;amp;(o.mipmaps=h.mipmaps,o.minFilter=Us),h.mipmapCount===1&amp;amp;amp;&amp;amp;amp;(o.minFilter=Gn),h.generateMipmaps!==void 0&amp;amp;amp;&amp;amp;amp;(o.generateMipmaps=h.generateMipmaps),o.needsUpdate=!0,e&amp;amp;amp;&amp;amp;amp;e(o,h)},i,a),o}},p_=class extends yi{constructor(t){super(t)}load(t,e,i,a){let s=new zn,o=new pl(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(u){s.image=u,s.needsUpdate=!0,e!==void 0&amp;amp;amp;&amp;amp;amp;e(s)},i,a),s}},ws=class extends Ie{constructor(t,e=1){super(),this.isLight=!0,this.type=&amp;amp;quot;Light&amp;amp;quot;,this.color=new Bt(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){let e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&amp;amp;amp;&amp;amp;amp;(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&amp;amp;amp;&amp;amp;amp;(e.object.distance=this.distance),this.angle!==void 0&amp;amp;amp;&amp;amp;amp;(e.object.angle=this.angle),this.decay!==void 0&amp;amp;amp;&amp;amp;amp;(e.object.decay=this.decay),this.penumbra!==void 0&amp;amp;amp;&amp;amp;amp;(e.object.penumbra=this.penumbra),this.shadow!==void 0&amp;amp;amp;&amp;amp;amp;(e.object.shadow=this.shadow.toJSON()),this.target!==void 0&amp;amp;amp;&amp;amp;amp;(e.object.target=this.target.uuid),e}},Om=class extends ws{constructor(t,e,i){super(t,i),this.isHemisphereLight=!0,this.type=&amp;amp;quot;HemisphereLight&amp;amp;quot;,this.position.copy(Ie.DEFAULT_UP),this.updateMatrix(),this.groundColor=new Bt(e)}copy(t,e){return super.copy(t,e),this.groundColor.copy(t.groundColor),this}},Mb=new fe,hN=new B,dN=new B,Lm=class{constructor(t){this.camera=t,this.intensity=1,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new ct(512,512),this.mapType=la,this.map=null,this.mapPass=null,this.matrix=new fe,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new Kr,this._frameExtents=new ct(1,1),this._viewportCount=1,this._viewports=[new Oe(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){let e=this.camera,i=this.matrix;hN.setFromMatrixPosition(t.matrixWorld),e.position.copy(hN),dN.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(dN),e.updateMatrixWorld(),Mb.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(Mb,e.coordinateSystem,e.reversedDepth),e.reversedDepth?i.set(.5,0,0,.5,0,.5,0,.5,0,0,1,0,0,0,0,1):i.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),i.multiply(Mb)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&amp;amp;amp;&amp;amp;amp;this.map.dispose(),this.mapPass&amp;amp;amp;&amp;amp;amp;this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.intensity=t.intensity,this.bias=t.bias,this.radius=t.radius,this.autoUpdate=t.autoUpdate,this.needsUpdate=t.needsUpdate,this.normalBias=t.normalBias,this.blurSamples=t.blurSamples,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){let t={};return this.intensity!==1&amp;amp;amp;&amp;amp;amp;(t.intensity=this.intensity),this.bias!==0&amp;amp;amp;&amp;amp;amp;(t.bias=this.bias),this.normalBias!==0&amp;amp;amp;&amp;amp;amp;(t.normalBias=this.normalBias),this.radius!==1&amp;amp;amp;&amp;amp;amp;(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&amp;amp;amp;&amp;amp;amp;(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}},Bb=class extends Lm{constructor(){super(new Un(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1,this.aspect=1}updateMatrices(t){let e=this.camera,i=yu*2*t.angle*this.focus,a=this.mapSize.width/this.mapSize.height*this.aspect,s=t.distance||e.far;(i!==e.fov||a!==e.aspect||s!==e.far)&amp;amp;amp;&amp;amp;amp;(e.fov=i,e.aspect=a,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}},zm=class extends ws{constructor(t,e,i=0,a=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type=&amp;amp;quot;SpotLight&amp;amp;quot;,this.position.copy(Ie.DEFAULT_UP),this.updateMatrix(),this.target=new Ie,this.distance=i,this.angle=a,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new Bb}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}},pN=new fe,Cp=new B,Eb=new B,Pb=class extends Lm{constructor(){super(new Un(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new ct(4,2),this._viewportCount=6,this._viewports=[new Oe(2,1,1,1),new Oe(0,1,1,1),new Oe(3,1,1,1),new Oe(1,1,1,1),new Oe(3,0,1,1),new Oe(1,0,1,1)],this._cubeDirections=[new B(1,0,0),new B(-1,0,0),new B(0,0,1),new B(0,0,-1),new B(0,1,0),new B(0,-1,0)],this._cubeUps=[new B(0,1,0),new B(0,1,0),new B(0,1,0),new B(0,1,0),new B(0,0,1),new B(0,0,-1)]}updateMatrices(t,e=0){let i=this.camera,a=this.matrix,s=t.distance||i.far;s!==i.far&amp;amp;amp;&amp;amp;amp;(i.far=s,i.updateProjectionMatrix()),Cp.setFromMatrixPosition(t.matrixWorld),i.position.copy(Cp),Eb.copy(i.position),Eb.add(this._cubeDirections[e]),i.up.copy(this._cubeUps[e]),i.lookAt(Eb),i.updateMatrixWorld(),a.makeTranslation(-Cp.x,-Cp.y,-Cp.z),pN.multiplyMatrices(i.projectionMatrix,i.matrixWorldInverse),this._frustum.setFromProjectionMatrix(pN,i.coordinateSystem,i.reversedDepth)}},Bm=class extends ws{constructor(t,e,i=0,a=2){super(t,e),this.isPointLight=!0,this.type=&amp;amp;quot;PointLight&amp;amp;quot;,this.distance=i,this.decay=a,this.shadow=new Pb}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}},$r=class extends Mu{constructor(t=-1,e=1,i=1,a=-1,s=.1,o=2e3){super(),this.isOrthographicCamera=!0,this.type=&amp;amp;quot;OrthographicCamera&amp;amp;quot;,this.zoom=1,this.view=null,this.left=t,this.right=e,this.top=i,this.bottom=a,this.near=s,this.far=o,this.updateProjectionMatrix()}copy(t,e){return super.copy(t,e),this.left=t.left,this.right=t.right,this.top=t.top,this.bottom=t.bottom,this.near=t.near,this.far=t.far,this.zoom=t.zoom,this.view=t.view===null?null:Object.assign({},t.view),this}setViewOffset(t,e,i,a,s,o){this.view===null&amp;amp;amp;&amp;amp;amp;(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=t,this.view.fullHeight=e,this.view.offsetX=i,this.view.offsetY=a,this.view.width=s,this.view.height=o,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&amp;amp;amp;&amp;amp;amp;(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let t=(this.right-this.left)/(2*this.zoom),e=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,a=(this.top+this.bottom)/2,s=i-t,o=i+t,u=a+e,c=a-e;if(this.view!==null&amp;amp;amp;&amp;amp;amp;this.view.enabled){let h=(this.right-this.left)/this.view.fullWidth/this.zoom,d=(this.top-this.bottom)/this.view.fullHeight/this.zoom;s+=h*this.view.offsetX,o=s+h*this.view.width,u-=d*this.view.offsetY,c=u-d*this.view.height}this.projectionMatrix.makeOrthographic(s,o,u,c,this.near,this.far,this.coordinateSystem,this.reversedDepth),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}toJSON(t){let e=super.toJSON(t);return e.object.zoom=this.zoom,e.object.left=this.left,e.object.right=this.right,e.object.top=this.top,e.object.bottom=this.bottom,e.object.near=this.near,e.object.far=this.far,this.view!==null&amp;amp;amp;&amp;amp;amp;(e.object.view=Object.assign({},this.view)),e}},Ib=class extends Lm{constructor(){super(new $r(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}},Pm=class extends ws{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type=&amp;amp;quot;DirectionalLight&amp;amp;quot;,this.position.copy(Ie.DEFAULT_UP),this.updateMatrix(),this.target=new Ie,this.shadow=new Ib}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}},Im=class extends ws{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type=&amp;amp;quot;AmbientLight&amp;amp;quot;}},Hm=class extends ws{constructor(t,e,i=10,a=10){super(t,e),this.isRectAreaLight=!0,this.type=&amp;amp;quot;RectAreaLight&amp;amp;quot;,this.width=i,this.height=a}get power(){return this.intensity*this.width*this.height*Math.PI}set power(t){this.intensity=t/(this.width*this.height*Math.PI)}copy(t){return super.copy(t),this.width=t.width,this.height=t.height,this}toJSON(t){let e=super.toJSON(t);return e.object.width=this.width,e.object.height=this.height,e}},Fm=class{constructor(){this.isSphericalHarmonics3=!0,this.coefficients=[];for(let t=0;t&amp;amp;lt;9;t++)this.coefficients.push(new B)}set(t){for(let e=0;e&amp;amp;lt;9;e++)this.coefficients[e].copy(t[e]);return this}zero(){for(let t=0;t&amp;amp;lt;9;t++)this.coefficients[t].set(0,0,0);return this}getAt(t,e){let i=t.x,a=t.y,s=t.z,o=this.coefficients;return e.copy(o[0]).multiplyScalar(.282095),e.addScaledVector(o[1],.488603*a),e.addScaledVector(o[2],.488603*s),e.addScaledVector(o[3],.488603*i),e.addScaledVector(o[4],1.092548*(i*a)),e.addScaledVector(o[5],1.092548*(a*s)),e.addScaledVector(o[6],.315392*(3*s*s-1)),e.addScaledVector(o[7],1.092548*(i*s)),e.addScaledVector(o[8],.546274*(i*i-a*a)),e}getIrradianceAt(t,e){let i=t.x,a=t.y,s=t.z,o=this.coefficients;return e.copy(o[0]).multiplyScalar(.886227),e.addScaledVector(o[1],2*.511664*a),e.addScaledVector(o[2],2*.511664*s),e.addScaledVector(o[3],2*.511664*i),e.addScaledVector(o[4],2*.429043*i*a),e.addScaledVector(o[5],2*.429043*a*s),e.addScaledVector(o[6],.743125*s*s-.247708),e.addScaledVector(o[7],2*.429043*i*s),e.addScaledVector(o[8],.429043*(i*i-a*a)),e}add(t){for(let e=0;e&amp;amp;lt;9;e++)this.coefficients[e].add(t.coefficients[e]);return this}addScaledSH(t,e){for(let i=0;i&amp;amp;lt;9;i++)this.coefficients[i].addScaledVector(t.coefficients[i],e);return this}scale(t){for(let e=0;e&amp;amp;lt;9;e++)this.coefficients[e].multiplyScalar(t);return this}lerp(t,e){for(let i=0;i&amp;amp;lt;9;i++)this.coefficients[i].lerp(t.coefficients[i],e);return this}equals(t){for(let e=0;e&amp;amp;lt;9;e++)if(!this.coefficients[e].equals(t.coefficients[e]))return!1;return!0}copy(t){return this.set(t.coefficients)}clone(){return new this.constructor().copy(this)}fromArray(t,e=0){let i=this.coefficients;for(let a=0;a&amp;amp;lt;9;a++)i[a].fromArray(t,e+a*3);return this}toArray(t=[],e=0){let i=this.coefficients;for(let a=0;a&amp;amp;lt;9;a++)i[a].toArray(t,e+a*3);return t}static getBasisAt(t,e){let i=t.x,a=t.y,s=t.z;e[0]=.282095,e[1]=.488603*a,e[2]=.488603*s,e[3]=.488603*i,e[4]=1.092548*i*a,e[5]=1.092548*a*s,e[6]=.315392*(3*s*s-1),e[7]=1.092548*i*s,e[8]=.546274*(i*i-a*a)}},Vm=class extends ws{constructor(t=new Fm,e=1){super(void 0,e),this.isLightProbe=!0,this.sh=t}copy(t){return super.copy(t),this.sh.copy(t.sh),this}fromJSON(t){return this.intensity=t.intensity,this.sh.fromArray(t.sh),this}toJSON(t){let e=super.toJSON(t);return e.object.sh=this.sh.toArray(),e}},Gm=class n extends yi{constructor(t){super(t),this.textures={}}load(t,e,i,a){let s=this,o=new ls(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(t,function(u){try{e(s.parse(JSON.parse(u)))}catch(c){a?a(c):console.error(c),s.manager.itemError(t)}},i,a)}parse(t){let e=this.textures;function i(s){return e[s]===void 0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.MaterialLoader: Undefined texture&amp;amp;quot;,s),e[s]}let a=this.createMaterialFromType(t.type);if(t.uuid!==void 0&amp;amp;amp;&amp;amp;amp;(a.uuid=t.uuid),t.name!==void 0&amp;amp;amp;&amp;amp;amp;(a.name=t.name),t.color!==void 0&amp;amp;amp;&amp;amp;amp;a.color!==void 0&amp;amp;amp;&amp;amp;amp;a.color.setHex(t.color),t.roughness!==void 0&amp;amp;amp;&amp;amp;amp;(a.roughness=t.roughness),t.metalness!==void 0&amp;amp;amp;&amp;amp;amp;(a.metalness=t.metalness),t.sheen!==void 0&amp;amp;amp;&amp;amp;amp;(a.sheen=t.sheen),t.sheenColor!==void 0&amp;amp;amp;&amp;amp;amp;(a.sheenColor=new Bt().setHex(t.sheenColor)),t.sheenRoughness!==void 0&amp;amp;amp;&amp;amp;amp;(a.sheenRoughness=t.sheenRoughness),t.emissive!==void 0&amp;amp;amp;&amp;amp;amp;a.emissive!==void 0&amp;amp;amp;&amp;amp;amp;a.emissive.setHex(t.emissive),t.specular!==void 0&amp;amp;amp;&amp;amp;amp;a.specular!==void 0&amp;amp;amp;&amp;amp;amp;a.specular.setHex(t.specular),t.specularIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(a.specularIntensity=t.specularIntensity),t.specularColor!==void 0&amp;amp;amp;&amp;amp;amp;a.specularColor!==void 0&amp;amp;amp;&amp;amp;amp;a.specularColor.setHex(t.specularColor),t.shininess!==void 0&amp;amp;amp;&amp;amp;amp;(a.shininess=t.shininess),t.clearcoat!==void 0&amp;amp;amp;&amp;amp;amp;(a.clearcoat=t.clearcoat),t.clearcoatRoughness!==void 0&amp;amp;amp;&amp;amp;amp;(a.clearcoatRoughness=t.clearcoatRoughness),t.dispersion!==void 0&amp;amp;amp;&amp;amp;amp;(a.dispersion=t.dispersion),t.iridescence!==void 0&amp;amp;amp;&amp;amp;amp;(a.iridescence=t.iridescence),t.iridescenceIOR!==void 0&amp;amp;amp;&amp;amp;amp;(a.iridescenceIOR=t.iridescenceIOR),t.iridescenceThicknessRange!==void 0&amp;amp;amp;&amp;amp;amp;(a.iridescenceThicknessRange=t.iridescenceThicknessRange),t.transmission!==void 0&amp;amp;amp;&amp;amp;amp;(a.transmission=t.transmission),t.thickness!==void 0&amp;amp;amp;&amp;amp;amp;(a.thickness=t.thickness),t.attenuationDistance!==void 0&amp;amp;amp;&amp;amp;amp;(a.attenuationDistance=t.attenuationDistance),t.attenuationColor!==void 0&amp;amp;amp;&amp;amp;amp;a.attenuationColor!==void 0&amp;amp;amp;&amp;amp;amp;a.attenuationColor.setHex(t.attenuationColor),t.anisotropy!==void 0&amp;amp;amp;&amp;amp;amp;(a.anisotropy=t.anisotropy),t.anisotropyRotation!==void 0&amp;amp;amp;&amp;amp;amp;(a.anisotropyRotation=t.anisotropyRotation),t.fog!==void 0&amp;amp;amp;&amp;amp;amp;(a.fog=t.fog),t.flatShading!==void 0&amp;amp;amp;&amp;amp;amp;(a.flatShading=t.flatShading),t.blending!==void 0&amp;amp;amp;&amp;amp;amp;(a.blending=t.blending),t.combine!==void 0&amp;amp;amp;&amp;amp;amp;(a.combine=t.combine),t.side!==void 0&amp;amp;amp;&amp;amp;amp;(a.side=t.side),t.shadowSide!==void 0&amp;amp;amp;&amp;amp;amp;(a.shadowSide=t.shadowSide),t.opacity!==void 0&amp;amp;amp;&amp;amp;amp;(a.opacity=t.opacity),t.transparent!==void 0&amp;amp;amp;&amp;amp;amp;(a.transparent=t.transparent),t.alphaTest!==void 0&amp;amp;amp;&amp;amp;amp;(a.alphaTest=t.alphaTest),t.alphaHash!==void 0&amp;amp;amp;&amp;amp;amp;(a.alphaHash=t.alphaHash),t.depthFunc!==void 0&amp;amp;amp;&amp;amp;amp;(a.depthFunc=t.depthFunc),t.depthTest!==void 0&amp;amp;amp;&amp;amp;amp;(a.depthTest=t.depthTest),t.depthWrite!==void 0&amp;amp;amp;&amp;amp;amp;(a.depthWrite=t.depthWrite),t.colorWrite!==void 0&amp;amp;amp;&amp;amp;amp;(a.colorWrite=t.colorWrite),t.blendSrc!==void 0&amp;amp;amp;&amp;amp;amp;(a.blendSrc=t.blendSrc),t.blendDst!==void 0&amp;amp;amp;&amp;amp;amp;(a.blendDst=t.blendDst),t.blendEquation!==void 0&amp;amp;amp;&amp;amp;amp;(a.blendEquation=t.blendEquation),t.blendSrcAlpha!==void 0&amp;amp;amp;&amp;amp;amp;(a.blendSrcAlpha=t.blendSrcAlpha),t.blendDstAlpha!==void 0&amp;amp;amp;&amp;amp;amp;(a.blendDstAlpha=t.blendDstAlpha),t.blendEquationAlpha!==void 0&amp;amp;amp;&amp;amp;amp;(a.blendEquationAlpha=t.blendEquationAlpha),t.blendColor!==void 0&amp;amp;amp;&amp;amp;amp;a.blendColor!==void 0&amp;amp;amp;&amp;amp;amp;a.blendColor.setHex(t.blendColor),t.blendAlpha!==void 0&amp;amp;amp;&amp;amp;amp;(a.blendAlpha=t.blendAlpha),t.stencilWriteMask!==void 0&amp;amp;amp;&amp;amp;amp;(a.stencilWriteMask=t.stencilWriteMask),t.stencilFunc!==void 0&amp;amp;amp;&amp;amp;amp;(a.stencilFunc=t.stencilFunc),t.stencilRef!==void 0&amp;amp;amp;&amp;amp;amp;(a.stencilRef=t.stencilRef),t.stencilFuncMask!==void 0&amp;amp;amp;&amp;amp;amp;(a.stencilFuncMask=t.stencilFuncMask),t.stencilFail!==void 0&amp;amp;amp;&amp;amp;amp;(a.stencilFail=t.stencilFail),t.stencilZFail!==void 0&amp;amp;amp;&amp;amp;amp;(a.stencilZFail=t.stencilZFail),t.stencilZPass!==void 0&amp;amp;amp;&amp;amp;amp;(a.stencilZPass=t.stencilZPass),t.stencilWrite!==void 0&amp;amp;amp;&amp;amp;amp;(a.stencilWrite=t.stencilWrite),t.wireframe!==void 0&amp;amp;amp;&amp;amp;amp;(a.wireframe=t.wireframe),t.wireframeLinewidth!==void 0&amp;amp;amp;&amp;amp;amp;(a.wireframeLinewidth=t.wireframeLinewidth),t.wireframeLinecap!==void 0&amp;amp;amp;&amp;amp;amp;(a.wireframeLinecap=t.wireframeLinecap),t.wireframeLinejoin!==void 0&amp;amp;amp;&amp;amp;amp;(a.wireframeLinejoin=t.wireframeLinejoin),t.rotation!==void 0&amp;amp;amp;&amp;amp;amp;(a.rotation=t.rotation),t.linewidth!==void 0&amp;amp;amp;&amp;amp;amp;(a.linewidth=t.linewidth),t.dashSize!==void 0&amp;amp;amp;&amp;amp;amp;(a.dashSize=t.dashSize),t.gapSize!==void 0&amp;amp;amp;&amp;amp;amp;(a.gapSize=t.gapSize),t.scale!==void 0&amp;amp;amp;&amp;amp;amp;(a.scale=t.scale),t.polygonOffset!==void 0&amp;amp;amp;&amp;amp;amp;(a.polygonOffset=t.polygonOffset),t.polygonOffsetFactor!==void 0&amp;amp;amp;&amp;amp;amp;(a.polygonOffsetFactor=t.polygonOffsetFactor),t.polygonOffsetUnits!==void 0&amp;amp;amp;&amp;amp;amp;(a.polygonOffsetUnits=t.polygonOffsetUnits),t.dithering!==void 0&amp;amp;amp;&amp;amp;amp;(a.dithering=t.dithering),t.alphaToCoverage!==void 0&amp;amp;amp;&amp;amp;amp;(a.alphaToCoverage=t.alphaToCoverage),t.premultipliedAlpha!==void 0&amp;amp;amp;&amp;amp;amp;(a.premultipliedAlpha=t.premultipliedAlpha),t.forceSinglePass!==void 0&amp;amp;amp;&amp;amp;amp;(a.forceSinglePass=t.forceSinglePass),t.visible!==void 0&amp;amp;amp;&amp;amp;amp;(a.visible=t.visible),t.toneMapped!==void 0&amp;amp;amp;&amp;amp;amp;(a.toneMapped=t.toneMapped),t.userData!==void 0&amp;amp;amp;&amp;amp;amp;(a.userData=t.userData),t.vertexColors!==void 0&amp;amp;amp;&amp;amp;amp;(typeof t.vertexColors==&amp;amp;quot;number&amp;amp;quot;?a.vertexColors=t.vertexColors&amp;amp;gt;0:a.vertexColors=t.vertexColors),t.uniforms!==void 0)for(let s in t.uniforms){let o=t.uniforms[s];switch(a.uniforms[s]={},o.type){case&amp;amp;quot;t&amp;amp;quot;:a.uniforms[s].value=i(o.value);break;case&amp;amp;quot;c&amp;amp;quot;:a.uniforms[s].value=new Bt().setHex(o.value);break;case&amp;amp;quot;v2&amp;amp;quot;:a.uniforms[s].value=new ct().fromArray(o.value);break;case&amp;amp;quot;v3&amp;amp;quot;:a.uniforms[s].value=new B().fromArray(o.value);break;case&amp;amp;quot;v4&amp;amp;quot;:a.uniforms[s].value=new Oe().fromArray(o.value);break;case&amp;amp;quot;m3&amp;amp;quot;:a.uniforms[s].value=new ge().fromArray(o.value);break;case&amp;amp;quot;m4&amp;amp;quot;:a.uniforms[s].value=new fe().fromArray(o.value);break;default:a.uniforms[s].value=o.value}}if(t.defines!==void 0&amp;amp;amp;&amp;amp;amp;(a.defines=t.defines),t.vertexShader!==void 0&amp;amp;amp;&amp;amp;amp;(a.vertexShader=t.vertexShader),t.fragmentShader!==void 0&amp;amp;amp;&amp;amp;amp;(a.fragmentShader=t.fragmentShader),t.glslVersion!==void 0&amp;amp;amp;&amp;amp;amp;(a.glslVersion=t.glslVersion),t.extensions!==void 0)for(let s in t.extensions)a.extensions[s]=t.extensions[s];if(t.lights!==void 0&amp;amp;amp;&amp;amp;amp;(a.lights=t.lights),t.clipping!==void 0&amp;amp;amp;&amp;amp;amp;(a.clipping=t.clipping),t.size!==void 0&amp;amp;amp;&amp;amp;amp;(a.size=t.size),t.sizeAttenuation!==void 0&amp;amp;amp;&amp;amp;amp;(a.sizeAttenuation=t.sizeAttenuation),t.map!==void 0&amp;amp;amp;&amp;amp;amp;(a.map=i(t.map)),t.matcap!==void 0&amp;amp;amp;&amp;amp;amp;(a.matcap=i(t.matcap)),t.alphaMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.alphaMap=i(t.alphaMap)),t.bumpMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.bumpMap=i(t.bumpMap)),t.bumpScale!==void 0&amp;amp;amp;&amp;amp;amp;(a.bumpScale=t.bumpScale),t.normalMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.normalMap=i(t.normalMap)),t.normalMapType!==void 0&amp;amp;amp;&amp;amp;amp;(a.normalMapType=t.normalMapType),t.normalScale!==void 0){let s=t.normalScale;Array.isArray(s)===!1&amp;amp;amp;&amp;amp;amp;(s=[s,s]),a.normalScale=new ct().fromArray(s)}return t.displacementMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.displacementMap=i(t.displacementMap)),t.displacementScale!==void 0&amp;amp;amp;&amp;amp;amp;(a.displacementScale=t.displacementScale),t.displacementBias!==void 0&amp;amp;amp;&amp;amp;amp;(a.displacementBias=t.displacementBias),t.roughnessMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.roughnessMap=i(t.roughnessMap)),t.metalnessMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.metalnessMap=i(t.metalnessMap)),t.emissiveMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.emissiveMap=i(t.emissiveMap)),t.emissiveIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(a.emissiveIntensity=t.emissiveIntensity),t.specularMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.specularMap=i(t.specularMap)),t.specularIntensityMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.specularIntensityMap=i(t.specularIntensityMap)),t.specularColorMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.specularColorMap=i(t.specularColorMap)),t.envMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.envMap=i(t.envMap)),t.envMapRotation!==void 0&amp;amp;amp;&amp;amp;amp;a.envMapRotation.fromArray(t.envMapRotation),t.envMapIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(a.envMapIntensity=t.envMapIntensity),t.reflectivity!==void 0&amp;amp;amp;&amp;amp;amp;(a.reflectivity=t.reflectivity),t.refractionRatio!==void 0&amp;amp;amp;&amp;amp;amp;(a.refractionRatio=t.refractionRatio),t.lightMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.lightMap=i(t.lightMap)),t.lightMapIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(a.lightMapIntensity=t.lightMapIntensity),t.aoMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.aoMap=i(t.aoMap)),t.aoMapIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(a.aoMapIntensity=t.aoMapIntensity),t.gradientMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.gradientMap=i(t.gradientMap)),t.clearcoatMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.clearcoatMap=i(t.clearcoatMap)),t.clearcoatRoughnessMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.clearcoatRoughnessMap=i(t.clearcoatRoughnessMap)),t.clearcoatNormalMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.clearcoatNormalMap=i(t.clearcoatNormalMap)),t.clearcoatNormalScale!==void 0&amp;amp;amp;&amp;amp;amp;(a.clearcoatNormalScale=new ct().fromArray(t.clearcoatNormalScale)),t.iridescenceMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.iridescenceMap=i(t.iridescenceMap)),t.iridescenceThicknessMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.iridescenceThicknessMap=i(t.iridescenceThicknessMap)),t.transmissionMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.transmissionMap=i(t.transmissionMap)),t.thicknessMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.thicknessMap=i(t.thicknessMap)),t.anisotropyMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.anisotropyMap=i(t.anisotropyMap)),t.sheenColorMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.sheenColorMap=i(t.sheenColorMap)),t.sheenRoughnessMap!==void 0&amp;amp;amp;&amp;amp;amp;(a.sheenRoughnessMap=i(t.sheenRoughnessMap)),a}setTextures(t){return this.textures=t,this}createMaterialFromType(t){return n.createMaterialFromType(t)}static createMaterialFromType(t){let e={ShadowMaterial:Sm,SpriteMaterial:Wf,RawShaderMaterial:Mm,ShaderMaterial:ra,PointsMaterial:Zf,MeshPhysicalMaterial:Em,MeshStandardMaterial:rh,MeshPhongMaterial:bm,MeshToonMaterial:Tm,MeshNormalMaterial:Am,MeshLambertMaterial:Rm,MeshDepthMaterial:oh,MeshDistanceMaterial:lh,MeshBasicMaterial:Rs,MeshMatcapMaterial:Cm,LineDashedMaterial:wm,LineBasicMaterial:ui,Material:jn};return new e[t]}},hh=class{static extractUrlBase(t){let e=t.lastIndexOf(&amp;amp;quot;/&amp;amp;quot;);return e===-1?&amp;amp;quot;./&amp;amp;quot;:t.slice(0,e+1)}static resolveURL(t,e){return typeof t!=&amp;amp;quot;string&amp;amp;quot;||t===&amp;amp;quot;&amp;amp;quot;?&amp;amp;quot;&amp;amp;quot;:(/^https?:\/\//i.test(e)&amp;amp;amp;&amp;amp;amp;/^\//.test(t)&amp;amp;amp;&amp;amp;amp;(e=e.replace(/(^https?:\/\/[^\/]+).*/i,&amp;amp;quot;$1&amp;amp;quot;)),/^(https?:)?\/\//i.test(t)||/^data:.*,.*$/i.test(t)||/^blob:.*$/i.test(t)?t:e+t)}},Xm=class extends ve{constructor(){super(),this.isInstancedBufferGeometry=!0,this.type=&amp;amp;quot;InstancedBufferGeometry&amp;amp;quot;,this.instanceCount=1/0}copy(t){return super.copy(t),this.instanceCount=t.instanceCount,this}toJSON(){let t=super.toJSON();return t.instanceCount=this.instanceCount,t.isInstancedBufferGeometry=!0,t}},qm=class extends yi{constructor(t){super(t)}load(t,e,i,a){let s=this,o=new ls(s.manager);o.setPath(s.path),o.setRequestHeader(s.requestHeader),o.setWithCredentials(s.withCredentials),o.load(t,function(u){try{e(s.parse(JSON.parse(u)))}catch(c){a?a(c):console.error(c),s.manager.itemError(t)}},i,a)}parse(t){let e={},i={};function a(y,x){if(e[x]!==void 0)return e[x];let M=y.interleavedBuffers[x],v=s(y,M.buffer),S=Lf(M.type,v),E=new Tu(S,M.stride);return E.uuid=M.uuid,e[x]=E,E}function s(y,x){if(i[x]!==void 0)return i[x];let M=y.arrayBuffers[x],v=new Uint32Array(M).buffer;return i[x]=v,v}let o=t.isInstancedBufferGeometry?new Xm:new ve,u=t.data.index;if(u!==void 0){let y=Lf(u.type,u.array);o.setIndex(new Xe(y,1))}let c=t.data.attributes;for(let y in c){let x=c[y],b;if(x.isInterleavedBufferAttribute){let M=a(t.data,x.data);b=new ll(M,x.itemSize,x.offset,x.normalized)}else{let M=Lf(x.type,x.array),v=x.isInstancedBufferAttribute?Qr:Xe;b=new v(M,x.itemSize,x.normalized)}x.name!==void 0&amp;amp;amp;&amp;amp;amp;(b.name=x.name),x.usage!==void 0&amp;amp;amp;&amp;amp;amp;b.setUsage(x.usage),o.setAttribute(y,b)}let h=t.data.morphAttributes;if(h)for(let y in h){let x=h[y],b=[];for(let M=0,v=x.length;M&amp;amp;lt;v;M++){let S=x[M],E;if(S.isInterleavedBufferAttribute){let T=a(t.data,S.data);E=new ll(T,S.itemSize,S.offset,S.normalized)}else{let T=Lf(S.type,S.array);E=new Xe(T,S.itemSize,S.normalized)}S.name!==void 0&amp;amp;amp;&amp;amp;amp;(E.name=S.name),b.push(E)}o.morphAttributes[y]=b}t.data.morphTargetsRelative&amp;amp;amp;&amp;amp;amp;(o.morphTargetsRelative=!0);let m=t.data.groups||t.data.drawcalls||t.data.offsets;if(m!==void 0)for(let y=0,x=m.length;y!==x;++y){let b=m[y];o.addGroup(b.start,b.count,b.materialIndex)}let g=t.data.boundingSphere;return g!==void 0&amp;amp;amp;&amp;amp;amp;(o.boundingSphere=new Xn().fromJSON(g)),t.name&amp;amp;amp;&amp;amp;amp;(o.name=t.name),t.userData&amp;amp;amp;&amp;amp;amp;(o.userData=t.userData),o}},m_=class extends yi{constructor(t){super(t)}load(t,e,i,a){let s=this,o=this.path===&amp;amp;quot;&amp;amp;quot;?hh.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||o;let u=new ls(this.manager);u.setPath(this.path),u.setRequestHeader(this.requestHeader),u.setWithCredentials(this.withCredentials),u.load(t,function(c){let h=null;try{h=JSON.parse(c)}catch(m){a!==void 0&amp;amp;amp;&amp;amp;amp;a(m),console.error(&amp;amp;quot;THREE:ObjectLoader: Can&amp;amp;#39;t parse &amp;amp;quot;+t+&amp;amp;quot;.&amp;amp;quot;,m.message);return}let d=h.metadata;if(d===void 0||d.type===void 0||d.type.toLowerCase()===&amp;amp;quot;geometry&amp;amp;quot;){a!==void 0&amp;amp;amp;&amp;amp;amp;a(new Error(&amp;amp;quot;THREE.ObjectLoader: Can&amp;amp;#39;t load &amp;amp;quot;+t)),console.error(&amp;amp;quot;THREE.ObjectLoader: Can&amp;amp;#39;t load &amp;amp;quot;+t);return}s.parse(h,e)},i,a)}async loadAsync(t,e){let i=this,a=this.path===&amp;amp;quot;&amp;amp;quot;?hh.extractUrlBase(t):this.path;this.resourcePath=this.resourcePath||a;let s=new ls(this.manager);s.setPath(this.path),s.setRequestHeader(this.requestHeader),s.setWithCredentials(this.withCredentials);let o=await s.loadAsync(t,e),u=JSON.parse(o),c=u.metadata;if(c===void 0||c.type===void 0||c.type.toLowerCase()===&amp;amp;quot;geometry&amp;amp;quot;)throw new Error(&amp;amp;quot;THREE.ObjectLoader: Can&amp;amp;#39;t load &amp;amp;quot;+t);return await i.parseAsync(u)}parse(t,e){let i=this.parseAnimations(t.animations),a=this.parseShapes(t.shapes),s=this.parseGeometries(t.geometries,a),o=this.parseImages(t.images,function(){e!==void 0&amp;amp;amp;&amp;amp;amp;e(h)}),u=this.parseTextures(t.textures,o),c=this.parseMaterials(t.materials,u),h=this.parseObject(t.object,s,c,u,i),d=this.parseSkeletons(t.skeletons,h);if(this.bindSkeletons(h,d),this.bindLightTargets(h),e!==void 0){let m=!1;for(let g in o)if(o[g].data instanceof HTMLImageElement){m=!0;break}m===!1&amp;amp;amp;&amp;amp;amp;e(h)}return h}async parseAsync(t){let e=this.parseAnimations(t.animations),i=this.parseShapes(t.shapes),a=this.parseGeometries(t.geometries,i),s=await this.parseImagesAsync(t.images),o=this.parseTextures(t.textures,s),u=this.parseMaterials(t.materials,o),c=this.parseObject(t.object,a,u,o,e),h=this.parseSkeletons(t.skeletons,c);return this.bindSkeletons(c,h),this.bindLightTargets(c),c}parseShapes(t){let e={};if(t!==void 0)for(let i=0,a=t.length;i&amp;amp;lt;a;i++){let s=new $s().fromJSON(t[i]);e[s.uuid]=s}return e}parseSkeletons(t,e){let i={},a={};if(e.traverse(function(s){s.isBone&amp;amp;amp;&amp;amp;amp;(a[s.uuid]=s)}),t!==void 0)for(let s=0,o=t.length;s&amp;amp;lt;o;s++){let u=new Wp().fromJSON(t[s],a);i[u.uuid]=u}return i}parseGeometries(t,e){let i={};if(t!==void 0){let a=new qm;for(let s=0,o=t.length;s&amp;amp;lt;o;s++){let u,c=t[s];switch(c.type){case&amp;amp;quot;BufferGeometry&amp;amp;quot;:case&amp;amp;quot;InstancedBufferGeometry&amp;amp;quot;:u=a.parse(c);break;default:c.type in fN?u=fN[c.type].fromJSON(c,e):console.warn(`THREE.ObjectLoader: Unsupported geometry type &amp;amp;quot;${c.type}&amp;amp;quot;`)}u.uuid=c.uuid,c.name!==void 0&amp;amp;amp;&amp;amp;amp;(u.name=c.name),c.userData!==void 0&amp;amp;amp;&amp;amp;amp;(u.userData=c.userData),i[c.uuid]=u}}return i}parseMaterials(t,e){let i={},a={};if(t!==void 0){let s=new Gm;s.setTextures(e);for(let o=0,u=t.length;o&amp;amp;lt;u;o++){let c=t[o];i[c.uuid]===void 0&amp;amp;amp;&amp;amp;amp;(i[c.uuid]=s.parse(c)),a[c.uuid]=i[c.uuid]}}return a}parseAnimations(t){let e={};if(t!==void 0)for(let i=0;i&amp;amp;lt;t.length;i++){let a=t[i],s=dl.parse(a);e[s.uuid]=s}return e}parseImages(t,e){let i=this,a={},s;function o(c){return i.manager.itemStart(c),s.load(c,function(){i.manager.itemEnd(c)},void 0,function(){i.manager.itemError(c),i.manager.itemEnd(c)})}function u(c){if(typeof c==&amp;amp;quot;string&amp;amp;quot;){let h=c,d=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(h)?h:i.resourcePath+h;return o(d)}else return c.data?{data:Lf(c.type,c.data),width:c.width,height:c.height}:null}if(t!==void 0&amp;amp;amp;&amp;amp;amp;t.length&amp;amp;gt;0){let c=new fh(e);s=new pl(c),s.setCrossOrigin(this.crossOrigin);for(let h=0,d=t.length;h&amp;amp;lt;d;h++){let m=t[h],g=m.url;if(Array.isArray(g)){let y=[];for(let x=0,b=g.length;x&amp;amp;lt;b;x++){let M=g[x],v=u(M);v!==null&amp;amp;amp;&amp;amp;amp;(v instanceof HTMLImageElement?y.push(v):y.push(new Oa(v.data,v.width,v.height)))}a[m.uuid]=new Ts(y)}else{let y=u(m.url);a[m.uuid]=new Ts(y)}}}return a}async parseImagesAsync(t){let e=this,i={},a;async function s(o){if(typeof o==&amp;amp;quot;string&amp;amp;quot;){let u=o,c=/^(\/\/)|([a-z]+:(\/\/)?)/i.test(u)?u:e.resourcePath+u;return await a.loadAsync(c)}else return o.data?{data:Lf(o.type,o.data),width:o.width,height:o.height}:null}if(t!==void 0&amp;amp;amp;&amp;amp;amp;t.length&amp;amp;gt;0){a=new pl(this.manager),a.setCrossOrigin(this.crossOrigin);for(let o=0,u=t.length;o&amp;amp;lt;u;o++){let c=t[o],h=c.url;if(Array.isArray(h)){let d=[];for(let m=0,g=h.length;m&amp;amp;lt;g;m++){let y=h[m],x=await s(y);x!==null&amp;amp;amp;&amp;amp;amp;(x instanceof HTMLImageElement?d.push(x):d.push(new Oa(x.data,x.width,x.height)))}i[c.uuid]=new Ts(d)}else{let d=await s(c.url);i[c.uuid]=new Ts(d)}}}return i}parseTextures(t,e){function i(s,o){return typeof s==&amp;amp;quot;number&amp;amp;quot;?s:(console.warn(&amp;amp;quot;THREE.ObjectLoader.parseTexture: Constant should be in numeric form.&amp;amp;quot;,s),o[s])}let a={};if(t!==void 0)for(let s=0,o=t.length;s&amp;amp;lt;o;s++){let u=t[s];u.image===void 0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;#39;THREE.ObjectLoader: No &amp;amp;quot;image&amp;amp;quot; specified for&amp;amp;#39;,u.uuid),e[u.image]===void 0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.ObjectLoader: Undefined image&amp;amp;quot;,u.image);let c=e[u.image],h=c.data,d;Array.isArray(h)?(d=new ol,h.length===6&amp;amp;amp;&amp;amp;amp;(d.needsUpdate=!0)):(h&amp;amp;amp;&amp;amp;amp;h.data?d=new Oa:d=new zn,h&amp;amp;amp;&amp;amp;amp;(d.needsUpdate=!0)),d.source=c,d.uuid=u.uuid,u.name!==void 0&amp;amp;amp;&amp;amp;amp;(d.name=u.name),u.mapping!==void 0&amp;amp;amp;&amp;amp;amp;(d.mapping=i(u.mapping,H5)),u.channel!==void 0&amp;amp;amp;&amp;amp;amp;(d.channel=u.channel),u.offset!==void 0&amp;amp;amp;&amp;amp;amp;d.offset.fromArray(u.offset),u.repeat!==void 0&amp;amp;amp;&amp;amp;amp;d.repeat.fromArray(u.repeat),u.center!==void 0&amp;amp;amp;&amp;amp;amp;d.center.fromArray(u.center),u.rotation!==void 0&amp;amp;amp;&amp;amp;amp;(d.rotation=u.rotation),u.wrap!==void 0&amp;amp;amp;&amp;amp;amp;(d.wrapS=i(u.wrap[0],mN),d.wrapT=i(u.wrap[1],mN)),u.format!==void 0&amp;amp;amp;&amp;amp;amp;(d.format=u.format),u.internalFormat!==void 0&amp;amp;amp;&amp;amp;amp;(d.internalFormat=u.internalFormat),u.type!==void 0&amp;amp;amp;&amp;amp;amp;(d.type=u.type),u.colorSpace!==void 0&amp;amp;amp;&amp;amp;amp;(d.colorSpace=u.colorSpace),u.minFilter!==void 0&amp;amp;amp;&amp;amp;amp;(d.minFilter=i(u.minFilter,gN)),u.magFilter!==void 0&amp;amp;amp;&amp;amp;amp;(d.magFilter=i(u.magFilter,gN)),u.anisotropy!==void 0&amp;amp;amp;&amp;amp;amp;(d.anisotropy=u.anisotropy),u.flipY!==void 0&amp;amp;amp;&amp;amp;amp;(d.flipY=u.flipY),u.generateMipmaps!==void 0&amp;amp;amp;&amp;amp;amp;(d.generateMipmaps=u.generateMipmaps),u.premultiplyAlpha!==void 0&amp;amp;amp;&amp;amp;amp;(d.premultiplyAlpha=u.premultiplyAlpha),u.unpackAlignment!==void 0&amp;amp;amp;&amp;amp;amp;(d.unpackAlignment=u.unpackAlignment),u.compareFunction!==void 0&amp;amp;amp;&amp;amp;amp;(d.compareFunction=u.compareFunction),u.userData!==void 0&amp;amp;amp;&amp;amp;amp;(d.userData=u.userData),a[u.uuid]=d}return a}parseObject(t,e,i,a,s){let o;function u(g){return e[g]===void 0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.ObjectLoader: Undefined geometry&amp;amp;quot;,g),e[g]}function c(g){if(g!==void 0){if(Array.isArray(g)){let y=[];for(let x=0,b=g.length;x&amp;amp;lt;b;x++){let M=g[x];i[M]===void 0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.ObjectLoader: Undefined material&amp;amp;quot;,M),y.push(i[M])}return y}return i[g]===void 0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.ObjectLoader: Undefined material&amp;amp;quot;,g),i[g]}}function h(g){return a[g]===void 0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.ObjectLoader: Undefined texture&amp;amp;quot;,g),a[g]}let d,m;switch(t.type){case&amp;amp;quot;Scene&amp;amp;quot;:o=new bu,t.background!==void 0&amp;amp;amp;&amp;amp;amp;(Number.isInteger(t.background)?o.background=new Bt(t.background):o.background=h(t.background)),t.environment!==void 0&amp;amp;amp;&amp;amp;amp;(o.environment=h(t.environment)),t.fog!==void 0&amp;amp;amp;&amp;amp;amp;(t.fog.type===&amp;amp;quot;Fog&amp;amp;quot;?o.fog=new Gp(t.fog.color,t.fog.near,t.fog.far):t.fog.type===&amp;amp;quot;FogExp2&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o.fog=new Vp(t.fog.color,t.fog.density)),t.fog.name!==&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o.fog.name=t.fog.name)),t.backgroundBlurriness!==void 0&amp;amp;amp;&amp;amp;amp;(o.backgroundBlurriness=t.backgroundBlurriness),t.backgroundIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(o.backgroundIntensity=t.backgroundIntensity),t.backgroundRotation!==void 0&amp;amp;amp;&amp;amp;amp;o.backgroundRotation.fromArray(t.backgroundRotation),t.environmentIntensity!==void 0&amp;amp;amp;&amp;amp;amp;(o.environmentIntensity=t.environmentIntensity),t.environmentRotation!==void 0&amp;amp;amp;&amp;amp;amp;o.environmentRotation.fromArray(t.environmentRotation);break;case&amp;amp;quot;PerspectiveCamera&amp;amp;quot;:o=new Un(t.fov,t.aspect,t.near,t.far),t.focus!==void 0&amp;amp;amp;&amp;amp;amp;(o.focus=t.focus),t.zoom!==void 0&amp;amp;amp;&amp;amp;amp;(o.zoom=t.zoom),t.filmGauge!==void 0&amp;amp;amp;&amp;amp;amp;(o.filmGauge=t.filmGauge),t.filmOffset!==void 0&amp;amp;amp;&amp;amp;amp;(o.filmOffset=t.filmOffset),t.view!==void 0&amp;amp;amp;&amp;amp;amp;(o.view=Object.assign({},t.view));break;case&amp;amp;quot;OrthographicCamera&amp;amp;quot;:o=new $r(t.left,t.right,t.top,t.bottom,t.near,t.far),t.zoom!==void 0&amp;amp;amp;&amp;amp;amp;(o.zoom=t.zoom),t.view!==void 0&amp;amp;amp;&amp;amp;amp;(o.view=Object.assign({},t.view));break;case&amp;amp;quot;AmbientLight&amp;amp;quot;:o=new Im(t.color,t.intensity);break;case&amp;amp;quot;DirectionalLight&amp;amp;quot;:o=new Pm(t.color,t.intensity),o.target=t.target||&amp;amp;quot;&amp;amp;quot;;break;case&amp;amp;quot;PointLight&amp;amp;quot;:o=new Bm(t.color,t.intensity,t.distance,t.decay);break;case&amp;amp;quot;RectAreaLight&amp;amp;quot;:o=new Hm(t.color,t.intensity,t.width,t.height);break;case&amp;amp;quot;SpotLight&amp;amp;quot;:o=new zm(t.color,t.intensity,t.distance,t.angle,t.penumbra,t.decay),o.target=t.target||&amp;amp;quot;&amp;amp;quot;;break;case&amp;amp;quot;HemisphereLight&amp;amp;quot;:o=new Om(t.color,t.groundColor,t.intensity);break;case&amp;amp;quot;LightProbe&amp;amp;quot;:o=new Vm().fromJSON(t);break;case&amp;amp;quot;SkinnedMesh&amp;amp;quot;:d=u(t.geometry),m=c(t.material),o=new Yp(d,m),t.bindMode!==void 0&amp;amp;amp;&amp;amp;amp;(o.bindMode=t.bindMode),t.bindMatrix!==void 0&amp;amp;amp;&amp;amp;amp;o.bindMatrix.fromArray(t.bindMatrix),t.skeleton!==void 0&amp;amp;amp;&amp;amp;amp;(o.skeleton=t.skeleton);break;case&amp;amp;quot;Mesh&amp;amp;quot;:d=u(t.geometry),m=c(t.material),o=new En(d,m);break;case&amp;amp;quot;InstancedMesh&amp;amp;quot;:d=u(t.geometry),m=c(t.material);let g=t.count,y=t.instanceMatrix,x=t.instanceColor;o=new kp(d,m,g),o.instanceMatrix=new Qr(new Float32Array(y.array),16),x!==void 0&amp;amp;amp;&amp;amp;amp;(o.instanceColor=new Qr(new Float32Array(x.array),x.itemSize));break;case&amp;amp;quot;BatchedMesh&amp;amp;quot;:d=u(t.geometry),m=c(t.material),o=new jp(t.maxInstanceCount,t.maxVertexCount,t.maxIndexCount,m),o.geometry=d,o.perObjectFrustumCulled=t.perObjectFrustumCulled,o.sortObjects=t.sortObjects,o._drawRanges=t.drawRanges,o._reservedRanges=t.reservedRanges,o._geometryInfo=t.geometryInfo.map(b=&amp;amp;gt;{let M=null,v=null;return b.boundingBox!==void 0&amp;amp;amp;&amp;amp;amp;(M=new Zn().fromJSON(b.boundingBox)),b.boundingSphere!==void 0&amp;amp;amp;&amp;amp;amp;(v=new Xn().fromJSON(b.boundingSphere)),{...b,boundingBox:M,boundingSphere:v}}),o._instanceInfo=t.instanceInfo,o._availableInstanceIds=t._availableInstanceIds,o._availableGeometryIds=t._availableGeometryIds,o._nextIndexStart=t.nextIndexStart,o._nextVertexStart=t.nextVertexStart,o._geometryCount=t.geometryCount,o._maxInstanceCount=t.maxInstanceCount,o._maxVertexCount=t.maxVertexCount,o._maxIndexCount=t.maxIndexCount,o._geometryInitialized=t.geometryInitialized,o._matricesTexture=h(t.matricesTexture.uuid),o._indirectTexture=h(t.indirectTexture.uuid),t.colorsTexture!==void 0&amp;amp;amp;&amp;amp;amp;(o._colorsTexture=h(t.colorsTexture.uuid)),t.boundingSphere!==void 0&amp;amp;amp;&amp;amp;amp;(o.boundingSphere=new Xn().fromJSON(t.boundingSphere)),t.boundingBox!==void 0&amp;amp;amp;&amp;amp;amp;(o.boundingBox=new Zn().fromJSON(t.boundingBox));break;case&amp;amp;quot;LOD&amp;amp;quot;:o=new qp;break;case&amp;amp;quot;Line&amp;amp;quot;:o=new Cs(u(t.geometry),c(t.material));break;case&amp;amp;quot;LineLoop&amp;amp;quot;:o=new Qp(u(t.geometry),c(t.material));break;case&amp;amp;quot;LineSegments&amp;amp;quot;:o=new Ba(u(t.geometry),c(t.material));break;case&amp;amp;quot;PointCloud&amp;amp;quot;:case&amp;amp;quot;Points&amp;amp;quot;:o=new Kp(u(t.geometry),c(t.material));break;case&amp;amp;quot;Sprite&amp;amp;quot;:o=new Xp(c(t.material));break;case&amp;amp;quot;Group&amp;amp;quot;:o=new Wr;break;case&amp;amp;quot;Bone&amp;amp;quot;:o=new kf;break;default:o=new Ie}if(o.uuid=t.uuid,t.name!==void 0&amp;amp;amp;&amp;amp;amp;(o.name=t.name),t.matrix!==void 0?(o.matrix.fromArray(t.matrix),t.matrixAutoUpdate!==void 0&amp;amp;amp;&amp;amp;amp;(o.matrixAutoUpdate=t.matrixAutoUpdate),o.matrixAutoUpdate&amp;amp;amp;&amp;amp;amp;o.matrix.decompose(o.position,o.quaternion,o.scale)):(t.position!==void 0&amp;amp;amp;&amp;amp;amp;o.position.fromArray(t.position),t.rotation!==void 0&amp;amp;amp;&amp;amp;amp;o.rotation.fromArray(t.rotation),t.quaternion!==void 0&amp;amp;amp;&amp;amp;amp;o.quaternion.fromArray(t.quaternion),t.scale!==void 0&amp;amp;amp;&amp;amp;amp;o.scale.fromArray(t.scale)),t.up!==void 0&amp;amp;amp;&amp;amp;amp;o.up.fromArray(t.up),t.castShadow!==void 0&amp;amp;amp;&amp;amp;amp;(o.castShadow=t.castShadow),t.receiveShadow!==void 0&amp;amp;amp;&amp;amp;amp;(o.receiveShadow=t.receiveShadow),t.shadow&amp;amp;amp;&amp;amp;amp;(t.shadow.intensity!==void 0&amp;amp;amp;&amp;amp;amp;(o.shadow.intensity=t.shadow.intensity),t.shadow.bias!==void 0&amp;amp;amp;&amp;amp;amp;(o.shadow.bias=t.shadow.bias),t.shadow.normalBias!==void 0&amp;amp;amp;&amp;amp;amp;(o.shadow.normalBias=t.shadow.normalBias),t.shadow.radius!==void 0&amp;amp;amp;&amp;amp;amp;(o.shadow.radius=t.shadow.radius),t.shadow.mapSize!==void 0&amp;amp;amp;&amp;amp;amp;o.shadow.mapSize.fromArray(t.shadow.mapSize),t.shadow.camera!==void 0&amp;amp;amp;&amp;amp;amp;(o.shadow.camera=this.parseObject(t.shadow.camera))),t.visible!==void 0&amp;amp;amp;&amp;amp;amp;(o.visible=t.visible),t.frustumCulled!==void 0&amp;amp;amp;&amp;amp;amp;(o.frustumCulled=t.frustumCulled),t.renderOrder!==void 0&amp;amp;amp;&amp;amp;amp;(o.renderOrder=t.renderOrder),t.userData!==void 0&amp;amp;amp;&amp;amp;amp;(o.userData=t.userData),t.layers!==void 0&amp;amp;amp;&amp;amp;amp;(o.layers.mask=t.layers),t.children!==void 0){let g=t.children;for(let y=0;y&amp;amp;lt;g.length;y++)o.add(this.parseObject(g[y],e,i,a,s))}if(t.animations!==void 0){let g=t.animations;for(let y=0;y&amp;amp;lt;g.length;y++){let x=g[y];o.animations.push(s[x])}}if(t.type===&amp;amp;quot;LOD&amp;amp;quot;){t.autoUpdate!==void 0&amp;amp;amp;&amp;amp;amp;(o.autoUpdate=t.autoUpdate);let g=t.levels;for(let y=0;y&amp;amp;lt;g.length;y++){let x=g[y],b=o.getObjectByProperty(&amp;amp;quot;uuid&amp;amp;quot;,x.object);b!==void 0&amp;amp;amp;&amp;amp;amp;o.addLevel(b,x.distance,x.hysteresis)}}return o}bindSkeletons(t,e){Object.keys(e).length!==0&amp;amp;amp;&amp;amp;amp;t.traverse(function(i){if(i.isSkinnedMesh===!0&amp;amp;amp;&amp;amp;amp;i.skeleton!==void 0){let a=e[i.skeleton];a===void 0?console.warn(&amp;amp;quot;THREE.ObjectLoader: No skeleton found with UUID:&amp;amp;quot;,i.skeleton):i.bind(a,i.bindMatrix)}})}bindLightTargets(t){t.traverse(function(e){if(e.isDirectionalLight||e.isSpotLight){let i=e.target,a=t.getObjectByProperty(&amp;amp;quot;uuid&amp;amp;quot;,i);a!==void 0?e.target=a:e.target=new Ie}})}},H5={UVMapping:ig,CubeReflectionMapping:rr,CubeRefractionMapping:to,EquirectangularReflectionMapping:vh,EquirectangularRefractionMapping:yh,CubeUVReflectionMapping:Ou},mN={RepeatWrapping:Bf,ClampToEdgeWrapping:Ua,MirroredRepeatWrapping:Pf},gN={NearestFilter:oi,NearestMipmapNearestFilter:nx,NearestMipmapLinearFilter:Lu,LinearFilter:Gn,LinearMipmapNearestFilter:_h,LinearMipmapLinearFilter:Us},bb=new WeakMap,g_=class extends yi{constructor(t){super(t),this.isImageBitmapLoader=!0,typeof createImageBitmap&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.ImageBitmapLoader: createImageBitmap() not supported.&amp;amp;quot;),typeof fetch&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.ImageBitmapLoader: fetch() not supported.&amp;amp;quot;),this.options={premultiplyAlpha:&amp;amp;quot;none&amp;amp;quot;},this._abortController=new AbortController}setOptions(t){return this.options=t,this}load(t,e,i,a){t===void 0&amp;amp;amp;&amp;amp;amp;(t=&amp;amp;quot;&amp;amp;quot;),this.path!==void 0&amp;amp;amp;&amp;amp;amp;(t=this.path+t),t=this.manager.resolveURL(t);let s=this,o=As.get(`image-bitmap:${t}`);if(o!==void 0){if(s.manager.itemStart(t),o.then){o.then(h=&amp;amp;gt;{if(bb.has(o)===!0)a&amp;amp;amp;&amp;amp;amp;a(bb.get(o)),s.manager.itemError(t),s.manager.itemEnd(t);else return e&amp;amp;amp;&amp;amp;amp;e(h),s.manager.itemEnd(t),h});return}return setTimeout(function(){e&amp;amp;amp;&amp;amp;amp;e(o),s.manager.itemEnd(t)},0),o}let u={};u.credentials=this.crossOrigin===&amp;amp;quot;anonymous&amp;amp;quot;?&amp;amp;quot;same-origin&amp;amp;quot;:&amp;amp;quot;include&amp;amp;quot;,u.headers=this.requestHeader,u.signal=typeof AbortSignal.any==&amp;amp;quot;function&amp;amp;quot;?AbortSignal.any([this._abortController.signal,this.manager.abortController.signal]):this._abortController.signal;let c=fetch(t,u).then(function(h){return h.blob()}).then(function(h){return createImageBitmap(h,Object.assign(s.options,{colorSpaceConversion:&amp;amp;quot;none&amp;amp;quot;}))}).then(function(h){return As.add(`image-bitmap:${t}`,h),e&amp;amp;amp;&amp;amp;amp;e(h),s.manager.itemEnd(t),h}).catch(function(h){a&amp;amp;amp;&amp;amp;amp;a(h),bb.set(c,h),As.remove(`image-bitmap:${t}`),s.manager.itemError(t),s.manager.itemEnd(t)});As.add(`image-bitmap:${t}`,c),s.manager.itemStart(t)}abort(){return this._abortController.abort(),this._abortController=new AbortController,this}},Py,dh=class{static getContext(){return Py===void 0&amp;amp;amp;&amp;amp;amp;(Py=new(window.AudioContext||window.webkitAudioContext)),Py}static setContext(t){Py=t}},v_=class extends yi{constructor(t){super(t)}load(t,e,i,a){let s=this,o=new ls(this.manager);o.setResponseType(&amp;amp;quot;arraybuffer&amp;amp;quot;),o.setPath(this.path),o.setRequestHeader(this.requestHeader),o.setWithCredentials(this.withCredentials),o.load(t,function(c){try{let h=c.slice(0);dh.getContext().decodeAudioData(h,function(m){e(m)}).catch(u)}catch(h){u(h)}},i,a);function u(c){a?a(c):console.error(c),s.manager.itemError(t)}}},vN=new fe,yN=new fe,lu=new fe,y_=class{constructor(){this.type=&amp;amp;quot;StereoCamera&amp;amp;quot;,this.aspect=1,this.eyeSep=.064,this.cameraL=new Un,this.cameraL.layers.enable(1),this.cameraL.matrixAutoUpdate=!1,this.cameraR=new Un,this.cameraR.layers.enable(2),this.cameraR.matrixAutoUpdate=!1,this._cache={focus:null,fov:null,aspect:null,near:null,far:null,zoom:null,eyeSep:null}}update(t){let e=this._cache;if(e.focus!==t.focus||e.fov!==t.fov||e.aspect!==t.aspect*this.aspect||e.near!==t.near||e.far!==t.far||e.zoom!==t.zoom||e.eyeSep!==this.eyeSep){e.focus=t.focus,e.fov=t.fov,e.aspect=t.aspect*this.aspect,e.near=t.near,e.far=t.far,e.zoom=t.zoom,e.eyeSep=this.eyeSep,lu.copy(t.projectionMatrix);let a=e.eyeSep/2,s=a*e.near/e.focus,o=e.near*Math.tan(mu*e.fov*.5)/e.zoom,u,c;yN.elements[12]=-a,vN.elements[12]=a,u=-o*e.aspect+s,c=o*e.aspect+s,lu.elements[0]=2*e.near/(c-u),lu.elements[8]=(c+u)/(c-u),this.cameraL.projectionMatrix.copy(lu),u=-o*e.aspect-s,c=o*e.aspect-s,lu.elements[0]=2*e.near/(c-u),lu.elements[8]=(c+u)/(c-u),this.cameraR.projectionMatrix.copy(lu)}this.cameraL.matrixWorld.copy(t.matrixWorld).multiply(yN),this.cameraR.matrixWorld.copy(t.matrixWorld).multiply(vN)}},Ym=class extends Un{constructor(t=[]){super(),this.isArrayCamera=!0,this.isMultiViewCamera=!1,this.cameras=t}},Uu=class{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=performance.now(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&amp;amp;amp;&amp;amp;amp;!this.running)return this.start(),0;if(this.running){let e=performance.now();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}},uu=new B,Tb=new vi,F5=new B,cu=new B,fu=new B,__=class extends Ie{constructor(){super(),this.type=&amp;amp;quot;AudioListener&amp;amp;quot;,this.context=dh.getContext(),this.gain=this.context.createGain(),this.gain.connect(this.context.destination),this.filter=null,this.timeDelta=0,this._clock=new Uu}getInput(){return this.gain}removeFilter(){return this.filter!==null&amp;amp;amp;&amp;amp;amp;(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination),this.gain.connect(this.context.destination),this.filter=null),this}getFilter(){return this.filter}setFilter(t){return this.filter!==null?(this.gain.disconnect(this.filter),this.filter.disconnect(this.context.destination)):this.gain.disconnect(this.context.destination),this.filter=t,this.gain.connect(this.filter),this.filter.connect(this.context.destination),this}getMasterVolume(){return this.gain.gain.value}setMasterVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}updateMatrixWorld(t){super.updateMatrixWorld(t);let e=this.context.listener;if(this.timeDelta=this._clock.getDelta(),this.matrixWorld.decompose(uu,Tb,F5),cu.set(0,0,-1).applyQuaternion(Tb),fu.set(0,1,0).applyQuaternion(Tb),e.positionX){let i=this.context.currentTime+this.timeDelta;e.positionX.linearRampToValueAtTime(uu.x,i),e.positionY.linearRampToValueAtTime(uu.y,i),e.positionZ.linearRampToValueAtTime(uu.z,i),e.forwardX.linearRampToValueAtTime(cu.x,i),e.forwardY.linearRampToValueAtTime(cu.y,i),e.forwardZ.linearRampToValueAtTime(cu.z,i),e.upX.linearRampToValueAtTime(fu.x,i),e.upY.linearRampToValueAtTime(fu.y,i),e.upZ.linearRampToValueAtTime(fu.z,i)}else e.setPosition(uu.x,uu.y,uu.z),e.setOrientation(cu.x,cu.y,cu.z,fu.x,fu.y,fu.z)}},Wm=class extends Ie{constructor(t){super(),this.type=&amp;amp;quot;Audio&amp;amp;quot;,this.listener=t,this.context=t.context,this.gain=this.context.createGain(),this.gain.connect(t.getInput()),this.autoplay=!1,this.buffer=null,this.detune=0,this.loop=!1,this.loopStart=0,this.loopEnd=0,this.offset=0,this.duration=void 0,this.playbackRate=1,this.isPlaying=!1,this.hasPlaybackControl=!0,this.source=null,this.sourceType=&amp;amp;quot;empty&amp;amp;quot;,this._startedAt=0,this._progress=0,this._connected=!1,this.filters=[]}getOutput(){return this.gain}setNodeSource(t){return this.hasPlaybackControl=!1,this.sourceType=&amp;amp;quot;audioNode&amp;amp;quot;,this.source=t,this.connect(),this}setMediaElementSource(t){return this.hasPlaybackControl=!1,this.sourceType=&amp;amp;quot;mediaNode&amp;amp;quot;,this.source=this.context.createMediaElementSource(t),this.connect(),this}setMediaStreamSource(t){return this.hasPlaybackControl=!1,this.sourceType=&amp;amp;quot;mediaStreamNode&amp;amp;quot;,this.source=this.context.createMediaStreamSource(t),this.connect(),this}setBuffer(t){return this.buffer=t,this.sourceType=&amp;amp;quot;buffer&amp;amp;quot;,this.autoplay&amp;amp;amp;&amp;amp;amp;this.play(),this}play(t=0){if(this.isPlaying===!0){console.warn(&amp;amp;quot;THREE.Audio: Audio is already playing.&amp;amp;quot;);return}if(this.hasPlaybackControl===!1){console.warn(&amp;amp;quot;THREE.Audio: this Audio has no playback control.&amp;amp;quot;);return}this._startedAt=this.context.currentTime+t;let e=this.context.createBufferSource();return e.buffer=this.buffer,e.loop=this.loop,e.loopStart=this.loopStart,e.loopEnd=this.loopEnd,e.onended=this.onEnded.bind(this),e.start(this._startedAt,this._progress+this.offset,this.duration),this.isPlaying=!0,this.source=e,this.setDetune(this.detune),this.setPlaybackRate(this.playbackRate),this.connect()}pause(){if(this.hasPlaybackControl===!1){console.warn(&amp;amp;quot;THREE.Audio: this Audio has no playback control.&amp;amp;quot;);return}return this.isPlaying===!0&amp;amp;amp;&amp;amp;amp;(this._progress+=Math.max(this.context.currentTime-this._startedAt,0)*this.playbackRate,this.loop===!0&amp;amp;amp;&amp;amp;amp;(this._progress=this._progress%(this.duration||this.buffer.duration)),this.source.stop(),this.source.onended=null,this.isPlaying=!1),this}stop(t=0){if(this.hasPlaybackControl===!1){console.warn(&amp;amp;quot;THREE.Audio: this Audio has no playback control.&amp;amp;quot;);return}return this._progress=0,this.source!==null&amp;amp;amp;&amp;amp;amp;(this.source.stop(this.context.currentTime+t),this.source.onended=null),this.isPlaying=!1,this}connect(){if(this.filters.length&amp;amp;gt;0){this.source.connect(this.filters[0]);for(let t=1,e=this.filters.length;t&amp;amp;lt;e;t++)this.filters[t-1].connect(this.filters[t]);this.filters[this.filters.length-1].connect(this.getOutput())}else this.source.connect(this.getOutput());return this._connected=!0,this}disconnect(){if(this._connected!==!1){if(this.filters.length&amp;amp;gt;0){this.source.disconnect(this.filters[0]);for(let t=1,e=this.filters.length;t&amp;amp;lt;e;t++)this.filters[t-1].disconnect(this.filters[t]);this.filters[this.filters.length-1].disconnect(this.getOutput())}else this.source.disconnect(this.getOutput());return this._connected=!1,this}}getFilters(){return this.filters}setFilters(t){return t||(t=[]),this._connected===!0?(this.disconnect(),this.filters=t.slice(),this.connect()):this.filters=t.slice(),this}setDetune(t){return this.detune=t,this.isPlaying===!0&amp;amp;amp;&amp;amp;amp;this.source.detune!==void 0&amp;amp;amp;&amp;amp;amp;this.source.detune.setTargetAtTime(this.detune,this.context.currentTime,.01),this}getDetune(){return this.detune}getFilter(){return this.getFilters()[0]}setFilter(t){return this.setFilters(t?[t]:[])}setPlaybackRate(t){if(this.hasPlaybackControl===!1){console.warn(&amp;amp;quot;THREE.Audio: this Audio has no playback control.&amp;amp;quot;);return}return this.playbackRate=t,this.isPlaying===!0&amp;amp;amp;&amp;amp;amp;this.source.playbackRate.setTargetAtTime(this.playbackRate,this.context.currentTime,.01),this}getPlaybackRate(){return this.playbackRate}onEnded(){this.isPlaying=!1,this._progress=0}getLoop(){return this.hasPlaybackControl===!1?(console.warn(&amp;amp;quot;THREE.Audio: this Audio has no playback control.&amp;amp;quot;),!1):this.loop}setLoop(t){if(this.hasPlaybackControl===!1){console.warn(&amp;amp;quot;THREE.Audio: this Audio has no playback control.&amp;amp;quot;);return}return this.loop=t,this.isPlaying===!0&amp;amp;amp;&amp;amp;amp;(this.source.loop=this.loop),this}setLoopStart(t){return this.loopStart=t,this}setLoopEnd(t){return this.loopEnd=t,this}getVolume(){return this.gain.gain.value}setVolume(t){return this.gain.gain.setTargetAtTime(t,this.context.currentTime,.01),this}copy(t,e){return super.copy(t,e),t.sourceType!==&amp;amp;quot;buffer&amp;amp;quot;?(console.warn(&amp;amp;quot;THREE.Audio: Audio source type cannot be copied.&amp;amp;quot;),this):(this.autoplay=t.autoplay,this.buffer=t.buffer,this.detune=t.detune,this.loop=t.loop,this.loopStart=t.loopStart,this.loopEnd=t.loopEnd,this.offset=t.offset,this.duration=t.duration,this.playbackRate=t.playbackRate,this.hasPlaybackControl=t.hasPlaybackControl,this.sourceType=t.sourceType,this.filters=t.filters.slice(),this)}clone(t){return new this.constructor(this.listener).copy(this,t)}},hu=new B,_N=new vi,V5=new B,du=new B,x_=class extends Wm{constructor(t){super(t),this.panner=this.context.createPanner(),this.panner.panningModel=&amp;amp;quot;HRTF&amp;amp;quot;,this.panner.connect(this.gain)}connect(){return super.connect(),this.panner.connect(this.gain),this}disconnect(){return super.disconnect(),this.panner.disconnect(this.gain),this}getOutput(){return this.panner}getRefDistance(){return this.panner.refDistance}setRefDistance(t){return this.panner.refDistance=t,this}getRolloffFactor(){return this.panner.rolloffFactor}setRolloffFactor(t){return this.panner.rolloffFactor=t,this}getDistanceModel(){return this.panner.distanceModel}setDistanceModel(t){return this.panner.distanceModel=t,this}getMaxDistance(){return this.panner.maxDistance}setMaxDistance(t){return this.panner.maxDistance=t,this}setDirectionalCone(t,e,i){return this.panner.coneInnerAngle=t,this.panner.coneOuterAngle=e,this.panner.coneOuterGain=i,this}updateMatrixWorld(t){if(super.updateMatrixWorld(t),this.hasPlaybackControl===!0&amp;amp;amp;&amp;amp;amp;this.isPlaying===!1)return;this.matrixWorld.decompose(hu,_N,V5),du.set(0,0,1).applyQuaternion(_N);let e=this.panner;if(e.positionX){let i=this.context.currentTime+this.listener.timeDelta;e.positionX.linearRampToValueAtTime(hu.x,i),e.positionY.linearRampToValueAtTime(hu.y,i),e.positionZ.linearRampToValueAtTime(hu.z,i),e.orientationX.linearRampToValueAtTime(du.x,i),e.orientationY.linearRampToValueAtTime(du.y,i),e.orientationZ.linearRampToValueAtTime(du.z,i)}else e.setPosition(hu.x,hu.y,hu.z),e.setOrientation(du.x,du.y,du.z)}},S_=class{constructor(t,e=2048){this.analyser=t.context.createAnalyser(),this.analyser.fftSize=e,this.data=new Uint8Array(this.analyser.frequencyBinCount),t.getOutput().connect(this.analyser)}getFrequencyData(){return this.analyser.getByteFrequencyData(this.data),this.data}getAverageFrequency(){let t=0,e=this.getFrequencyData();for(let i=0;i&amp;amp;lt;e.length;i++)t+=e[i];return t/e.length}},km=class{constructor(t,e,i){this.binding=t,this.valueSize=i;let a,s,o;switch(e){case&amp;amp;quot;quaternion&amp;amp;quot;:a=this._slerp,s=this._slerpAdditive,o=this._setAdditiveIdentityQuaternion,this.buffer=new Float64Array(i*6),this._workIndex=5;break;case&amp;amp;quot;string&amp;amp;quot;:case&amp;amp;quot;bool&amp;amp;quot;:a=this._select,s=this._select,o=this._setAdditiveIdentityOther,this.buffer=new Array(i*5);break;default:a=this._lerp,s=this._lerpAdditive,o=this._setAdditiveIdentityNumeric,this.buffer=new Float64Array(i*5)}this._mixBufferRegion=a,this._mixBufferRegionAdditive=s,this._setIdentity=o,this._origIndex=3,this._addIndex=4,this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,this.useCount=0,this.referenceCount=0}accumulate(t,e){let i=this.buffer,a=this.valueSize,s=t*a+a,o=this.cumulativeWeight;if(o===0){for(let u=0;u!==a;++u)i[s+u]=i[u];o=e}else{o+=e;let u=e/o;this._mixBufferRegion(i,s,0,u,a)}this.cumulativeWeight=o}accumulateAdditive(t){let e=this.buffer,i=this.valueSize,a=i*this._addIndex;this.cumulativeWeightAdditive===0&amp;amp;amp;&amp;amp;amp;this._setIdentity(),this._mixBufferRegionAdditive(e,a,0,t,i),this.cumulativeWeightAdditive+=t}apply(t){let e=this.valueSize,i=this.buffer,a=t*e+e,s=this.cumulativeWeight,o=this.cumulativeWeightAdditive,u=this.binding;if(this.cumulativeWeight=0,this.cumulativeWeightAdditive=0,s&amp;amp;lt;1){let c=e*this._origIndex;this._mixBufferRegion(i,a,c,1-s,e)}o&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this._mixBufferRegionAdditive(i,a,this._addIndex*e,1,e);for(let c=e,h=e+e;c!==h;++c)if(i[c]!==i[c+e]){u.setValue(i,a);break}}saveOriginalState(){let t=this.binding,e=this.buffer,i=this.valueSize,a=i*this._origIndex;t.getValue(e,a);for(let s=i,o=a;s!==o;++s)e[s]=e[a+s%i];this._setIdentity(),this.cumulativeWeight=0,this.cumulativeWeightAdditive=0}restoreOriginalState(){let t=this.valueSize*3;this.binding.setValue(this.buffer,t)}_setAdditiveIdentityNumeric(){let t=this._addIndex*this.valueSize,e=t+this.valueSize;for(let i=t;i&amp;amp;lt;e;i++)this.buffer[i]=0}_setAdditiveIdentityQuaternion(){this._setAdditiveIdentityNumeric(),this.buffer[this._addIndex*this.valueSize+3]=1}_setAdditiveIdentityOther(){let t=this._origIndex*this.valueSize,e=this._addIndex*this.valueSize;for(let i=0;i&amp;amp;lt;this.valueSize;i++)this.buffer[e+i]=this.buffer[t+i]}_select(t,e,i,a,s){if(a&amp;amp;gt;=.5)for(let o=0;o!==s;++o)t[e+o]=t[i+o]}_slerp(t,e,i,a){vi.slerpFlat(t,e,t,e,t,i,a)}_slerpAdditive(t,e,i,a,s){let o=this._workIndex*s;vi.multiplyQuaternionsFlat(t,o,t,e,t,i),vi.slerpFlat(t,e,t,e,t,o,a)}_lerp(t,e,i,a,s){let o=1-a;for(let u=0;u!==s;++u){let c=e+u;t[c]=t[c]*o+t[i+u]*a}}_lerpAdditive(t,e,i,a,s){for(let o=0;o!==s;++o){let u=e+o;t[u]=t[u]+t[i+o]*a}}},IT=&amp;amp;quot;\\[\\]\\.:\\/&amp;amp;quot;,G5=new RegExp(&amp;amp;quot;[&amp;amp;quot;+IT+&amp;amp;quot;]&amp;amp;quot;,&amp;amp;quot;g&amp;amp;quot;),HT=&amp;amp;quot;[^&amp;amp;quot;+IT+&amp;amp;quot;]&amp;amp;quot;,X5=&amp;amp;quot;[^&amp;amp;quot;+IT.replace(&amp;amp;quot;\\.&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;)+&amp;amp;quot;]&amp;amp;quot;,q5=/((?:WC+[\/:])*)/.source.replace(&amp;amp;quot;WC&amp;amp;quot;,HT),Y5=/(WCOD+)?/.source.replace(&amp;amp;quot;WCOD&amp;amp;quot;,X5),W5=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace(&amp;amp;quot;WC&amp;amp;quot;,HT),k5=/\.(WC+)(?:\[(.+)\])?/.source.replace(&amp;amp;quot;WC&amp;amp;quot;,HT),Z5=new RegExp(&amp;amp;quot;^&amp;amp;quot;+q5+Y5+W5+k5+&amp;amp;quot;$&amp;amp;quot;),j5=[&amp;amp;quot;material&amp;amp;quot;,&amp;amp;quot;materials&amp;amp;quot;,&amp;amp;quot;bones&amp;amp;quot;,&amp;amp;quot;map&amp;amp;quot;],Hb=class{constructor(t,e,i){let a=i||Ye.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,a)}getValue(t,e){this.bind();let i=this._targetGroup.nCachedObjects_,a=this._bindings[i];a!==void 0&amp;amp;amp;&amp;amp;amp;a.getValue(t,e)}setValue(t,e){let i=this._bindings;for(let a=this._targetGroup.nCachedObjects_,s=i.length;a!==s;++a)i[a].setValue(t,e)}bind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].bind()}unbind(){let t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,i=t.length;e!==i;++e)t[e].unbind()}},Ye=class n{constructor(t,e,i){this.path=e,this.parsedPath=i||n.parseTrackName(e),this.node=n.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,i){return t&amp;amp;amp;&amp;amp;amp;t.isAnimationObjectGroup?new n.Composite(t,e,i):new n(t,e,i)}static sanitizeNodeName(t){return t.replace(/\s/g,&amp;amp;quot;_&amp;amp;quot;).replace(G5,&amp;amp;quot;&amp;amp;quot;)}static parseTrackName(t){let e=Z5.exec(t);if(e===null)throw new Error(&amp;amp;quot;PropertyBinding: Cannot parse trackName: &amp;amp;quot;+t);let i={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},a=i.nodeName&amp;amp;amp;&amp;amp;amp;i.nodeName.lastIndexOf(&amp;amp;quot;.&amp;amp;quot;);if(a!==void 0&amp;amp;amp;&amp;amp;amp;a!==-1){let s=i.nodeName.substring(a+1);j5.indexOf(s)!==-1&amp;amp;amp;&amp;amp;amp;(i.nodeName=i.nodeName.substring(0,a),i.objectName=s)}if(i.propertyName===null||i.propertyName.length===0)throw new Error(&amp;amp;quot;PropertyBinding: can not parse propertyName from trackName: &amp;amp;quot;+t);return i}static findNode(t,e){if(e===void 0||e===&amp;amp;quot;&amp;amp;quot;||e===&amp;amp;quot;.&amp;amp;quot;||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){let i=t.skeleton.getBoneByName(e);if(i!==void 0)return i}if(t.children){let i=function(s){for(let o=0;o&amp;amp;lt;s.length;o++){let u=s[o];if(u.name===e||u.uuid===e)return u;let c=i(u.children);if(c)return c}return null},a=i(t.children);if(a)return a}return null}_getValue_unavailable(){}_setValue_unavailable(){}_getValue_direct(t,e){t[e]=this.targetObject[this.propertyName]}_getValue_array(t,e){let i=this.resolvedProperty;for(let a=0,s=i.length;a!==s;++a)t[e++]=i[a]}_getValue_arrayElement(t,e){t[e]=this.resolvedProperty[this.propertyIndex]}_getValue_toArray(t,e){this.resolvedProperty.toArray(t,e)}_setValue_direct(t,e){this.targetObject[this.propertyName]=t[e]}_setValue_direct_setNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.needsUpdate=!0}_setValue_direct_setMatrixWorldNeedsUpdate(t,e){this.targetObject[this.propertyName]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_array(t,e){let i=this.resolvedProperty;for(let a=0,s=i.length;a!==s;++a)i[a]=t[e++]}_setValue_array_setNeedsUpdate(t,e){let i=this.resolvedProperty;for(let a=0,s=i.length;a!==s;++a)i[a]=t[e++];this.targetObject.needsUpdate=!0}_setValue_array_setMatrixWorldNeedsUpdate(t,e){let i=this.resolvedProperty;for(let a=0,s=i.length;a!==s;++a)i[a]=t[e++];this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_arrayElement(t,e){this.resolvedProperty[this.propertyIndex]=t[e]}_setValue_arrayElement_setNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.needsUpdate=!0}_setValue_arrayElement_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty[this.propertyIndex]=t[e],this.targetObject.matrixWorldNeedsUpdate=!0}_setValue_fromArray(t,e){this.resolvedProperty.fromArray(t,e)}_setValue_fromArray_setNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.needsUpdate=!0}_setValue_fromArray_setMatrixWorldNeedsUpdate(t,e){this.resolvedProperty.fromArray(t,e),this.targetObject.matrixWorldNeedsUpdate=!0}_getValue_unbound(t,e){this.bind(),this.getValue(t,e)}_setValue_unbound(t,e){this.bind(),this.setValue(t,e)}bind(){let t=this.node,e=this.parsedPath,i=e.objectName,a=e.propertyName,s=e.propertyIndex;if(t||(t=n.findNode(this.rootNode,e.nodeName),this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t){console.warn(&amp;amp;quot;THREE.PropertyBinding: No target node found for track: &amp;amp;quot;+this.path+&amp;amp;quot;.&amp;amp;quot;);return}if(i){let h=e.objectIndex;switch(i){case&amp;amp;quot;materials&amp;amp;quot;:if(!t.material){console.error(&amp;amp;quot;THREE.PropertyBinding: Can not bind to material as node does not have a material.&amp;amp;quot;,this);return}if(!t.material.materials){console.error(&amp;amp;quot;THREE.PropertyBinding: Can not bind to material.materials as node.material does not have a materials array.&amp;amp;quot;,this);return}t=t.material.materials;break;case&amp;amp;quot;bones&amp;amp;quot;:if(!t.skeleton){console.error(&amp;amp;quot;THREE.PropertyBinding: Can not bind to bones as node does not have a skeleton.&amp;amp;quot;,this);return}t=t.skeleton.bones;for(let d=0;d&amp;amp;lt;t.length;d++)if(t[d].name===h){h=d;break}break;case&amp;amp;quot;map&amp;amp;quot;:if(&amp;amp;quot;map&amp;amp;quot;in t){t=t.map;break}if(!t.material){console.error(&amp;amp;quot;THREE.PropertyBinding: Can not bind to material as node does not have a material.&amp;amp;quot;,this);return}if(!t.material.map){console.error(&amp;amp;quot;THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.&amp;amp;quot;,this);return}t=t.material.map;break;default:if(t[i]===void 0){console.error(&amp;amp;quot;THREE.PropertyBinding: Can not bind to objectName of node undefined.&amp;amp;quot;,this);return}t=t[i]}if(h!==void 0){if(t[h]===void 0){console.error(&amp;amp;quot;THREE.PropertyBinding: Trying to bind to objectIndex of objectName, but is undefined.&amp;amp;quot;,this,t);return}t=t[h]}}let o=t[a];if(o===void 0){let h=e.nodeName;console.error(&amp;amp;quot;THREE.PropertyBinding: Trying to update property for track: &amp;amp;quot;+h+&amp;amp;quot;.&amp;amp;quot;+a+&amp;amp;quot; but it wasn&amp;amp;#39;t found.&amp;amp;quot;,t);return}let u=this.Versioning.None;this.targetObject=t,t.isMaterial===!0?u=this.Versioning.NeedsUpdate:t.isObject3D===!0&amp;amp;amp;&amp;amp;amp;(u=this.Versioning.MatrixWorldNeedsUpdate);let c=this.BindingType.Direct;if(s!==void 0){if(a===&amp;amp;quot;morphTargetInfluences&amp;amp;quot;){if(!t.geometry){console.error(&amp;amp;quot;THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.&amp;amp;quot;,this);return}if(!t.geometry.morphAttributes){console.error(&amp;amp;quot;THREE.PropertyBinding: Can not bind to morphTargetInfluences because node does not have a geometry.morphAttributes.&amp;amp;quot;,this);return}t.morphTargetDictionary[s]!==void 0&amp;amp;amp;&amp;amp;amp;(s=t.morphTargetDictionary[s])}c=this.BindingType.ArrayElement,this.resolvedProperty=o,this.propertyIndex=s}else o.fromArray!==void 0&amp;amp;amp;&amp;amp;amp;o.toArray!==void 0?(c=this.BindingType.HasFromToArray,this.resolvedProperty=o):Array.isArray(o)?(c=this.BindingType.EntireArray,this.resolvedProperty=o):this.propertyName=a;this.getValue=this.GetterByBindingType[c],this.setValue=this.SetterByBindingTypeAndVersioning[c][u]}unbind(){this.node=null,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}};Ye.Composite=Hb;Ye.prototype.BindingType={Direct:0,EntireArray:1,ArrayElement:2,HasFromToArray:3};Ye.prototype.Versioning={None:0,NeedsUpdate:1,MatrixWorldNeedsUpdate:2};Ye.prototype.GetterByBindingType=[Ye.prototype._getValue_direct,Ye.prototype._getValue_array,Ye.prototype._getValue_arrayElement,Ye.prototype._getValue_toArray];Ye.prototype.SetterByBindingTypeAndVersioning=[[Ye.prototype._setValue_direct,Ye.prototype._setValue_direct_setNeedsUpdate,Ye.prototype._setValue_direct_setMatrixWorldNeedsUpdate],[Ye.prototype._setValue_array,Ye.prototype._setValue_array_setNeedsUpdate,Ye.prototype._setValue_array_setMatrixWorldNeedsUpdate],[Ye.prototype._setValue_arrayElement,Ye.prototype._setValue_arrayElement_setNeedsUpdate,Ye.prototype._setValue_arrayElement_setMatrixWorldNeedsUpdate],[Ye.prototype._setValue_fromArray,Ye.prototype._setValue_fromArray_setNeedsUpdate,Ye.prototype._setValue_fromArray_setMatrixWorldNeedsUpdate]];var M_=class{constructor(){this.isAnimationObjectGroup=!0,this.uuid=Na(),this._objects=Array.prototype.slice.call(arguments),this.nCachedObjects_=0;let t={};this._indicesByUUID=t;for(let i=0,a=arguments.length;i!==a;++i)t[arguments[i].uuid]=i;this._paths=[],this._parsedPaths=[],this._bindings=[],this._bindingsIndicesByPath={};let e=this;this.stats={objects:{get total(){return e._objects.length},get inUse(){return this.total-e.nCachedObjects_}},get bindingsPerObject(){return e._bindings.length}}}add(){let t=this._objects,e=this._indicesByUUID,i=this._paths,a=this._parsedPaths,s=this._bindings,o=s.length,u,c=t.length,h=this.nCachedObjects_;for(let d=0,m=arguments.length;d!==m;++d){let g=arguments[d],y=g.uuid,x=e[y];if(x===void 0){x=c++,e[y]=x,t.push(g);for(let b=0,M=o;b!==M;++b)s[b].push(new Ye(g,i[b],a[b]))}else if(x&amp;amp;lt;h){u=t[x];let b=--h,M=t[b];e[M.uuid]=x,t[x]=M,e[y]=b,t[b]=g;for(let v=0,S=o;v!==S;++v){let E=s[v],T=E[b],w=E[x];E[x]=T,w===void 0&amp;amp;amp;&amp;amp;amp;(w=new Ye(g,i[v],a[v])),E[b]=w}}else t[x]!==u&amp;amp;amp;&amp;amp;amp;console.error(&amp;amp;quot;THREE.AnimationObjectGroup: Different objects with the same UUID detected. Clean the caches or recreate your infrastructure when reloading scenes.&amp;amp;quot;)}this.nCachedObjects_=h}remove(){let t=this._objects,e=this._indicesByUUID,i=this._bindings,a=i.length,s=this.nCachedObjects_;for(let o=0,u=arguments.length;o!==u;++o){let c=arguments[o],h=c.uuid,d=e[h];if(d!==void 0&amp;amp;amp;&amp;amp;amp;d&amp;amp;gt;=s){let m=s++,g=t[m];e[g.uuid]=d,t[d]=g,e[h]=m,t[m]=c;for(let y=0,x=a;y!==x;++y){let b=i[y],M=b[m],v=b[d];b[d]=M,b[m]=v}}}this.nCachedObjects_=s}uncache(){let t=this._objects,e=this._indicesByUUID,i=this._bindings,a=i.length,s=this.nCachedObjects_,o=t.length;for(let u=0,c=arguments.length;u!==c;++u){let h=arguments[u],d=h.uuid,m=e[d];if(m!==void 0)if(delete e[d],m&amp;amp;lt;s){let g=--s,y=t[g],x=--o,b=t[x];e[y.uuid]=m,t[m]=y,e[b.uuid]=g,t[g]=b,t.pop();for(let M=0,v=a;M!==v;++M){let S=i[M],E=S[g],T=S[x];S[m]=E,S[g]=T,S.pop()}}else{let g=--o,y=t[g];g&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(e[y.uuid]=m),t[m]=y,t.pop();for(let x=0,b=a;x!==b;++x){let M=i[x];M[m]=M[g],M.pop()}}}this.nCachedObjects_=s}subscribe_(t,e){let i=this._bindingsIndicesByPath,a=i[t],s=this._bindings;if(a!==void 0)return s[a];let o=this._paths,u=this._parsedPaths,c=this._objects,h=c.length,d=this.nCachedObjects_,m=new Array(h);a=s.length,i[t]=a,o.push(t),u.push(e),s.push(m);for(let g=d,y=c.length;g!==y;++g){let x=c[g];m[g]=new Ye(x,t,e)}return m}unsubscribe_(t){let e=this._bindingsIndicesByPath,i=e[t];if(i!==void 0){let a=this._paths,s=this._parsedPaths,o=this._bindings,u=o.length-1,c=o[u],h=t[u];e[h]=i,o[i]=c,o.pop(),s[i]=s[u],s.pop(),a[i]=a[u],a.pop()}}},Zm=class{constructor(t,e,i=null,a=e.blendMode){this._mixer=t,this._clip=e,this._localRoot=i,this.blendMode=a;let s=e.tracks,o=s.length,u=new Array(o),c={endingStart:nl,endingEnd:nl};for(let h=0;h!==o;++h){let d=s[h].createInterpolant(null);u[h]=d,d.settings=c}this._interpolantSettings=c,this._interpolants=u,this._propertyBindings=new Array(o),this._cacheIndex=null,this._byClipCacheIndex=null,this._timeScaleInterpolant=null,this._weightInterpolant=null,this.loop=yT,this._loopCount=-1,this._startTime=null,this.time=0,this.timeScale=1,this._effectiveTimeScale=1,this.weight=1,this._effectiveWeight=1,this.repetitions=1/0,this.paused=!1,this.enabled=!0,this.clampWhenFinished=!1,this.zeroSlopeAtStart=!0,this.zeroSlopeAtEnd=!0}play(){return this._mixer._activateAction(this),this}stop(){return this._mixer._deactivateAction(this),this.reset()}reset(){return this.paused=!1,this.enabled=!0,this.time=0,this._loopCount=-1,this._startTime=null,this.stopFading().stopWarping()}isRunning(){return this.enabled&amp;amp;amp;&amp;amp;amp;!this.paused&amp;amp;amp;&amp;amp;amp;this.timeScale!==0&amp;amp;amp;&amp;amp;amp;this._startTime===null&amp;amp;amp;&amp;amp;amp;this._mixer._isActiveAction(this)}isScheduled(){return this._mixer._isActiveAction(this)}startAt(t){return this._startTime=t,this}setLoop(t,e){return this.loop=t,this.repetitions=e,this}setEffectiveWeight(t){return this.weight=t,this._effectiveWeight=this.enabled?t:0,this.stopFading()}getEffectiveWeight(){return this._effectiveWeight}fadeIn(t){return this._scheduleFading(t,0,1)}fadeOut(t){return this._scheduleFading(t,1,0)}crossFadeFrom(t,e,i=!1){if(t.fadeOut(e),this.fadeIn(e),i===!0){let a=this._clip.duration,s=t._clip.duration,o=s/a,u=a/s;t.warp(1,o,e),this.warp(u,1,e)}return this}crossFadeTo(t,e,i=!1){return t.crossFadeFrom(this,e,i)}stopFading(){let t=this._weightInterpolant;return t!==null&amp;amp;amp;&amp;amp;amp;(this._weightInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}setEffectiveTimeScale(t){return this.timeScale=t,this._effectiveTimeScale=this.paused?0:t,this.stopWarping()}getEffectiveTimeScale(){return this._effectiveTimeScale}setDuration(t){return this.timeScale=this._clip.duration/t,this.stopWarping()}syncWith(t){return this.time=t.time,this.timeScale=t.timeScale,this.stopWarping()}halt(t){return this.warp(this._effectiveTimeScale,0,t)}warp(t,e,i){let a=this._mixer,s=a.time,o=this.timeScale,u=this._timeScaleInterpolant;u===null&amp;amp;amp;&amp;amp;amp;(u=a._lendControlInterpolant(),this._timeScaleInterpolant=u);let c=u.parameterPositions,h=u.sampleValues;return c[0]=s,c[1]=s+i,h[0]=t/o,h[1]=e/o,this}stopWarping(){let t=this._timeScaleInterpolant;return t!==null&amp;amp;amp;&amp;amp;amp;(this._timeScaleInterpolant=null,this._mixer._takeBackControlInterpolant(t)),this}getMixer(){return this._mixer}getClip(){return this._clip}getRoot(){return this._localRoot||this._mixer._root}_update(t,e,i,a){if(!this.enabled){this._updateWeight(t);return}let s=this._startTime;if(s!==null){let c=(t-s)*i;c&amp;amp;lt;0||i===0?e=0:(this._startTime=null,e=i*c)}e*=this._updateTimeScale(t);let o=this._updateTime(e),u=this._updateWeight(t);if(u&amp;amp;gt;0){let c=this._interpolants,h=this._propertyBindings;switch(this.blendMode){case cx:for(let d=0,m=c.length;d!==m;++d)c[d].evaluate(o),h[d].accumulateAdditive(u);break;case Bg:default:for(let d=0,m=c.length;d!==m;++d)c[d].evaluate(o),h[d].accumulate(a,u)}}}_updateWeight(t){let e=0;if(this.enabled){e=this.weight;let i=this._weightInterpolant;if(i!==null){let a=i.evaluate(t)[0];e*=a,t&amp;amp;gt;i.parameterPositions[1]&amp;amp;amp;&amp;amp;amp;(this.stopFading(),a===0&amp;amp;amp;&amp;amp;amp;(this.enabled=!1))}}return this._effectiveWeight=e,e}_updateTimeScale(t){let e=0;if(!this.paused){e=this.timeScale;let i=this._timeScaleInterpolant;if(i!==null){let a=i.evaluate(t)[0];e*=a,t&amp;amp;gt;i.parameterPositions[1]&amp;amp;amp;&amp;amp;amp;(this.stopWarping(),e===0?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e}_updateTime(t){let e=this._clip.duration,i=this.loop,a=this.time+t,s=this._loopCount,o=i===_T;if(t===0)return s===-1?a:o&amp;amp;amp;&amp;amp;amp;(s&amp;amp;amp;1)===1?e-a:a;if(i===vT){s===-1&amp;amp;amp;&amp;amp;amp;(this._loopCount=0,this._setEndings(!0,!0,!1));t:{if(a&amp;amp;gt;=e)a=e;else if(a&amp;amp;lt;0)a=0;else{this.time=a;break t}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this.time=a,this._mixer.dispatchEvent({type:&amp;amp;quot;finished&amp;amp;quot;,action:this,direction:t&amp;amp;lt;0?-1:1})}}else{if(s===-1&amp;amp;amp;&amp;amp;amp;(t&amp;amp;gt;=0?(s=0,this._setEndings(!0,this.repetitions===0,o)):this._setEndings(this.repetitions===0,!0,o)),a&amp;amp;gt;=e||a&amp;amp;lt;0){let u=Math.floor(a/e);a-=e*u,s+=Math.abs(u);let c=this.repetitions-s;if(c&amp;amp;lt;=0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,a=t&amp;amp;gt;0?e:0,this.time=a,this._mixer.dispatchEvent({type:&amp;amp;quot;finished&amp;amp;quot;,action:this,direction:t&amp;amp;gt;0?1:-1});else{if(c===1){let h=t&amp;amp;lt;0;this._setEndings(h,!h,o)}else this._setEndings(!1,!1,o);this._loopCount=s,this.time=a,this._mixer.dispatchEvent({type:&amp;amp;quot;loop&amp;amp;quot;,action:this,loopDelta:u})}}else this.time=a;if(o&amp;amp;amp;&amp;amp;amp;(s&amp;amp;amp;1)===1)return e-a}return a}_setEndings(t,e,i){let a=this._interpolantSettings;i?(a.endingStart=il,a.endingEnd=il):(t?a.endingStart=this.zeroSlopeAtStart?il:nl:a.endingStart=Hf,e?a.endingEnd=this.zeroSlopeAtEnd?il:nl:a.endingEnd=Hf)}_scheduleFading(t,e,i){let a=this._mixer,s=a.time,o=this._weightInterpolant;o===null&amp;amp;amp;&amp;amp;amp;(o=a._lendControlInterpolant(),this._weightInterpolant=o);let u=o.parameterPositions,c=o.sampleValues;return u[0]=s,c[0]=e,u[1]=s+t,c[1]=i,this}},Q5=new Float32Array(1),E_=class extends La{constructor(t){super(),this._root=t,this._initMemoryManager(),this._accuIndex=0,this.time=0,this.timeScale=1}_bindAction(t,e){let i=t._localRoot||this._root,a=t._clip.tracks,s=a.length,o=t._propertyBindings,u=t._interpolants,c=i.uuid,h=this._bindingsByRootAndName,d=h[c];d===void 0&amp;amp;amp;&amp;amp;amp;(d={},h[c]=d);for(let m=0;m!==s;++m){let g=a[m],y=g.name,x=d[y];if(x!==void 0)++x.referenceCount,o[m]=x;else{if(x=o[m],x!==void 0){x._cacheIndex===null&amp;amp;amp;&amp;amp;amp;(++x.referenceCount,this._addInactiveBinding(x,c,y));continue}let b=e&amp;amp;amp;&amp;amp;amp;e._propertyBindings[m].binding.parsedPath;x=new km(Ye.create(i,y,b),g.ValueTypeName,g.getValueSize()),++x.referenceCount,this._addInactiveBinding(x,c,y),o[m]=x}u[m].resultBuffer=x.buffer}}_activateAction(t){if(!this._isActiveAction(t)){if(t._cacheIndex===null){let i=(t._localRoot||this._root).uuid,a=t._clip.uuid,s=this._actionsByClip[a];this._bindAction(t,s&amp;amp;amp;&amp;amp;amp;s.knownActions[0]),this._addInactiveAction(t,a,i)}let e=t._propertyBindings;for(let i=0,a=e.length;i!==a;++i){let s=e[i];s.useCount++===0&amp;amp;amp;&amp;amp;amp;(this._lendBinding(s),s.saveOriginalState())}this._lendAction(t)}}_deactivateAction(t){if(this._isActiveAction(t)){let e=t._propertyBindings;for(let i=0,a=e.length;i!==a;++i){let s=e[i];--s.useCount===0&amp;amp;amp;&amp;amp;amp;(s.restoreOriginalState(),this._takeBackBinding(s))}this._takeBackAction(t)}}_initMemoryManager(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;let t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}}_isActiveAction(t){let e=t._cacheIndex;return e!==null&amp;amp;amp;&amp;amp;amp;e&amp;amp;lt;this._nActiveActions}_addInactiveAction(t,e,i){let a=this._actions,s=this._actionsByClip,o=s[e];if(o===void 0)o={knownActions:[t],actionByRoot:{}},t._byClipCacheIndex=0,s[e]=o;else{let u=o.knownActions;t._byClipCacheIndex=u.length,u.push(t)}t._cacheIndex=a.length,a.push(t),o.actionByRoot[i]=t}_removeInactiveAction(t){let e=this._actions,i=e[e.length-1],a=t._cacheIndex;i._cacheIndex=a,e[a]=i,e.pop(),t._cacheIndex=null;let s=t._clip.uuid,o=this._actionsByClip,u=o[s],c=u.knownActions,h=c[c.length-1],d=t._byClipCacheIndex;h._byClipCacheIndex=d,c[d]=h,c.pop(),t._byClipCacheIndex=null;let m=u.actionByRoot,g=(t._localRoot||this._root).uuid;delete m[g],c.length===0&amp;amp;amp;&amp;amp;amp;delete o[s],this._removeInactiveBindingsForAction(t)}_removeInactiveBindingsForAction(t){let e=t._propertyBindings;for(let i=0,a=e.length;i!==a;++i){let s=e[i];--s.referenceCount===0&amp;amp;amp;&amp;amp;amp;this._removeInactiveBinding(s)}}_lendAction(t){let e=this._actions,i=t._cacheIndex,a=this._nActiveActions++,s=e[a];t._cacheIndex=a,e[a]=t,s._cacheIndex=i,e[i]=s}_takeBackAction(t){let e=this._actions,i=t._cacheIndex,a=--this._nActiveActions,s=e[a];t._cacheIndex=a,e[a]=t,s._cacheIndex=i,e[i]=s}_addInactiveBinding(t,e,i){let a=this._bindingsByRootAndName,s=this._bindings,o=a[e];o===void 0&amp;amp;amp;&amp;amp;amp;(o={},a[e]=o),o[i]=t,t._cacheIndex=s.length,s.push(t)}_removeInactiveBinding(t){let e=this._bindings,i=t.binding,a=i.rootNode.uuid,s=i.path,o=this._bindingsByRootAndName,u=o[a],c=e[e.length-1],h=t._cacheIndex;c._cacheIndex=h,e[h]=c,e.pop(),delete u[s],Object.keys(u).length===0&amp;amp;amp;&amp;amp;amp;delete o[a]}_lendBinding(t){let e=this._bindings,i=t._cacheIndex,a=this._nActiveBindings++,s=e[a];t._cacheIndex=a,e[a]=t,s._cacheIndex=i,e[i]=s}_takeBackBinding(t){let e=this._bindings,i=t._cacheIndex,a=--this._nActiveBindings,s=e[a];t._cacheIndex=a,e[a]=t,s._cacheIndex=i,e[i]=s}_lendControlInterpolant(){let t=this._controlInterpolants,e=this._nActiveControlInterpolants++,i=t[e];return i===void 0&amp;amp;amp;&amp;amp;amp;(i=new uh(new Float32Array(2),new Float32Array(2),1,Q5),i.__cacheIndex=e,t[e]=i),i}_takeBackControlInterpolant(t){let e=this._controlInterpolants,i=t.__cacheIndex,a=--this._nActiveControlInterpolants,s=e[a];t.__cacheIndex=a,e[a]=t,s.__cacheIndex=i,e[i]=s}clipAction(t,e,i){let a=e||this._root,s=a.uuid,o=typeof t==&amp;amp;quot;string&amp;amp;quot;?dl.findByName(a,t):t,u=o!==null?o.uuid:t,c=this._actionsByClip[u],h=null;if(i===void 0&amp;amp;amp;&amp;amp;amp;(o!==null?i=o.blendMode:i=Bg),c!==void 0){let m=c.actionByRoot[s];if(m!==void 0&amp;amp;amp;&amp;amp;amp;m.blendMode===i)return m;h=c.knownActions[0],o===null&amp;amp;amp;&amp;amp;amp;(o=h._clip)}if(o===null)return null;let d=new Zm(this,o,e,i);return this._bindAction(d,h),this._addInactiveAction(d,u,s),d}existingAction(t,e){let i=e||this._root,a=i.uuid,s=typeof t==&amp;amp;quot;string&amp;amp;quot;?dl.findByName(i,t):t,o=s?s.uuid:t,u=this._actionsByClip[o];return u!==void 0&amp;amp;amp;&amp;amp;amp;u.actionByRoot[a]||null}stopAllAction(){let t=this._actions,e=this._nActiveActions;for(let i=e-1;i&amp;amp;gt;=0;--i)t[i].stop();return this}update(t){t*=this.timeScale;let e=this._actions,i=this._nActiveActions,a=this.time+=t,s=Math.sign(t),o=this._accuIndex^=1;for(let h=0;h!==i;++h)e[h]._update(a,t,s,o);let u=this._bindings,c=this._nActiveBindings;for(let h=0;h!==c;++h)u[h].apply(o);return this}setTime(t){this.time=0;for(let e=0;e&amp;amp;lt;this._actions.length;e++)this._actions[e].time=0;return this.update(t)}getRoot(){return this._root}uncacheClip(t){let e=this._actions,i=t.uuid,a=this._actionsByClip,s=a[i];if(s!==void 0){let o=s.knownActions;for(let u=0,c=o.length;u!==c;++u){let h=o[u];this._deactivateAction(h);let d=h._cacheIndex,m=e[e.length-1];h._cacheIndex=null,h._byClipCacheIndex=null,m._cacheIndex=d,e[d]=m,e.pop(),this._removeInactiveBindingsForAction(h)}delete a[i]}}uncacheRoot(t){let e=t.uuid,i=this._actionsByClip;for(let o in i){let u=i[o].actionByRoot,c=u[e];c!==void 0&amp;amp;amp;&amp;amp;amp;(this._deactivateAction(c),this._removeInactiveAction(c))}let a=this._bindingsByRootAndName,s=a[e];if(s!==void 0)for(let o in s){let u=s[o];u.restoreOriginalState(),this._removeInactiveBinding(u)}}uncacheAction(t,e){let i=this.existingAction(t,e);i!==null&amp;amp;amp;&amp;amp;amp;(this._deactivateAction(i),this._removeInactiveAction(i))}},b_=class extends Xf{constructor(t=1,e=1,i=1,a={}){super(t,e,a),this.isRenderTarget3D=!0,this.depth=i,this.texture=new Su(null,t,e,i),this._setTextureOptions(a),this.texture.isRenderTargetTexture=!0}},T_=class n{constructor(t){this.value=t}clone(){return new n(this.value.clone===void 0?this.value:this.value.clone())}},K5=0,A_=class extends La{constructor(){super(),this.isUniformsGroup=!0,Object.defineProperty(this,&amp;amp;quot;id&amp;amp;quot;,{value:K5++}),this.name=&amp;amp;quot;&amp;amp;quot;,this.usage=Vf,this.uniforms=[]}add(t){return this.uniforms.push(t),this}remove(t){let e=this.uniforms.indexOf(t);return e!==-1&amp;amp;amp;&amp;amp;amp;this.uniforms.splice(e,1),this}setName(t){return this.name=t,this}setUsage(t){return this.usage=t,this}dispose(){this.dispatchEvent({type:&amp;amp;quot;dispose&amp;amp;quot;})}copy(t){this.name=t.name,this.usage=t.usage;let e=t.uniforms;this.uniforms.length=0;for(let i=0,a=e.length;i&amp;amp;lt;a;i++){let s=Array.isArray(e[i])?e[i]:[e[i]];for(let o=0;o&amp;amp;lt;s.length;o++)this.uniforms.push(s[o].clone())}return this}clone(){return new this.constructor().copy(this)}},R_=class extends Tu{constructor(t,e,i=1){super(t,e),this.isInstancedInterleavedBuffer=!0,this.meshPerAttribute=i}copy(t){return super.copy(t),this.meshPerAttribute=t.meshPerAttribute,this}clone(t){let e=super.clone(t);return e.meshPerAttribute=this.meshPerAttribute,e}toJSON(t){let e=super.toJSON(t);return e.isInstancedInterleavedBuffer=!0,e.meshPerAttribute=this.meshPerAttribute,e}},C_=class{constructor(t,e,i,a,s,o=!1){this.isGLBufferAttribute=!0,this.name=&amp;amp;quot;&amp;amp;quot;,this.buffer=t,this.type=e,this.itemSize=i,this.elementSize=a,this.count=s,this.normalized=o,this.version=0}set needsUpdate(t){t===!0&amp;amp;amp;&amp;amp;amp;this.version++}setBuffer(t){return this.buffer=t,this}setType(t,e){return this.type=t,this.elementSize=e,this}setItemSize(t){return this.itemSize=t,this}setCount(t){return this.count=t,this}},xN=new fe,ph=class{constructor(t,e,i=0,a=1/0){this.ray=new jr(t,e),this.near=i,this.far=a,this.camera=null,this.layers=new nr,this.params={Mesh:{},Line:{threshold:1},LOD:{},Points:{threshold:1},Sprite:{}}}set(t,e){this.ray.set(t,e)}setFromCamera(t,e){e.isPerspectiveCamera?(this.ray.origin.setFromMatrixPosition(e.matrixWorld),this.ray.direction.set(t.x,t.y,.5).unproject(e).sub(this.ray.origin).normalize(),this.camera=e):e.isOrthographicCamera?(this.ray.origin.set(t.x,t.y,(e.near+e.far)/(e.near-e.far)).unproject(e),this.ray.direction.set(0,0,-1).transformDirection(e.matrixWorld),this.camera=e):console.error(&amp;amp;quot;THREE.Raycaster: Unsupported camera type: &amp;amp;quot;+e.type)}setFromXRController(t){return xN.identity().extractRotation(t.matrixWorld),this.ray.origin.setFromMatrixPosition(t.matrixWorld),this.ray.direction.set(0,0,-1).applyMatrix4(xN),this}intersectObject(t,e=!0,i=[]){return Fb(t,this,i,e),i.sort(SN),i}intersectObjects(t,e=!0,i=[]){for(let a=0,s=t.length;a&amp;amp;lt;s;a++)Fb(t[a],this,i,e);return i.sort(SN),i}};function SN(n,t){return n.distance-t.distance}function Fb(n,t,e,i){let a=!0;if(n.layers.test(t.layers)&amp;amp;amp;&amp;amp;amp;n.raycast(t,e)===!1&amp;amp;amp;&amp;amp;amp;(a=!1),a===!0&amp;amp;amp;&amp;amp;amp;i===!0){let s=n.children;for(let o=0,u=s.length;o&amp;amp;lt;u;o++)Fb(s[o],t,e,!0)}}var w_=class{constructor(){this._previousTime=0,this._currentTime=0,this._startTime=performance.now(),this._delta=0,this._elapsed=0,this._timescale=1,this._document=null,this._pageVisibilityHandler=null}connect(t){this._document=t,t.hidden!==void 0&amp;amp;amp;&amp;amp;amp;(this._pageVisibilityHandler=J5.bind(this),t.addEventListener(&amp;amp;quot;visibilitychange&amp;amp;quot;,this._pageVisibilityHandler,!1))}disconnect(){this._pageVisibilityHandler!==null&amp;amp;amp;&amp;amp;amp;(this._document.removeEventListener(&amp;amp;quot;visibilitychange&amp;amp;quot;,this._pageVisibilityHandler),this._pageVisibilityHandler=null),this._document=null}getDelta(){return this._delta/1e3}getElapsed(){return this._elapsed/1e3}getTimescale(){return this._timescale}setTimescale(t){return this._timescale=t,this}reset(){return this._currentTime=performance.now()-this._startTime,this}dispose(){this.disconnect()}update(t){return this._pageVisibilityHandler!==null&amp;amp;amp;&amp;amp;amp;this._document.hidden===!0?this._delta=0:(this._previousTime=this._currentTime,this._currentTime=(t!==void 0?t:performance.now())-this._startTime,this._delta=(this._currentTime-this._previousTime)*this._timescale,this._elapsed+=this._delta),this}};function J5(){this._document.hidden===!1&amp;amp;amp;&amp;amp;amp;this.reset()}var D_=class{constructor(t=1,e=0,i=0){this.radius=t,this.phi=e,this.theta=i}set(t,e,i){return this.radius=t,this.phi=e,this.theta=i,this}copy(t){return this.radius=t.radius,this.phi=t.phi,this.theta=t.theta,this}makeSafe(){return this.phi=le(this.phi,1e-6,Math.PI-1e-6),this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,i){return this.radius=Math.sqrt(t*t+e*e+i*i),this.radius===0?(this.theta=0,this.phi=0):(this.theta=Math.atan2(t,i),this.phi=Math.acos(le(e/this.radius,-1,1))),this}clone(){return new this.constructor().copy(this)}},U_=class{constructor(t=1,e=0,i=0){this.radius=t,this.theta=e,this.y=i}set(t,e,i){return this.radius=t,this.theta=e,this.y=i,this}copy(t){return this.radius=t.radius,this.theta=t.theta,this.y=t.y,this}setFromVector3(t){return this.setFromCartesianCoords(t.x,t.y,t.z)}setFromCartesianCoords(t,e,i){return this.radius=Math.sqrt(t*t+i*i),this.theta=Math.atan2(t,i),this.y=e,this}clone(){return new this.constructor().copy(this)}},N_=class n{constructor(t,e,i,a){n.prototype.isMatrix2=!0,this.elements=[1,0,0,1],t!==void 0&amp;amp;amp;&amp;amp;amp;this.set(t,e,i,a)}identity(){return this.set(1,0,0,1),this}fromArray(t,e=0){for(let i=0;i&amp;amp;lt;4;i++)this.elements[i]=t[i+e];return this}set(t,e,i,a){let s=this.elements;return s[0]=t,s[2]=e,s[1]=i,s[3]=a,this}},MN=new ct,O_=class{constructor(t=new ct(1/0,1/0),e=new ct(-1/0,-1/0)){this.isBox2=!0,this.min=t,this.max=e}set(t,e){return this.min.copy(t),this.max.copy(e),this}setFromPoints(t){this.makeEmpty();for(let e=0,i=t.length;e&amp;amp;lt;i;e++)this.expandByPoint(t[e]);return this}setFromCenterAndSize(t,e){let i=MN.copy(e).multiplyScalar(.5);return this.min.copy(t).sub(i),this.max.copy(t).add(i),this}clone(){return new this.constructor().copy(this)}copy(t){return this.min.copy(t.min),this.max.copy(t.max),this}makeEmpty(){return this.min.x=this.min.y=1/0,this.max.x=this.max.y=-1/0,this}isEmpty(){return this.max.x&amp;amp;lt;this.min.x||this.max.y&amp;amp;lt;this.min.y}getCenter(t){return this.isEmpty()?t.set(0,0):t.addVectors(this.min,this.max).multiplyScalar(.5)}getSize(t){return this.isEmpty()?t.set(0,0):t.subVectors(this.max,this.min)}expandByPoint(t){return this.min.min(t),this.max.max(t),this}expandByVector(t){return this.min.sub(t),this.max.add(t),this}expandByScalar(t){return this.min.addScalar(-t),this.max.addScalar(t),this}containsPoint(t){return t.x&amp;amp;gt;=this.min.x&amp;amp;amp;&amp;amp;amp;t.x&amp;amp;lt;=this.max.x&amp;amp;amp;&amp;amp;amp;t.y&amp;amp;gt;=this.min.y&amp;amp;amp;&amp;amp;amp;t.y&amp;amp;lt;=this.max.y}containsBox(t){return this.min.x&amp;amp;lt;=t.min.x&amp;amp;amp;&amp;amp;amp;t.max.x&amp;amp;lt;=this.max.x&amp;amp;amp;&amp;amp;amp;this.min.y&amp;amp;lt;=t.min.y&amp;amp;amp;&amp;amp;amp;t.max.y&amp;amp;lt;=this.max.y}getParameter(t,e){return e.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))}intersectsBox(t){return t.max.x&amp;amp;gt;=this.min.x&amp;amp;amp;&amp;amp;amp;t.min.x&amp;amp;lt;=this.max.x&amp;amp;amp;&amp;amp;amp;t.max.y&amp;amp;gt;=this.min.y&amp;amp;amp;&amp;amp;amp;t.min.y&amp;amp;lt;=this.max.y}clampPoint(t,e){return e.copy(t).clamp(this.min,this.max)}distanceToPoint(t){return this.clampPoint(t,MN).distanceTo(t)}intersect(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&amp;amp;amp;&amp;amp;amp;this.makeEmpty(),this}union(t){return this.min.min(t.min),this.max.max(t.max),this}translate(t){return this.min.add(t),this.max.add(t),this}equals(t){return t.min.equals(this.min)&amp;amp;amp;&amp;amp;amp;t.max.equals(this.max)}},EN=new B,Iy=new B,Nf=new B,Of=new B,Ab=new B,$5=new B,tF=new B,L_=class{constructor(t=new B,e=new B){this.start=t,this.end=e}set(t,e){return this.start.copy(t),this.end.copy(e),this}copy(t){return this.start.copy(t.start),this.end.copy(t.end),this}getCenter(t){return t.addVectors(this.start,this.end).multiplyScalar(.5)}delta(t){return t.subVectors(this.end,this.start)}distanceSq(){return this.start.distanceToSquared(this.end)}distance(){return this.start.distanceTo(this.end)}at(t,e){return this.delta(e).multiplyScalar(t).add(this.start)}closestPointToPointParameter(t,e){EN.subVectors(t,this.start),Iy.subVectors(this.end,this.start);let i=Iy.dot(Iy),s=Iy.dot(EN)/i;return e&amp;amp;amp;&amp;amp;amp;(s=le(s,0,1)),s}closestPointToPoint(t,e,i){let a=this.closestPointToPointParameter(t,e);return this.delta(i).multiplyScalar(a).add(this.start)}distanceSqToLine3(t,e=$5,i=tF){let a=10000000000000001e-32,s,o,u=this.start,c=t.start,h=this.end,d=t.end;Nf.subVectors(h,u),Of.subVectors(d,c),Ab.subVectors(u,c);let m=Nf.dot(Nf),g=Of.dot(Of),y=Of.dot(Ab);if(m&amp;amp;lt;=a&amp;amp;amp;&amp;amp;amp;g&amp;amp;lt;=a)return e.copy(u),i.copy(c),e.sub(i),e.dot(e);if(m&amp;amp;lt;=a)s=0,o=y/g,o=le(o,0,1);else{let x=Nf.dot(Ab);if(g&amp;amp;lt;=a)o=0,s=le(-x/m,0,1);else{let b=Nf.dot(Of),M=m*g-b*b;M!==0?s=le((b*y-x*g)/M,0,1):s=0,o=(b*s+y)/g,o&amp;amp;lt;0?(o=0,s=le(-x/m,0,1)):o&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(o=1,s=le((b-x)/m,0,1))}}return e.copy(u).add(Nf.multiplyScalar(s)),i.copy(c).add(Of.multiplyScalar(o)),e.sub(i),e.dot(e)}applyMatrix4(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this}equals(t){return t.start.equals(this.start)&amp;amp;amp;&amp;amp;amp;t.end.equals(this.end)}clone(){return new this.constructor().copy(this)}},bN=new B,z_=class extends Ie{constructor(t,e){super(),this.light=t,this.matrixAutoUpdate=!1,this.color=e,this.type=&amp;amp;quot;SpotLightHelper&amp;amp;quot;;let i=new ve,a=[0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,-1,0,1,0,0,0,0,1,1,0,0,0,0,-1,1];for(let o=0,u=1,c=32;o&amp;amp;lt;c;o++,u++){let h=o/c*Math.PI*2,d=u/c*Math.PI*2;a.push(Math.cos(h),Math.sin(h),1,Math.cos(d),Math.sin(d),1)}i.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(a,3));let s=new ui({fog:!1,toneMapped:!1});this.cone=new Ba(i,s),this.add(this.cone),this.update()}dispose(){this.cone.geometry.dispose(),this.cone.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),this.parent?(this.parent.updateWorldMatrix(!0),this.matrix.copy(this.parent.matrixWorld).invert().multiply(this.light.matrixWorld)):this.matrix.copy(this.light.matrixWorld),this.matrixWorld.copy(this.light.matrixWorld);let t=this.light.distance?this.light.distance:1e3,e=t*Math.tan(this.light.angle);this.cone.scale.set(e,e,t),bN.setFromMatrixPosition(this.light.target.matrixWorld),this.cone.lookAt(bN),this.color!==void 0?this.cone.material.color.set(this.color):this.cone.material.color.copy(this.light.color)}},tl=new B,Hy=new fe,Rb=new fe,B_=class extends Ba{constructor(t){let e=TO(t),i=new ve,a=[],s=[];for(let h=0;h&amp;amp;lt;e.length;h++){let d=e[h];d.parent&amp;amp;amp;&amp;amp;amp;d.parent.isBone&amp;amp;amp;&amp;amp;amp;(a.push(0,0,0),a.push(0,0,0),s.push(0,0,0),s.push(0,0,0))}i.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(a,3)),i.setAttribute(&amp;amp;quot;color&amp;amp;quot;,new Xt(s,3));let o=new ui({vertexColors:!0,depthTest:!1,depthWrite:!1,toneMapped:!1,transparent:!0});super(i,o),this.isSkeletonHelper=!0,this.type=&amp;amp;quot;SkeletonHelper&amp;amp;quot;,this.root=t,this.bones=e,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1;let u=new Bt(255),c=new Bt(65280);this.setColors(u,c)}updateMatrixWorld(t){let e=this.bones,i=this.geometry,a=i.getAttribute(&amp;amp;quot;position&amp;amp;quot;);Rb.copy(this.root.matrixWorld).invert();for(let s=0,o=0;s&amp;amp;lt;e.length;s++){let u=e[s];u.parent&amp;amp;amp;&amp;amp;amp;u.parent.isBone&amp;amp;amp;&amp;amp;amp;(Hy.multiplyMatrices(Rb,u.matrixWorld),tl.setFromMatrixPosition(Hy),a.setXYZ(o,tl.x,tl.y,tl.z),Hy.multiplyMatrices(Rb,u.parent.matrixWorld),tl.setFromMatrixPosition(Hy),a.setXYZ(o+1,tl.x,tl.y,tl.z),o+=2)}i.getAttribute(&amp;amp;quot;position&amp;amp;quot;).needsUpdate=!0,super.updateMatrixWorld(t)}setColors(t,e){let a=this.geometry.getAttribute(&amp;amp;quot;color&amp;amp;quot;);for(let s=0;s&amp;amp;lt;a.count;s+=2)a.setXYZ(s,t.r,t.g,t.b),a.setXYZ(s+1,e.r,e.g,e.b);return a.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}};function TO(n){let t=[];n.isBone===!0&amp;amp;amp;&amp;amp;amp;t.push(n);for(let e=0;e&amp;amp;lt;n.children.length;e++)t.push(...TO(n.children[e]));return t}var P_=class extends En{constructor(t,e,i){let a=new sh(e,4,2),s=new Rs({wireframe:!0,fog:!1,toneMapped:!1});super(a,s),this.light=t,this.color=i,this.type=&amp;amp;quot;PointLightHelper&amp;amp;quot;,this.matrix=this.light.matrixWorld,this.matrixAutoUpdate=!1,this.update()}dispose(){this.geometry.dispose(),this.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.color!==void 0?this.material.color.set(this.color):this.material.color.copy(this.light.color)}},eF=new B,TN=new Bt,AN=new Bt,I_=class extends Ie{constructor(t,e,i){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,this.type=&amp;amp;quot;HemisphereLightHelper&amp;amp;quot;;let a=new ah(e);a.rotateY(Math.PI*.5),this.material=new Rs({wireframe:!0,fog:!1,toneMapped:!1}),this.color===void 0&amp;amp;amp;&amp;amp;amp;(this.material.vertexColors=!0);let s=a.getAttribute(&amp;amp;quot;position&amp;amp;quot;),o=new Float32Array(s.count*3);a.setAttribute(&amp;amp;quot;color&amp;amp;quot;,new Xe(o,3)),this.add(new En(a,this.material)),this.update()}dispose(){this.children[0].geometry.dispose(),this.children[0].material.dispose()}update(){let t=this.children[0];if(this.color!==void 0)this.material.color.set(this.color);else{let e=t.geometry.getAttribute(&amp;amp;quot;color&amp;amp;quot;);TN.copy(this.light.color),AN.copy(this.light.groundColor);for(let i=0,a=e.count;i&amp;amp;lt;a;i++){let s=i&amp;amp;lt;a/2?TN:AN;e.setXYZ(i,s.r,s.g,s.b)}e.needsUpdate=!0}this.light.updateWorldMatrix(!0,!1),t.lookAt(eF.setFromMatrixPosition(this.light.matrixWorld).negate())}},H_=class extends Ba{constructor(t=10,e=10,i=4473924,a=8947848){i=new Bt(i),a=new Bt(a);let s=e/2,o=t/e,u=t/2,c=[],h=[];for(let g=0,y=0,x=-u;g&amp;amp;lt;=e;g++,x+=o){c.push(-u,0,x,u,0,x),c.push(x,0,-u,x,0,u);let b=g===s?i:a;b.toArray(h,y),y+=3,b.toArray(h,y),y+=3,b.toArray(h,y),y+=3,b.toArray(h,y),y+=3}let d=new ve;d.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(c,3)),d.setAttribute(&amp;amp;quot;color&amp;amp;quot;,new Xt(h,3));let m=new ui({vertexColors:!0,toneMapped:!1});super(d,m),this.type=&amp;amp;quot;GridHelper&amp;amp;quot;}dispose(){this.geometry.dispose(),this.material.dispose()}},F_=class extends Ba{constructor(t=10,e=16,i=8,a=64,s=4473924,o=8947848){s=new Bt(s),o=new Bt(o);let u=[],c=[];if(e&amp;amp;gt;1)for(let m=0;m&amp;amp;lt;e;m++){let g=m/e*(Math.PI*2),y=Math.sin(g)*t,x=Math.cos(g)*t;u.push(0,0,0),u.push(y,0,x);let b=m&amp;amp;amp;1?s:o;c.push(b.r,b.g,b.b),c.push(b.r,b.g,b.b)}for(let m=0;m&amp;amp;lt;i;m++){let g=m&amp;amp;amp;1?s:o,y=t-t/i*m;for(let x=0;x&amp;amp;lt;a;x++){let b=x/a*(Math.PI*2),M=Math.sin(b)*y,v=Math.cos(b)*y;u.push(M,0,v),c.push(g.r,g.g,g.b),b=(x+1)/a*(Math.PI*2),M=Math.sin(b)*y,v=Math.cos(b)*y,u.push(M,0,v),c.push(g.r,g.g,g.b)}}let h=new ve;h.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(u,3)),h.setAttribute(&amp;amp;quot;color&amp;amp;quot;,new Xt(c,3));let d=new ui({vertexColors:!0,toneMapped:!1});super(h,d),this.type=&amp;amp;quot;PolarGridHelper&amp;amp;quot;}dispose(){this.geometry.dispose(),this.material.dispose()}},RN=new B,Fy=new B,CN=new B,V_=class extends Ie{constructor(t,e,i){super(),this.light=t,this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.color=i,this.type=&amp;amp;quot;DirectionalLightHelper&amp;amp;quot;,e===void 0&amp;amp;amp;&amp;amp;amp;(e=1);let a=new ve;a.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt([-e,e,0,e,e,0,e,-e,0,-e,-e,0,-e,e,0],3));let s=new ui({fog:!1,toneMapped:!1});this.lightPlane=new Cs(a,s),this.add(this.lightPlane),a=new ve,a.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt([0,0,0,0,0,1],3)),this.targetLine=new Cs(a,s),this.add(this.targetLine),this.update()}dispose(){this.lightPlane.geometry.dispose(),this.lightPlane.material.dispose(),this.targetLine.geometry.dispose(),this.targetLine.material.dispose()}update(){this.light.updateWorldMatrix(!0,!1),this.light.target.updateWorldMatrix(!0,!1),RN.setFromMatrixPosition(this.light.matrixWorld),Fy.setFromMatrixPosition(this.light.target.matrixWorld),CN.subVectors(Fy,RN),this.lightPlane.lookAt(Fy),this.color!==void 0?(this.lightPlane.material.color.set(this.color),this.targetLine.material.color.set(this.color)):(this.lightPlane.material.color.copy(this.light.color),this.targetLine.material.color.copy(this.light.color)),this.targetLine.lookAt(Fy),this.targetLine.scale.z=CN.length()}},Vy=new B,Dn=new Mu,G_=class extends Ba{constructor(t){let e=new ve,i=new ui({color:16777215,vertexColors:!0,toneMapped:!1}),a=[],s=[],o={};u(&amp;amp;quot;n1&amp;amp;quot;,&amp;amp;quot;n2&amp;amp;quot;),u(&amp;amp;quot;n2&amp;amp;quot;,&amp;amp;quot;n4&amp;amp;quot;),u(&amp;amp;quot;n4&amp;amp;quot;,&amp;amp;quot;n3&amp;amp;quot;),u(&amp;amp;quot;n3&amp;amp;quot;,&amp;amp;quot;n1&amp;amp;quot;),u(&amp;amp;quot;f1&amp;amp;quot;,&amp;amp;quot;f2&amp;amp;quot;),u(&amp;amp;quot;f2&amp;amp;quot;,&amp;amp;quot;f4&amp;amp;quot;),u(&amp;amp;quot;f4&amp;amp;quot;,&amp;amp;quot;f3&amp;amp;quot;),u(&amp;amp;quot;f3&amp;amp;quot;,&amp;amp;quot;f1&amp;amp;quot;),u(&amp;amp;quot;n1&amp;amp;quot;,&amp;amp;quot;f1&amp;amp;quot;),u(&amp;amp;quot;n2&amp;amp;quot;,&amp;amp;quot;f2&amp;amp;quot;),u(&amp;amp;quot;n3&amp;amp;quot;,&amp;amp;quot;f3&amp;amp;quot;),u(&amp;amp;quot;n4&amp;amp;quot;,&amp;amp;quot;f4&amp;amp;quot;),u(&amp;amp;quot;p&amp;amp;quot;,&amp;amp;quot;n1&amp;amp;quot;),u(&amp;amp;quot;p&amp;amp;quot;,&amp;amp;quot;n2&amp;amp;quot;),u(&amp;amp;quot;p&amp;amp;quot;,&amp;amp;quot;n3&amp;amp;quot;),u(&amp;amp;quot;p&amp;amp;quot;,&amp;amp;quot;n4&amp;amp;quot;),u(&amp;amp;quot;u1&amp;amp;quot;,&amp;amp;quot;u2&amp;amp;quot;),u(&amp;amp;quot;u2&amp;amp;quot;,&amp;amp;quot;u3&amp;amp;quot;),u(&amp;amp;quot;u3&amp;amp;quot;,&amp;amp;quot;u1&amp;amp;quot;),u(&amp;amp;quot;c&amp;amp;quot;,&amp;amp;quot;t&amp;amp;quot;),u(&amp;amp;quot;p&amp;amp;quot;,&amp;amp;quot;c&amp;amp;quot;),u(&amp;amp;quot;cn1&amp;amp;quot;,&amp;amp;quot;cn2&amp;amp;quot;),u(&amp;amp;quot;cn3&amp;amp;quot;,&amp;amp;quot;cn4&amp;amp;quot;),u(&amp;amp;quot;cf1&amp;amp;quot;,&amp;amp;quot;cf2&amp;amp;quot;),u(&amp;amp;quot;cf3&amp;amp;quot;,&amp;amp;quot;cf4&amp;amp;quot;);function u(x,b){c(x),c(b)}function c(x){a.push(0,0,0),s.push(0,0,0),o[x]===void 0&amp;amp;amp;&amp;amp;amp;(o[x]=[]),o[x].push(a.length/3-1)}e.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(a,3)),e.setAttribute(&amp;amp;quot;color&amp;amp;quot;,new Xt(s,3)),super(e,i),this.type=&amp;amp;quot;CameraHelper&amp;amp;quot;,this.camera=t,this.camera.updateProjectionMatrix&amp;amp;amp;&amp;amp;amp;this.camera.updateProjectionMatrix(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.pointMap=o,this.update();let h=new Bt(16755200),d=new Bt(16711680),m=new Bt(43775),g=new Bt(16777215),y=new Bt(3355443);this.setColors(h,d,m,g,y)}setColors(t,e,i,a,s){let u=this.geometry.getAttribute(&amp;amp;quot;color&amp;amp;quot;);return u.setXYZ(0,t.r,t.g,t.b),u.setXYZ(1,t.r,t.g,t.b),u.setXYZ(2,t.r,t.g,t.b),u.setXYZ(3,t.r,t.g,t.b),u.setXYZ(4,t.r,t.g,t.b),u.setXYZ(5,t.r,t.g,t.b),u.setXYZ(6,t.r,t.g,t.b),u.setXYZ(7,t.r,t.g,t.b),u.setXYZ(8,t.r,t.g,t.b),u.setXYZ(9,t.r,t.g,t.b),u.setXYZ(10,t.r,t.g,t.b),u.setXYZ(11,t.r,t.g,t.b),u.setXYZ(12,t.r,t.g,t.b),u.setXYZ(13,t.r,t.g,t.b),u.setXYZ(14,t.r,t.g,t.b),u.setXYZ(15,t.r,t.g,t.b),u.setXYZ(16,t.r,t.g,t.b),u.setXYZ(17,t.r,t.g,t.b),u.setXYZ(18,t.r,t.g,t.b),u.setXYZ(19,t.r,t.g,t.b),u.setXYZ(20,t.r,t.g,t.b),u.setXYZ(21,t.r,t.g,t.b),u.setXYZ(22,t.r,t.g,t.b),u.setXYZ(23,t.r,t.g,t.b),u.setXYZ(24,e.r,e.g,e.b),u.setXYZ(25,e.r,e.g,e.b),u.setXYZ(26,e.r,e.g,e.b),u.setXYZ(27,e.r,e.g,e.b),u.setXYZ(28,e.r,e.g,e.b),u.setXYZ(29,e.r,e.g,e.b),u.setXYZ(30,e.r,e.g,e.b),u.setXYZ(31,e.r,e.g,e.b),u.setXYZ(32,i.r,i.g,i.b),u.setXYZ(33,i.r,i.g,i.b),u.setXYZ(34,i.r,i.g,i.b),u.setXYZ(35,i.r,i.g,i.b),u.setXYZ(36,i.r,i.g,i.b),u.setXYZ(37,i.r,i.g,i.b),u.setXYZ(38,a.r,a.g,a.b),u.setXYZ(39,a.r,a.g,a.b),u.setXYZ(40,s.r,s.g,s.b),u.setXYZ(41,s.r,s.g,s.b),u.setXYZ(42,s.r,s.g,s.b),u.setXYZ(43,s.r,s.g,s.b),u.setXYZ(44,s.r,s.g,s.b),u.setXYZ(45,s.r,s.g,s.b),u.setXYZ(46,s.r,s.g,s.b),u.setXYZ(47,s.r,s.g,s.b),u.setXYZ(48,s.r,s.g,s.b),u.setXYZ(49,s.r,s.g,s.b),u.needsUpdate=!0,this}update(){let t=this.geometry,e=this.pointMap,i=1,a=1,s,o;if(Dn.projectionMatrixInverse.copy(this.camera.projectionMatrixInverse),this.camera.reversedDepth===!0)s=1,o=0;else if(this.camera.coordinateSystem===aa)s=-1,o=1;else if(this.camera.coordinateSystem===vu)s=0,o=1;else throw new Error(&amp;amp;quot;THREE.CameraHelper.update(): Invalid coordinate system: &amp;amp;quot;+this.camera.coordinateSystem);Ln(&amp;amp;quot;c&amp;amp;quot;,e,t,Dn,0,0,s),Ln(&amp;amp;quot;t&amp;amp;quot;,e,t,Dn,0,0,o),Ln(&amp;amp;quot;n1&amp;amp;quot;,e,t,Dn,-i,-a,s),Ln(&amp;amp;quot;n2&amp;amp;quot;,e,t,Dn,i,-a,s),Ln(&amp;amp;quot;n3&amp;amp;quot;,e,t,Dn,-i,a,s),Ln(&amp;amp;quot;n4&amp;amp;quot;,e,t,Dn,i,a,s),Ln(&amp;amp;quot;f1&amp;amp;quot;,e,t,Dn,-i,-a,o),Ln(&amp;amp;quot;f2&amp;amp;quot;,e,t,Dn,i,-a,o),Ln(&amp;amp;quot;f3&amp;amp;quot;,e,t,Dn,-i,a,o),Ln(&amp;amp;quot;f4&amp;amp;quot;,e,t,Dn,i,a,o),Ln(&amp;amp;quot;u1&amp;amp;quot;,e,t,Dn,i*.7,a*1.1,s),Ln(&amp;amp;quot;u2&amp;amp;quot;,e,t,Dn,-i*.7,a*1.1,s),Ln(&amp;amp;quot;u3&amp;amp;quot;,e,t,Dn,0,a*2,s),Ln(&amp;amp;quot;cf1&amp;amp;quot;,e,t,Dn,-i,0,o),Ln(&amp;amp;quot;cf2&amp;amp;quot;,e,t,Dn,i,0,o),Ln(&amp;amp;quot;cf3&amp;amp;quot;,e,t,Dn,0,-a,o),Ln(&amp;amp;quot;cf4&amp;amp;quot;,e,t,Dn,0,a,o),Ln(&amp;amp;quot;cn1&amp;amp;quot;,e,t,Dn,-i,0,s),Ln(&amp;amp;quot;cn2&amp;amp;quot;,e,t,Dn,i,0,s),Ln(&amp;amp;quot;cn3&amp;amp;quot;,e,t,Dn,0,-a,s),Ln(&amp;amp;quot;cn4&amp;amp;quot;,e,t,Dn,0,a,s),t.getAttribute(&amp;amp;quot;position&amp;amp;quot;).needsUpdate=!0}dispose(){this.geometry.dispose(),this.material.dispose()}};function Ln(n,t,e,i,a,s,o){Vy.set(a,s,o).unproject(i);let u=t[n];if(u!==void 0){let c=e.getAttribute(&amp;amp;quot;position&amp;amp;quot;);for(let h=0,d=u.length;h&amp;amp;lt;d;h++)c.setXYZ(u[h],Vy.x,Vy.y,Vy.z)}}var Gy=new Zn,X_=class extends Ba{constructor(t,e=16776960){let i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),a=new Float32Array(24),s=new ve;s.setIndex(new Xe(i,1)),s.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xe(a,3)),super(s,new ui({color:e,toneMapped:!1})),this.object=t,this.type=&amp;amp;quot;BoxHelper&amp;amp;quot;,this.matrixAutoUpdate=!1,this.update()}update(){if(this.object!==void 0&amp;amp;amp;&amp;amp;amp;Gy.setFromObject(this.object),Gy.isEmpty())return;let t=Gy.min,e=Gy.max,i=this.geometry.attributes.position,a=i.array;a[0]=e.x,a[1]=e.y,a[2]=e.z,a[3]=t.x,a[4]=e.y,a[5]=e.z,a[6]=t.x,a[7]=t.y,a[8]=e.z,a[9]=e.x,a[10]=t.y,a[11]=e.z,a[12]=e.x,a[13]=e.y,a[14]=t.z,a[15]=t.x,a[16]=e.y,a[17]=t.z,a[18]=t.x,a[19]=t.y,a[20]=t.z,a[21]=e.x,a[22]=t.y,a[23]=t.z,i.needsUpdate=!0,this.geometry.computeBoundingSphere()}setFromObject(t){return this.object=t,this.update(),this}copy(t,e){return super.copy(t,e),this.object=t.object,this}dispose(){this.geometry.dispose(),this.material.dispose()}},q_=class extends Ba{constructor(t,e=16776960){let i=new Uint16Array([0,1,1,2,2,3,3,0,4,5,5,6,6,7,7,4,0,4,1,5,2,6,3,7]),a=[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,-1,-1,1,-1,-1,-1,-1,1,-1,-1],s=new ve;s.setIndex(new Xe(i,1)),s.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(a,3)),super(s,new ui({color:e,toneMapped:!1})),this.box=t,this.type=&amp;amp;quot;Box3Helper&amp;amp;quot;,this.geometry.computeBoundingSphere()}updateMatrixWorld(t){let e=this.box;e.isEmpty()||(e.getCenter(this.position),e.getSize(this.scale),this.scale.multiplyScalar(.5),super.updateMatrixWorld(t))}dispose(){this.geometry.dispose(),this.material.dispose()}},Y_=class extends Cs{constructor(t,e=1,i=16776960){let a=i,s=[1,-1,0,-1,1,0,-1,-1,0,1,1,0,-1,1,0,-1,-1,0,1,-1,0,1,1,0],o=new ve;o.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(s,3)),o.computeBoundingSphere(),super(o,new ui({color:a,toneMapped:!1})),this.type=&amp;amp;quot;PlaneHelper&amp;amp;quot;,this.plane=t,this.size=e;let u=[1,1,0,-1,1,0,-1,-1,0,1,1,0,-1,-1,0,1,-1,0],c=new ve;c.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(u,3)),c.computeBoundingSphere(),this.add(new En(c,new Rs({color:a,opacity:.2,transparent:!0,depthWrite:!1,toneMapped:!1})))}updateMatrixWorld(t){this.position.set(0,0,0),this.scale.set(.5*this.size,.5*this.size,1),this.lookAt(this.plane.normal),this.translateZ(-this.plane.constant),super.updateMatrixWorld(t)}dispose(){this.geometry.dispose(),this.material.dispose(),this.children[0].geometry.dispose(),this.children[0].material.dispose()}},wN=new B,Xy,Cb,W_=class extends Ie{constructor(t=new B(0,0,1),e=new B(0,0,0),i=1,a=16776960,s=i*.2,o=s*.2){super(),this.type=&amp;amp;quot;ArrowHelper&amp;amp;quot;,Xy===void 0&amp;amp;amp;&amp;amp;amp;(Xy=new ve,Xy.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt([0,0,0,0,1,0],3)),Cb=new Kf(.5,1,5,1),Cb.translate(0,-.5,0)),this.position.copy(e),this.line=new Cs(Xy,new ui({color:a,toneMapped:!1})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new En(Cb,new Rs({color:a,toneMapped:!1})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,s,o)}setDirection(t){if(t.y&amp;amp;gt;.99999)this.quaternion.set(0,0,0,1);else if(t.y&amp;amp;lt;-.99999)this.quaternion.set(1,0,0,0);else{wN.set(t.z,0,-t.x).normalize();let e=Math.acos(t.y);this.quaternion.setFromAxisAngle(wN,e)}}setLength(t,e=t*.2,i=e*.2){this.line.scale.set(1,Math.max(1e-4,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()}setColor(t){this.line.material.color.set(t),this.cone.material.color.set(t)}copy(t){return super.copy(t,!1),this.line.copy(t.line),this.cone.copy(t.cone),this}dispose(){this.line.geometry.dispose(),this.line.material.dispose(),this.cone.geometry.dispose(),this.cone.material.dispose()}},k_=class extends Ba{constructor(t=1){let e=[0,0,0,t,0,0,0,0,0,0,t,0,0,0,0,0,0,t],i=[1,0,0,1,.6,0,0,1,0,.6,1,0,0,0,1,0,.6,1],a=new ve;a.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xt(e,3)),a.setAttribute(&amp;amp;quot;color&amp;amp;quot;,new Xt(i,3));let s=new ui({vertexColors:!0,toneMapped:!1});super(a,s),this.type=&amp;amp;quot;AxesHelper&amp;amp;quot;}setColors(t,e,i){let a=new Bt,s=this.geometry.attributes.color.array;return a.set(t),a.toArray(s,0),a.toArray(s,3),a.set(e),a.toArray(s,6),a.toArray(s,9),a.set(i),a.toArray(s,12),a.toArray(s,15),this.geometry.attributes.color.needsUpdate=!0,this}dispose(){this.geometry.dispose(),this.material.dispose()}},Z_=class{constructor(){this.type=&amp;amp;quot;ShapePath&amp;amp;quot;,this.color=new Bt,this.subPaths=[],this.currentPath=null}moveTo(t,e){return this.currentPath=new Cu,this.subPaths.push(this.currentPath),this.currentPath.moveTo(t,e),this}lineTo(t,e){return this.currentPath.lineTo(t,e),this}quadraticCurveTo(t,e,i,a){return this.currentPath.quadraticCurveTo(t,e,i,a),this}bezierCurveTo(t,e,i,a,s,o){return this.currentPath.bezierCurveTo(t,e,i,a,s,o),this}splineThru(t){return this.currentPath.splineThru(t),this}toShapes(t){function e(v){let S=[];for(let E=0,T=v.length;E&amp;amp;lt;T;E++){let w=v[E],U=new $s;U.curves=w.curves,S.push(U)}return S}function i(v,S){let E=S.length,T=!1;for(let w=E-1,U=0;U&amp;amp;lt;E;w=U++){let O=S[w],z=S[U],C=z.x-O.x,R=z.y-O.y;if(Math.abs(R)&amp;amp;gt;Number.EPSILON){if(R&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(O=S[U],C=-C,z=S[w],R=-R),v.y&amp;amp;lt;O.y||v.y&amp;amp;gt;z.y)continue;if(v.y===O.y){if(v.x===O.x)return!0}else{let P=R*(v.x-O.x)-C*(v.y-O.y);if(P===0)return!0;if(P&amp;amp;lt;0)continue;T=!T}}else{if(v.y!==O.y)continue;if(z.x&amp;amp;lt;=v.x&amp;amp;amp;&amp;amp;amp;v.x&amp;amp;lt;=O.x||O.x&amp;amp;lt;=v.x&amp;amp;amp;&amp;amp;amp;v.x&amp;amp;lt;=z.x)return!0}}return T}let a=os.isClockWise,s=this.subPaths;if(s.length===0)return[];let o,u,c,h=[];if(s.length===1)return u=s[0],c=new $s,c.curves=u.curves,h.push(c),h;let d=!a(s[0].getPoints());d=t?!d:d;let m=[],g=[],y=[],x=0,b;g[x]=void 0,y[x]=[];for(let v=0,S=s.length;v&amp;amp;lt;S;v++)u=s[v],b=u.getPoints(),o=a(b),o=t?!o:o,o?(!d&amp;amp;amp;&amp;amp;amp;g[x]&amp;amp;amp;&amp;amp;amp;x++,g[x]={s:new $s,p:b},g[x].s.curves=u.curves,d&amp;amp;amp;&amp;amp;amp;x++,y[x]=[]):y[x].push({h:u,p:b[0]});if(!g[0])return e(s);if(g.length&amp;amp;gt;1){let v=!1,S=0;for(let E=0,T=g.length;E&amp;amp;lt;T;E++)m[E]=[];for(let E=0,T=g.length;E&amp;amp;lt;T;E++){let w=y[E];for(let U=0;U&amp;amp;lt;w.length;U++){let O=w[U],z=!0;for(let C=0;C&amp;amp;lt;g.length;C++)i(O.p,g[C].p)&amp;amp;amp;&amp;amp;amp;(E!==C&amp;amp;amp;&amp;amp;amp;S++,z?(z=!1,m[C].push(O)):v=!0);z&amp;amp;amp;&amp;amp;amp;m[E].push(O)}}S&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;v===!1&amp;amp;amp;&amp;amp;amp;(y=m)}let M;for(let v=0,S=g.length;v&amp;amp;lt;S;v++){c=g[v].s,h.push(c),M=y[v];for(let E=0,T=M.length;E&amp;amp;lt;T;E++)c.holes.push(M[E].h)}return h}},j_=class extends La{constructor(t,e=null){super(),this.object=t,this.domElement=e,this.enabled=!0,this.state=-1,this.keys={},this.mouseButtons={LEFT:null,MIDDLE:null,RIGHT:null},this.touches={ONE:null,TWO:null}}connect(t){if(t===void 0){console.warn(&amp;amp;quot;THREE.Controls: connect() now requires an element.&amp;amp;quot;);return}this.domElement!==null&amp;amp;amp;&amp;amp;amp;this.disconnect(),this.domElement=t}disconnect(){}dispose(){}update(){}};function nF(n,t){let e=n.image&amp;amp;amp;&amp;amp;amp;n.image.width?n.image.width/n.image.height:1;return e&amp;amp;gt;t?(n.repeat.x=1,n.repeat.y=e/t,n.offset.x=0,n.offset.y=(1-n.repeat.y)/2):(n.repeat.x=t/e,n.repeat.y=1,n.offset.x=(1-n.repeat.x)/2,n.offset.y=0),n}function iF(n,t){let e=n.image&amp;amp;amp;&amp;amp;amp;n.image.width?n.image.width/n.image.height:1;return e&amp;amp;gt;t?(n.repeat.x=t/e,n.repeat.y=1,n.offset.x=(1-n.repeat.x)/2,n.offset.y=0):(n.repeat.x=1,n.repeat.y=e/t,n.offset.x=0,n.offset.y=(1-n.repeat.y)/2),n}function aF(n){return n.repeat.x=1,n.repeat.y=1,n.offset.x=0,n.offset.y=0,n}function dx(n,t,e,i){let a=sF(i);switch(e){case rx:return n*t;case og:return n*t/a.components*a.byteLength;case xh:return n*t/a.components*a.byteLength;case lx:return n*t*2/a.components*a.byteLength;case lg:return n*t*2/a.components*a.byteLength;case ox:return n*t*3/a.components*a.byteLength;case li:return n*t*4/a.components*a.byteLength;case ug:return n*t*4/a.components*a.byteLength;case Sh:case Mh:return Math.floor((n+3)/4)*Math.floor((t+3)/4)*8;case Eh:case bh:return Math.floor((n+3)/4)*Math.floor((t+3)/4)*16;case fg:case dg:return Math.max(n,16)*Math.max(t,8)/4;case cg:case hg:return Math.max(n,8)*Math.max(t,8)/2;case pg:case mg:return Math.floor((n+3)/4)*Math.floor((t+3)/4)*8;case gg:return Math.floor((n+3)/4)*Math.floor((t+3)/4)*16;case vg:return Math.floor((n+3)/4)*Math.floor((t+3)/4)*16;case yg:return Math.floor((n+4)/5)*Math.floor((t+3)/4)*16;case _g:return Math.floor((n+4)/5)*Math.floor((t+4)/5)*16;case xg:return Math.floor((n+5)/6)*Math.floor((t+4)/5)*16;case Sg:return Math.floor((n+5)/6)*Math.floor((t+5)/6)*16;case Mg:return Math.floor((n+7)/8)*Math.floor((t+4)/5)*16;case Eg:return Math.floor((n+7)/8)*Math.floor((t+5)/6)*16;case bg:return Math.floor((n+7)/8)*Math.floor((t+7)/8)*16;case Tg:return Math.floor((n+9)/10)*Math.floor((t+4)/5)*16;case Ag:return Math.floor((n+9)/10)*Math.floor((t+5)/6)*16;case Rg:return Math.floor((n+9)/10)*Math.floor((t+7)/8)*16;case Cg:return Math.floor((n+9)/10)*Math.floor((t+9)/10)*16;case wg:return Math.floor((n+11)/12)*Math.floor((t+9)/10)*16;case Dg:return Math.floor((n+11)/12)*Math.floor((t+11)/12)*16;case Th:case Ug:case Ng:return Math.ceil(n/4)*Math.ceil(t/4)*16;case ux:case Og:return Math.ceil(n/4)*Math.ceil(t/4)*8;case Lg:case zg:return Math.ceil(n/4)*Math.ceil(t/4)*16}throw new Error(`Unable to determine texture byte length for ${e} format.`)}function sF(n){switch(n){case la:case ix:return{byteLength:1,components:1};case zu:case ax:case Bu:return{byteLength:2,components:1};case sg:case rg:return{byteLength:2,components:4};case or:case ag:case qi:return{byteLength:4,components:1};case sx:return{byteLength:4,components:3}}throw new Error(`Unknown texture type ${n}.`)}var Q_=class{static contain(t,e){return nF(t,e)}static cover(t,e){return iF(t,e)}static fill(t){return aF(t)}static getByteLength(t,e,i,a){return dx(t,e,i,a)}};typeof __THREE_DEVTOOLS__&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(&amp;amp;quot;register&amp;amp;quot;,{detail:{revision:&amp;amp;quot;179&amp;amp;quot;}}));typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(window.__THREE__?console.warn(&amp;amp;quot;WARNING: Multiple instances of Three.js being imported.&amp;amp;quot;):window.__THREE__=&amp;amp;quot;179&amp;amp;quot;);function jO(){let n=null,t=!1,e=null,i=null;function a(s,o){e(s,o),i=n.requestAnimationFrame(a)}return{start:function(){t!==!0&amp;amp;amp;&amp;amp;amp;e!==null&amp;amp;amp;&amp;amp;amp;(i=n.requestAnimationFrame(a),t=!0)},stop:function(){n.cancelAnimationFrame(i),t=!1},setAnimationLoop:function(s){e=s},setContext:function(s){n=s}}}function rF(n){let t=new WeakMap;function e(u,c){let h=u.array,d=u.usage,m=h.byteLength,g=n.createBuffer();n.bindBuffer(c,g),n.bufferData(c,h,d),u.onUploadCallback();let y;if(h instanceof Float32Array)y=n.FLOAT;else if(typeof Float16Array&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;h instanceof Float16Array)y=n.HALF_FLOAT;else if(h instanceof Uint16Array)u.isFloat16BufferAttribute?y=n.HALF_FLOAT:y=n.UNSIGNED_SHORT;else if(h instanceof Int16Array)y=n.SHORT;else if(h instanceof Uint32Array)y=n.UNSIGNED_INT;else if(h instanceof Int32Array)y=n.INT;else if(h instanceof Int8Array)y=n.BYTE;else if(h instanceof Uint8Array)y=n.UNSIGNED_BYTE;else if(h instanceof Uint8ClampedArray)y=n.UNSIGNED_BYTE;else throw new Error(&amp;amp;quot;THREE.WebGLAttributes: Unsupported buffer data format: &amp;amp;quot;+h);return{buffer:g,type:y,bytesPerElement:h.BYTES_PER_ELEMENT,version:u.version,size:m}}function i(u,c,h){let d=c.array,m=c.updateRanges;if(n.bindBuffer(h,u),m.length===0)n.bufferSubData(h,0,d);else{m.sort((y,x)=&amp;amp;gt;y.start-x.start);let g=0;for(let y=1;y&amp;amp;lt;m.length;y++){let x=m[g],b=m[y];b.start&amp;amp;lt;=x.start+x.count+1?x.count=Math.max(x.count,b.start+b.count-x.start):(++g,m[g]=b)}m.length=g+1;for(let y=0,x=m.length;y&amp;amp;lt;x;y++){let b=m[y];n.bufferSubData(h,b.start*d.BYTES_PER_ELEMENT,d,b.start,b.count)}c.clearUpdateRanges()}c.onUploadCallback()}function a(u){return u.isInterleavedBufferAttribute&amp;amp;amp;&amp;amp;amp;(u=u.data),t.get(u)}function s(u){u.isInterleavedBufferAttribute&amp;amp;amp;&amp;amp;amp;(u=u.data);let c=t.get(u);c&amp;amp;amp;&amp;amp;amp;(n.deleteBuffer(c.buffer),t.delete(u))}function o(u,c){if(u.isInterleavedBufferAttribute&amp;amp;amp;&amp;amp;amp;(u=u.data),u.isGLBufferAttribute){let d=t.get(u);(!d||d.version&amp;amp;lt;u.version)&amp;amp;amp;&amp;amp;amp;t.set(u,{buffer:u.buffer,type:u.type,bytesPerElement:u.elementSize,version:u.version});return}let h=t.get(u);if(h===void 0)t.set(u,e(u,c));else if(h.version&amp;amp;lt;u.version){if(h.size!==u.array.byteLength)throw new Error(&amp;amp;quot;THREE.WebGLAttributes: The size of the buffer attribute&amp;amp;#39;s array buffer does not match the original size. Resizing buffer attributes is not supported.&amp;amp;quot;);i(h.buffer,u,c),h.version=u.version}}return{get:a,remove:s,update:o}}var oF=`#ifdef USE_ALPHAHASH
   1234 <a href="#l1215" class="line" id="l1215">   1215</a> &lt;a href=&quot;#l1196&quot; class=&quot;line&quot; id=&quot;l1196&quot;&gt;   1196&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-59&amp;quot; id=&amp;quot;h3-0-59&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( diffuseColor.a &amp;amp;lt; getAlphaHashThreshold( vPosition ) ) discard;
   1235 <a href="#l1216" class="line" id="l1216">   1216</a> &lt;a href=&quot;#l1197&quot; class=&quot;line&quot; id=&quot;l1197&quot;&gt;   1197&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-60&amp;quot; id=&amp;quot;h3-0-60&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,lF=`#ifdef USE_ALPHAHASH
   1236 <a href="#l1217" class="line" id="l1217">   1217</a> &lt;a href=&quot;#l1198&quot; class=&quot;line&quot; id=&quot;l1198&quot;&gt;   1198&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-61&amp;quot; id=&amp;quot;h3-0-61&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float ALPHA_HASH_SCALE = 0.05;
   1237 <a href="#l1218" class="line" id="l1218">   1218</a> &lt;a href=&quot;#l1199&quot; class=&quot;line&quot; id=&quot;l1199&quot;&gt;   1199&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-62&amp;quot; id=&amp;quot;h3-0-62&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float hash2D( vec2 value ) {
   1238 <a href="#l1219" class="line" id="l1219">   1219</a> &lt;a href=&quot;#l1200&quot; class=&quot;line&quot; id=&quot;l1200&quot;&gt;   1200&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-63&amp;quot; id=&amp;quot;h3-0-63&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return fract( 1.0e4 * sin( 17.0 * value.x + 0.1 * value.y ) * ( 0.1 + abs( sin( 13.0 * value.y + value.x ) ) ) );
   1239 <a href="#l1220" class="line" id="l1220">   1220</a> &lt;a href=&quot;#l1201&quot; class=&quot;line&quot; id=&quot;l1201&quot;&gt;   1201&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-64&amp;quot; id=&amp;quot;h3-0-64&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1240 <a href="#l1221" class="line" id="l1221">   1221</a> &lt;a href=&quot;#l1202&quot; class=&quot;line&quot; id=&quot;l1202&quot;&gt;   1202&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-65&amp;quot; id=&amp;quot;h3-0-65&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float hash3D( vec3 value ) {
   1241 <a href="#l1222" class="line" id="l1222">   1222</a> &lt;a href=&quot;#l1203&quot; class=&quot;line&quot; id=&quot;l1203&quot;&gt;   1203&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-66&amp;quot; id=&amp;quot;h3-0-66&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return hash2D( vec2( hash2D( value.xy ), value.z ) );
   1242 <a href="#l1223" class="line" id="l1223">   1223</a> &lt;a href=&quot;#l1204&quot; class=&quot;line&quot; id=&quot;l1204&quot;&gt;   1204&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-67&amp;quot; id=&amp;quot;h3-0-67&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1243 <a href="#l1224" class="line" id="l1224">   1224</a> &lt;a href=&quot;#l1205&quot; class=&quot;line&quot; id=&quot;l1205&quot;&gt;   1205&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-68&amp;quot; id=&amp;quot;h3-0-68&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float getAlphaHashThreshold( vec3 position ) {
   1244 <a href="#l1225" class="line" id="l1225">   1225</a> &lt;a href=&quot;#l1206&quot; class=&quot;line&quot; id=&quot;l1206&quot;&gt;   1206&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-69&amp;quot; id=&amp;quot;h3-0-69&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float maxDeriv = max(
   1245 <a href="#l1226" class="line" id="l1226">   1226</a> &lt;a href=&quot;#l1207&quot; class=&quot;line&quot; id=&quot;l1207&quot;&gt;   1207&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-70&amp;quot; id=&amp;quot;h3-0-70&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			length( dFdx( position.xyz ) ),
   1246 <a href="#l1227" class="line" id="l1227">   1227</a> &lt;a href=&quot;#l1208&quot; class=&quot;line&quot; id=&quot;l1208&quot;&gt;   1208&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-71&amp;quot; id=&amp;quot;h3-0-71&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			length( dFdy( position.xyz ) )
   1247 <a href="#l1228" class="line" id="l1228">   1228</a> &lt;a href=&quot;#l1209&quot; class=&quot;line&quot; id=&quot;l1209&quot;&gt;   1209&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-72&amp;quot; id=&amp;quot;h3-0-72&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		);
   1248 <a href="#l1229" class="line" id="l1229">   1229</a> &lt;a href=&quot;#l1210&quot; class=&quot;line&quot; id=&quot;l1210&quot;&gt;   1210&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-73&amp;quot; id=&amp;quot;h3-0-73&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float pixScale = 1.0 / ( ALPHA_HASH_SCALE * maxDeriv );
   1249 <a href="#l1230" class="line" id="l1230">   1230</a> &lt;a href=&quot;#l1211&quot; class=&quot;line&quot; id=&quot;l1211&quot;&gt;   1211&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-74&amp;quot; id=&amp;quot;h3-0-74&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 pixScales = vec2(
   1250 <a href="#l1231" class="line" id="l1231">   1231</a> &lt;a href=&quot;#l1212&quot; class=&quot;line&quot; id=&quot;l1212&quot;&gt;   1212&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-75&amp;quot; id=&amp;quot;h3-0-75&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			exp2( floor( log2( pixScale ) ) ),
   1251 <a href="#l1232" class="line" id="l1232">   1232</a> &lt;a href=&quot;#l1213&quot; class=&quot;line&quot; id=&quot;l1213&quot;&gt;   1213&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-76&amp;quot; id=&amp;quot;h3-0-76&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			exp2( ceil( log2( pixScale ) ) )
   1252 <a href="#l1233" class="line" id="l1233">   1233</a> &lt;a href=&quot;#l1214&quot; class=&quot;line&quot; id=&quot;l1214&quot;&gt;   1214&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-77&amp;quot; id=&amp;quot;h3-0-77&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		);
   1253 <a href="#l1234" class="line" id="l1234">   1234</a> &lt;a href=&quot;#l1215&quot; class=&quot;line&quot; id=&quot;l1215&quot;&gt;   1215&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-78&amp;quot; id=&amp;quot;h3-0-78&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 alpha = vec2(
   1254 <a href="#l1235" class="line" id="l1235">   1235</a> &lt;a href=&quot;#l1216&quot; class=&quot;line&quot; id=&quot;l1216&quot;&gt;   1216&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-79&amp;quot; id=&amp;quot;h3-0-79&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			hash3D( floor( pixScales.x * position.xyz ) ),
   1255 <a href="#l1236" class="line" id="l1236">   1236</a> &lt;a href=&quot;#l1217&quot; class=&quot;line&quot; id=&quot;l1217&quot;&gt;   1217&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-80&amp;quot; id=&amp;quot;h3-0-80&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			hash3D( floor( pixScales.y * position.xyz ) )
   1256 <a href="#l1237" class="line" id="l1237">   1237</a> &lt;a href=&quot;#l1218&quot; class=&quot;line&quot; id=&quot;l1218&quot;&gt;   1218&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-81&amp;quot; id=&amp;quot;h3-0-81&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		);
   1257 <a href="#l1238" class="line" id="l1238">   1238</a> &lt;a href=&quot;#l1219&quot; class=&quot;line&quot; id=&quot;l1219&quot;&gt;   1219&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-82&amp;quot; id=&amp;quot;h3-0-82&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float lerpFactor = fract( log2( pixScale ) );
   1258 <a href="#l1239" class="line" id="l1239">   1239</a> &lt;a href=&quot;#l1220&quot; class=&quot;line&quot; id=&quot;l1220&quot;&gt;   1220&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-83&amp;quot; id=&amp;quot;h3-0-83&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float x = ( 1.0 - lerpFactor ) * alpha.x + lerpFactor * alpha.y;
   1259 <a href="#l1240" class="line" id="l1240">   1240</a> &lt;a href=&quot;#l1221&quot; class=&quot;line&quot; id=&quot;l1221&quot;&gt;   1221&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-84&amp;quot; id=&amp;quot;h3-0-84&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float a = min( lerpFactor, 1.0 - lerpFactor );
   1260 <a href="#l1241" class="line" id="l1241">   1241</a> &lt;a href=&quot;#l1222&quot; class=&quot;line&quot; id=&quot;l1222&quot;&gt;   1222&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-85&amp;quot; id=&amp;quot;h3-0-85&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 cases = vec3(
   1261 <a href="#l1242" class="line" id="l1242">   1242</a> &lt;a href=&quot;#l1223&quot; class=&quot;line&quot; id=&quot;l1223&quot;&gt;   1223&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-86&amp;quot; id=&amp;quot;h3-0-86&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			x * x / ( 2.0 * a * ( 1.0 - a ) ),
   1262 <a href="#l1243" class="line" id="l1243">   1243</a> &lt;a href=&quot;#l1224&quot; class=&quot;line&quot; id=&quot;l1224&quot;&gt;   1224&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-87&amp;quot; id=&amp;quot;h3-0-87&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			( x - 0.5 * a ) / ( 1.0 - a ),
   1263 <a href="#l1244" class="line" id="l1244">   1244</a> &lt;a href=&quot;#l1225&quot; class=&quot;line&quot; id=&quot;l1225&quot;&gt;   1225&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-88&amp;quot; id=&amp;quot;h3-0-88&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			1.0 - ( ( 1.0 - x ) * ( 1.0 - x ) / ( 2.0 * a * ( 1.0 - a ) ) )
   1264 <a href="#l1245" class="line" id="l1245">   1245</a> &lt;a href=&quot;#l1226&quot; class=&quot;line&quot; id=&quot;l1226&quot;&gt;   1226&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-89&amp;quot; id=&amp;quot;h3-0-89&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		);
   1265 <a href="#l1246" class="line" id="l1246">   1246</a> &lt;a href=&quot;#l1227&quot; class=&quot;line&quot; id=&quot;l1227&quot;&gt;   1227&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-90&amp;quot; id=&amp;quot;h3-0-90&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float threshold = ( x &amp;amp;lt; ( 1.0 - a ) )
   1266 <a href="#l1247" class="line" id="l1247">   1247</a> &lt;a href=&quot;#l1228&quot; class=&quot;line&quot; id=&quot;l1228&quot;&gt;   1228&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-91&amp;quot; id=&amp;quot;h3-0-91&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			? ( ( x &amp;amp;lt; a ) ? cases.x : cases.y )
   1267 <a href="#l1248" class="line" id="l1248">   1248</a> &lt;a href=&quot;#l1229&quot; class=&quot;line&quot; id=&quot;l1229&quot;&gt;   1229&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-92&amp;quot; id=&amp;quot;h3-0-92&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			: cases.z;
   1268 <a href="#l1249" class="line" id="l1249">   1249</a> &lt;a href=&quot;#l1230&quot; class=&quot;line&quot; id=&quot;l1230&quot;&gt;   1230&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-93&amp;quot; id=&amp;quot;h3-0-93&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return clamp( threshold , 1.0e-6, 1.0 );
   1269 <a href="#l1250" class="line" id="l1250">   1250</a> &lt;a href=&quot;#l1231&quot; class=&quot;line&quot; id=&quot;l1231&quot;&gt;   1231&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-94&amp;quot; id=&amp;quot;h3-0-94&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1270 <a href="#l1251" class="line" id="l1251">   1251</a> &lt;a href=&quot;#l1232&quot; class=&quot;line&quot; id=&quot;l1232&quot;&gt;   1232&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-95&amp;quot; id=&amp;quot;h3-0-95&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,uF=`#ifdef USE_ALPHAMAP
   1271 <a href="#l1252" class="line" id="l1252">   1252</a> &lt;a href=&quot;#l1233&quot; class=&quot;line&quot; id=&quot;l1233&quot;&gt;   1233&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-96&amp;quot; id=&amp;quot;h3-0-96&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	diffuseColor.a *= texture2D( alphaMap, vAlphaMapUv ).g;
   1272 <a href="#l1253" class="line" id="l1253">   1253</a> &lt;a href=&quot;#l1234&quot; class=&quot;line&quot; id=&quot;l1234&quot;&gt;   1234&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-97&amp;quot; id=&amp;quot;h3-0-97&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,cF=`#ifdef USE_ALPHAMAP
   1273 <a href="#l1254" class="line" id="l1254">   1254</a> &lt;a href=&quot;#l1235&quot; class=&quot;line&quot; id=&quot;l1235&quot;&gt;   1235&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-98&amp;quot; id=&amp;quot;h3-0-98&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D alphaMap;
   1274 <a href="#l1255" class="line" id="l1255">   1255</a> &lt;a href=&quot;#l1236&quot; class=&quot;line&quot; id=&quot;l1236&quot;&gt;   1236&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-99&amp;quot; id=&amp;quot;h3-0-99&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,fF=`#ifdef USE_ALPHATEST
   1275 <a href="#l1256" class="line" id="l1256">   1256</a> &lt;a href=&quot;#l1237&quot; class=&quot;line&quot; id=&quot;l1237&quot;&gt;   1237&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-100&amp;quot; id=&amp;quot;h3-0-100&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ALPHA_TO_COVERAGE
   1276 <a href="#l1257" class="line" id="l1257">   1257</a> &lt;a href=&quot;#l1238&quot; class=&quot;line&quot; id=&quot;l1238&quot;&gt;   1238&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-101&amp;quot; id=&amp;quot;h3-0-101&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	diffuseColor.a = smoothstep( alphaTest, alphaTest + fwidth( diffuseColor.a ), diffuseColor.a );
   1277 <a href="#l1258" class="line" id="l1258">   1258</a> &lt;a href=&quot;#l1239&quot; class=&quot;line&quot; id=&quot;l1239&quot;&gt;   1239&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-102&amp;quot; id=&amp;quot;h3-0-102&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( diffuseColor.a == 0.0 ) discard;
   1278 <a href="#l1259" class="line" id="l1259">   1259</a> &lt;a href=&quot;#l1240&quot; class=&quot;line&quot; id=&quot;l1240&quot;&gt;   1240&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-103&amp;quot; id=&amp;quot;h3-0-103&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1279 <a href="#l1260" class="line" id="l1260">   1260</a> &lt;a href=&quot;#l1241&quot; class=&quot;line&quot; id=&quot;l1241&quot;&gt;   1241&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-104&amp;quot; id=&amp;quot;h3-0-104&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( diffuseColor.a &amp;amp;lt; alphaTest ) discard;
   1280 <a href="#l1261" class="line" id="l1261">   1261</a> &lt;a href=&quot;#l1242&quot; class=&quot;line&quot; id=&quot;l1242&quot;&gt;   1242&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-105&amp;quot; id=&amp;quot;h3-0-105&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1281 <a href="#l1262" class="line" id="l1262">   1262</a> &lt;a href=&quot;#l1243&quot; class=&quot;line&quot; id=&quot;l1243&quot;&gt;   1243&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-106&amp;quot; id=&amp;quot;h3-0-106&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,hF=`#ifdef USE_ALPHATEST
   1282 <a href="#l1263" class="line" id="l1263">   1263</a> &lt;a href=&quot;#l1244&quot; class=&quot;line&quot; id=&quot;l1244&quot;&gt;   1244&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-107&amp;quot; id=&amp;quot;h3-0-107&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float alphaTest;
   1283 <a href="#l1264" class="line" id="l1264">   1264</a> &lt;a href=&quot;#l1245&quot; class=&quot;line&quot; id=&quot;l1245&quot;&gt;   1245&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-108&amp;quot; id=&amp;quot;h3-0-108&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,dF=`#ifdef USE_AOMAP
   1284 <a href="#l1265" class="line" id="l1265">   1265</a> &lt;a href=&quot;#l1246&quot; class=&quot;line&quot; id=&quot;l1246&quot;&gt;   1246&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-109&amp;quot; id=&amp;quot;h3-0-109&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float ambientOcclusion = ( texture2D( aoMap, vAoMapUv ).r - 1.0 ) * aoMapIntensity + 1.0;
   1285 <a href="#l1266" class="line" id="l1266">   1266</a> &lt;a href=&quot;#l1247&quot; class=&quot;line&quot; id=&quot;l1247&quot;&gt;   1247&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-110&amp;quot; id=&amp;quot;h3-0-110&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectDiffuse *= ambientOcclusion;
   1286 <a href="#l1267" class="line" id="l1267">   1267</a> &lt;a href=&quot;#l1248&quot; class=&quot;line&quot; id=&quot;l1248&quot;&gt;   1248&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-111&amp;quot; id=&amp;quot;h3-0-111&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_CLEARCOAT )
   1287 <a href="#l1268" class="line" id="l1268">   1268</a> &lt;a href=&quot;#l1249&quot; class=&quot;line&quot; id=&quot;l1249&quot;&gt;   1249&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-112&amp;quot; id=&amp;quot;h3-0-112&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		clearcoatSpecularIndirect *= ambientOcclusion;
   1288 <a href="#l1269" class="line" id="l1269">   1269</a> &lt;a href=&quot;#l1250&quot; class=&quot;line&quot; id=&quot;l1250&quot;&gt;   1250&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-113&amp;quot; id=&amp;quot;h3-0-113&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1289 <a href="#l1270" class="line" id="l1270">   1270</a> &lt;a href=&quot;#l1251&quot; class=&quot;line&quot; id=&quot;l1251&quot;&gt;   1251&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-114&amp;quot; id=&amp;quot;h3-0-114&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_SHEEN )
   1290 <a href="#l1271" class="line" id="l1271">   1271</a> &lt;a href=&quot;#l1252&quot; class=&quot;line&quot; id=&quot;l1252&quot;&gt;   1252&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-115&amp;quot; id=&amp;quot;h3-0-115&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		sheenSpecularIndirect *= ambientOcclusion;
   1291 <a href="#l1272" class="line" id="l1272">   1272</a> &lt;a href=&quot;#l1253&quot; class=&quot;line&quot; id=&quot;l1253&quot;&gt;   1253&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-116&amp;quot; id=&amp;quot;h3-0-116&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1292 <a href="#l1273" class="line" id="l1273">   1273</a> &lt;a href=&quot;#l1254&quot; class=&quot;line&quot; id=&quot;l1254&quot;&gt;   1254&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-117&amp;quot; id=&amp;quot;h3-0-117&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_ENVMAP ) &amp;amp;amp;&amp;amp;amp; defined( STANDARD )
   1293 <a href="#l1274" class="line" id="l1274">   1274</a> &lt;a href=&quot;#l1255&quot; class=&quot;line&quot; id=&quot;l1255&quot;&gt;   1255&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-118&amp;quot; id=&amp;quot;h3-0-118&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotNV = saturate( dot( geometryNormal, geometryViewDir ) );
   1294 <a href="#l1275" class="line" id="l1275">   1275</a> &lt;a href=&quot;#l1256&quot; class=&quot;line&quot; id=&quot;l1256&quot;&gt;   1256&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-119&amp;quot; id=&amp;quot;h3-0-119&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		reflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.roughness );
   1295 <a href="#l1276" class="line" id="l1276">   1276</a> &lt;a href=&quot;#l1257&quot; class=&quot;line&quot; id=&quot;l1257&quot;&gt;   1257&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-120&amp;quot; id=&amp;quot;h3-0-120&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1296 <a href="#l1277" class="line" id="l1277">   1277</a> &lt;a href=&quot;#l1258&quot; class=&quot;line&quot; id=&quot;l1258&quot;&gt;   1258&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-121&amp;quot; id=&amp;quot;h3-0-121&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,pF=`#ifdef USE_AOMAP
   1297 <a href="#l1278" class="line" id="l1278">   1278</a> &lt;a href=&quot;#l1259&quot; class=&quot;line&quot; id=&quot;l1259&quot;&gt;   1259&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-122&amp;quot; id=&amp;quot;h3-0-122&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D aoMap;
   1298 <a href="#l1279" class="line" id="l1279">   1279</a> &lt;a href=&quot;#l1260&quot; class=&quot;line&quot; id=&quot;l1260&quot;&gt;   1260&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-123&amp;quot; id=&amp;quot;h3-0-123&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float aoMapIntensity;
   1299 <a href="#l1280" class="line" id="l1280">   1280</a> &lt;a href=&quot;#l1261&quot; class=&quot;line&quot; id=&quot;l1261&quot;&gt;   1261&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-124&amp;quot; id=&amp;quot;h3-0-124&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,mF=`#ifdef USE_BATCHING
   1300 <a href="#l1281" class="line" id="l1281">   1281</a> &lt;a href=&quot;#l1262&quot; class=&quot;line&quot; id=&quot;l1262&quot;&gt;   1262&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-125&amp;quot; id=&amp;quot;h3-0-125&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if ! defined( GL_ANGLE_multi_draw )
   1301 <a href="#l1282" class="line" id="l1282">   1282</a> &lt;a href=&quot;#l1263&quot; class=&quot;line&quot; id=&quot;l1263&quot;&gt;   1263&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-126&amp;quot; id=&amp;quot;h3-0-126&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define gl_DrawID _gl_DrawID
   1302 <a href="#l1283" class="line" id="l1283">   1283</a> &lt;a href=&quot;#l1264&quot; class=&quot;line&quot; id=&quot;l1264&quot;&gt;   1264&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-127&amp;quot; id=&amp;quot;h3-0-127&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform int _gl_DrawID;
   1303 <a href="#l1284" class="line" id="l1284">   1284</a> &lt;a href=&quot;#l1265&quot; class=&quot;line&quot; id=&quot;l1265&quot;&gt;   1265&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-128&amp;quot; id=&amp;quot;h3-0-128&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1304 <a href="#l1285" class="line" id="l1285">   1285</a> &lt;a href=&quot;#l1266&quot; class=&quot;line&quot; id=&quot;l1266&quot;&gt;   1266&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-129&amp;quot; id=&amp;quot;h3-0-129&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform highp sampler2D batchingTexture;
   1305 <a href="#l1286" class="line" id="l1286">   1286</a> &lt;a href=&quot;#l1267&quot; class=&quot;line&quot; id=&quot;l1267&quot;&gt;   1267&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-130&amp;quot; id=&amp;quot;h3-0-130&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform highp usampler2D batchingIdTexture;
   1306 <a href="#l1287" class="line" id="l1287">   1287</a> &lt;a href=&quot;#l1268&quot; class=&quot;line&quot; id=&quot;l1268&quot;&gt;   1268&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-131&amp;quot; id=&amp;quot;h3-0-131&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat4 getBatchingMatrix( const in float i ) {
   1307 <a href="#l1288" class="line" id="l1288">   1288</a> &lt;a href=&quot;#l1269&quot; class=&quot;line&quot; id=&quot;l1269&quot;&gt;   1269&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-132&amp;quot; id=&amp;quot;h3-0-132&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int size = textureSize( batchingTexture, 0 ).x;
   1308 <a href="#l1289" class="line" id="l1289">   1289</a> &lt;a href=&quot;#l1270&quot; class=&quot;line&quot; id=&quot;l1270&quot;&gt;   1270&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-133&amp;quot; id=&amp;quot;h3-0-133&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int j = int( i ) * 4;
   1309 <a href="#l1290" class="line" id="l1290">   1290</a> &lt;a href=&quot;#l1271&quot; class=&quot;line&quot; id=&quot;l1271&quot;&gt;   1271&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-134&amp;quot; id=&amp;quot;h3-0-134&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int x = j % size;
   1310 <a href="#l1291" class="line" id="l1291">   1291</a> &lt;a href=&quot;#l1272&quot; class=&quot;line&quot; id=&quot;l1272&quot;&gt;   1272&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-135&amp;quot; id=&amp;quot;h3-0-135&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int y = j / size;
   1311 <a href="#l1292" class="line" id="l1292">   1292</a> &lt;a href=&quot;#l1273&quot; class=&quot;line&quot; id=&quot;l1273&quot;&gt;   1273&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-136&amp;quot; id=&amp;quot;h3-0-136&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 v1 = texelFetch( batchingTexture, ivec2( x, y ), 0 );
   1312 <a href="#l1293" class="line" id="l1293">   1293</a> &lt;a href=&quot;#l1274&quot; class=&quot;line&quot; id=&quot;l1274&quot;&gt;   1274&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-137&amp;quot; id=&amp;quot;h3-0-137&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 v2 = texelFetch( batchingTexture, ivec2( x + 1, y ), 0 );
   1313 <a href="#l1294" class="line" id="l1294">   1294</a> &lt;a href=&quot;#l1275&quot; class=&quot;line&quot; id=&quot;l1275&quot;&gt;   1275&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-138&amp;quot; id=&amp;quot;h3-0-138&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 v3 = texelFetch( batchingTexture, ivec2( x + 2, y ), 0 );
   1314 <a href="#l1295" class="line" id="l1295">   1295</a> &lt;a href=&quot;#l1276&quot; class=&quot;line&quot; id=&quot;l1276&quot;&gt;   1276&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-139&amp;quot; id=&amp;quot;h3-0-139&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 v4 = texelFetch( batchingTexture, ivec2( x + 3, y ), 0 );
   1315 <a href="#l1296" class="line" id="l1296">   1296</a> &lt;a href=&quot;#l1277&quot; class=&quot;line&quot; id=&quot;l1277&quot;&gt;   1277&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-140&amp;quot; id=&amp;quot;h3-0-140&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return mat4( v1, v2, v3, v4 );
   1316 <a href="#l1297" class="line" id="l1297">   1297</a> &lt;a href=&quot;#l1278&quot; class=&quot;line&quot; id=&quot;l1278&quot;&gt;   1278&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-141&amp;quot; id=&amp;quot;h3-0-141&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1317 <a href="#l1298" class="line" id="l1298">   1298</a> &lt;a href=&quot;#l1279&quot; class=&quot;line&quot; id=&quot;l1279&quot;&gt;   1279&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-142&amp;quot; id=&amp;quot;h3-0-142&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float getIndirectIndex( const in int i ) {
   1318 <a href="#l1299" class="line" id="l1299">   1299</a> &lt;a href=&quot;#l1280&quot; class=&quot;line&quot; id=&quot;l1280&quot;&gt;   1280&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-143&amp;quot; id=&amp;quot;h3-0-143&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int size = textureSize( batchingIdTexture, 0 ).x;
   1319 <a href="#l1300" class="line" id="l1300">   1300</a> &lt;a href=&quot;#l1281&quot; class=&quot;line&quot; id=&quot;l1281&quot;&gt;   1281&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-144&amp;quot; id=&amp;quot;h3-0-144&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int x = i % size;
   1320 <a href="#l1301" class="line" id="l1301">   1301</a> &lt;a href=&quot;#l1282&quot; class=&quot;line&quot; id=&quot;l1282&quot;&gt;   1282&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-145&amp;quot; id=&amp;quot;h3-0-145&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int y = i / size;
   1321 <a href="#l1302" class="line" id="l1302">   1302</a> &lt;a href=&quot;#l1283&quot; class=&quot;line&quot; id=&quot;l1283&quot;&gt;   1283&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-146&amp;quot; id=&amp;quot;h3-0-146&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return float( texelFetch( batchingIdTexture, ivec2( x, y ), 0 ).r );
   1322 <a href="#l1303" class="line" id="l1303">   1303</a> &lt;a href=&quot;#l1284&quot; class=&quot;line&quot; id=&quot;l1284&quot;&gt;   1284&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-147&amp;quot; id=&amp;quot;h3-0-147&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1323 <a href="#l1304" class="line" id="l1304">   1304</a> &lt;a href=&quot;#l1285&quot; class=&quot;line&quot; id=&quot;l1285&quot;&gt;   1285&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-148&amp;quot; id=&amp;quot;h3-0-148&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1324 <a href="#l1305" class="line" id="l1305">   1305</a> &lt;a href=&quot;#l1286&quot; class=&quot;line&quot; id=&quot;l1286&quot;&gt;   1286&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-149&amp;quot; id=&amp;quot;h3-0-149&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_BATCHING_COLOR
   1325 <a href="#l1306" class="line" id="l1306">   1306</a> &lt;a href=&quot;#l1287&quot; class=&quot;line&quot; id=&quot;l1287&quot;&gt;   1287&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-150&amp;quot; id=&amp;quot;h3-0-150&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D batchingColorTexture;
   1326 <a href="#l1307" class="line" id="l1307">   1307</a> &lt;a href=&quot;#l1288&quot; class=&quot;line&quot; id=&quot;l1288&quot;&gt;   1288&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-151&amp;quot; id=&amp;quot;h3-0-151&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 getBatchingColor( const in float i ) {
   1327 <a href="#l1308" class="line" id="l1308">   1308</a> &lt;a href=&quot;#l1289&quot; class=&quot;line&quot; id=&quot;l1289&quot;&gt;   1289&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-152&amp;quot; id=&amp;quot;h3-0-152&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int size = textureSize( batchingColorTexture, 0 ).x;
   1328 <a href="#l1309" class="line" id="l1309">   1309</a> &lt;a href=&quot;#l1290&quot; class=&quot;line&quot; id=&quot;l1290&quot;&gt;   1290&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-153&amp;quot; id=&amp;quot;h3-0-153&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int j = int( i );
   1329 <a href="#l1310" class="line" id="l1310">   1310</a> &lt;a href=&quot;#l1291&quot; class=&quot;line&quot; id=&quot;l1291&quot;&gt;   1291&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-154&amp;quot; id=&amp;quot;h3-0-154&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int x = j % size;
   1330 <a href="#l1311" class="line" id="l1311">   1311</a> &lt;a href=&quot;#l1292&quot; class=&quot;line&quot; id=&quot;l1292&quot;&gt;   1292&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-155&amp;quot; id=&amp;quot;h3-0-155&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int y = j / size;
   1331 <a href="#l1312" class="line" id="l1312">   1312</a> &lt;a href=&quot;#l1293&quot; class=&quot;line&quot; id=&quot;l1293&quot;&gt;   1293&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-156&amp;quot; id=&amp;quot;h3-0-156&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return texelFetch( batchingColorTexture, ivec2( x, y ), 0 ).rgb;
   1332 <a href="#l1313" class="line" id="l1313">   1313</a> &lt;a href=&quot;#l1294&quot; class=&quot;line&quot; id=&quot;l1294&quot;&gt;   1294&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-157&amp;quot; id=&amp;quot;h3-0-157&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1333 <a href="#l1314" class="line" id="l1314">   1314</a> &lt;a href=&quot;#l1295&quot; class=&quot;line&quot; id=&quot;l1295&quot;&gt;   1295&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-158&amp;quot; id=&amp;quot;h3-0-158&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,gF=`#ifdef USE_BATCHING
   1334 <a href="#l1315" class="line" id="l1315">   1315</a> &lt;a href=&quot;#l1296&quot; class=&quot;line&quot; id=&quot;l1296&quot;&gt;   1296&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-159&amp;quot; id=&amp;quot;h3-0-159&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat4 batchingMatrix = getBatchingMatrix( getIndirectIndex( gl_DrawID ) );
   1335 <a href="#l1316" class="line" id="l1316">   1316</a> &lt;a href=&quot;#l1297&quot; class=&quot;line&quot; id=&quot;l1297&quot;&gt;   1297&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-160&amp;quot; id=&amp;quot;h3-0-160&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,vF=`vec3 transformed = vec3( position );
   1336 <a href="#l1317" class="line" id="l1317">   1317</a> &lt;a href=&quot;#l1298&quot; class=&quot;line&quot; id=&quot;l1298&quot;&gt;   1298&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-161&amp;quot; id=&amp;quot;h3-0-161&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ALPHAHASH
   1337 <a href="#l1318" class="line" id="l1318">   1318</a> &lt;a href=&quot;#l1299&quot; class=&quot;line&quot; id=&quot;l1299&quot;&gt;   1299&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-162&amp;quot; id=&amp;quot;h3-0-162&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vPosition = vec3( position );
   1338 <a href="#l1319" class="line" id="l1319">   1319</a> &lt;a href=&quot;#l1300&quot; class=&quot;line&quot; id=&quot;l1300&quot;&gt;   1300&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-163&amp;quot; id=&amp;quot;h3-0-163&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,yF=`vec3 objectNormal = vec3( normal );
   1339 <a href="#l1320" class="line" id="l1320">   1320</a> &lt;a href=&quot;#l1301&quot; class=&quot;line&quot; id=&quot;l1301&quot;&gt;   1301&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-164&amp;quot; id=&amp;quot;h3-0-164&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TANGENT
   1340 <a href="#l1321" class="line" id="l1321">   1321</a> &lt;a href=&quot;#l1302&quot; class=&quot;line&quot; id=&quot;l1302&quot;&gt;   1302&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-165&amp;quot; id=&amp;quot;h3-0-165&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 objectTangent = vec3( tangent.xyz );
   1341 <a href="#l1322" class="line" id="l1322">   1322</a> &lt;a href=&quot;#l1303&quot; class=&quot;line&quot; id=&quot;l1303&quot;&gt;   1303&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-166&amp;quot; id=&amp;quot;h3-0-166&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,_F=`float G_BlinnPhong_Implicit( ) {
   1342 <a href="#l1323" class="line" id="l1323">   1323</a> &lt;a href=&quot;#l1304&quot; class=&quot;line&quot; id=&quot;l1304&quot;&gt;   1304&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-167&amp;quot; id=&amp;quot;h3-0-167&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return 0.25;
   1343 <a href="#l1324" class="line" id="l1324">   1324</a> &lt;a href=&quot;#l1305&quot; class=&quot;line&quot; id=&quot;l1305&quot;&gt;   1305&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-168&amp;quot; id=&amp;quot;h3-0-168&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1344 <a href="#l1325" class="line" id="l1325">   1325</a> &lt;a href=&quot;#l1306&quot; class=&quot;line&quot; id=&quot;l1306&quot;&gt;   1306&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-169&amp;quot; id=&amp;quot;h3-0-169&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float D_BlinnPhong( const in float shininess, const in float dotNH ) {
   1345 <a href="#l1326" class="line" id="l1326">   1326</a> &lt;a href=&quot;#l1307&quot; class=&quot;line&quot; id=&quot;l1307&quot;&gt;   1307&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-170&amp;quot; id=&amp;quot;h3-0-170&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );
   1346 <a href="#l1327" class="line" id="l1327">   1327</a> &lt;a href=&quot;#l1308&quot; class=&quot;line&quot; id=&quot;l1308&quot;&gt;   1308&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-171&amp;quot; id=&amp;quot;h3-0-171&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1347 <a href="#l1328" class="line" id="l1328">   1328</a> &lt;a href=&quot;#l1309&quot; class=&quot;line&quot; id=&quot;l1309&quot;&gt;   1309&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-172&amp;quot; id=&amp;quot;h3-0-172&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 BRDF_BlinnPhong( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float shininess ) {
   1348 <a href="#l1329" class="line" id="l1329">   1329</a> &lt;a href=&quot;#l1310&quot; class=&quot;line&quot; id=&quot;l1310&quot;&gt;   1310&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-173&amp;quot; id=&amp;quot;h3-0-173&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 halfDir = normalize( lightDir + viewDir );
   1349 <a href="#l1330" class="line" id="l1330">   1330</a> &lt;a href=&quot;#l1311&quot; class=&quot;line&quot; id=&quot;l1311&quot;&gt;   1311&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-174&amp;quot; id=&amp;quot;h3-0-174&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNH = saturate( dot( normal, halfDir ) );
   1350 <a href="#l1331" class="line" id="l1331">   1331</a> &lt;a href=&quot;#l1312&quot; class=&quot;line&quot; id=&quot;l1312&quot;&gt;   1312&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-175&amp;quot; id=&amp;quot;h3-0-175&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotVH = saturate( dot( viewDir, halfDir ) );
   1351 <a href="#l1332" class="line" id="l1332">   1332</a> &lt;a href=&quot;#l1313&quot; class=&quot;line&quot; id=&quot;l1313&quot;&gt;   1313&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-176&amp;quot; id=&amp;quot;h3-0-176&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 F = F_Schlick( specularColor, 1.0, dotVH );
   1352 <a href="#l1333" class="line" id="l1333">   1333</a> &lt;a href=&quot;#l1314&quot; class=&quot;line&quot; id=&quot;l1314&quot;&gt;   1314&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-177&amp;quot; id=&amp;quot;h3-0-177&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float G = G_BlinnPhong_Implicit( );
   1353 <a href="#l1334" class="line" id="l1334">   1334</a> &lt;a href=&quot;#l1315&quot; class=&quot;line&quot; id=&quot;l1315&quot;&gt;   1315&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-178&amp;quot; id=&amp;quot;h3-0-178&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float D = D_BlinnPhong( shininess, dotNH );
   1354 <a href="#l1335" class="line" id="l1335">   1335</a> &lt;a href=&quot;#l1316&quot; class=&quot;line&quot; id=&quot;l1316&quot;&gt;   1316&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-179&amp;quot; id=&amp;quot;h3-0-179&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return F * ( G * D );
   1355 <a href="#l1336" class="line" id="l1336">   1336</a> &lt;a href=&quot;#l1317&quot; class=&quot;line&quot; id=&quot;l1317&quot;&gt;   1317&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-180&amp;quot; id=&amp;quot;h3-0-180&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+} // validated`,xF=`#ifdef USE_IRIDESCENCE
   1356 <a href="#l1337" class="line" id="l1337">   1337</a> &lt;a href=&quot;#l1318&quot; class=&quot;line&quot; id=&quot;l1318&quot;&gt;   1318&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-181&amp;quot; id=&amp;quot;h3-0-181&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const mat3 XYZ_TO_REC709 = mat3(
   1357 <a href="#l1338" class="line" id="l1338">   1338</a> &lt;a href=&quot;#l1319&quot; class=&quot;line&quot; id=&quot;l1319&quot;&gt;   1319&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-182&amp;quot; id=&amp;quot;h3-0-182&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		 3.2404542, -0.9692660,  0.0556434,
   1358 <a href="#l1339" class="line" id="l1339">   1339</a> &lt;a href=&quot;#l1320&quot; class=&quot;line&quot; id=&quot;l1320&quot;&gt;   1320&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-183&amp;quot; id=&amp;quot;h3-0-183&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		-1.5371385,  1.8760108, -0.2040259,
   1359 <a href="#l1340" class="line" id="l1340">   1340</a> &lt;a href=&quot;#l1321&quot; class=&quot;line&quot; id=&quot;l1321&quot;&gt;   1321&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-184&amp;quot; id=&amp;quot;h3-0-184&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		-0.4985314,  0.0415560,  1.0572252
   1360 <a href="#l1341" class="line" id="l1341">   1341</a> &lt;a href=&quot;#l1322&quot; class=&quot;line&quot; id=&quot;l1322&quot;&gt;   1322&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-185&amp;quot; id=&amp;quot;h3-0-185&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	);
   1361 <a href="#l1342" class="line" id="l1342">   1342</a> &lt;a href=&quot;#l1323&quot; class=&quot;line&quot; id=&quot;l1323&quot;&gt;   1323&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-186&amp;quot; id=&amp;quot;h3-0-186&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 Fresnel0ToIor( vec3 fresnel0 ) {
   1362 <a href="#l1343" class="line" id="l1343">   1343</a> &lt;a href=&quot;#l1324&quot; class=&quot;line&quot; id=&quot;l1324&quot;&gt;   1324&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-187&amp;quot; id=&amp;quot;h3-0-187&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 sqrtF0 = sqrt( fresnel0 );
   1363 <a href="#l1344" class="line" id="l1344">   1344</a> &lt;a href=&quot;#l1325&quot; class=&quot;line&quot; id=&quot;l1325&quot;&gt;   1325&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-188&amp;quot; id=&amp;quot;h3-0-188&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return ( vec3( 1.0 ) + sqrtF0 ) / ( vec3( 1.0 ) - sqrtF0 );
   1364 <a href="#l1345" class="line" id="l1345">   1345</a> &lt;a href=&quot;#l1326&quot; class=&quot;line&quot; id=&quot;l1326&quot;&gt;   1326&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-189&amp;quot; id=&amp;quot;h3-0-189&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1365 <a href="#l1346" class="line" id="l1346">   1346</a> &lt;a href=&quot;#l1327&quot; class=&quot;line&quot; id=&quot;l1327&quot;&gt;   1327&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-190&amp;quot; id=&amp;quot;h3-0-190&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 IorToFresnel0( vec3 transmittedIor, float incidentIor ) {
   1366 <a href="#l1347" class="line" id="l1347">   1347</a> &lt;a href=&quot;#l1328&quot; class=&quot;line&quot; id=&quot;l1328&quot;&gt;   1328&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-191&amp;quot; id=&amp;quot;h3-0-191&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return pow2( ( transmittedIor - vec3( incidentIor ) ) / ( transmittedIor + vec3( incidentIor ) ) );
   1367 <a href="#l1348" class="line" id="l1348">   1348</a> &lt;a href=&quot;#l1329&quot; class=&quot;line&quot; id=&quot;l1329&quot;&gt;   1329&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-192&amp;quot; id=&amp;quot;h3-0-192&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1368 <a href="#l1349" class="line" id="l1349">   1349</a> &lt;a href=&quot;#l1330&quot; class=&quot;line&quot; id=&quot;l1330&quot;&gt;   1330&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-193&amp;quot; id=&amp;quot;h3-0-193&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float IorToFresnel0( float transmittedIor, float incidentIor ) {
   1369 <a href="#l1350" class="line" id="l1350">   1350</a> &lt;a href=&quot;#l1331&quot; class=&quot;line&quot; id=&quot;l1331&quot;&gt;   1331&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-194&amp;quot; id=&amp;quot;h3-0-194&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return pow2( ( transmittedIor - incidentIor ) / ( transmittedIor + incidentIor ));
   1370 <a href="#l1351" class="line" id="l1351">   1351</a> &lt;a href=&quot;#l1332&quot; class=&quot;line&quot; id=&quot;l1332&quot;&gt;   1332&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-195&amp;quot; id=&amp;quot;h3-0-195&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1371 <a href="#l1352" class="line" id="l1352">   1352</a> &lt;a href=&quot;#l1333&quot; class=&quot;line&quot; id=&quot;l1333&quot;&gt;   1333&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-196&amp;quot; id=&amp;quot;h3-0-196&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 evalSensitivity( float OPD, vec3 shift ) {
   1372 <a href="#l1353" class="line" id="l1353">   1353</a> &lt;a href=&quot;#l1334&quot; class=&quot;line&quot; id=&quot;l1334&quot;&gt;   1334&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-197&amp;quot; id=&amp;quot;h3-0-197&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float phase = 2.0 * PI * OPD * 1.0e-9;
   1373 <a href="#l1354" class="line" id="l1354">   1354</a> &lt;a href=&quot;#l1335&quot; class=&quot;line&quot; id=&quot;l1335&quot;&gt;   1335&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-198&amp;quot; id=&amp;quot;h3-0-198&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 val = vec3( 5.4856e-13, 4.4201e-13, 5.2481e-13 );
   1374 <a href="#l1355" class="line" id="l1355">   1355</a> &lt;a href=&quot;#l1336&quot; class=&quot;line&quot; id=&quot;l1336&quot;&gt;   1336&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-199&amp;quot; id=&amp;quot;h3-0-199&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 pos = vec3( 1.6810e+06, 1.7953e+06, 2.2084e+06 );
   1375 <a href="#l1356" class="line" id="l1356">   1356</a> &lt;a href=&quot;#l1337&quot; class=&quot;line&quot; id=&quot;l1337&quot;&gt;   1337&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-200&amp;quot; id=&amp;quot;h3-0-200&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 var = vec3( 4.3278e+09, 9.3046e+09, 6.6121e+09 );
   1376 <a href="#l1357" class="line" id="l1357">   1357</a> &lt;a href=&quot;#l1338&quot; class=&quot;line&quot; id=&quot;l1338&quot;&gt;   1338&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-201&amp;quot; id=&amp;quot;h3-0-201&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 xyz = val * sqrt( 2.0 * PI * var ) * cos( pos * phase + shift ) * exp( - pow2( phase ) * var );
   1377 <a href="#l1358" class="line" id="l1358">   1358</a> &lt;a href=&quot;#l1339&quot; class=&quot;line&quot; id=&quot;l1339&quot;&gt;   1339&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-202&amp;quot; id=&amp;quot;h3-0-202&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		xyz.x += 9.7470e-14 * sqrt( 2.0 * PI * 4.5282e+09 ) * cos( 2.2399e+06 * phase + shift[ 0 ] ) * exp( - 4.5282e+09 * pow2( phase ) );
   1378 <a href="#l1359" class="line" id="l1359">   1359</a> &lt;a href=&quot;#l1340&quot; class=&quot;line&quot; id=&quot;l1340&quot;&gt;   1340&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-203&amp;quot; id=&amp;quot;h3-0-203&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		xyz /= 1.0685e-7;
   1379 <a href="#l1360" class="line" id="l1360">   1360</a> &lt;a href=&quot;#l1341&quot; class=&quot;line&quot; id=&quot;l1341&quot;&gt;   1341&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-204&amp;quot; id=&amp;quot;h3-0-204&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 rgb = XYZ_TO_REC709 * xyz;
   1380 <a href="#l1361" class="line" id="l1361">   1361</a> &lt;a href=&quot;#l1342&quot; class=&quot;line&quot; id=&quot;l1342&quot;&gt;   1342&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-205&amp;quot; id=&amp;quot;h3-0-205&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return rgb;
   1381 <a href="#l1362" class="line" id="l1362">   1362</a> &lt;a href=&quot;#l1343&quot; class=&quot;line&quot; id=&quot;l1343&quot;&gt;   1343&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-206&amp;quot; id=&amp;quot;h3-0-206&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1382 <a href="#l1363" class="line" id="l1363">   1363</a> &lt;a href=&quot;#l1344&quot; class=&quot;line&quot; id=&quot;l1344&quot;&gt;   1344&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-207&amp;quot; id=&amp;quot;h3-0-207&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 evalIridescence( float outsideIOR, float eta2, float cosTheta1, float thinFilmThickness, vec3 baseF0 ) {
   1383 <a href="#l1364" class="line" id="l1364">   1364</a> &lt;a href=&quot;#l1345&quot; class=&quot;line&quot; id=&quot;l1345&quot;&gt;   1345&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-208&amp;quot; id=&amp;quot;h3-0-208&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 I;
   1384 <a href="#l1365" class="line" id="l1365">   1365</a> &lt;a href=&quot;#l1346&quot; class=&quot;line&quot; id=&quot;l1346&quot;&gt;   1346&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-209&amp;quot; id=&amp;quot;h3-0-209&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float iridescenceIOR = mix( outsideIOR, eta2, smoothstep( 0.0, 0.03, thinFilmThickness ) );
   1385 <a href="#l1366" class="line" id="l1366">   1366</a> &lt;a href=&quot;#l1347&quot; class=&quot;line&quot; id=&quot;l1347&quot;&gt;   1347&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-210&amp;quot; id=&amp;quot;h3-0-210&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float sinTheta2Sq = pow2( outsideIOR / iridescenceIOR ) * ( 1.0 - pow2( cosTheta1 ) );
   1386 <a href="#l1367" class="line" id="l1367">   1367</a> &lt;a href=&quot;#l1348&quot; class=&quot;line&quot; id=&quot;l1348&quot;&gt;   1348&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-211&amp;quot; id=&amp;quot;h3-0-211&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float cosTheta2Sq = 1.0 - sinTheta2Sq;
   1387 <a href="#l1368" class="line" id="l1368">   1368</a> &lt;a href=&quot;#l1349&quot; class=&quot;line&quot; id=&quot;l1349&quot;&gt;   1349&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-212&amp;quot; id=&amp;quot;h3-0-212&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( cosTheta2Sq &amp;amp;lt; 0.0 ) {
   1388 <a href="#l1369" class="line" id="l1369">   1369</a> &lt;a href=&quot;#l1350&quot; class=&quot;line&quot; id=&quot;l1350&quot;&gt;   1350&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-213&amp;quot; id=&amp;quot;h3-0-213&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return vec3( 1.0 );
   1389 <a href="#l1370" class="line" id="l1370">   1370</a> &lt;a href=&quot;#l1351&quot; class=&quot;line&quot; id=&quot;l1351&quot;&gt;   1351&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-214&amp;quot; id=&amp;quot;h3-0-214&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1390 <a href="#l1371" class="line" id="l1371">   1371</a> &lt;a href=&quot;#l1352&quot; class=&quot;line&quot; id=&quot;l1352&quot;&gt;   1352&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-215&amp;quot; id=&amp;quot;h3-0-215&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float cosTheta2 = sqrt( cosTheta2Sq );
   1391 <a href="#l1372" class="line" id="l1372">   1372</a> &lt;a href=&quot;#l1353&quot; class=&quot;line&quot; id=&quot;l1353&quot;&gt;   1353&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-216&amp;quot; id=&amp;quot;h3-0-216&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float R0 = IorToFresnel0( iridescenceIOR, outsideIOR );
   1392 <a href="#l1373" class="line" id="l1373">   1373</a> &lt;a href=&quot;#l1354&quot; class=&quot;line&quot; id=&quot;l1354&quot;&gt;   1354&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-217&amp;quot; id=&amp;quot;h3-0-217&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float R12 = F_Schlick( R0, 1.0, cosTheta1 );
   1393 <a href="#l1374" class="line" id="l1374">   1374</a> &lt;a href=&quot;#l1355&quot; class=&quot;line&quot; id=&quot;l1355&quot;&gt;   1355&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-218&amp;quot; id=&amp;quot;h3-0-218&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float T121 = 1.0 - R12;
   1394 <a href="#l1375" class="line" id="l1375">   1375</a> &lt;a href=&quot;#l1356&quot; class=&quot;line&quot; id=&quot;l1356&quot;&gt;   1356&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-219&amp;quot; id=&amp;quot;h3-0-219&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float phi12 = 0.0;
   1395 <a href="#l1376" class="line" id="l1376">   1376</a> &lt;a href=&quot;#l1357&quot; class=&quot;line&quot; id=&quot;l1357&quot;&gt;   1357&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-220&amp;quot; id=&amp;quot;h3-0-220&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( iridescenceIOR &amp;amp;lt; outsideIOR ) phi12 = PI;
   1396 <a href="#l1377" class="line" id="l1377">   1377</a> &lt;a href=&quot;#l1358&quot; class=&quot;line&quot; id=&quot;l1358&quot;&gt;   1358&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-221&amp;quot; id=&amp;quot;h3-0-221&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float phi21 = PI - phi12;
   1397 <a href="#l1378" class="line" id="l1378">   1378</a> &lt;a href=&quot;#l1359&quot; class=&quot;line&quot; id=&quot;l1359&quot;&gt;   1359&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-222&amp;quot; id=&amp;quot;h3-0-222&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 baseIOR = Fresnel0ToIor( clamp( baseF0, 0.0, 0.9999 ) );		vec3 R1 = IorToFresnel0( baseIOR, iridescenceIOR );
   1398 <a href="#l1379" class="line" id="l1379">   1379</a> &lt;a href=&quot;#l1360&quot; class=&quot;line&quot; id=&quot;l1360&quot;&gt;   1360&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-223&amp;quot; id=&amp;quot;h3-0-223&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 R23 = F_Schlick( R1, 1.0, cosTheta2 );
   1399 <a href="#l1380" class="line" id="l1380">   1380</a> &lt;a href=&quot;#l1361&quot; class=&quot;line&quot; id=&quot;l1361&quot;&gt;   1361&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-224&amp;quot; id=&amp;quot;h3-0-224&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 phi23 = vec3( 0.0 );
   1400 <a href="#l1381" class="line" id="l1381">   1381</a> &lt;a href=&quot;#l1362&quot; class=&quot;line&quot; id=&quot;l1362&quot;&gt;   1362&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-225&amp;quot; id=&amp;quot;h3-0-225&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( baseIOR[ 0 ] &amp;amp;lt; iridescenceIOR ) phi23[ 0 ] = PI;
   1401 <a href="#l1382" class="line" id="l1382">   1382</a> &lt;a href=&quot;#l1363&quot; class=&quot;line&quot; id=&quot;l1363&quot;&gt;   1363&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-226&amp;quot; id=&amp;quot;h3-0-226&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( baseIOR[ 1 ] &amp;amp;lt; iridescenceIOR ) phi23[ 1 ] = PI;
   1402 <a href="#l1383" class="line" id="l1383">   1383</a> &lt;a href=&quot;#l1364&quot; class=&quot;line&quot; id=&quot;l1364&quot;&gt;   1364&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-227&amp;quot; id=&amp;quot;h3-0-227&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( baseIOR[ 2 ] &amp;amp;lt; iridescenceIOR ) phi23[ 2 ] = PI;
   1403 <a href="#l1384" class="line" id="l1384">   1384</a> &lt;a href=&quot;#l1365&quot; class=&quot;line&quot; id=&quot;l1365&quot;&gt;   1365&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-228&amp;quot; id=&amp;quot;h3-0-228&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float OPD = 2.0 * iridescenceIOR * thinFilmThickness * cosTheta2;
   1404 <a href="#l1385" class="line" id="l1385">   1385</a> &lt;a href=&quot;#l1366&quot; class=&quot;line&quot; id=&quot;l1366&quot;&gt;   1366&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-229&amp;quot; id=&amp;quot;h3-0-229&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 phi = vec3( phi21 ) + phi23;
   1405 <a href="#l1386" class="line" id="l1386">   1386</a> &lt;a href=&quot;#l1367&quot; class=&quot;line&quot; id=&quot;l1367&quot;&gt;   1367&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-230&amp;quot; id=&amp;quot;h3-0-230&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 R123 = clamp( R12 * R23, 1e-5, 0.9999 );
   1406 <a href="#l1387" class="line" id="l1387">   1387</a> &lt;a href=&quot;#l1368&quot; class=&quot;line&quot; id=&quot;l1368&quot;&gt;   1368&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-231&amp;quot; id=&amp;quot;h3-0-231&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 r123 = sqrt( R123 );
   1407 <a href="#l1388" class="line" id="l1388">   1388</a> &lt;a href=&quot;#l1369&quot; class=&quot;line&quot; id=&quot;l1369&quot;&gt;   1369&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-232&amp;quot; id=&amp;quot;h3-0-232&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 Rs = pow2( T121 ) * R23 / ( vec3( 1.0 ) - R123 );
   1408 <a href="#l1389" class="line" id="l1389">   1389</a> &lt;a href=&quot;#l1370&quot; class=&quot;line&quot; id=&quot;l1370&quot;&gt;   1370&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-233&amp;quot; id=&amp;quot;h3-0-233&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 C0 = R12 + Rs;
   1409 <a href="#l1390" class="line" id="l1390">   1390</a> &lt;a href=&quot;#l1371&quot; class=&quot;line&quot; id=&quot;l1371&quot;&gt;   1371&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-234&amp;quot; id=&amp;quot;h3-0-234&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		I = C0;
   1410 <a href="#l1391" class="line" id="l1391">   1391</a> &lt;a href=&quot;#l1372&quot; class=&quot;line&quot; id=&quot;l1372&quot;&gt;   1372&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-235&amp;quot; id=&amp;quot;h3-0-235&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 Cm = Rs - T121;
   1411 <a href="#l1392" class="line" id="l1392">   1392</a> &lt;a href=&quot;#l1373&quot; class=&quot;line&quot; id=&quot;l1373&quot;&gt;   1373&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-236&amp;quot; id=&amp;quot;h3-0-236&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		for ( int m = 1; m &amp;amp;lt;= 2; ++ m ) {
   1412 <a href="#l1393" class="line" id="l1393">   1393</a> &lt;a href=&quot;#l1374&quot; class=&quot;line&quot; id=&quot;l1374&quot;&gt;   1374&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-237&amp;quot; id=&amp;quot;h3-0-237&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			Cm *= r123;
   1413 <a href="#l1394" class="line" id="l1394">   1394</a> &lt;a href=&quot;#l1375&quot; class=&quot;line&quot; id=&quot;l1375&quot;&gt;   1375&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-238&amp;quot; id=&amp;quot;h3-0-238&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 Sm = 2.0 * evalSensitivity( float( m ) * OPD, float( m ) * phi );
   1414 <a href="#l1395" class="line" id="l1395">   1395</a> &lt;a href=&quot;#l1376&quot; class=&quot;line&quot; id=&quot;l1376&quot;&gt;   1376&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-239&amp;quot; id=&amp;quot;h3-0-239&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			I += Cm * Sm;
   1415 <a href="#l1396" class="line" id="l1396">   1396</a> &lt;a href=&quot;#l1377&quot; class=&quot;line&quot; id=&quot;l1377&quot;&gt;   1377&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-240&amp;quot; id=&amp;quot;h3-0-240&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1416 <a href="#l1397" class="line" id="l1397">   1397</a> &lt;a href=&quot;#l1378&quot; class=&quot;line&quot; id=&quot;l1378&quot;&gt;   1378&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-241&amp;quot; id=&amp;quot;h3-0-241&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return max( I, vec3( 0.0 ) );
   1417 <a href="#l1398" class="line" id="l1398">   1398</a> &lt;a href=&quot;#l1379&quot; class=&quot;line&quot; id=&quot;l1379&quot;&gt;   1379&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-242&amp;quot; id=&amp;quot;h3-0-242&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1418 <a href="#l1399" class="line" id="l1399">   1399</a> &lt;a href=&quot;#l1380&quot; class=&quot;line&quot; id=&quot;l1380&quot;&gt;   1380&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-243&amp;quot; id=&amp;quot;h3-0-243&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,SF=`#ifdef USE_BUMPMAP
   1419 <a href="#l1400" class="line" id="l1400">   1400</a> &lt;a href=&quot;#l1381&quot; class=&quot;line&quot; id=&quot;l1381&quot;&gt;   1381&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-244&amp;quot; id=&amp;quot;h3-0-244&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D bumpMap;
   1420 <a href="#l1401" class="line" id="l1401">   1401</a> &lt;a href=&quot;#l1382&quot; class=&quot;line&quot; id=&quot;l1382&quot;&gt;   1382&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-245&amp;quot; id=&amp;quot;h3-0-245&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float bumpScale;
   1421 <a href="#l1402" class="line" id="l1402">   1402</a> &lt;a href=&quot;#l1383&quot; class=&quot;line&quot; id=&quot;l1383&quot;&gt;   1383&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-246&amp;quot; id=&amp;quot;h3-0-246&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 dHdxy_fwd() {
   1422 <a href="#l1403" class="line" id="l1403">   1403</a> &lt;a href=&quot;#l1384&quot; class=&quot;line&quot; id=&quot;l1384&quot;&gt;   1384&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-247&amp;quot; id=&amp;quot;h3-0-247&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 dSTdx = dFdx( vBumpMapUv );
   1423 <a href="#l1404" class="line" id="l1404">   1404</a> &lt;a href=&quot;#l1385&quot; class=&quot;line&quot; id=&quot;l1385&quot;&gt;   1385&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-248&amp;quot; id=&amp;quot;h3-0-248&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 dSTdy = dFdy( vBumpMapUv );
   1424 <a href="#l1405" class="line" id="l1405">   1405</a> &lt;a href=&quot;#l1386&quot; class=&quot;line&quot; id=&quot;l1386&quot;&gt;   1386&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-249&amp;quot; id=&amp;quot;h3-0-249&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float Hll = bumpScale * texture2D( bumpMap, vBumpMapUv ).x;
   1425 <a href="#l1406" class="line" id="l1406">   1406</a> &lt;a href=&quot;#l1387&quot; class=&quot;line&quot; id=&quot;l1387&quot;&gt;   1387&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-250&amp;quot; id=&amp;quot;h3-0-250&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dBx = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdx ).x - Hll;
   1426 <a href="#l1407" class="line" id="l1407">   1407</a> &lt;a href=&quot;#l1388&quot; class=&quot;line&quot; id=&quot;l1388&quot;&gt;   1388&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-251&amp;quot; id=&amp;quot;h3-0-251&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dBy = bumpScale * texture2D( bumpMap, vBumpMapUv + dSTdy ).x - Hll;
   1427 <a href="#l1408" class="line" id="l1408">   1408</a> &lt;a href=&quot;#l1389&quot; class=&quot;line&quot; id=&quot;l1389&quot;&gt;   1389&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-252&amp;quot; id=&amp;quot;h3-0-252&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec2( dBx, dBy );
   1428 <a href="#l1409" class="line" id="l1409">   1409</a> &lt;a href=&quot;#l1390&quot; class=&quot;line&quot; id=&quot;l1390&quot;&gt;   1390&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-253&amp;quot; id=&amp;quot;h3-0-253&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1429 <a href="#l1410" class="line" id="l1410">   1410</a> &lt;a href=&quot;#l1391&quot; class=&quot;line&quot; id=&quot;l1391&quot;&gt;   1391&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-254&amp;quot; id=&amp;quot;h3-0-254&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy, float faceDirection ) {
   1430 <a href="#l1411" class="line" id="l1411">   1411</a> &lt;a href=&quot;#l1392&quot; class=&quot;line&quot; id=&quot;l1392&quot;&gt;   1392&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-255&amp;quot; id=&amp;quot;h3-0-255&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 vSigmaX = normalize( dFdx( surf_pos.xyz ) );
   1431 <a href="#l1412" class="line" id="l1412">   1412</a> &lt;a href=&quot;#l1393&quot; class=&quot;line&quot; id=&quot;l1393&quot;&gt;   1393&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-256&amp;quot; id=&amp;quot;h3-0-256&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 vSigmaY = normalize( dFdy( surf_pos.xyz ) );
   1432 <a href="#l1413" class="line" id="l1413">   1413</a> &lt;a href=&quot;#l1394&quot; class=&quot;line&quot; id=&quot;l1394&quot;&gt;   1394&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-257&amp;quot; id=&amp;quot;h3-0-257&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 vN = surf_norm;
   1433 <a href="#l1414" class="line" id="l1414">   1414</a> &lt;a href=&quot;#l1395&quot; class=&quot;line&quot; id=&quot;l1395&quot;&gt;   1395&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-258&amp;quot; id=&amp;quot;h3-0-258&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 R1 = cross( vSigmaY, vN );
   1434 <a href="#l1415" class="line" id="l1415">   1415</a> &lt;a href=&quot;#l1396&quot; class=&quot;line&quot; id=&quot;l1396&quot;&gt;   1396&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-259&amp;quot; id=&amp;quot;h3-0-259&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 R2 = cross( vN, vSigmaX );
   1435 <a href="#l1416" class="line" id="l1416">   1416</a> &lt;a href=&quot;#l1397&quot; class=&quot;line&quot; id=&quot;l1397&quot;&gt;   1397&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-260&amp;quot; id=&amp;quot;h3-0-260&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float fDet = dot( vSigmaX, R1 ) * faceDirection;
   1436 <a href="#l1417" class="line" id="l1417">   1417</a> &lt;a href=&quot;#l1398&quot; class=&quot;line&quot; id=&quot;l1398&quot;&gt;   1398&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-261&amp;quot; id=&amp;quot;h3-0-261&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );
   1437 <a href="#l1418" class="line" id="l1418">   1418</a> &lt;a href=&quot;#l1399&quot; class=&quot;line&quot; id=&quot;l1399&quot;&gt;   1399&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-262&amp;quot; id=&amp;quot;h3-0-262&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return normalize( abs( fDet ) * surf_norm - vGrad );
   1438 <a href="#l1419" class="line" id="l1419">   1419</a> &lt;a href=&quot;#l1400&quot; class=&quot;line&quot; id=&quot;l1400&quot;&gt;   1400&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-263&amp;quot; id=&amp;quot;h3-0-263&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1439 <a href="#l1420" class="line" id="l1420">   1420</a> &lt;a href=&quot;#l1401&quot; class=&quot;line&quot; id=&quot;l1401&quot;&gt;   1401&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-264&amp;quot; id=&amp;quot;h3-0-264&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,MF=`#if NUM_CLIPPING_PLANES &amp;amp;gt; 0
   1440 <a href="#l1421" class="line" id="l1421">   1421</a> &lt;a href=&quot;#l1402&quot; class=&quot;line&quot; id=&quot;l1402&quot;&gt;   1402&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-265&amp;quot; id=&amp;quot;h3-0-265&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 plane;
   1441 <a href="#l1422" class="line" id="l1422">   1422</a> &lt;a href=&quot;#l1403&quot; class=&quot;line&quot; id=&quot;l1403&quot;&gt;   1403&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-266&amp;quot; id=&amp;quot;h3-0-266&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ALPHA_TO_COVERAGE
   1442 <a href="#l1423" class="line" id="l1423">   1423</a> &lt;a href=&quot;#l1404&quot; class=&quot;line&quot; id=&quot;l1404&quot;&gt;   1404&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-267&amp;quot; id=&amp;quot;h3-0-267&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float distanceToPlane, distanceGradient;
   1443 <a href="#l1424" class="line" id="l1424">   1424</a> &lt;a href=&quot;#l1405&quot; class=&quot;line&quot; id=&quot;l1405&quot;&gt;   1405&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-268&amp;quot; id=&amp;quot;h3-0-268&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float clipOpacity = 1.0;
   1444 <a href="#l1425" class="line" id="l1425">   1425</a> &lt;a href=&quot;#l1406&quot; class=&quot;line&quot; id=&quot;l1406&quot;&gt;   1406&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-269&amp;quot; id=&amp;quot;h3-0-269&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_start
   1445 <a href="#l1426" class="line" id="l1426">   1426</a> &lt;a href=&quot;#l1407&quot; class=&quot;line&quot; id=&quot;l1407&quot;&gt;   1407&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-270&amp;quot; id=&amp;quot;h3-0-270&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		for ( int i = 0; i &amp;amp;lt; UNION_CLIPPING_PLANES; i ++ ) {
   1446 <a href="#l1427" class="line" id="l1427">   1427</a> &lt;a href=&quot;#l1408&quot; class=&quot;line&quot; id=&quot;l1408&quot;&gt;   1408&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-271&amp;quot; id=&amp;quot;h3-0-271&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			plane = clippingPlanes[ i ];
   1447 <a href="#l1428" class="line" id="l1428">   1428</a> &lt;a href=&quot;#l1409&quot; class=&quot;line&quot; id=&quot;l1409&quot;&gt;   1409&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-272&amp;quot; id=&amp;quot;h3-0-272&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
   1448 <a href="#l1429" class="line" id="l1429">   1429</a> &lt;a href=&quot;#l1410&quot; class=&quot;line&quot; id=&quot;l1410&quot;&gt;   1410&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-273&amp;quot; id=&amp;quot;h3-0-273&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			distanceGradient = fwidth( distanceToPlane ) / 2.0;
   1449 <a href="#l1430" class="line" id="l1430">   1430</a> &lt;a href=&quot;#l1411&quot; class=&quot;line&quot; id=&quot;l1411&quot;&gt;   1411&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-274&amp;quot; id=&amp;quot;h3-0-274&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			clipOpacity *= smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
   1450 <a href="#l1431" class="line" id="l1431">   1431</a> &lt;a href=&quot;#l1412&quot; class=&quot;line&quot; id=&quot;l1412&quot;&gt;   1412&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-275&amp;quot; id=&amp;quot;h3-0-275&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( clipOpacity == 0.0 ) discard;
   1451 <a href="#l1432" class="line" id="l1432">   1432</a> &lt;a href=&quot;#l1413&quot; class=&quot;line&quot; id=&quot;l1413&quot;&gt;   1413&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-276&amp;quot; id=&amp;quot;h3-0-276&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1452 <a href="#l1433" class="line" id="l1433">   1433</a> &lt;a href=&quot;#l1414&quot; class=&quot;line&quot; id=&quot;l1414&quot;&gt;   1414&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-277&amp;quot; id=&amp;quot;h3-0-277&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_end
   1453 <a href="#l1434" class="line" id="l1434">   1434</a> &lt;a href=&quot;#l1415&quot; class=&quot;line&quot; id=&quot;l1415&quot;&gt;   1415&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-278&amp;quot; id=&amp;quot;h3-0-278&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if UNION_CLIPPING_PLANES &amp;amp;lt; NUM_CLIPPING_PLANES
   1454 <a href="#l1435" class="line" id="l1435">   1435</a> &lt;a href=&quot;#l1416&quot; class=&quot;line&quot; id=&quot;l1416&quot;&gt;   1416&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-279&amp;quot; id=&amp;quot;h3-0-279&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float unionClipOpacity = 1.0;
   1455 <a href="#l1436" class="line" id="l1436">   1436</a> &lt;a href=&quot;#l1417&quot; class=&quot;line&quot; id=&quot;l1417&quot;&gt;   1417&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-280&amp;quot; id=&amp;quot;h3-0-280&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#pragma unroll_loop_start
   1456 <a href="#l1437" class="line" id="l1437">   1437</a> &lt;a href=&quot;#l1418&quot; class=&quot;line&quot; id=&quot;l1418&quot;&gt;   1418&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-281&amp;quot; id=&amp;quot;h3-0-281&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			for ( int i = UNION_CLIPPING_PLANES; i &amp;amp;lt; NUM_CLIPPING_PLANES; i ++ ) {
   1457 <a href="#l1438" class="line" id="l1438">   1438</a> &lt;a href=&quot;#l1419&quot; class=&quot;line&quot; id=&quot;l1419&quot;&gt;   1419&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-282&amp;quot; id=&amp;quot;h3-0-282&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				plane = clippingPlanes[ i ];
   1458 <a href="#l1439" class="line" id="l1439">   1439</a> &lt;a href=&quot;#l1420&quot; class=&quot;line&quot; id=&quot;l1420&quot;&gt;   1420&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-283&amp;quot; id=&amp;quot;h3-0-283&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				distanceToPlane = - dot( vClipPosition, plane.xyz ) + plane.w;
   1459 <a href="#l1440" class="line" id="l1440">   1440</a> &lt;a href=&quot;#l1421&quot; class=&quot;line&quot; id=&quot;l1421&quot;&gt;   1421&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-284&amp;quot; id=&amp;quot;h3-0-284&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				distanceGradient = fwidth( distanceToPlane ) / 2.0;
   1460 <a href="#l1441" class="line" id="l1441">   1441</a> &lt;a href=&quot;#l1422&quot; class=&quot;line&quot; id=&quot;l1422&quot;&gt;   1422&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-285&amp;quot; id=&amp;quot;h3-0-285&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				unionClipOpacity *= 1.0 - smoothstep( - distanceGradient, distanceGradient, distanceToPlane );
   1461 <a href="#l1442" class="line" id="l1442">   1442</a> &lt;a href=&quot;#l1423&quot; class=&quot;line&quot; id=&quot;l1423&quot;&gt;   1423&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-286&amp;quot; id=&amp;quot;h3-0-286&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			}
   1462 <a href="#l1443" class="line" id="l1443">   1443</a> &lt;a href=&quot;#l1424&quot; class=&quot;line&quot; id=&quot;l1424&quot;&gt;   1424&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-287&amp;quot; id=&amp;quot;h3-0-287&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#pragma unroll_loop_end
   1463 <a href="#l1444" class="line" id="l1444">   1444</a> &lt;a href=&quot;#l1425&quot; class=&quot;line&quot; id=&quot;l1425&quot;&gt;   1425&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-288&amp;quot; id=&amp;quot;h3-0-288&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			clipOpacity *= 1.0 - unionClipOpacity;
   1464 <a href="#l1445" class="line" id="l1445">   1445</a> &lt;a href=&quot;#l1426&quot; class=&quot;line&quot; id=&quot;l1426&quot;&gt;   1426&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-289&amp;quot; id=&amp;quot;h3-0-289&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   1465 <a href="#l1446" class="line" id="l1446">   1446</a> &lt;a href=&quot;#l1427&quot; class=&quot;line&quot; id=&quot;l1427&quot;&gt;   1427&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-290&amp;quot; id=&amp;quot;h3-0-290&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		diffuseColor.a *= clipOpacity;
   1466 <a href="#l1447" class="line" id="l1447">   1447</a> &lt;a href=&quot;#l1428&quot; class=&quot;line&quot; id=&quot;l1428&quot;&gt;   1428&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-291&amp;quot; id=&amp;quot;h3-0-291&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( diffuseColor.a == 0.0 ) discard;
   1467 <a href="#l1448" class="line" id="l1448">   1448</a> &lt;a href=&quot;#l1429&quot; class=&quot;line&quot; id=&quot;l1429&quot;&gt;   1429&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-292&amp;quot; id=&amp;quot;h3-0-292&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1468 <a href="#l1449" class="line" id="l1449">   1449</a> &lt;a href=&quot;#l1430&quot; class=&quot;line&quot; id=&quot;l1430&quot;&gt;   1430&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-293&amp;quot; id=&amp;quot;h3-0-293&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_start
   1469 <a href="#l1450" class="line" id="l1450">   1450</a> &lt;a href=&quot;#l1431&quot; class=&quot;line&quot; id=&quot;l1431&quot;&gt;   1431&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-294&amp;quot; id=&amp;quot;h3-0-294&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		for ( int i = 0; i &amp;amp;lt; UNION_CLIPPING_PLANES; i ++ ) {
   1470 <a href="#l1451" class="line" id="l1451">   1451</a> &lt;a href=&quot;#l1432&quot; class=&quot;line&quot; id=&quot;l1432&quot;&gt;   1432&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-295&amp;quot; id=&amp;quot;h3-0-295&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			plane = clippingPlanes[ i ];
   1471 <a href="#l1452" class="line" id="l1452">   1452</a> &lt;a href=&quot;#l1433&quot; class=&quot;line&quot; id=&quot;l1433&quot;&gt;   1433&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-296&amp;quot; id=&amp;quot;h3-0-296&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( dot( vClipPosition, plane.xyz ) &amp;amp;gt; plane.w ) discard;
   1472 <a href="#l1453" class="line" id="l1453">   1453</a> &lt;a href=&quot;#l1434&quot; class=&quot;line&quot; id=&quot;l1434&quot;&gt;   1434&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-297&amp;quot; id=&amp;quot;h3-0-297&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1473 <a href="#l1454" class="line" id="l1454">   1454</a> &lt;a href=&quot;#l1435&quot; class=&quot;line&quot; id=&quot;l1435&quot;&gt;   1435&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-298&amp;quot; id=&amp;quot;h3-0-298&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_end
   1474 <a href="#l1455" class="line" id="l1455">   1455</a> &lt;a href=&quot;#l1436&quot; class=&quot;line&quot; id=&quot;l1436&quot;&gt;   1436&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-299&amp;quot; id=&amp;quot;h3-0-299&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if UNION_CLIPPING_PLANES &amp;amp;lt; NUM_CLIPPING_PLANES
   1475 <a href="#l1456" class="line" id="l1456">   1456</a> &lt;a href=&quot;#l1437&quot; class=&quot;line&quot; id=&quot;l1437&quot;&gt;   1437&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-300&amp;quot; id=&amp;quot;h3-0-300&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			bool clipped = true;
   1476 <a href="#l1457" class="line" id="l1457">   1457</a> &lt;a href=&quot;#l1438&quot; class=&quot;line&quot; id=&quot;l1438&quot;&gt;   1438&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-301&amp;quot; id=&amp;quot;h3-0-301&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#pragma unroll_loop_start
   1477 <a href="#l1458" class="line" id="l1458">   1458</a> &lt;a href=&quot;#l1439&quot; class=&quot;line&quot; id=&quot;l1439&quot;&gt;   1439&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-302&amp;quot; id=&amp;quot;h3-0-302&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			for ( int i = UNION_CLIPPING_PLANES; i &amp;amp;lt; NUM_CLIPPING_PLANES; i ++ ) {
   1478 <a href="#l1459" class="line" id="l1459">   1459</a> &lt;a href=&quot;#l1440&quot; class=&quot;line&quot; id=&quot;l1440&quot;&gt;   1440&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-303&amp;quot; id=&amp;quot;h3-0-303&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				plane = clippingPlanes[ i ];
   1479 <a href="#l1460" class="line" id="l1460">   1460</a> &lt;a href=&quot;#l1441&quot; class=&quot;line&quot; id=&quot;l1441&quot;&gt;   1441&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-304&amp;quot; id=&amp;quot;h3-0-304&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				clipped = ( dot( vClipPosition, plane.xyz ) &amp;amp;gt; plane.w ) &amp;amp;amp;&amp;amp;amp; clipped;
   1480 <a href="#l1461" class="line" id="l1461">   1461</a> &lt;a href=&quot;#l1442&quot; class=&quot;line&quot; id=&quot;l1442&quot;&gt;   1442&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-305&amp;quot; id=&amp;quot;h3-0-305&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			}
   1481 <a href="#l1462" class="line" id="l1462">   1462</a> &lt;a href=&quot;#l1443&quot; class=&quot;line&quot; id=&quot;l1443&quot;&gt;   1443&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-306&amp;quot; id=&amp;quot;h3-0-306&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#pragma unroll_loop_end
   1482 <a href="#l1463" class="line" id="l1463">   1463</a> &lt;a href=&quot;#l1444&quot; class=&quot;line&quot; id=&quot;l1444&quot;&gt;   1444&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-307&amp;quot; id=&amp;quot;h3-0-307&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( clipped ) discard;
   1483 <a href="#l1464" class="line" id="l1464">   1464</a> &lt;a href=&quot;#l1445&quot; class=&quot;line&quot; id=&quot;l1445&quot;&gt;   1445&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-308&amp;quot; id=&amp;quot;h3-0-308&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   1484 <a href="#l1465" class="line" id="l1465">   1465</a> &lt;a href=&quot;#l1446&quot; class=&quot;line&quot; id=&quot;l1446&quot;&gt;   1446&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-309&amp;quot; id=&amp;quot;h3-0-309&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1485 <a href="#l1466" class="line" id="l1466">   1466</a> &lt;a href=&quot;#l1447&quot; class=&quot;line&quot; id=&quot;l1447&quot;&gt;   1447&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-310&amp;quot; id=&amp;quot;h3-0-310&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,EF=`#if NUM_CLIPPING_PLANES &amp;amp;gt; 0
   1486 <a href="#l1467" class="line" id="l1467">   1467</a> &lt;a href=&quot;#l1448&quot; class=&quot;line&quot; id=&quot;l1448&quot;&gt;   1448&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-311&amp;quot; id=&amp;quot;h3-0-311&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vClipPosition;
   1487 <a href="#l1468" class="line" id="l1468">   1468</a> &lt;a href=&quot;#l1449&quot; class=&quot;line&quot; id=&quot;l1449&quot;&gt;   1449&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-312&amp;quot; id=&amp;quot;h3-0-312&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];
   1488 <a href="#l1469" class="line" id="l1469">   1469</a> &lt;a href=&quot;#l1450&quot; class=&quot;line&quot; id=&quot;l1450&quot;&gt;   1450&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-313&amp;quot; id=&amp;quot;h3-0-313&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,bF=`#if NUM_CLIPPING_PLANES &amp;amp;gt; 0
   1489 <a href="#l1470" class="line" id="l1470">   1470</a> &lt;a href=&quot;#l1451&quot; class=&quot;line&quot; id=&quot;l1451&quot;&gt;   1451&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-314&amp;quot; id=&amp;quot;h3-0-314&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vClipPosition;
   1490 <a href="#l1471" class="line" id="l1471">   1471</a> &lt;a href=&quot;#l1452&quot; class=&quot;line&quot; id=&quot;l1452&quot;&gt;   1452&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-315&amp;quot; id=&amp;quot;h3-0-315&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,TF=`#if NUM_CLIPPING_PLANES &amp;amp;gt; 0
   1491 <a href="#l1472" class="line" id="l1472">   1472</a> &lt;a href=&quot;#l1453&quot; class=&quot;line&quot; id=&quot;l1453&quot;&gt;   1453&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-316&amp;quot; id=&amp;quot;h3-0-316&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vClipPosition = - mvPosition.xyz;
   1492 <a href="#l1473" class="line" id="l1473">   1473</a> &lt;a href=&quot;#l1454&quot; class=&quot;line&quot; id=&quot;l1454&quot;&gt;   1454&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-317&amp;quot; id=&amp;quot;h3-0-317&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,AF=`#if defined( USE_COLOR_ALPHA )
   1493 <a href="#l1474" class="line" id="l1474">   1474</a> &lt;a href=&quot;#l1455&quot; class=&quot;line&quot; id=&quot;l1455&quot;&gt;   1455&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-318&amp;quot; id=&amp;quot;h3-0-318&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	diffuseColor *= vColor;
   1494 <a href="#l1475" class="line" id="l1475">   1475</a> &lt;a href=&quot;#l1456&quot; class=&quot;line&quot; id=&quot;l1456&quot;&gt;   1456&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-319&amp;quot; id=&amp;quot;h3-0-319&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#elif defined( USE_COLOR )
   1495 <a href="#l1476" class="line" id="l1476">   1476</a> &lt;a href=&quot;#l1457&quot; class=&quot;line&quot; id=&quot;l1457&quot;&gt;   1457&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-320&amp;quot; id=&amp;quot;h3-0-320&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	diffuseColor.rgb *= vColor;
   1496 <a href="#l1477" class="line" id="l1477">   1477</a> &lt;a href=&quot;#l1458&quot; class=&quot;line&quot; id=&quot;l1458&quot;&gt;   1458&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-321&amp;quot; id=&amp;quot;h3-0-321&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,RF=`#if defined( USE_COLOR_ALPHA )
   1497 <a href="#l1478" class="line" id="l1478">   1478</a> &lt;a href=&quot;#l1459&quot; class=&quot;line&quot; id=&quot;l1459&quot;&gt;   1459&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-322&amp;quot; id=&amp;quot;h3-0-322&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec4 vColor;
   1498 <a href="#l1479" class="line" id="l1479">   1479</a> &lt;a href=&quot;#l1460&quot; class=&quot;line&quot; id=&quot;l1460&quot;&gt;   1460&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-323&amp;quot; id=&amp;quot;h3-0-323&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#elif defined( USE_COLOR )
   1499 <a href="#l1480" class="line" id="l1480">   1480</a> &lt;a href=&quot;#l1461&quot; class=&quot;line&quot; id=&quot;l1461&quot;&gt;   1461&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-324&amp;quot; id=&amp;quot;h3-0-324&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vColor;
   1500 <a href="#l1481" class="line" id="l1481">   1481</a> &lt;a href=&quot;#l1462&quot; class=&quot;line&quot; id=&quot;l1462&quot;&gt;   1462&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-325&amp;quot; id=&amp;quot;h3-0-325&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,CF=`#if defined( USE_COLOR_ALPHA )
   1501 <a href="#l1482" class="line" id="l1482">   1482</a> &lt;a href=&quot;#l1463&quot; class=&quot;line&quot; id=&quot;l1463&quot;&gt;   1463&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-326&amp;quot; id=&amp;quot;h3-0-326&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec4 vColor;
   1502 <a href="#l1483" class="line" id="l1483">   1483</a> &lt;a href=&quot;#l1464&quot; class=&quot;line&quot; id=&quot;l1464&quot;&gt;   1464&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-327&amp;quot; id=&amp;quot;h3-0-327&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
   1503 <a href="#l1484" class="line" id="l1484">   1484</a> &lt;a href=&quot;#l1465&quot; class=&quot;line&quot; id=&quot;l1465&quot;&gt;   1465&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-328&amp;quot; id=&amp;quot;h3-0-328&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vColor;
   1504 <a href="#l1485" class="line" id="l1485">   1485</a> &lt;a href=&quot;#l1466&quot; class=&quot;line&quot; id=&quot;l1466&quot;&gt;   1466&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-329&amp;quot; id=&amp;quot;h3-0-329&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,wF=`#if defined( USE_COLOR_ALPHA )
   1505 <a href="#l1486" class="line" id="l1486">   1486</a> &lt;a href=&quot;#l1467&quot; class=&quot;line&quot; id=&quot;l1467&quot;&gt;   1467&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-330&amp;quot; id=&amp;quot;h3-0-330&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vColor = vec4( 1.0 );
   1506 <a href="#l1487" class="line" id="l1487">   1487</a> &lt;a href=&quot;#l1468&quot; class=&quot;line&quot; id=&quot;l1468&quot;&gt;   1468&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-331&amp;quot; id=&amp;quot;h3-0-331&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#elif defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR ) || defined( USE_BATCHING_COLOR )
   1507 <a href="#l1488" class="line" id="l1488">   1488</a> &lt;a href=&quot;#l1469&quot; class=&quot;line&quot; id=&quot;l1469&quot;&gt;   1469&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-332&amp;quot; id=&amp;quot;h3-0-332&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vColor = vec3( 1.0 );
   1508 <a href="#l1489" class="line" id="l1489">   1489</a> &lt;a href=&quot;#l1470&quot; class=&quot;line&quot; id=&quot;l1470&quot;&gt;   1470&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-333&amp;quot; id=&amp;quot;h3-0-333&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1509 <a href="#l1490" class="line" id="l1490">   1490</a> &lt;a href=&quot;#l1471&quot; class=&quot;line&quot; id=&quot;l1471&quot;&gt;   1471&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-334&amp;quot; id=&amp;quot;h3-0-334&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_COLOR
   1510 <a href="#l1491" class="line" id="l1491">   1491</a> &lt;a href=&quot;#l1472&quot; class=&quot;line&quot; id=&quot;l1472&quot;&gt;   1472&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-335&amp;quot; id=&amp;quot;h3-0-335&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vColor *= color;
   1511 <a href="#l1492" class="line" id="l1492">   1492</a> &lt;a href=&quot;#l1473&quot; class=&quot;line&quot; id=&quot;l1473&quot;&gt;   1473&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-336&amp;quot; id=&amp;quot;h3-0-336&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1512 <a href="#l1493" class="line" id="l1493">   1493</a> &lt;a href=&quot;#l1474&quot; class=&quot;line&quot; id=&quot;l1474&quot;&gt;   1474&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-337&amp;quot; id=&amp;quot;h3-0-337&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_INSTANCING_COLOR
   1513 <a href="#l1494" class="line" id="l1494">   1494</a> &lt;a href=&quot;#l1475&quot; class=&quot;line&quot; id=&quot;l1475&quot;&gt;   1475&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-338&amp;quot; id=&amp;quot;h3-0-338&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vColor.xyz *= instanceColor.xyz;
   1514 <a href="#l1495" class="line" id="l1495">   1495</a> &lt;a href=&quot;#l1476&quot; class=&quot;line&quot; id=&quot;l1476&quot;&gt;   1476&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-339&amp;quot; id=&amp;quot;h3-0-339&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1515 <a href="#l1496" class="line" id="l1496">   1496</a> &lt;a href=&quot;#l1477&quot; class=&quot;line&quot; id=&quot;l1477&quot;&gt;   1477&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-340&amp;quot; id=&amp;quot;h3-0-340&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_BATCHING_COLOR
   1516 <a href="#l1497" class="line" id="l1497">   1497</a> &lt;a href=&quot;#l1478&quot; class=&quot;line&quot; id=&quot;l1478&quot;&gt;   1478&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-341&amp;quot; id=&amp;quot;h3-0-341&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 batchingColor = getBatchingColor( getIndirectIndex( gl_DrawID ) );
   1517 <a href="#l1498" class="line" id="l1498">   1498</a> &lt;a href=&quot;#l1479&quot; class=&quot;line&quot; id=&quot;l1479&quot;&gt;   1479&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-342&amp;quot; id=&amp;quot;h3-0-342&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vColor.xyz *= batchingColor.xyz;
   1518 <a href="#l1499" class="line" id="l1499">   1499</a> &lt;a href=&quot;#l1480&quot; class=&quot;line&quot; id=&quot;l1480&quot;&gt;   1480&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-343&amp;quot; id=&amp;quot;h3-0-343&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,DF=`#define PI 3.141592653589793
   1519 <a href="#l1500" class="line" id="l1500">   1500</a> &lt;a href=&quot;#l1481&quot; class=&quot;line&quot; id=&quot;l1481&quot;&gt;   1481&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-344&amp;quot; id=&amp;quot;h3-0-344&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define PI2 6.283185307179586
   1520 <a href="#l1501" class="line" id="l1501">   1501</a> &lt;a href=&quot;#l1482&quot; class=&quot;line&quot; id=&quot;l1482&quot;&gt;   1482&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-345&amp;quot; id=&amp;quot;h3-0-345&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define PI_HALF 1.5707963267948966
   1521 <a href="#l1502" class="line" id="l1502">   1502</a> &lt;a href=&quot;#l1483&quot; class=&quot;line&quot; id=&quot;l1483&quot;&gt;   1483&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-346&amp;quot; id=&amp;quot;h3-0-346&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RECIPROCAL_PI 0.3183098861837907
   1522 <a href="#l1503" class="line" id="l1503">   1503</a> &lt;a href=&quot;#l1484&quot; class=&quot;line&quot; id=&quot;l1484&quot;&gt;   1484&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-347&amp;quot; id=&amp;quot;h3-0-347&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RECIPROCAL_PI2 0.15915494309189535
   1523 <a href="#l1504" class="line" id="l1504">   1504</a> &lt;a href=&quot;#l1485&quot; class=&quot;line&quot; id=&quot;l1485&quot;&gt;   1485&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-348&amp;quot; id=&amp;quot;h3-0-348&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define EPSILON 1e-6
   1524 <a href="#l1505" class="line" id="l1505">   1505</a> &lt;a href=&quot;#l1486&quot; class=&quot;line&quot; id=&quot;l1486&quot;&gt;   1486&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-349&amp;quot; id=&amp;quot;h3-0-349&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifndef saturate
   1525 <a href="#l1506" class="line" id="l1506">   1506</a> &lt;a href=&quot;#l1487&quot; class=&quot;line&quot; id=&quot;l1487&quot;&gt;   1487&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-350&amp;quot; id=&amp;quot;h3-0-350&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define saturate( a ) clamp( a, 0.0, 1.0 )
   1526 <a href="#l1507" class="line" id="l1507">   1507</a> &lt;a href=&quot;#l1488&quot; class=&quot;line&quot; id=&quot;l1488&quot;&gt;   1488&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-351&amp;quot; id=&amp;quot;h3-0-351&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1527 <a href="#l1508" class="line" id="l1508">   1508</a> &lt;a href=&quot;#l1489&quot; class=&quot;line&quot; id=&quot;l1489&quot;&gt;   1489&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-352&amp;quot; id=&amp;quot;h3-0-352&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define whiteComplement( a ) ( 1.0 - saturate( a ) )
   1528 <a href="#l1509" class="line" id="l1509">   1509</a> &lt;a href=&quot;#l1490&quot; class=&quot;line&quot; id=&quot;l1490&quot;&gt;   1490&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-353&amp;quot; id=&amp;quot;h3-0-353&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float pow2( const in float x ) { return x*x; }
   1529 <a href="#l1510" class="line" id="l1510">   1510</a> &lt;a href=&quot;#l1491&quot; class=&quot;line&quot; id=&quot;l1491&quot;&gt;   1491&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-354&amp;quot; id=&amp;quot;h3-0-354&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 pow2( const in vec3 x ) { return x*x; }
   1530 <a href="#l1511" class="line" id="l1511">   1511</a> &lt;a href=&quot;#l1492&quot; class=&quot;line&quot; id=&quot;l1492&quot;&gt;   1492&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-355&amp;quot; id=&amp;quot;h3-0-355&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float pow3( const in float x ) { return x*x*x; }
   1531 <a href="#l1512" class="line" id="l1512">   1512</a> &lt;a href=&quot;#l1493&quot; class=&quot;line&quot; id=&quot;l1493&quot;&gt;   1493&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-356&amp;quot; id=&amp;quot;h3-0-356&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float pow4( const in float x ) { float x2 = x*x; return x2*x2; }
   1532 <a href="#l1513" class="line" id="l1513">   1513</a> &lt;a href=&quot;#l1494&quot; class=&quot;line&quot; id=&quot;l1494&quot;&gt;   1494&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-357&amp;quot; id=&amp;quot;h3-0-357&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float max3( const in vec3 v ) { return max( max( v.x, v.y ), v.z ); }
   1533 <a href="#l1514" class="line" id="l1514">   1514</a> &lt;a href=&quot;#l1495&quot; class=&quot;line&quot; id=&quot;l1495&quot;&gt;   1495&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-358&amp;quot; id=&amp;quot;h3-0-358&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float average( const in vec3 v ) { return dot( v, vec3( 0.3333333 ) ); }
   1534 <a href="#l1515" class="line" id="l1515">   1515</a> &lt;a href=&quot;#l1496&quot; class=&quot;line&quot; id=&quot;l1496&quot;&gt;   1496&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-359&amp;quot; id=&amp;quot;h3-0-359&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+highp float rand( const in vec2 uv ) {
   1535 <a href="#l1516" class="line" id="l1516">   1516</a> &lt;a href=&quot;#l1497&quot; class=&quot;line&quot; id=&quot;l1497&quot;&gt;   1497&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-360&amp;quot; id=&amp;quot;h3-0-360&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const highp float a = 12.9898, b = 78.233, c = 43758.5453;
   1536 <a href="#l1517" class="line" id="l1517">   1517</a> &lt;a href=&quot;#l1498&quot; class=&quot;line&quot; id=&quot;l1498&quot;&gt;   1498&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-361&amp;quot; id=&amp;quot;h3-0-361&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	highp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );
   1537 <a href="#l1518" class="line" id="l1518">   1518</a> &lt;a href=&quot;#l1499&quot; class=&quot;line&quot; id=&quot;l1499&quot;&gt;   1499&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-362&amp;quot; id=&amp;quot;h3-0-362&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return fract( sin( sn ) * c );
   1538 <a href="#l1519" class="line" id="l1519">   1519</a> &lt;a href=&quot;#l1500&quot; class=&quot;line&quot; id=&quot;l1500&quot;&gt;   1500&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-363&amp;quot; id=&amp;quot;h3-0-363&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1539 <a href="#l1520" class="line" id="l1520">   1520</a> &lt;a href=&quot;#l1501&quot; class=&quot;line&quot; id=&quot;l1501&quot;&gt;   1501&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-364&amp;quot; id=&amp;quot;h3-0-364&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef HIGH_PRECISION
   1540 <a href="#l1521" class="line" id="l1521">   1521</a> &lt;a href=&quot;#l1502&quot; class=&quot;line&quot; id=&quot;l1502&quot;&gt;   1502&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-365&amp;quot; id=&amp;quot;h3-0-365&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float precisionSafeLength( vec3 v ) { return length( v ); }
   1541 <a href="#l1522" class="line" id="l1522">   1522</a> &lt;a href=&quot;#l1503&quot; class=&quot;line&quot; id=&quot;l1503&quot;&gt;   1503&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-366&amp;quot; id=&amp;quot;h3-0-366&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   1542 <a href="#l1523" class="line" id="l1523">   1523</a> &lt;a href=&quot;#l1504&quot; class=&quot;line&quot; id=&quot;l1504&quot;&gt;   1504&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-367&amp;quot; id=&amp;quot;h3-0-367&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float precisionSafeLength( vec3 v ) {
   1543 <a href="#l1524" class="line" id="l1524">   1524</a> &lt;a href=&quot;#l1505&quot; class=&quot;line&quot; id=&quot;l1505&quot;&gt;   1505&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-368&amp;quot; id=&amp;quot;h3-0-368&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float maxComponent = max3( abs( v ) );
   1544 <a href="#l1525" class="line" id="l1525">   1525</a> &lt;a href=&quot;#l1506&quot; class=&quot;line&quot; id=&quot;l1506&quot;&gt;   1506&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-369&amp;quot; id=&amp;quot;h3-0-369&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return length( v / maxComponent ) * maxComponent;
   1545 <a href="#l1526" class="line" id="l1526">   1526</a> &lt;a href=&quot;#l1507&quot; class=&quot;line&quot; id=&quot;l1507&quot;&gt;   1507&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-370&amp;quot; id=&amp;quot;h3-0-370&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1546 <a href="#l1527" class="line" id="l1527">   1527</a> &lt;a href=&quot;#l1508&quot; class=&quot;line&quot; id=&quot;l1508&quot;&gt;   1508&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-371&amp;quot; id=&amp;quot;h3-0-371&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1547 <a href="#l1528" class="line" id="l1528">   1528</a> &lt;a href=&quot;#l1509&quot; class=&quot;line&quot; id=&quot;l1509&quot;&gt;   1509&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-372&amp;quot; id=&amp;quot;h3-0-372&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct IncidentLight {
   1548 <a href="#l1529" class="line" id="l1529">   1529</a> &lt;a href=&quot;#l1510&quot; class=&quot;line&quot; id=&quot;l1510&quot;&gt;   1510&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-373&amp;quot; id=&amp;quot;h3-0-373&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 color;
   1549 <a href="#l1530" class="line" id="l1530">   1530</a> &lt;a href=&quot;#l1511&quot; class=&quot;line&quot; id=&quot;l1511&quot;&gt;   1511&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-374&amp;quot; id=&amp;quot;h3-0-374&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 direction;
   1550 <a href="#l1531" class="line" id="l1531">   1531</a> &lt;a href=&quot;#l1512&quot; class=&quot;line&quot; id=&quot;l1512&quot;&gt;   1512&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-375&amp;quot; id=&amp;quot;h3-0-375&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	bool visible;
   1551 <a href="#l1532" class="line" id="l1532">   1532</a> &lt;a href=&quot;#l1513&quot; class=&quot;line&quot; id=&quot;l1513&quot;&gt;   1513&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-376&amp;quot; id=&amp;quot;h3-0-376&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   1552 <a href="#l1533" class="line" id="l1533">   1533</a> &lt;a href=&quot;#l1514&quot; class=&quot;line&quot; id=&quot;l1514&quot;&gt;   1514&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-377&amp;quot; id=&amp;quot;h3-0-377&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct ReflectedLight {
   1553 <a href="#l1534" class="line" id="l1534">   1534</a> &lt;a href=&quot;#l1515&quot; class=&quot;line&quot; id=&quot;l1515&quot;&gt;   1515&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-378&amp;quot; id=&amp;quot;h3-0-378&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 directDiffuse;
   1554 <a href="#l1535" class="line" id="l1535">   1535</a> &lt;a href=&quot;#l1516&quot; class=&quot;line&quot; id=&quot;l1516&quot;&gt;   1516&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-379&amp;quot; id=&amp;quot;h3-0-379&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 directSpecular;
   1555 <a href="#l1536" class="line" id="l1536">   1536</a> &lt;a href=&quot;#l1517&quot; class=&quot;line&quot; id=&quot;l1517&quot;&gt;   1517&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-380&amp;quot; id=&amp;quot;h3-0-380&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 indirectDiffuse;
   1556 <a href="#l1537" class="line" id="l1537">   1537</a> &lt;a href=&quot;#l1518&quot; class=&quot;line&quot; id=&quot;l1518&quot;&gt;   1518&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-381&amp;quot; id=&amp;quot;h3-0-381&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 indirectSpecular;
   1557 <a href="#l1538" class="line" id="l1538">   1538</a> &lt;a href=&quot;#l1519&quot; class=&quot;line&quot; id=&quot;l1519&quot;&gt;   1519&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-382&amp;quot; id=&amp;quot;h3-0-382&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   1558 <a href="#l1539" class="line" id="l1539">   1539</a> &lt;a href=&quot;#l1520&quot; class=&quot;line&quot; id=&quot;l1520&quot;&gt;   1520&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-383&amp;quot; id=&amp;quot;h3-0-383&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ALPHAHASH
   1559 <a href="#l1540" class="line" id="l1540">   1540</a> &lt;a href=&quot;#l1521&quot; class=&quot;line&quot; id=&quot;l1521&quot;&gt;   1521&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-384&amp;quot; id=&amp;quot;h3-0-384&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vPosition;
   1560 <a href="#l1541" class="line" id="l1541">   1541</a> &lt;a href=&quot;#l1522&quot; class=&quot;line&quot; id=&quot;l1522&quot;&gt;   1522&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-385&amp;quot; id=&amp;quot;h3-0-385&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1561 <a href="#l1542" class="line" id="l1542">   1542</a> &lt;a href=&quot;#l1523&quot; class=&quot;line&quot; id=&quot;l1523&quot;&gt;   1523&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-386&amp;quot; id=&amp;quot;h3-0-386&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 transformDirection( in vec3 dir, in mat4 matrix ) {
   1562 <a href="#l1543" class="line" id="l1543">   1543</a> &lt;a href=&quot;#l1524&quot; class=&quot;line&quot; id=&quot;l1524&quot;&gt;   1524&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-387&amp;quot; id=&amp;quot;h3-0-387&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );
   1563 <a href="#l1544" class="line" id="l1544">   1544</a> &lt;a href=&quot;#l1525&quot; class=&quot;line&quot; id=&quot;l1525&quot;&gt;   1525&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-388&amp;quot; id=&amp;quot;h3-0-388&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1564 <a href="#l1545" class="line" id="l1545">   1545</a> &lt;a href=&quot;#l1526&quot; class=&quot;line&quot; id=&quot;l1526&quot;&gt;   1526&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-389&amp;quot; id=&amp;quot;h3-0-389&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {
   1565 <a href="#l1546" class="line" id="l1546">   1546</a> &lt;a href=&quot;#l1527&quot; class=&quot;line&quot; id=&quot;l1527&quot;&gt;   1527&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-390&amp;quot; id=&amp;quot;h3-0-390&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );
   1566 <a href="#l1547" class="line" id="l1547">   1547</a> &lt;a href=&quot;#l1528&quot; class=&quot;line&quot; id=&quot;l1528&quot;&gt;   1528&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-391&amp;quot; id=&amp;quot;h3-0-391&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1567 <a href="#l1548" class="line" id="l1548">   1548</a> &lt;a href=&quot;#l1529&quot; class=&quot;line&quot; id=&quot;l1529&quot;&gt;   1529&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-392&amp;quot; id=&amp;quot;h3-0-392&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+mat3 transposeMat3( const in mat3 m ) {
   1568 <a href="#l1549" class="line" id="l1549">   1549</a> &lt;a href=&quot;#l1530&quot; class=&quot;line&quot; id=&quot;l1530&quot;&gt;   1530&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-393&amp;quot; id=&amp;quot;h3-0-393&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat3 tmp;
   1569 <a href="#l1550" class="line" id="l1550">   1550</a> &lt;a href=&quot;#l1531&quot; class=&quot;line&quot; id=&quot;l1531&quot;&gt;   1531&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-394&amp;quot; id=&amp;quot;h3-0-394&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	tmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );
   1570 <a href="#l1551" class="line" id="l1551">   1551</a> &lt;a href=&quot;#l1532&quot; class=&quot;line&quot; id=&quot;l1532&quot;&gt;   1532&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-395&amp;quot; id=&amp;quot;h3-0-395&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	tmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );
   1571 <a href="#l1552" class="line" id="l1552">   1552</a> &lt;a href=&quot;#l1533&quot; class=&quot;line&quot; id=&quot;l1533&quot;&gt;   1533&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-396&amp;quot; id=&amp;quot;h3-0-396&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	tmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );
   1572 <a href="#l1553" class="line" id="l1553">   1553</a> &lt;a href=&quot;#l1534&quot; class=&quot;line&quot; id=&quot;l1534&quot;&gt;   1534&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-397&amp;quot; id=&amp;quot;h3-0-397&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return tmp;
   1573 <a href="#l1554" class="line" id="l1554">   1554</a> &lt;a href=&quot;#l1535&quot; class=&quot;line&quot; id=&quot;l1535&quot;&gt;   1535&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-398&amp;quot; id=&amp;quot;h3-0-398&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1574 <a href="#l1555" class="line" id="l1555">   1555</a> &lt;a href=&quot;#l1536&quot; class=&quot;line&quot; id=&quot;l1536&quot;&gt;   1536&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-399&amp;quot; id=&amp;quot;h3-0-399&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+bool isPerspectiveMatrix( mat4 m ) {
   1575 <a href="#l1556" class="line" id="l1556">   1556</a> &lt;a href=&quot;#l1537&quot; class=&quot;line&quot; id=&quot;l1537&quot;&gt;   1537&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-400&amp;quot; id=&amp;quot;h3-0-400&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return m[ 2 ][ 3 ] == - 1.0;
   1576 <a href="#l1557" class="line" id="l1557">   1557</a> &lt;a href=&quot;#l1538&quot; class=&quot;line&quot; id=&quot;l1538&quot;&gt;   1538&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-401&amp;quot; id=&amp;quot;h3-0-401&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1577 <a href="#l1558" class="line" id="l1558">   1558</a> &lt;a href=&quot;#l1539&quot; class=&quot;line&quot; id=&quot;l1539&quot;&gt;   1539&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-402&amp;quot; id=&amp;quot;h3-0-402&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 equirectUv( in vec3 dir ) {
   1578 <a href="#l1559" class="line" id="l1559">   1559</a> &lt;a href=&quot;#l1540&quot; class=&quot;line&quot; id=&quot;l1540&quot;&gt;   1540&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-403&amp;quot; id=&amp;quot;h3-0-403&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;
   1579 <a href="#l1560" class="line" id="l1560">   1560</a> &lt;a href=&quot;#l1541&quot; class=&quot;line&quot; id=&quot;l1541&quot;&gt;   1541&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-404&amp;quot; id=&amp;quot;h3-0-404&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;
   1580 <a href="#l1561" class="line" id="l1561">   1561</a> &lt;a href=&quot;#l1542&quot; class=&quot;line&quot; id=&quot;l1542&quot;&gt;   1542&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-405&amp;quot; id=&amp;quot;h3-0-405&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec2( u, v );
   1581 <a href="#l1562" class="line" id="l1562">   1562</a> &lt;a href=&quot;#l1543&quot; class=&quot;line&quot; id=&quot;l1543&quot;&gt;   1543&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-406&amp;quot; id=&amp;quot;h3-0-406&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1582 <a href="#l1563" class="line" id="l1563">   1563</a> &lt;a href=&quot;#l1544&quot; class=&quot;line&quot; id=&quot;l1544&quot;&gt;   1544&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-407&amp;quot; id=&amp;quot;h3-0-407&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 BRDF_Lambert( const in vec3 diffuseColor ) {
   1583 <a href="#l1564" class="line" id="l1564">   1564</a> &lt;a href=&quot;#l1545&quot; class=&quot;line&quot; id=&quot;l1545&quot;&gt;   1545&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-408&amp;quot; id=&amp;quot;h3-0-408&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return RECIPROCAL_PI * diffuseColor;
   1584 <a href="#l1565" class="line" id="l1565">   1565</a> &lt;a href=&quot;#l1546&quot; class=&quot;line&quot; id=&quot;l1546&quot;&gt;   1546&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-409&amp;quot; id=&amp;quot;h3-0-409&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1585 <a href="#l1566" class="line" id="l1566">   1566</a> &lt;a href=&quot;#l1547&quot; class=&quot;line&quot; id=&quot;l1547&quot;&gt;   1547&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-410&amp;quot; id=&amp;quot;h3-0-410&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 F_Schlick( const in vec3 f0, const in float f90, const in float dotVH ) {
   1586 <a href="#l1567" class="line" id="l1567">   1567</a> &lt;a href=&quot;#l1548&quot; class=&quot;line&quot; id=&quot;l1548&quot;&gt;   1548&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-411&amp;quot; id=&amp;quot;h3-0-411&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
   1587 <a href="#l1568" class="line" id="l1568">   1568</a> &lt;a href=&quot;#l1549&quot; class=&quot;line&quot; id=&quot;l1549&quot;&gt;   1549&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-412&amp;quot; id=&amp;quot;h3-0-412&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
   1588 <a href="#l1569" class="line" id="l1569">   1569</a> &lt;a href=&quot;#l1550&quot; class=&quot;line&quot; id=&quot;l1550&quot;&gt;   1550&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-413&amp;quot; id=&amp;quot;h3-0-413&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1589 <a href="#l1570" class="line" id="l1570">   1570</a> &lt;a href=&quot;#l1551&quot; class=&quot;line&quot; id=&quot;l1551&quot;&gt;   1551&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-414&amp;quot; id=&amp;quot;h3-0-414&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float F_Schlick( const in float f0, const in float f90, const in float dotVH ) {
   1590 <a href="#l1571" class="line" id="l1571">   1571</a> &lt;a href=&quot;#l1552&quot; class=&quot;line&quot; id=&quot;l1552&quot;&gt;   1552&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-415&amp;quot; id=&amp;quot;h3-0-415&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float fresnel = exp2( ( - 5.55473 * dotVH - 6.98316 ) * dotVH );
   1591 <a href="#l1572" class="line" id="l1572">   1572</a> &lt;a href=&quot;#l1553&quot; class=&quot;line&quot; id=&quot;l1553&quot;&gt;   1553&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-416&amp;quot; id=&amp;quot;h3-0-416&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return f0 * ( 1.0 - fresnel ) + ( f90 * fresnel );
   1592 <a href="#l1573" class="line" id="l1573">   1573</a> &lt;a href=&quot;#l1554&quot; class=&quot;line&quot; id=&quot;l1554&quot;&gt;   1554&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-417&amp;quot; id=&amp;quot;h3-0-417&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+} // validated`,UF=`#ifdef ENVMAP_TYPE_CUBE_UV
   1593 <a href="#l1574" class="line" id="l1574">   1574</a> &lt;a href=&quot;#l1555&quot; class=&quot;line&quot; id=&quot;l1555&quot;&gt;   1555&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-418&amp;quot; id=&amp;quot;h3-0-418&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_minMipLevel 4.0
   1594 <a href="#l1575" class="line" id="l1575">   1575</a> &lt;a href=&quot;#l1556&quot; class=&quot;line&quot; id=&quot;l1556&quot;&gt;   1556&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-419&amp;quot; id=&amp;quot;h3-0-419&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_minTileSize 16.0
   1595 <a href="#l1576" class="line" id="l1576">   1576</a> &lt;a href=&quot;#l1557&quot; class=&quot;line&quot; id=&quot;l1557&quot;&gt;   1557&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-420&amp;quot; id=&amp;quot;h3-0-420&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float getFace( vec3 direction ) {
   1596 <a href="#l1577" class="line" id="l1577">   1577</a> &lt;a href=&quot;#l1558&quot; class=&quot;line&quot; id=&quot;l1558&quot;&gt;   1558&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-421&amp;quot; id=&amp;quot;h3-0-421&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 absDirection = abs( direction );
   1597 <a href="#l1578" class="line" id="l1578">   1578</a> &lt;a href=&quot;#l1559&quot; class=&quot;line&quot; id=&quot;l1559&quot;&gt;   1559&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-422&amp;quot; id=&amp;quot;h3-0-422&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float face = - 1.0;
   1598 <a href="#l1579" class="line" id="l1579">   1579</a> &lt;a href=&quot;#l1560&quot; class=&quot;line&quot; id=&quot;l1560&quot;&gt;   1560&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-423&amp;quot; id=&amp;quot;h3-0-423&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( absDirection.x &amp;amp;gt; absDirection.z ) {
   1599 <a href="#l1580" class="line" id="l1580">   1580</a> &lt;a href=&quot;#l1561&quot; class=&quot;line&quot; id=&quot;l1561&quot;&gt;   1561&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-424&amp;quot; id=&amp;quot;h3-0-424&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( absDirection.x &amp;amp;gt; absDirection.y )
   1600 <a href="#l1581" class="line" id="l1581">   1581</a> &lt;a href=&quot;#l1562&quot; class=&quot;line&quot; id=&quot;l1562&quot;&gt;   1562&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-425&amp;quot; id=&amp;quot;h3-0-425&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				face = direction.x &amp;amp;gt; 0.0 ? 0.0 : 3.0;
   1601 <a href="#l1582" class="line" id="l1582">   1582</a> &lt;a href=&quot;#l1563&quot; class=&quot;line&quot; id=&quot;l1563&quot;&gt;   1563&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-426&amp;quot; id=&amp;quot;h3-0-426&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			else
   1602 <a href="#l1583" class="line" id="l1583">   1583</a> &lt;a href=&quot;#l1564&quot; class=&quot;line&quot; id=&quot;l1564&quot;&gt;   1564&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-427&amp;quot; id=&amp;quot;h3-0-427&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				face = direction.y &amp;amp;gt; 0.0 ? 1.0 : 4.0;
   1603 <a href="#l1584" class="line" id="l1584">   1584</a> &lt;a href=&quot;#l1565&quot; class=&quot;line&quot; id=&quot;l1565&quot;&gt;   1565&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-428&amp;quot; id=&amp;quot;h3-0-428&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else {
   1604 <a href="#l1585" class="line" id="l1585">   1585</a> &lt;a href=&quot;#l1566&quot; class=&quot;line&quot; id=&quot;l1566&quot;&gt;   1566&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-429&amp;quot; id=&amp;quot;h3-0-429&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( absDirection.z &amp;amp;gt; absDirection.y )
   1605 <a href="#l1586" class="line" id="l1586">   1586</a> &lt;a href=&quot;#l1567&quot; class=&quot;line&quot; id=&quot;l1567&quot;&gt;   1567&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-430&amp;quot; id=&amp;quot;h3-0-430&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				face = direction.z &amp;amp;gt; 0.0 ? 2.0 : 5.0;
   1606 <a href="#l1587" class="line" id="l1587">   1587</a> &lt;a href=&quot;#l1568&quot; class=&quot;line&quot; id=&quot;l1568&quot;&gt;   1568&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-431&amp;quot; id=&amp;quot;h3-0-431&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			else
   1607 <a href="#l1588" class="line" id="l1588">   1588</a> &lt;a href=&quot;#l1569&quot; class=&quot;line&quot; id=&quot;l1569&quot;&gt;   1569&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-432&amp;quot; id=&amp;quot;h3-0-432&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				face = direction.y &amp;amp;gt; 0.0 ? 1.0 : 4.0;
   1608 <a href="#l1589" class="line" id="l1589">   1589</a> &lt;a href=&quot;#l1570&quot; class=&quot;line&quot; id=&quot;l1570&quot;&gt;   1570&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-433&amp;quot; id=&amp;quot;h3-0-433&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1609 <a href="#l1590" class="line" id="l1590">   1590</a> &lt;a href=&quot;#l1571&quot; class=&quot;line&quot; id=&quot;l1571&quot;&gt;   1571&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-434&amp;quot; id=&amp;quot;h3-0-434&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return face;
   1610 <a href="#l1591" class="line" id="l1591">   1591</a> &lt;a href=&quot;#l1572&quot; class=&quot;line&quot; id=&quot;l1572&quot;&gt;   1572&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-435&amp;quot; id=&amp;quot;h3-0-435&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1611 <a href="#l1592" class="line" id="l1592">   1592</a> &lt;a href=&quot;#l1573&quot; class=&quot;line&quot; id=&quot;l1573&quot;&gt;   1573&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-436&amp;quot; id=&amp;quot;h3-0-436&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 getUV( vec3 direction, float face ) {
   1612 <a href="#l1593" class="line" id="l1593">   1593</a> &lt;a href=&quot;#l1574&quot; class=&quot;line&quot; id=&quot;l1574&quot;&gt;   1574&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-437&amp;quot; id=&amp;quot;h3-0-437&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 uv;
   1613 <a href="#l1594" class="line" id="l1594">   1594</a> &lt;a href=&quot;#l1575&quot; class=&quot;line&quot; id=&quot;l1575&quot;&gt;   1575&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-438&amp;quot; id=&amp;quot;h3-0-438&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( face == 0.0 ) {
   1614 <a href="#l1595" class="line" id="l1595">   1595</a> &lt;a href=&quot;#l1576&quot; class=&quot;line&quot; id=&quot;l1576&quot;&gt;   1576&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-439&amp;quot; id=&amp;quot;h3-0-439&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv = vec2( direction.z, direction.y ) / abs( direction.x );
   1615 <a href="#l1596" class="line" id="l1596">   1596</a> &lt;a href=&quot;#l1577&quot; class=&quot;line&quot; id=&quot;l1577&quot;&gt;   1577&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-440&amp;quot; id=&amp;quot;h3-0-440&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( face == 1.0 ) {
   1616 <a href="#l1597" class="line" id="l1597">   1597</a> &lt;a href=&quot;#l1578&quot; class=&quot;line&quot; id=&quot;l1578&quot;&gt;   1578&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-441&amp;quot; id=&amp;quot;h3-0-441&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv = vec2( - direction.x, - direction.z ) / abs( direction.y );
   1617 <a href="#l1598" class="line" id="l1598">   1598</a> &lt;a href=&quot;#l1579&quot; class=&quot;line&quot; id=&quot;l1579&quot;&gt;   1579&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-442&amp;quot; id=&amp;quot;h3-0-442&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( face == 2.0 ) {
   1618 <a href="#l1599" class="line" id="l1599">   1599</a> &lt;a href=&quot;#l1580&quot; class=&quot;line&quot; id=&quot;l1580&quot;&gt;   1580&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-443&amp;quot; id=&amp;quot;h3-0-443&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv = vec2( - direction.x, direction.y ) / abs( direction.z );
   1619 <a href="#l1600" class="line" id="l1600">   1600</a> &lt;a href=&quot;#l1581&quot; class=&quot;line&quot; id=&quot;l1581&quot;&gt;   1581&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-444&amp;quot; id=&amp;quot;h3-0-444&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( face == 3.0 ) {
   1620 <a href="#l1601" class="line" id="l1601">   1601</a> &lt;a href=&quot;#l1582&quot; class=&quot;line&quot; id=&quot;l1582&quot;&gt;   1582&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-445&amp;quot; id=&amp;quot;h3-0-445&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv = vec2( - direction.z, direction.y ) / abs( direction.x );
   1621 <a href="#l1602" class="line" id="l1602">   1602</a> &lt;a href=&quot;#l1583&quot; class=&quot;line&quot; id=&quot;l1583&quot;&gt;   1583&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-446&amp;quot; id=&amp;quot;h3-0-446&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( face == 4.0 ) {
   1622 <a href="#l1603" class="line" id="l1603">   1603</a> &lt;a href=&quot;#l1584&quot; class=&quot;line&quot; id=&quot;l1584&quot;&gt;   1584&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-447&amp;quot; id=&amp;quot;h3-0-447&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv = vec2( - direction.x, direction.z ) / abs( direction.y );
   1623 <a href="#l1604" class="line" id="l1604">   1604</a> &lt;a href=&quot;#l1585&quot; class=&quot;line&quot; id=&quot;l1585&quot;&gt;   1585&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-448&amp;quot; id=&amp;quot;h3-0-448&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else {
   1624 <a href="#l1605" class="line" id="l1605">   1605</a> &lt;a href=&quot;#l1586&quot; class=&quot;line&quot; id=&quot;l1586&quot;&gt;   1586&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-449&amp;quot; id=&amp;quot;h3-0-449&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv = vec2( direction.x, direction.y ) / abs( direction.z );
   1625 <a href="#l1606" class="line" id="l1606">   1606</a> &lt;a href=&quot;#l1587&quot; class=&quot;line&quot; id=&quot;l1587&quot;&gt;   1587&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-450&amp;quot; id=&amp;quot;h3-0-450&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1626 <a href="#l1607" class="line" id="l1607">   1607</a> &lt;a href=&quot;#l1588&quot; class=&quot;line&quot; id=&quot;l1588&quot;&gt;   1588&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-451&amp;quot; id=&amp;quot;h3-0-451&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return 0.5 * ( uv + 1.0 );
   1627 <a href="#l1608" class="line" id="l1608">   1608</a> &lt;a href=&quot;#l1589&quot; class=&quot;line&quot; id=&quot;l1589&quot;&gt;   1589&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-452&amp;quot; id=&amp;quot;h3-0-452&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1628 <a href="#l1609" class="line" id="l1609">   1609</a> &lt;a href=&quot;#l1590&quot; class=&quot;line&quot; id=&quot;l1590&quot;&gt;   1590&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-453&amp;quot; id=&amp;quot;h3-0-453&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {
   1629 <a href="#l1610" class="line" id="l1610">   1610</a> &lt;a href=&quot;#l1591&quot; class=&quot;line&quot; id=&quot;l1591&quot;&gt;   1591&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-454&amp;quot; id=&amp;quot;h3-0-454&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float face = getFace( direction );
   1630 <a href="#l1611" class="line" id="l1611">   1611</a> &lt;a href=&quot;#l1592&quot; class=&quot;line&quot; id=&quot;l1592&quot;&gt;   1592&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-455&amp;quot; id=&amp;quot;h3-0-455&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );
   1631 <a href="#l1612" class="line" id="l1612">   1612</a> &lt;a href=&quot;#l1593&quot; class=&quot;line&quot; id=&quot;l1593&quot;&gt;   1593&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-456&amp;quot; id=&amp;quot;h3-0-456&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		mipInt = max( mipInt, cubeUV_minMipLevel );
   1632 <a href="#l1613" class="line" id="l1613">   1613</a> &lt;a href=&quot;#l1594&quot; class=&quot;line&quot; id=&quot;l1594&quot;&gt;   1594&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-457&amp;quot; id=&amp;quot;h3-0-457&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float faceSize = exp2( mipInt );
   1633 <a href="#l1614" class="line" id="l1614">   1614</a> &lt;a href=&quot;#l1595&quot; class=&quot;line&quot; id=&quot;l1595&quot;&gt;   1595&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-458&amp;quot; id=&amp;quot;h3-0-458&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		highp vec2 uv = getUV( direction, face ) * ( faceSize - 2.0 ) + 1.0;
   1634 <a href="#l1615" class="line" id="l1615">   1615</a> &lt;a href=&quot;#l1596&quot; class=&quot;line&quot; id=&quot;l1596&quot;&gt;   1596&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-459&amp;quot; id=&amp;quot;h3-0-459&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( face &amp;amp;gt; 2.0 ) {
   1635 <a href="#l1616" class="line" id="l1616">   1616</a> &lt;a href=&quot;#l1597&quot; class=&quot;line&quot; id=&quot;l1597&quot;&gt;   1597&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-460&amp;quot; id=&amp;quot;h3-0-460&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv.y += faceSize;
   1636 <a href="#l1617" class="line" id="l1617">   1617</a> &lt;a href=&quot;#l1598&quot; class=&quot;line&quot; id=&quot;l1598&quot;&gt;   1598&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-461&amp;quot; id=&amp;quot;h3-0-461&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			face -= 3.0;
   1637 <a href="#l1618" class="line" id="l1618">   1618</a> &lt;a href=&quot;#l1599&quot; class=&quot;line&quot; id=&quot;l1599&quot;&gt;   1599&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-462&amp;quot; id=&amp;quot;h3-0-462&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1638 <a href="#l1619" class="line" id="l1619">   1619</a> &lt;a href=&quot;#l1600&quot; class=&quot;line&quot; id=&quot;l1600&quot;&gt;   1600&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-463&amp;quot; id=&amp;quot;h3-0-463&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uv.x += face * faceSize;
   1639 <a href="#l1620" class="line" id="l1620">   1620</a> &lt;a href=&quot;#l1601&quot; class=&quot;line&quot; id=&quot;l1601&quot;&gt;   1601&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-464&amp;quot; id=&amp;quot;h3-0-464&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uv.x += filterInt * 3.0 * cubeUV_minTileSize;
   1640 <a href="#l1621" class="line" id="l1621">   1621</a> &lt;a href=&quot;#l1602&quot; class=&quot;line&quot; id=&quot;l1602&quot;&gt;   1602&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-465&amp;quot; id=&amp;quot;h3-0-465&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uv.y += 4.0 * ( exp2( CUBEUV_MAX_MIP ) - faceSize );
   1641 <a href="#l1622" class="line" id="l1622">   1622</a> &lt;a href=&quot;#l1603&quot; class=&quot;line&quot; id=&quot;l1603&quot;&gt;   1603&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-466&amp;quot; id=&amp;quot;h3-0-466&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uv.x *= CUBEUV_TEXEL_WIDTH;
   1642 <a href="#l1623" class="line" id="l1623">   1623</a> &lt;a href=&quot;#l1604&quot; class=&quot;line&quot; id=&quot;l1604&quot;&gt;   1604&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-467&amp;quot; id=&amp;quot;h3-0-467&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uv.y *= CUBEUV_TEXEL_HEIGHT;
   1643 <a href="#l1624" class="line" id="l1624">   1624</a> &lt;a href=&quot;#l1605&quot; class=&quot;line&quot; id=&quot;l1605&quot;&gt;   1605&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-468&amp;quot; id=&amp;quot;h3-0-468&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef texture2DGradEXT
   1644 <a href="#l1625" class="line" id="l1625">   1625</a> &lt;a href=&quot;#l1606&quot; class=&quot;line&quot; id=&quot;l1606&quot;&gt;   1606&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-469&amp;quot; id=&amp;quot;h3-0-469&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return texture2DGradEXT( envMap, uv, vec2( 0.0 ), vec2( 0.0 ) ).rgb;
   1645 <a href="#l1626" class="line" id="l1626">   1626</a> &lt;a href=&quot;#l1607&quot; class=&quot;line&quot; id=&quot;l1607&quot;&gt;   1607&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-470&amp;quot; id=&amp;quot;h3-0-470&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   1646 <a href="#l1627" class="line" id="l1627">   1627</a> &lt;a href=&quot;#l1608&quot; class=&quot;line&quot; id=&quot;l1608&quot;&gt;   1608&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-471&amp;quot; id=&amp;quot;h3-0-471&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return texture2D( envMap, uv ).rgb;
   1647 <a href="#l1628" class="line" id="l1628">   1628</a> &lt;a href=&quot;#l1609&quot; class=&quot;line&quot; id=&quot;l1609&quot;&gt;   1609&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-472&amp;quot; id=&amp;quot;h3-0-472&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   1648 <a href="#l1629" class="line" id="l1629">   1629</a> &lt;a href=&quot;#l1610&quot; class=&quot;line&quot; id=&quot;l1610&quot;&gt;   1610&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-473&amp;quot; id=&amp;quot;h3-0-473&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1649 <a href="#l1630" class="line" id="l1630">   1630</a> &lt;a href=&quot;#l1611&quot; class=&quot;line&quot; id=&quot;l1611&quot;&gt;   1611&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-474&amp;quot; id=&amp;quot;h3-0-474&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_r0 1.0
   1650 <a href="#l1631" class="line" id="l1631">   1631</a> &lt;a href=&quot;#l1612&quot; class=&quot;line&quot; id=&quot;l1612&quot;&gt;   1612&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-475&amp;quot; id=&amp;quot;h3-0-475&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_m0 - 2.0
   1651 <a href="#l1632" class="line" id="l1632">   1632</a> &lt;a href=&quot;#l1613&quot; class=&quot;line&quot; id=&quot;l1613&quot;&gt;   1613&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-476&amp;quot; id=&amp;quot;h3-0-476&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_r1 0.8
   1652 <a href="#l1633" class="line" id="l1633">   1633</a> &lt;a href=&quot;#l1614&quot; class=&quot;line&quot; id=&quot;l1614&quot;&gt;   1614&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-477&amp;quot; id=&amp;quot;h3-0-477&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_m1 - 1.0
   1653 <a href="#l1634" class="line" id="l1634">   1634</a> &lt;a href=&quot;#l1615&quot; class=&quot;line&quot; id=&quot;l1615&quot;&gt;   1615&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-478&amp;quot; id=&amp;quot;h3-0-478&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_r4 0.4
   1654 <a href="#l1635" class="line" id="l1635">   1635</a> &lt;a href=&quot;#l1616&quot; class=&quot;line&quot; id=&quot;l1616&quot;&gt;   1616&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-479&amp;quot; id=&amp;quot;h3-0-479&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_m4 2.0
   1655 <a href="#l1636" class="line" id="l1636">   1636</a> &lt;a href=&quot;#l1617&quot; class=&quot;line&quot; id=&quot;l1617&quot;&gt;   1617&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-480&amp;quot; id=&amp;quot;h3-0-480&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_r5 0.305
   1656 <a href="#l1637" class="line" id="l1637">   1637</a> &lt;a href=&quot;#l1618&quot; class=&quot;line&quot; id=&quot;l1618&quot;&gt;   1618&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-481&amp;quot; id=&amp;quot;h3-0-481&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_m5 3.0
   1657 <a href="#l1638" class="line" id="l1638">   1638</a> &lt;a href=&quot;#l1619&quot; class=&quot;line&quot; id=&quot;l1619&quot;&gt;   1619&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-482&amp;quot; id=&amp;quot;h3-0-482&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_r6 0.21
   1658 <a href="#l1639" class="line" id="l1639">   1639</a> &lt;a href=&quot;#l1620&quot; class=&quot;line&quot; id=&quot;l1620&quot;&gt;   1620&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-483&amp;quot; id=&amp;quot;h3-0-483&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define cubeUV_m6 4.0
   1659 <a href="#l1640" class="line" id="l1640">   1640</a> &lt;a href=&quot;#l1621&quot; class=&quot;line&quot; id=&quot;l1621&quot;&gt;   1621&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-484&amp;quot; id=&amp;quot;h3-0-484&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float roughnessToMip( float roughness ) {
   1660 <a href="#l1641" class="line" id="l1641">   1641</a> &lt;a href=&quot;#l1622&quot; class=&quot;line&quot; id=&quot;l1622&quot;&gt;   1622&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-485&amp;quot; id=&amp;quot;h3-0-485&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float mip = 0.0;
   1661 <a href="#l1642" class="line" id="l1642">   1642</a> &lt;a href=&quot;#l1623&quot; class=&quot;line&quot; id=&quot;l1623&quot;&gt;   1623&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-486&amp;quot; id=&amp;quot;h3-0-486&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( roughness &amp;amp;gt;= cubeUV_r1 ) {
   1662 <a href="#l1643" class="line" id="l1643">   1643</a> &lt;a href=&quot;#l1624&quot; class=&quot;line&quot; id=&quot;l1624&quot;&gt;   1624&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-487&amp;quot; id=&amp;quot;h3-0-487&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			mip = ( cubeUV_r0 - roughness ) * ( cubeUV_m1 - cubeUV_m0 ) / ( cubeUV_r0 - cubeUV_r1 ) + cubeUV_m0;
   1663 <a href="#l1644" class="line" id="l1644">   1644</a> &lt;a href=&quot;#l1625&quot; class=&quot;line&quot; id=&quot;l1625&quot;&gt;   1625&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-488&amp;quot; id=&amp;quot;h3-0-488&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( roughness &amp;amp;gt;= cubeUV_r4 ) {
   1664 <a href="#l1645" class="line" id="l1645">   1645</a> &lt;a href=&quot;#l1626&quot; class=&quot;line&quot; id=&quot;l1626&quot;&gt;   1626&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-489&amp;quot; id=&amp;quot;h3-0-489&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			mip = ( cubeUV_r1 - roughness ) * ( cubeUV_m4 - cubeUV_m1 ) / ( cubeUV_r1 - cubeUV_r4 ) + cubeUV_m1;
   1665 <a href="#l1646" class="line" id="l1646">   1646</a> &lt;a href=&quot;#l1627&quot; class=&quot;line&quot; id=&quot;l1627&quot;&gt;   1627&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-490&amp;quot; id=&amp;quot;h3-0-490&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( roughness &amp;amp;gt;= cubeUV_r5 ) {
   1666 <a href="#l1647" class="line" id="l1647">   1647</a> &lt;a href=&quot;#l1628&quot; class=&quot;line&quot; id=&quot;l1628&quot;&gt;   1628&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-491&amp;quot; id=&amp;quot;h3-0-491&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			mip = ( cubeUV_r4 - roughness ) * ( cubeUV_m5 - cubeUV_m4 ) / ( cubeUV_r4 - cubeUV_r5 ) + cubeUV_m4;
   1667 <a href="#l1648" class="line" id="l1648">   1648</a> &lt;a href=&quot;#l1629&quot; class=&quot;line&quot; id=&quot;l1629&quot;&gt;   1629&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-492&amp;quot; id=&amp;quot;h3-0-492&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( roughness &amp;amp;gt;= cubeUV_r6 ) {
   1668 <a href="#l1649" class="line" id="l1649">   1649</a> &lt;a href=&quot;#l1630&quot; class=&quot;line&quot; id=&quot;l1630&quot;&gt;   1630&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-493&amp;quot; id=&amp;quot;h3-0-493&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			mip = ( cubeUV_r5 - roughness ) * ( cubeUV_m6 - cubeUV_m5 ) / ( cubeUV_r5 - cubeUV_r6 ) + cubeUV_m5;
   1669 <a href="#l1650" class="line" id="l1650">   1650</a> &lt;a href=&quot;#l1631&quot; class=&quot;line&quot; id=&quot;l1631&quot;&gt;   1631&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-494&amp;quot; id=&amp;quot;h3-0-494&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else {
   1670 <a href="#l1651" class="line" id="l1651">   1651</a> &lt;a href=&quot;#l1632&quot; class=&quot;line&quot; id=&quot;l1632&quot;&gt;   1632&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-495&amp;quot; id=&amp;quot;h3-0-495&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			mip = - 2.0 * log2( 1.16 * roughness );		}
   1671 <a href="#l1652" class="line" id="l1652">   1652</a> &lt;a href=&quot;#l1633&quot; class=&quot;line&quot; id=&quot;l1633&quot;&gt;   1633&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-496&amp;quot; id=&amp;quot;h3-0-496&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return mip;
   1672 <a href="#l1653" class="line" id="l1653">   1653</a> &lt;a href=&quot;#l1634&quot; class=&quot;line&quot; id=&quot;l1634&quot;&gt;   1634&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-497&amp;quot; id=&amp;quot;h3-0-497&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1673 <a href="#l1654" class="line" id="l1654">   1654</a> &lt;a href=&quot;#l1635&quot; class=&quot;line&quot; id=&quot;l1635&quot;&gt;   1635&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-498&amp;quot; id=&amp;quot;h3-0-498&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {
   1674 <a href="#l1655" class="line" id="l1655">   1655</a> &lt;a href=&quot;#l1636&quot; class=&quot;line&quot; id=&quot;l1636&quot;&gt;   1636&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-499&amp;quot; id=&amp;quot;h3-0-499&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float mip = clamp( roughnessToMip( roughness ), cubeUV_m0, CUBEUV_MAX_MIP );
   1675 <a href="#l1656" class="line" id="l1656">   1656</a> &lt;a href=&quot;#l1637&quot; class=&quot;line&quot; id=&quot;l1637&quot;&gt;   1637&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-500&amp;quot; id=&amp;quot;h3-0-500&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float mipF = fract( mip );
   1676 <a href="#l1657" class="line" id="l1657">   1657</a> &lt;a href=&quot;#l1638&quot; class=&quot;line&quot; id=&quot;l1638&quot;&gt;   1638&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-501&amp;quot; id=&amp;quot;h3-0-501&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float mipInt = floor( mip );
   1677 <a href="#l1658" class="line" id="l1658">   1658</a> &lt;a href=&quot;#l1639&quot; class=&quot;line&quot; id=&quot;l1639&quot;&gt;   1639&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-502&amp;quot; id=&amp;quot;h3-0-502&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );
   1678 <a href="#l1659" class="line" id="l1659">   1659</a> &lt;a href=&quot;#l1640&quot; class=&quot;line&quot; id=&quot;l1640&quot;&gt;   1640&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-503&amp;quot; id=&amp;quot;h3-0-503&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( mipF == 0.0 ) {
   1679 <a href="#l1660" class="line" id="l1660">   1660</a> &lt;a href=&quot;#l1641&quot; class=&quot;line&quot; id=&quot;l1641&quot;&gt;   1641&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-504&amp;quot; id=&amp;quot;h3-0-504&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return vec4( color0, 1.0 );
   1680 <a href="#l1661" class="line" id="l1661">   1661</a> &lt;a href=&quot;#l1642&quot; class=&quot;line&quot; id=&quot;l1642&quot;&gt;   1642&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-505&amp;quot; id=&amp;quot;h3-0-505&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else {
   1681 <a href="#l1662" class="line" id="l1662">   1662</a> &lt;a href=&quot;#l1643&quot; class=&quot;line&quot; id=&quot;l1643&quot;&gt;   1643&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-506&amp;quot; id=&amp;quot;h3-0-506&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );
   1682 <a href="#l1663" class="line" id="l1663">   1663</a> &lt;a href=&quot;#l1644&quot; class=&quot;line&quot; id=&quot;l1644&quot;&gt;   1644&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-507&amp;quot; id=&amp;quot;h3-0-507&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return vec4( mix( color0, color1, mipF ), 1.0 );
   1683 <a href="#l1664" class="line" id="l1664">   1664</a> &lt;a href=&quot;#l1645&quot; class=&quot;line&quot; id=&quot;l1645&quot;&gt;   1645&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-508&amp;quot; id=&amp;quot;h3-0-508&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1684 <a href="#l1665" class="line" id="l1665">   1665</a> &lt;a href=&quot;#l1646&quot; class=&quot;line&quot; id=&quot;l1646&quot;&gt;   1646&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-509&amp;quot; id=&amp;quot;h3-0-509&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1685 <a href="#l1666" class="line" id="l1666">   1666</a> &lt;a href=&quot;#l1647&quot; class=&quot;line&quot; id=&quot;l1647&quot;&gt;   1647&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-510&amp;quot; id=&amp;quot;h3-0-510&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,NF=`vec3 transformedNormal = objectNormal;
   1686 <a href="#l1667" class="line" id="l1667">   1667</a> &lt;a href=&quot;#l1648&quot; class=&quot;line&quot; id=&quot;l1648&quot;&gt;   1648&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-511&amp;quot; id=&amp;quot;h3-0-511&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TANGENT
   1687 <a href="#l1668" class="line" id="l1668">   1668</a> &lt;a href=&quot;#l1649&quot; class=&quot;line&quot; id=&quot;l1649&quot;&gt;   1649&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-512&amp;quot; id=&amp;quot;h3-0-512&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 transformedTangent = objectTangent;
   1688 <a href="#l1669" class="line" id="l1669">   1669</a> &lt;a href=&quot;#l1650&quot; class=&quot;line&quot; id=&quot;l1650&quot;&gt;   1650&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-513&amp;quot; id=&amp;quot;h3-0-513&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1689 <a href="#l1670" class="line" id="l1670">   1670</a> &lt;a href=&quot;#l1651&quot; class=&quot;line&quot; id=&quot;l1651&quot;&gt;   1651&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-514&amp;quot; id=&amp;quot;h3-0-514&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_BATCHING
   1690 <a href="#l1671" class="line" id="l1671">   1671</a> &lt;a href=&quot;#l1652&quot; class=&quot;line&quot; id=&quot;l1652&quot;&gt;   1652&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-515&amp;quot; id=&amp;quot;h3-0-515&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat3 bm = mat3( batchingMatrix );
   1691 <a href="#l1672" class="line" id="l1672">   1672</a> &lt;a href=&quot;#l1653&quot; class=&quot;line&quot; id=&quot;l1653&quot;&gt;   1653&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-516&amp;quot; id=&amp;quot;h3-0-516&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformedNormal /= vec3( dot( bm[ 0 ], bm[ 0 ] ), dot( bm[ 1 ], bm[ 1 ] ), dot( bm[ 2 ], bm[ 2 ] ) );
   1692 <a href="#l1673" class="line" id="l1673">   1673</a> &lt;a href=&quot;#l1654&quot; class=&quot;line&quot; id=&quot;l1654&quot;&gt;   1654&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-517&amp;quot; id=&amp;quot;h3-0-517&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformedNormal = bm * transformedNormal;
   1693 <a href="#l1674" class="line" id="l1674">   1674</a> &lt;a href=&quot;#l1655&quot; class=&quot;line&quot; id=&quot;l1655&quot;&gt;   1655&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-518&amp;quot; id=&amp;quot;h3-0-518&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TANGENT
   1694 <a href="#l1675" class="line" id="l1675">   1675</a> &lt;a href=&quot;#l1656&quot; class=&quot;line&quot; id=&quot;l1656&quot;&gt;   1656&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-519&amp;quot; id=&amp;quot;h3-0-519&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		transformedTangent = bm * transformedTangent;
   1695 <a href="#l1676" class="line" id="l1676">   1676</a> &lt;a href=&quot;#l1657&quot; class=&quot;line&quot; id=&quot;l1657&quot;&gt;   1657&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-520&amp;quot; id=&amp;quot;h3-0-520&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1696 <a href="#l1677" class="line" id="l1677">   1677</a> &lt;a href=&quot;#l1658&quot; class=&quot;line&quot; id=&quot;l1658&quot;&gt;   1658&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-521&amp;quot; id=&amp;quot;h3-0-521&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1697 <a href="#l1678" class="line" id="l1678">   1678</a> &lt;a href=&quot;#l1659&quot; class=&quot;line&quot; id=&quot;l1659&quot;&gt;   1659&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-522&amp;quot; id=&amp;quot;h3-0-522&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_INSTANCING
   1698 <a href="#l1679" class="line" id="l1679">   1679</a> &lt;a href=&quot;#l1660&quot; class=&quot;line&quot; id=&quot;l1660&quot;&gt;   1660&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-523&amp;quot; id=&amp;quot;h3-0-523&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat3 im = mat3( instanceMatrix );
   1699 <a href="#l1680" class="line" id="l1680">   1680</a> &lt;a href=&quot;#l1661&quot; class=&quot;line&quot; id=&quot;l1661&quot;&gt;   1661&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-524&amp;quot; id=&amp;quot;h3-0-524&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformedNormal /= vec3( dot( im[ 0 ], im[ 0 ] ), dot( im[ 1 ], im[ 1 ] ), dot( im[ 2 ], im[ 2 ] ) );
   1700 <a href="#l1681" class="line" id="l1681">   1681</a> &lt;a href=&quot;#l1662&quot; class=&quot;line&quot; id=&quot;l1662&quot;&gt;   1662&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-525&amp;quot; id=&amp;quot;h3-0-525&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformedNormal = im * transformedNormal;
   1701 <a href="#l1682" class="line" id="l1682">   1682</a> &lt;a href=&quot;#l1663&quot; class=&quot;line&quot; id=&quot;l1663&quot;&gt;   1663&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-526&amp;quot; id=&amp;quot;h3-0-526&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TANGENT
   1702 <a href="#l1683" class="line" id="l1683">   1683</a> &lt;a href=&quot;#l1664&quot; class=&quot;line&quot; id=&quot;l1664&quot;&gt;   1664&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-527&amp;quot; id=&amp;quot;h3-0-527&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		transformedTangent = im * transformedTangent;
   1703 <a href="#l1684" class="line" id="l1684">   1684</a> &lt;a href=&quot;#l1665&quot; class=&quot;line&quot; id=&quot;l1665&quot;&gt;   1665&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-528&amp;quot; id=&amp;quot;h3-0-528&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1704 <a href="#l1685" class="line" id="l1685">   1685</a> &lt;a href=&quot;#l1666&quot; class=&quot;line&quot; id=&quot;l1666&quot;&gt;   1666&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-529&amp;quot; id=&amp;quot;h3-0-529&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1705 <a href="#l1686" class="line" id="l1686">   1686</a> &lt;a href=&quot;#l1667&quot; class=&quot;line&quot; id=&quot;l1667&quot;&gt;   1667&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-530&amp;quot; id=&amp;quot;h3-0-530&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+transformedNormal = normalMatrix * transformedNormal;
   1706 <a href="#l1687" class="line" id="l1687">   1687</a> &lt;a href=&quot;#l1668&quot; class=&quot;line&quot; id=&quot;l1668&quot;&gt;   1668&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-531&amp;quot; id=&amp;quot;h3-0-531&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef FLIP_SIDED
   1707 <a href="#l1688" class="line" id="l1688">   1688</a> &lt;a href=&quot;#l1669&quot; class=&quot;line&quot; id=&quot;l1669&quot;&gt;   1669&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-532&amp;quot; id=&amp;quot;h3-0-532&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformedNormal = - transformedNormal;
   1708 <a href="#l1689" class="line" id="l1689">   1689</a> &lt;a href=&quot;#l1670&quot; class=&quot;line&quot; id=&quot;l1670&quot;&gt;   1670&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-533&amp;quot; id=&amp;quot;h3-0-533&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1709 <a href="#l1690" class="line" id="l1690">   1690</a> &lt;a href=&quot;#l1671&quot; class=&quot;line&quot; id=&quot;l1671&quot;&gt;   1671&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-534&amp;quot; id=&amp;quot;h3-0-534&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TANGENT
   1710 <a href="#l1691" class="line" id="l1691">   1691</a> &lt;a href=&quot;#l1672&quot; class=&quot;line&quot; id=&quot;l1672&quot;&gt;   1672&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-535&amp;quot; id=&amp;quot;h3-0-535&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformedTangent = ( modelViewMatrix * vec4( transformedTangent, 0.0 ) ).xyz;
   1711 <a href="#l1692" class="line" id="l1692">   1692</a> &lt;a href=&quot;#l1673&quot; class=&quot;line&quot; id=&quot;l1673&quot;&gt;   1673&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-536&amp;quot; id=&amp;quot;h3-0-536&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef FLIP_SIDED
   1712 <a href="#l1693" class="line" id="l1693">   1693</a> &lt;a href=&quot;#l1674&quot; class=&quot;line&quot; id=&quot;l1674&quot;&gt;   1674&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-537&amp;quot; id=&amp;quot;h3-0-537&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		transformedTangent = - transformedTangent;
   1713 <a href="#l1694" class="line" id="l1694">   1694</a> &lt;a href=&quot;#l1675&quot; class=&quot;line&quot; id=&quot;l1675&quot;&gt;   1675&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-538&amp;quot; id=&amp;quot;h3-0-538&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1714 <a href="#l1695" class="line" id="l1695">   1695</a> &lt;a href=&quot;#l1676&quot; class=&quot;line&quot; id=&quot;l1676&quot;&gt;   1676&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-539&amp;quot; id=&amp;quot;h3-0-539&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,OF=`#ifdef USE_DISPLACEMENTMAP
   1715 <a href="#l1696" class="line" id="l1696">   1696</a> &lt;a href=&quot;#l1677&quot; class=&quot;line&quot; id=&quot;l1677&quot;&gt;   1677&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-540&amp;quot; id=&amp;quot;h3-0-540&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D displacementMap;
   1716 <a href="#l1697" class="line" id="l1697">   1697</a> &lt;a href=&quot;#l1678&quot; class=&quot;line&quot; id=&quot;l1678&quot;&gt;   1678&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-541&amp;quot; id=&amp;quot;h3-0-541&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float displacementScale;
   1717 <a href="#l1698" class="line" id="l1698">   1698</a> &lt;a href=&quot;#l1679&quot; class=&quot;line&quot; id=&quot;l1679&quot;&gt;   1679&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-542&amp;quot; id=&amp;quot;h3-0-542&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float displacementBias;
   1718 <a href="#l1699" class="line" id="l1699">   1699</a> &lt;a href=&quot;#l1680&quot; class=&quot;line&quot; id=&quot;l1680&quot;&gt;   1680&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-543&amp;quot; id=&amp;quot;h3-0-543&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,LF=`#ifdef USE_DISPLACEMENTMAP
   1719 <a href="#l1700" class="line" id="l1700">   1700</a> &lt;a href=&quot;#l1681&quot; class=&quot;line&quot; id=&quot;l1681&quot;&gt;   1681&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-544&amp;quot; id=&amp;quot;h3-0-544&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformed += normalize( objectNormal ) * ( texture2D( displacementMap, vDisplacementMapUv ).x * displacementScale + displacementBias );
   1720 <a href="#l1701" class="line" id="l1701">   1701</a> &lt;a href=&quot;#l1682&quot; class=&quot;line&quot; id=&quot;l1682&quot;&gt;   1682&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-545&amp;quot; id=&amp;quot;h3-0-545&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,zF=`#ifdef USE_EMISSIVEMAP
   1721 <a href="#l1702" class="line" id="l1702">   1702</a> &lt;a href=&quot;#l1683&quot; class=&quot;line&quot; id=&quot;l1683&quot;&gt;   1683&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-546&amp;quot; id=&amp;quot;h3-0-546&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 emissiveColor = texture2D( emissiveMap, vEmissiveMapUv );
   1722 <a href="#l1703" class="line" id="l1703">   1703</a> &lt;a href=&quot;#l1684&quot; class=&quot;line&quot; id=&quot;l1684&quot;&gt;   1684&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-547&amp;quot; id=&amp;quot;h3-0-547&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef DECODE_VIDEO_TEXTURE_EMISSIVE
   1723 <a href="#l1704" class="line" id="l1704">   1704</a> &lt;a href=&quot;#l1685&quot; class=&quot;line&quot; id=&quot;l1685&quot;&gt;   1685&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-548&amp;quot; id=&amp;quot;h3-0-548&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		emissiveColor = sRGBTransferEOTF( emissiveColor );
   1724 <a href="#l1705" class="line" id="l1705">   1705</a> &lt;a href=&quot;#l1686&quot; class=&quot;line&quot; id=&quot;l1686&quot;&gt;   1686&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-549&amp;quot; id=&amp;quot;h3-0-549&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1725 <a href="#l1706" class="line" id="l1706">   1706</a> &lt;a href=&quot;#l1687&quot; class=&quot;line&quot; id=&quot;l1687&quot;&gt;   1687&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-550&amp;quot; id=&amp;quot;h3-0-550&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	totalEmissiveRadiance *= emissiveColor.rgb;
   1726 <a href="#l1707" class="line" id="l1707">   1707</a> &lt;a href=&quot;#l1688&quot; class=&quot;line&quot; id=&quot;l1688&quot;&gt;   1688&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-551&amp;quot; id=&amp;quot;h3-0-551&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,BF=`#ifdef USE_EMISSIVEMAP
   1727 <a href="#l1708" class="line" id="l1708">   1708</a> &lt;a href=&quot;#l1689&quot; class=&quot;line&quot; id=&quot;l1689&quot;&gt;   1689&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-552&amp;quot; id=&amp;quot;h3-0-552&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D emissiveMap;
   1728 <a href="#l1709" class="line" id="l1709">   1709</a> &lt;a href=&quot;#l1690&quot; class=&quot;line&quot; id=&quot;l1690&quot;&gt;   1690&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-553&amp;quot; id=&amp;quot;h3-0-553&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,PF=&amp;amp;quot;gl_FragColor = linearToOutputTexel( gl_FragColor );&amp;amp;quot;,IF=`vec4 LinearTransferOETF( in vec4 value ) {
   1729 <a href="#l1710" class="line" id="l1710">   1710</a> &lt;a href=&quot;#l1691&quot; class=&quot;line&quot; id=&quot;l1691&quot;&gt;   1691&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-554&amp;quot; id=&amp;quot;h3-0-554&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return value;
   1730 <a href="#l1711" class="line" id="l1711">   1711</a> &lt;a href=&quot;#l1692&quot; class=&quot;line&quot; id=&quot;l1692&quot;&gt;   1692&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-555&amp;quot; id=&amp;quot;h3-0-555&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1731 <a href="#l1712" class="line" id="l1712">   1712</a> &lt;a href=&quot;#l1693&quot; class=&quot;line&quot; id=&quot;l1693&quot;&gt;   1693&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-556&amp;quot; id=&amp;quot;h3-0-556&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec4 sRGBTransferEOTF( in vec4 value ) {
   1732 <a href="#l1713" class="line" id="l1713">   1713</a> &lt;a href=&quot;#l1694&quot; class=&quot;line&quot; id=&quot;l1694&quot;&gt;   1694&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-557&amp;quot; id=&amp;quot;h3-0-557&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );
   1733 <a href="#l1714" class="line" id="l1714">   1714</a> &lt;a href=&quot;#l1695&quot; class=&quot;line&quot; id=&quot;l1695&quot;&gt;   1695&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-558&amp;quot; id=&amp;quot;h3-0-558&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1734 <a href="#l1715" class="line" id="l1715">   1715</a> &lt;a href=&quot;#l1696&quot; class=&quot;line&quot; id=&quot;l1696&quot;&gt;   1696&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-559&amp;quot; id=&amp;quot;h3-0-559&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec4 sRGBTransferOETF( in vec4 value ) {
   1735 <a href="#l1716" class="line" id="l1716">   1716</a> &lt;a href=&quot;#l1697&quot; class=&quot;line&quot; id=&quot;l1697&quot;&gt;   1697&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-560&amp;quot; id=&amp;quot;h3-0-560&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );
   1736 <a href="#l1717" class="line" id="l1717">   1717</a> &lt;a href=&quot;#l1698&quot; class=&quot;line&quot; id=&quot;l1698&quot;&gt;   1698&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-561&amp;quot; id=&amp;quot;h3-0-561&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,HF=`#ifdef USE_ENVMAP
   1737 <a href="#l1718" class="line" id="l1718">   1718</a> &lt;a href=&quot;#l1699&quot; class=&quot;line&quot; id=&quot;l1699&quot;&gt;   1699&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-562&amp;quot; id=&amp;quot;h3-0-562&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ENV_WORLDPOS
   1738 <a href="#l1719" class="line" id="l1719">   1719</a> &lt;a href=&quot;#l1700&quot; class=&quot;line&quot; id=&quot;l1700&quot;&gt;   1700&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-563&amp;quot; id=&amp;quot;h3-0-563&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 cameraToFrag;
   1739 <a href="#l1720" class="line" id="l1720">   1720</a> &lt;a href=&quot;#l1701&quot; class=&quot;line&quot; id=&quot;l1701&quot;&gt;   1701&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-564&amp;quot; id=&amp;quot;h3-0-564&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( isOrthographic ) {
   1740 <a href="#l1721" class="line" id="l1721">   1721</a> &lt;a href=&quot;#l1702&quot; class=&quot;line&quot; id=&quot;l1702&quot;&gt;   1702&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-565&amp;quot; id=&amp;quot;h3-0-565&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			cameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
   1741 <a href="#l1722" class="line" id="l1722">   1722</a> &lt;a href=&quot;#l1703&quot; class=&quot;line&quot; id=&quot;l1703&quot;&gt;   1703&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-566&amp;quot; id=&amp;quot;h3-0-566&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else {
   1742 <a href="#l1723" class="line" id="l1723">   1723</a> &lt;a href=&quot;#l1704&quot; class=&quot;line&quot; id=&quot;l1704&quot;&gt;   1704&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-567&amp;quot; id=&amp;quot;h3-0-567&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			cameraToFrag = normalize( vWorldPosition - cameraPosition );
   1743 <a href="#l1724" class="line" id="l1724">   1724</a> &lt;a href=&quot;#l1705&quot; class=&quot;line&quot; id=&quot;l1705&quot;&gt;   1705&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-568&amp;quot; id=&amp;quot;h3-0-568&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1744 <a href="#l1725" class="line" id="l1725">   1725</a> &lt;a href=&quot;#l1706&quot; class=&quot;line&quot; id=&quot;l1706&quot;&gt;   1706&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-569&amp;quot; id=&amp;quot;h3-0-569&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
   1745 <a href="#l1726" class="line" id="l1726">   1726</a> &lt;a href=&quot;#l1707&quot; class=&quot;line&quot; id=&quot;l1707&quot;&gt;   1707&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-570&amp;quot; id=&amp;quot;h3-0-570&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef ENVMAP_MODE_REFLECTION
   1746 <a href="#l1727" class="line" id="l1727">   1727</a> &lt;a href=&quot;#l1708&quot; class=&quot;line&quot; id=&quot;l1708&quot;&gt;   1708&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-571&amp;quot; id=&amp;quot;h3-0-571&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 reflectVec = reflect( cameraToFrag, worldNormal );
   1747 <a href="#l1728" class="line" id="l1728">   1728</a> &lt;a href=&quot;#l1709&quot; class=&quot;line&quot; id=&quot;l1709&quot;&gt;   1709&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-572&amp;quot; id=&amp;quot;h3-0-572&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   1748 <a href="#l1729" class="line" id="l1729">   1729</a> &lt;a href=&quot;#l1710&quot; class=&quot;line&quot; id=&quot;l1710&quot;&gt;   1710&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-573&amp;quot; id=&amp;quot;h3-0-573&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );
   1749 <a href="#l1730" class="line" id="l1730">   1730</a> &lt;a href=&quot;#l1711&quot; class=&quot;line&quot; id=&quot;l1711&quot;&gt;   1711&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-574&amp;quot; id=&amp;quot;h3-0-574&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   1750 <a href="#l1731" class="line" id="l1731">   1731</a> &lt;a href=&quot;#l1712&quot; class=&quot;line&quot; id=&quot;l1712&quot;&gt;   1712&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-575&amp;quot; id=&amp;quot;h3-0-575&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1751 <a href="#l1732" class="line" id="l1732">   1732</a> &lt;a href=&quot;#l1713&quot; class=&quot;line&quot; id=&quot;l1713&quot;&gt;   1713&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-576&amp;quot; id=&amp;quot;h3-0-576&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 reflectVec = vReflect;
   1752 <a href="#l1733" class="line" id="l1733">   1733</a> &lt;a href=&quot;#l1714&quot; class=&quot;line&quot; id=&quot;l1714&quot;&gt;   1714&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-577&amp;quot; id=&amp;quot;h3-0-577&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1753 <a href="#l1734" class="line" id="l1734">   1734</a> &lt;a href=&quot;#l1715&quot; class=&quot;line&quot; id=&quot;l1715&quot;&gt;   1715&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-578&amp;quot; id=&amp;quot;h3-0-578&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ENVMAP_TYPE_CUBE
   1754 <a href="#l1735" class="line" id="l1735">   1735</a> &lt;a href=&quot;#l1716&quot; class=&quot;line&quot; id=&quot;l1716&quot;&gt;   1716&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-579&amp;quot; id=&amp;quot;h3-0-579&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 envColor = textureCube( envMap, envMapRotation * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );
   1755 <a href="#l1736" class="line" id="l1736">   1736</a> &lt;a href=&quot;#l1717&quot; class=&quot;line&quot; id=&quot;l1717&quot;&gt;   1717&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-580&amp;quot; id=&amp;quot;h3-0-580&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1756 <a href="#l1737" class="line" id="l1737">   1737</a> &lt;a href=&quot;#l1718&quot; class=&quot;line&quot; id=&quot;l1718&quot;&gt;   1718&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-581&amp;quot; id=&amp;quot;h3-0-581&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 envColor = vec4( 0.0 );
   1757 <a href="#l1738" class="line" id="l1738">   1738</a> &lt;a href=&quot;#l1719&quot; class=&quot;line&quot; id=&quot;l1719&quot;&gt;   1719&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-582&amp;quot; id=&amp;quot;h3-0-582&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1758 <a href="#l1739" class="line" id="l1739">   1739</a> &lt;a href=&quot;#l1720&quot; class=&quot;line&quot; id=&quot;l1720&quot;&gt;   1720&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-583&amp;quot; id=&amp;quot;h3-0-583&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ENVMAP_BLENDING_MULTIPLY
   1759 <a href="#l1740" class="line" id="l1740">   1740</a> &lt;a href=&quot;#l1721&quot; class=&quot;line&quot; id=&quot;l1721&quot;&gt;   1721&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-584&amp;quot; id=&amp;quot;h3-0-584&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		outgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );
   1760 <a href="#l1741" class="line" id="l1741">   1741</a> &lt;a href=&quot;#l1722&quot; class=&quot;line&quot; id=&quot;l1722&quot;&gt;   1722&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-585&amp;quot; id=&amp;quot;h3-0-585&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#elif defined( ENVMAP_BLENDING_MIX )
   1761 <a href="#l1742" class="line" id="l1742">   1742</a> &lt;a href=&quot;#l1723&quot; class=&quot;line&quot; id=&quot;l1723&quot;&gt;   1723&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-586&amp;quot; id=&amp;quot;h3-0-586&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		outgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );
   1762 <a href="#l1743" class="line" id="l1743">   1743</a> &lt;a href=&quot;#l1724&quot; class=&quot;line&quot; id=&quot;l1724&quot;&gt;   1724&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-587&amp;quot; id=&amp;quot;h3-0-587&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#elif defined( ENVMAP_BLENDING_ADD )
   1763 <a href="#l1744" class="line" id="l1744">   1744</a> &lt;a href=&quot;#l1725&quot; class=&quot;line&quot; id=&quot;l1725&quot;&gt;   1725&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-588&amp;quot; id=&amp;quot;h3-0-588&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		outgoingLight += envColor.xyz * specularStrength * reflectivity;
   1764 <a href="#l1745" class="line" id="l1745">   1745</a> &lt;a href=&quot;#l1726&quot; class=&quot;line&quot; id=&quot;l1726&quot;&gt;   1726&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-589&amp;quot; id=&amp;quot;h3-0-589&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1765 <a href="#l1746" class="line" id="l1746">   1746</a> &lt;a href=&quot;#l1727&quot; class=&quot;line&quot; id=&quot;l1727&quot;&gt;   1727&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-590&amp;quot; id=&amp;quot;h3-0-590&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,FF=`#ifdef USE_ENVMAP
   1766 <a href="#l1747" class="line" id="l1747">   1747</a> &lt;a href=&quot;#l1728&quot; class=&quot;line&quot; id=&quot;l1728&quot;&gt;   1728&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-591&amp;quot; id=&amp;quot;h3-0-591&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float envMapIntensity;
   1767 <a href="#l1748" class="line" id="l1748">   1748</a> &lt;a href=&quot;#l1729&quot; class=&quot;line&quot; id=&quot;l1729&quot;&gt;   1729&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-592&amp;quot; id=&amp;quot;h3-0-592&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float flipEnvMap;
   1768 <a href="#l1749" class="line" id="l1749">   1749</a> &lt;a href=&quot;#l1730&quot; class=&quot;line&quot; id=&quot;l1730&quot;&gt;   1730&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-593&amp;quot; id=&amp;quot;h3-0-593&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 envMapRotation;
   1769 <a href="#l1750" class="line" id="l1750">   1750</a> &lt;a href=&quot;#l1731&quot; class=&quot;line&quot; id=&quot;l1731&quot;&gt;   1731&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-594&amp;quot; id=&amp;quot;h3-0-594&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ENVMAP_TYPE_CUBE
   1770 <a href="#l1751" class="line" id="l1751">   1751</a> &lt;a href=&quot;#l1732&quot; class=&quot;line&quot; id=&quot;l1732&quot;&gt;   1732&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-595&amp;quot; id=&amp;quot;h3-0-595&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform samplerCube envMap;
   1771 <a href="#l1752" class="line" id="l1752">   1752</a> &lt;a href=&quot;#l1733&quot; class=&quot;line&quot; id=&quot;l1733&quot;&gt;   1733&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-596&amp;quot; id=&amp;quot;h3-0-596&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1772 <a href="#l1753" class="line" id="l1753">   1753</a> &lt;a href=&quot;#l1734&quot; class=&quot;line&quot; id=&quot;l1734&quot;&gt;   1734&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-597&amp;quot; id=&amp;quot;h3-0-597&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D envMap;
   1773 <a href="#l1754" class="line" id="l1754">   1754</a> &lt;a href=&quot;#l1735&quot; class=&quot;line&quot; id=&quot;l1735&quot;&gt;   1735&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-598&amp;quot; id=&amp;quot;h3-0-598&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1774 <a href="#l1755" class="line" id="l1755">   1755</a> &lt;a href=&quot;#l1736&quot; class=&quot;line&quot; id=&quot;l1736&quot;&gt;   1736&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-599&amp;quot; id=&amp;quot;h3-0-599&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1775 <a href="#l1756" class="line" id="l1756">   1756</a> &lt;a href=&quot;#l1737&quot; class=&quot;line&quot; id=&quot;l1737&quot;&gt;   1737&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-600&amp;quot; id=&amp;quot;h3-0-600&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,VF=`#ifdef USE_ENVMAP
   1776 <a href="#l1757" class="line" id="l1757">   1757</a> &lt;a href=&quot;#l1738&quot; class=&quot;line&quot; id=&quot;l1738&quot;&gt;   1738&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-601&amp;quot; id=&amp;quot;h3-0-601&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float reflectivity;
   1777 <a href="#l1758" class="line" id="l1758">   1758</a> &lt;a href=&quot;#l1739&quot; class=&quot;line&quot; id=&quot;l1739&quot;&gt;   1739&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-602&amp;quot; id=&amp;quot;h3-0-602&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
   1778 <a href="#l1759" class="line" id="l1759">   1759</a> &lt;a href=&quot;#l1740&quot; class=&quot;line&quot; id=&quot;l1740&quot;&gt;   1740&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-603&amp;quot; id=&amp;quot;h3-0-603&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#define ENV_WORLDPOS
   1779 <a href="#l1760" class="line" id="l1760">   1760</a> &lt;a href=&quot;#l1741&quot; class=&quot;line&quot; id=&quot;l1741&quot;&gt;   1741&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-604&amp;quot; id=&amp;quot;h3-0-604&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1780 <a href="#l1761" class="line" id="l1761">   1761</a> &lt;a href=&quot;#l1742&quot; class=&quot;line&quot; id=&quot;l1742&quot;&gt;   1742&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-605&amp;quot; id=&amp;quot;h3-0-605&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ENV_WORLDPOS
   1781 <a href="#l1762" class="line" id="l1762">   1762</a> &lt;a href=&quot;#l1743&quot; class=&quot;line&quot; id=&quot;l1743&quot;&gt;   1743&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-606&amp;quot; id=&amp;quot;h3-0-606&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vWorldPosition;
   1782 <a href="#l1763" class="line" id="l1763">   1763</a> &lt;a href=&quot;#l1744&quot; class=&quot;line&quot; id=&quot;l1744&quot;&gt;   1744&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-607&amp;quot; id=&amp;quot;h3-0-607&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform float refractionRatio;
   1783 <a href="#l1764" class="line" id="l1764">   1764</a> &lt;a href=&quot;#l1745&quot; class=&quot;line&quot; id=&quot;l1745&quot;&gt;   1745&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-608&amp;quot; id=&amp;quot;h3-0-608&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1784 <a href="#l1765" class="line" id="l1765">   1765</a> &lt;a href=&quot;#l1746&quot; class=&quot;line&quot; id=&quot;l1746&quot;&gt;   1746&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-609&amp;quot; id=&amp;quot;h3-0-609&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vReflect;
   1785 <a href="#l1766" class="line" id="l1766">   1766</a> &lt;a href=&quot;#l1747&quot; class=&quot;line&quot; id=&quot;l1747&quot;&gt;   1747&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-610&amp;quot; id=&amp;quot;h3-0-610&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1786 <a href="#l1767" class="line" id="l1767">   1767</a> &lt;a href=&quot;#l1748&quot; class=&quot;line&quot; id=&quot;l1748&quot;&gt;   1748&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-611&amp;quot; id=&amp;quot;h3-0-611&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,GF=`#ifdef USE_ENVMAP
   1787 <a href="#l1768" class="line" id="l1768">   1768</a> &lt;a href=&quot;#l1749&quot; class=&quot;line&quot; id=&quot;l1749&quot;&gt;   1749&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-612&amp;quot; id=&amp;quot;h3-0-612&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( LAMBERT )
   1788 <a href="#l1769" class="line" id="l1769">   1769</a> &lt;a href=&quot;#l1750&quot; class=&quot;line&quot; id=&quot;l1750&quot;&gt;   1750&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-613&amp;quot; id=&amp;quot;h3-0-613&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#define ENV_WORLDPOS
   1789 <a href="#l1770" class="line" id="l1770">   1770</a> &lt;a href=&quot;#l1751&quot; class=&quot;line&quot; id=&quot;l1751&quot;&gt;   1751&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-614&amp;quot; id=&amp;quot;h3-0-614&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1790 <a href="#l1771" class="line" id="l1771">   1771</a> &lt;a href=&quot;#l1752&quot; class=&quot;line&quot; id=&quot;l1752&quot;&gt;   1752&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-615&amp;quot; id=&amp;quot;h3-0-615&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ENV_WORLDPOS
   1791 <a href="#l1772" class="line" id="l1772">   1772</a> &lt;a href=&quot;#l1753&quot; class=&quot;line&quot; id=&quot;l1753&quot;&gt;   1753&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-616&amp;quot; id=&amp;quot;h3-0-616&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   1792 <a href="#l1773" class="line" id="l1773">   1773</a> &lt;a href=&quot;#l1754&quot; class=&quot;line&quot; id=&quot;l1754&quot;&gt;   1754&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-617&amp;quot; id=&amp;quot;h3-0-617&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vWorldPosition;
   1793 <a href="#l1774" class="line" id="l1774">   1774</a> &lt;a href=&quot;#l1755&quot; class=&quot;line&quot; id=&quot;l1755&quot;&gt;   1755&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-618&amp;quot; id=&amp;quot;h3-0-618&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1794 <a href="#l1775" class="line" id="l1775">   1775</a> &lt;a href=&quot;#l1756&quot; class=&quot;line&quot; id=&quot;l1756&quot;&gt;   1756&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-619&amp;quot; id=&amp;quot;h3-0-619&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vReflect;
   1795 <a href="#l1776" class="line" id="l1776">   1776</a> &lt;a href=&quot;#l1757&quot; class=&quot;line&quot; id=&quot;l1757&quot;&gt;   1757&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-620&amp;quot; id=&amp;quot;h3-0-620&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform float refractionRatio;
   1796 <a href="#l1777" class="line" id="l1777">   1777</a> &lt;a href=&quot;#l1758&quot; class=&quot;line&quot; id=&quot;l1758&quot;&gt;   1758&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-621&amp;quot; id=&amp;quot;h3-0-621&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1797 <a href="#l1778" class="line" id="l1778">   1778</a> &lt;a href=&quot;#l1759&quot; class=&quot;line&quot; id=&quot;l1759&quot;&gt;   1759&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-622&amp;quot; id=&amp;quot;h3-0-622&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,XF=`#ifdef USE_ENVMAP
   1798 <a href="#l1779" class="line" id="l1779">   1779</a> &lt;a href=&quot;#l1760&quot; class=&quot;line&quot; id=&quot;l1760&quot;&gt;   1760&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-623&amp;quot; id=&amp;quot;h3-0-623&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ENV_WORLDPOS
   1799 <a href="#l1780" class="line" id="l1780">   1780</a> &lt;a href=&quot;#l1761&quot; class=&quot;line&quot; id=&quot;l1761&quot;&gt;   1761&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-624&amp;quot; id=&amp;quot;h3-0-624&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vWorldPosition = worldPosition.xyz;
   1800 <a href="#l1781" class="line" id="l1781">   1781</a> &lt;a href=&quot;#l1762&quot; class=&quot;line&quot; id=&quot;l1762&quot;&gt;   1762&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-625&amp;quot; id=&amp;quot;h3-0-625&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1801 <a href="#l1782" class="line" id="l1782">   1782</a> &lt;a href=&quot;#l1763&quot; class=&quot;line&quot; id=&quot;l1763&quot;&gt;   1763&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-626&amp;quot; id=&amp;quot;h3-0-626&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 cameraToVertex;
   1802 <a href="#l1783" class="line" id="l1783">   1783</a> &lt;a href=&quot;#l1764&quot; class=&quot;line&quot; id=&quot;l1764&quot;&gt;   1764&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-627&amp;quot; id=&amp;quot;h3-0-627&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( isOrthographic ) {
   1803 <a href="#l1784" class="line" id="l1784">   1784</a> &lt;a href=&quot;#l1765&quot; class=&quot;line&quot; id=&quot;l1765&quot;&gt;   1765&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-628&amp;quot; id=&amp;quot;h3-0-628&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			cameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );
   1804 <a href="#l1785" class="line" id="l1785">   1785</a> &lt;a href=&quot;#l1766&quot; class=&quot;line&quot; id=&quot;l1766&quot;&gt;   1766&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-629&amp;quot; id=&amp;quot;h3-0-629&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else {
   1805 <a href="#l1786" class="line" id="l1786">   1786</a> &lt;a href=&quot;#l1767&quot; class=&quot;line&quot; id=&quot;l1767&quot;&gt;   1767&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-630&amp;quot; id=&amp;quot;h3-0-630&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			cameraToVertex = normalize( worldPosition.xyz - cameraPosition );
   1806 <a href="#l1787" class="line" id="l1787">   1787</a> &lt;a href=&quot;#l1768&quot; class=&quot;line&quot; id=&quot;l1768&quot;&gt;   1768&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-631&amp;quot; id=&amp;quot;h3-0-631&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1807 <a href="#l1788" class="line" id="l1788">   1788</a> &lt;a href=&quot;#l1769&quot; class=&quot;line&quot; id=&quot;l1769&quot;&gt;   1769&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-632&amp;quot; id=&amp;quot;h3-0-632&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
   1808 <a href="#l1789" class="line" id="l1789">   1789</a> &lt;a href=&quot;#l1770&quot; class=&quot;line&quot; id=&quot;l1770&quot;&gt;   1770&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-633&amp;quot; id=&amp;quot;h3-0-633&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef ENVMAP_MODE_REFLECTION
   1809 <a href="#l1790" class="line" id="l1790">   1790</a> &lt;a href=&quot;#l1771&quot; class=&quot;line&quot; id=&quot;l1771&quot;&gt;   1771&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-634&amp;quot; id=&amp;quot;h3-0-634&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vReflect = reflect( cameraToVertex, worldNormal );
   1810 <a href="#l1791" class="line" id="l1791">   1791</a> &lt;a href=&quot;#l1772&quot; class=&quot;line&quot; id=&quot;l1772&quot;&gt;   1772&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-635&amp;quot; id=&amp;quot;h3-0-635&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   1811 <a href="#l1792" class="line" id="l1792">   1792</a> &lt;a href=&quot;#l1773&quot; class=&quot;line&quot; id=&quot;l1773&quot;&gt;   1773&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-636&amp;quot; id=&amp;quot;h3-0-636&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vReflect = refract( cameraToVertex, worldNormal, refractionRatio );
   1812 <a href="#l1793" class="line" id="l1793">   1793</a> &lt;a href=&quot;#l1774&quot; class=&quot;line&quot; id=&quot;l1774&quot;&gt;   1774&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-637&amp;quot; id=&amp;quot;h3-0-637&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   1813 <a href="#l1794" class="line" id="l1794">   1794</a> &lt;a href=&quot;#l1775&quot; class=&quot;line&quot; id=&quot;l1775&quot;&gt;   1775&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-638&amp;quot; id=&amp;quot;h3-0-638&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1814 <a href="#l1795" class="line" id="l1795">   1795</a> &lt;a href=&quot;#l1776&quot; class=&quot;line&quot; id=&quot;l1776&quot;&gt;   1776&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-639&amp;quot; id=&amp;quot;h3-0-639&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,qF=`#ifdef USE_FOG
   1815 <a href="#l1796" class="line" id="l1796">   1796</a> &lt;a href=&quot;#l1777&quot; class=&quot;line&quot; id=&quot;l1777&quot;&gt;   1777&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-640&amp;quot; id=&amp;quot;h3-0-640&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vFogDepth = - mvPosition.z;
   1816 <a href="#l1797" class="line" id="l1797">   1797</a> &lt;a href=&quot;#l1778&quot; class=&quot;line&quot; id=&quot;l1778&quot;&gt;   1778&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-641&amp;quot; id=&amp;quot;h3-0-641&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,YF=`#ifdef USE_FOG
   1817 <a href="#l1798" class="line" id="l1798">   1798</a> &lt;a href=&quot;#l1779&quot; class=&quot;line&quot; id=&quot;l1779&quot;&gt;   1779&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-642&amp;quot; id=&amp;quot;h3-0-642&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying float vFogDepth;
   1818 <a href="#l1799" class="line" id="l1799">   1799</a> &lt;a href=&quot;#l1780&quot; class=&quot;line&quot; id=&quot;l1780&quot;&gt;   1780&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-643&amp;quot; id=&amp;quot;h3-0-643&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,WF=`#ifdef USE_FOG
   1819 <a href="#l1800" class="line" id="l1800">   1800</a> &lt;a href=&quot;#l1781&quot; class=&quot;line&quot; id=&quot;l1781&quot;&gt;   1781&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-644&amp;quot; id=&amp;quot;h3-0-644&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef FOG_EXP2
   1820 <a href="#l1801" class="line" id="l1801">   1801</a> &lt;a href=&quot;#l1782&quot; class=&quot;line&quot; id=&quot;l1782&quot;&gt;   1782&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-645&amp;quot; id=&amp;quot;h3-0-645&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float fogFactor = 1.0 - exp( - fogDensity * fogDensity * vFogDepth * vFogDepth );
   1821 <a href="#l1802" class="line" id="l1802">   1802</a> &lt;a href=&quot;#l1783&quot; class=&quot;line&quot; id=&quot;l1783&quot;&gt;   1783&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-646&amp;quot; id=&amp;quot;h3-0-646&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1822 <a href="#l1803" class="line" id="l1803">   1803</a> &lt;a href=&quot;#l1784&quot; class=&quot;line&quot; id=&quot;l1784&quot;&gt;   1784&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-647&amp;quot; id=&amp;quot;h3-0-647&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float fogFactor = smoothstep( fogNear, fogFar, vFogDepth );
   1823 <a href="#l1804" class="line" id="l1804">   1804</a> &lt;a href=&quot;#l1785&quot; class=&quot;line&quot; id=&quot;l1785&quot;&gt;   1785&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-648&amp;quot; id=&amp;quot;h3-0-648&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1824 <a href="#l1805" class="line" id="l1805">   1805</a> &lt;a href=&quot;#l1786&quot; class=&quot;line&quot; id=&quot;l1786&quot;&gt;   1786&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-649&amp;quot; id=&amp;quot;h3-0-649&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );
   1825 <a href="#l1806" class="line" id="l1806">   1806</a> &lt;a href=&quot;#l1787&quot; class=&quot;line&quot; id=&quot;l1787&quot;&gt;   1787&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-650&amp;quot; id=&amp;quot;h3-0-650&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,kF=`#ifdef USE_FOG
   1826 <a href="#l1807" class="line" id="l1807">   1807</a> &lt;a href=&quot;#l1788&quot; class=&quot;line&quot; id=&quot;l1788&quot;&gt;   1788&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-651&amp;quot; id=&amp;quot;h3-0-651&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec3 fogColor;
   1827 <a href="#l1808" class="line" id="l1808">   1808</a> &lt;a href=&quot;#l1789&quot; class=&quot;line&quot; id=&quot;l1789&quot;&gt;   1789&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-652&amp;quot; id=&amp;quot;h3-0-652&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying float vFogDepth;
   1828 <a href="#l1809" class="line" id="l1809">   1809</a> &lt;a href=&quot;#l1790&quot; class=&quot;line&quot; id=&quot;l1790&quot;&gt;   1790&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-653&amp;quot; id=&amp;quot;h3-0-653&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef FOG_EXP2
   1829 <a href="#l1810" class="line" id="l1810">   1810</a> &lt;a href=&quot;#l1791&quot; class=&quot;line&quot; id=&quot;l1791&quot;&gt;   1791&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-654&amp;quot; id=&amp;quot;h3-0-654&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform float fogDensity;
   1830 <a href="#l1811" class="line" id="l1811">   1811</a> &lt;a href=&quot;#l1792&quot; class=&quot;line&quot; id=&quot;l1792&quot;&gt;   1792&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-655&amp;quot; id=&amp;quot;h3-0-655&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1831 <a href="#l1812" class="line" id="l1812">   1812</a> &lt;a href=&quot;#l1793&quot; class=&quot;line&quot; id=&quot;l1793&quot;&gt;   1793&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-656&amp;quot; id=&amp;quot;h3-0-656&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform float fogNear;
   1832 <a href="#l1813" class="line" id="l1813">   1813</a> &lt;a href=&quot;#l1794&quot; class=&quot;line&quot; id=&quot;l1794&quot;&gt;   1794&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-657&amp;quot; id=&amp;quot;h3-0-657&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform float fogFar;
   1833 <a href="#l1814" class="line" id="l1814">   1814</a> &lt;a href=&quot;#l1795&quot; class=&quot;line&quot; id=&quot;l1795&quot;&gt;   1795&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-658&amp;quot; id=&amp;quot;h3-0-658&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1834 <a href="#l1815" class="line" id="l1815">   1815</a> &lt;a href=&quot;#l1796&quot; class=&quot;line&quot; id=&quot;l1796&quot;&gt;   1796&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-659&amp;quot; id=&amp;quot;h3-0-659&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,ZF=`#ifdef USE_GRADIENTMAP
   1835 <a href="#l1816" class="line" id="l1816">   1816</a> &lt;a href=&quot;#l1797&quot; class=&quot;line&quot; id=&quot;l1797&quot;&gt;   1797&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-660&amp;quot; id=&amp;quot;h3-0-660&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D gradientMap;
   1836 <a href="#l1817" class="line" id="l1817">   1817</a> &lt;a href=&quot;#l1798&quot; class=&quot;line&quot; id=&quot;l1798&quot;&gt;   1798&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-661&amp;quot; id=&amp;quot;h3-0-661&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1837 <a href="#l1818" class="line" id="l1818">   1818</a> &lt;a href=&quot;#l1799&quot; class=&quot;line&quot; id=&quot;l1799&quot;&gt;   1799&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-662&amp;quot; id=&amp;quot;h3-0-662&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {
   1838 <a href="#l1819" class="line" id="l1819">   1819</a> &lt;a href=&quot;#l1800&quot; class=&quot;line&quot; id=&quot;l1800&quot;&gt;   1800&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-663&amp;quot; id=&amp;quot;h3-0-663&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNL = dot( normal, lightDirection );
   1839 <a href="#l1820" class="line" id="l1820">   1820</a> &lt;a href=&quot;#l1801&quot; class=&quot;line&quot; id=&quot;l1801&quot;&gt;   1801&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-664&amp;quot; id=&amp;quot;h3-0-664&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );
   1840 <a href="#l1821" class="line" id="l1821">   1821</a> &lt;a href=&quot;#l1802&quot; class=&quot;line&quot; id=&quot;l1802&quot;&gt;   1802&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-665&amp;quot; id=&amp;quot;h3-0-665&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_GRADIENTMAP
   1841 <a href="#l1822" class="line" id="l1822">   1822</a> &lt;a href=&quot;#l1803&quot; class=&quot;line&quot; id=&quot;l1803&quot;&gt;   1803&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-666&amp;quot; id=&amp;quot;h3-0-666&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec3( texture2D( gradientMap, coord ).r );
   1842 <a href="#l1823" class="line" id="l1823">   1823</a> &lt;a href=&quot;#l1804&quot; class=&quot;line&quot; id=&quot;l1804&quot;&gt;   1804&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-667&amp;quot; id=&amp;quot;h3-0-667&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   1843 <a href="#l1824" class="line" id="l1824">   1824</a> &lt;a href=&quot;#l1805&quot; class=&quot;line&quot; id=&quot;l1805&quot;&gt;   1805&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-668&amp;quot; id=&amp;quot;h3-0-668&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 fw = fwidth( coord ) * 0.5;
   1844 <a href="#l1825" class="line" id="l1825">   1825</a> &lt;a href=&quot;#l1806&quot; class=&quot;line&quot; id=&quot;l1806&quot;&gt;   1806&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-669&amp;quot; id=&amp;quot;h3-0-669&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return mix( vec3( 0.7 ), vec3( 1.0 ), smoothstep( 0.7 - fw.x, 0.7 + fw.x, coord.x ) );
   1845 <a href="#l1826" class="line" id="l1826">   1826</a> &lt;a href=&quot;#l1807&quot; class=&quot;line&quot; id=&quot;l1807&quot;&gt;   1807&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-670&amp;quot; id=&amp;quot;h3-0-670&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   1846 <a href="#l1827" class="line" id="l1827">   1827</a> &lt;a href=&quot;#l1808&quot; class=&quot;line&quot; id=&quot;l1808&quot;&gt;   1808&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-671&amp;quot; id=&amp;quot;h3-0-671&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,jF=`#ifdef USE_LIGHTMAP
   1847 <a href="#l1828" class="line" id="l1828">   1828</a> &lt;a href=&quot;#l1809&quot; class=&quot;line&quot; id=&quot;l1809&quot;&gt;   1809&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-672&amp;quot; id=&amp;quot;h3-0-672&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D lightMap;
   1848 <a href="#l1829" class="line" id="l1829">   1829</a> &lt;a href=&quot;#l1810&quot; class=&quot;line&quot; id=&quot;l1810&quot;&gt;   1810&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-673&amp;quot; id=&amp;quot;h3-0-673&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float lightMapIntensity;
   1849 <a href="#l1830" class="line" id="l1830">   1830</a> &lt;a href=&quot;#l1811&quot; class=&quot;line&quot; id=&quot;l1811&quot;&gt;   1811&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-674&amp;quot; id=&amp;quot;h3-0-674&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,QF=`LambertMaterial material;
   1850 <a href="#l1831" class="line" id="l1831">   1831</a> &lt;a href=&quot;#l1812&quot; class=&quot;line&quot; id=&quot;l1812&quot;&gt;   1812&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-675&amp;quot; id=&amp;quot;h3-0-675&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.diffuseColor = diffuseColor.rgb;
   1851 <a href="#l1832" class="line" id="l1832">   1832</a> &lt;a href=&quot;#l1813&quot; class=&quot;line&quot; id=&quot;l1813&quot;&gt;   1813&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-676&amp;quot; id=&amp;quot;h3-0-676&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.specularStrength = specularStrength;`,KF=`varying vec3 vViewPosition;
   1852 <a href="#l1833" class="line" id="l1833">   1833</a> &lt;a href=&quot;#l1814&quot; class=&quot;line&quot; id=&quot;l1814&quot;&gt;   1814&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-677&amp;quot; id=&amp;quot;h3-0-677&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct LambertMaterial {
   1853 <a href="#l1834" class="line" id="l1834">   1834</a> &lt;a href=&quot;#l1815&quot; class=&quot;line&quot; id=&quot;l1815&quot;&gt;   1815&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-678&amp;quot; id=&amp;quot;h3-0-678&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 diffuseColor;
   1854 <a href="#l1835" class="line" id="l1835">   1835</a> &lt;a href=&quot;#l1816&quot; class=&quot;line&quot; id=&quot;l1816&quot;&gt;   1816&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-679&amp;quot; id=&amp;quot;h3-0-679&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float specularStrength;
   1855 <a href="#l1836" class="line" id="l1836">   1836</a> &lt;a href=&quot;#l1817&quot; class=&quot;line&quot; id=&quot;l1817&quot;&gt;   1817&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-680&amp;quot; id=&amp;quot;h3-0-680&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   1856 <a href="#l1837" class="line" id="l1837">   1837</a> &lt;a href=&quot;#l1818&quot; class=&quot;line&quot; id=&quot;l1818&quot;&gt;   1818&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-681&amp;quot; id=&amp;quot;h3-0-681&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_Direct_Lambert( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
   1857 <a href="#l1838" class="line" id="l1838">   1838</a> &lt;a href=&quot;#l1819&quot; class=&quot;line&quot; id=&quot;l1819&quot;&gt;   1819&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-682&amp;quot; id=&amp;quot;h3-0-682&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
   1858 <a href="#l1839" class="line" id="l1839">   1839</a> &lt;a href=&quot;#l1820&quot; class=&quot;line&quot; id=&quot;l1820&quot;&gt;   1820&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-683&amp;quot; id=&amp;quot;h3-0-683&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 irradiance = dotNL * directLight.color;
   1859 <a href="#l1840" class="line" id="l1840">   1840</a> &lt;a href=&quot;#l1821&quot; class=&quot;line&quot; id=&quot;l1821&quot;&gt;   1821&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-684&amp;quot; id=&amp;quot;h3-0-684&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
   1860 <a href="#l1841" class="line" id="l1841">   1841</a> &lt;a href=&quot;#l1822&quot; class=&quot;line&quot; id=&quot;l1822&quot;&gt;   1822&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-685&amp;quot; id=&amp;quot;h3-0-685&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1861 <a href="#l1842" class="line" id="l1842">   1842</a> &lt;a href=&quot;#l1823&quot; class=&quot;line&quot; id=&quot;l1823&quot;&gt;   1823&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-686&amp;quot; id=&amp;quot;h3-0-686&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_IndirectDiffuse_Lambert( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in LambertMaterial material, inout ReflectedLight reflectedLight ) {
   1862 <a href="#l1843" class="line" id="l1843">   1843</a> &lt;a href=&quot;#l1824&quot; class=&quot;line&quot; id=&quot;l1824&quot;&gt;   1824&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-687&amp;quot; id=&amp;quot;h3-0-687&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
   1863 <a href="#l1844" class="line" id="l1844">   1844</a> &lt;a href=&quot;#l1825&quot; class=&quot;line&quot; id=&quot;l1825&quot;&gt;   1825&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-688&amp;quot; id=&amp;quot;h3-0-688&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1864 <a href="#l1845" class="line" id="l1845">   1845</a> &lt;a href=&quot;#l1826&quot; class=&quot;line&quot; id=&quot;l1826&quot;&gt;   1826&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-689&amp;quot; id=&amp;quot;h3-0-689&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_Direct				RE_Direct_Lambert
   1865 <a href="#l1846" class="line" id="l1846">   1846</a> &lt;a href=&quot;#l1827&quot; class=&quot;line&quot; id=&quot;l1827&quot;&gt;   1827&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-690&amp;quot; id=&amp;quot;h3-0-690&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_IndirectDiffuse		RE_IndirectDiffuse_Lambert`,JF=`uniform bool receiveShadow;
   1866 <a href="#l1847" class="line" id="l1847">   1847</a> &lt;a href=&quot;#l1828&quot; class=&quot;line&quot; id=&quot;l1828&quot;&gt;   1828&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-691&amp;quot; id=&amp;quot;h3-0-691&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 ambientLightColor;
   1867 <a href="#l1848" class="line" id="l1848">   1848</a> &lt;a href=&quot;#l1829&quot; class=&quot;line&quot; id=&quot;l1829&quot;&gt;   1829&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-692&amp;quot; id=&amp;quot;h3-0-692&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( USE_LIGHT_PROBES )
   1868 <a href="#l1849" class="line" id="l1849">   1849</a> &lt;a href=&quot;#l1830&quot; class=&quot;line&quot; id=&quot;l1830&quot;&gt;   1830&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-693&amp;quot; id=&amp;quot;h3-0-693&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec3 lightProbe[ 9 ];
   1869 <a href="#l1850" class="line" id="l1850">   1850</a> &lt;a href=&quot;#l1831&quot; class=&quot;line&quot; id=&quot;l1831&quot;&gt;   1831&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-694&amp;quot; id=&amp;quot;h3-0-694&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1870 <a href="#l1851" class="line" id="l1851">   1851</a> &lt;a href=&quot;#l1832&quot; class=&quot;line&quot; id=&quot;l1832&quot;&gt;   1832&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-695&amp;quot; id=&amp;quot;h3-0-695&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {
   1871 <a href="#l1852" class="line" id="l1852">   1852</a> &lt;a href=&quot;#l1833&quot; class=&quot;line&quot; id=&quot;l1833&quot;&gt;   1833&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-696&amp;quot; id=&amp;quot;h3-0-696&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float x = normal.x, y = normal.y, z = normal.z;
   1872 <a href="#l1853" class="line" id="l1853">   1853</a> &lt;a href=&quot;#l1834&quot; class=&quot;line&quot; id=&quot;l1834&quot;&gt;   1834&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-697&amp;quot; id=&amp;quot;h3-0-697&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 result = shCoefficients[ 0 ] * 0.886227;
   1873 <a href="#l1854" class="line" id="l1854">   1854</a> &lt;a href=&quot;#l1835&quot; class=&quot;line&quot; id=&quot;l1835&quot;&gt;   1835&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-698&amp;quot; id=&amp;quot;h3-0-698&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	result += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;
   1874 <a href="#l1855" class="line" id="l1855">   1855</a> &lt;a href=&quot;#l1836&quot; class=&quot;line&quot; id=&quot;l1836&quot;&gt;   1836&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-699&amp;quot; id=&amp;quot;h3-0-699&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	result += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;
   1875 <a href="#l1856" class="line" id="l1856">   1856</a> &lt;a href=&quot;#l1837&quot; class=&quot;line&quot; id=&quot;l1837&quot;&gt;   1837&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-700&amp;quot; id=&amp;quot;h3-0-700&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	result += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;
   1876 <a href="#l1857" class="line" id="l1857">   1857</a> &lt;a href=&quot;#l1838&quot; class=&quot;line&quot; id=&quot;l1838&quot;&gt;   1838&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-701&amp;quot; id=&amp;quot;h3-0-701&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	result += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;
   1877 <a href="#l1858" class="line" id="l1858">   1858</a> &lt;a href=&quot;#l1839&quot; class=&quot;line&quot; id=&quot;l1839&quot;&gt;   1839&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-702&amp;quot; id=&amp;quot;h3-0-702&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	result += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;
   1878 <a href="#l1859" class="line" id="l1859">   1859</a> &lt;a href=&quot;#l1840&quot; class=&quot;line&quot; id=&quot;l1840&quot;&gt;   1840&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-703&amp;quot; id=&amp;quot;h3-0-703&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	result += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );
   1879 <a href="#l1860" class="line" id="l1860">   1860</a> &lt;a href=&quot;#l1841&quot; class=&quot;line&quot; id=&quot;l1841&quot;&gt;   1841&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-704&amp;quot; id=&amp;quot;h3-0-704&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	result += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;
   1880 <a href="#l1861" class="line" id="l1861">   1861</a> &lt;a href=&quot;#l1842&quot; class=&quot;line&quot; id=&quot;l1842&quot;&gt;   1842&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-705&amp;quot; id=&amp;quot;h3-0-705&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	result += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );
   1881 <a href="#l1862" class="line" id="l1862">   1862</a> &lt;a href=&quot;#l1843&quot; class=&quot;line&quot; id=&quot;l1843&quot;&gt;   1843&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-706&amp;quot; id=&amp;quot;h3-0-706&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return result;
   1882 <a href="#l1863" class="line" id="l1863">   1863</a> &lt;a href=&quot;#l1844&quot; class=&quot;line&quot; id=&quot;l1844&quot;&gt;   1844&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-707&amp;quot; id=&amp;quot;h3-0-707&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1883 <a href="#l1864" class="line" id="l1864">   1864</a> &lt;a href=&quot;#l1845&quot; class=&quot;line&quot; id=&quot;l1845&quot;&gt;   1845&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-708&amp;quot; id=&amp;quot;h3-0-708&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in vec3 normal ) {
   1884 <a href="#l1865" class="line" id="l1865">   1865</a> &lt;a href=&quot;#l1846&quot; class=&quot;line&quot; id=&quot;l1846&quot;&gt;   1846&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-709&amp;quot; id=&amp;quot;h3-0-709&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
   1885 <a href="#l1866" class="line" id="l1866">   1866</a> &lt;a href=&quot;#l1847&quot; class=&quot;line&quot; id=&quot;l1847&quot;&gt;   1847&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-710&amp;quot; id=&amp;quot;h3-0-710&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );
   1886 <a href="#l1867" class="line" id="l1867">   1867</a> &lt;a href=&quot;#l1848&quot; class=&quot;line&quot; id=&quot;l1848&quot;&gt;   1848&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-711&amp;quot; id=&amp;quot;h3-0-711&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return irradiance;
   1887 <a href="#l1868" class="line" id="l1868">   1868</a> &lt;a href=&quot;#l1849&quot; class=&quot;line&quot; id=&quot;l1849&quot;&gt;   1849&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-712&amp;quot; id=&amp;quot;h3-0-712&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1888 <a href="#l1869" class="line" id="l1869">   1869</a> &lt;a href=&quot;#l1850&quot; class=&quot;line&quot; id=&quot;l1850&quot;&gt;   1850&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-713&amp;quot; id=&amp;quot;h3-0-713&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {
   1889 <a href="#l1870" class="line" id="l1870">   1870</a> &lt;a href=&quot;#l1851&quot; class=&quot;line&quot; id=&quot;l1851&quot;&gt;   1851&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-714&amp;quot; id=&amp;quot;h3-0-714&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 irradiance = ambientLightColor;
   1890 <a href="#l1871" class="line" id="l1871">   1871</a> &lt;a href=&quot;#l1852&quot; class=&quot;line&quot; id=&quot;l1852&quot;&gt;   1852&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-715&amp;quot; id=&amp;quot;h3-0-715&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return irradiance;
   1891 <a href="#l1872" class="line" id="l1872">   1872</a> &lt;a href=&quot;#l1853&quot; class=&quot;line&quot; id=&quot;l1853&quot;&gt;   1853&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-716&amp;quot; id=&amp;quot;h3-0-716&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1892 <a href="#l1873" class="line" id="l1873">   1873</a> &lt;a href=&quot;#l1854&quot; class=&quot;line&quot; id=&quot;l1854&quot;&gt;   1854&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-717&amp;quot; id=&amp;quot;h3-0-717&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float getDistanceAttenuation( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {
   1893 <a href="#l1874" class="line" id="l1874">   1874</a> &lt;a href=&quot;#l1855&quot; class=&quot;line&quot; id=&quot;l1855&quot;&gt;   1855&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-718&amp;quot; id=&amp;quot;h3-0-718&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );
   1894 <a href="#l1875" class="line" id="l1875">   1875</a> &lt;a href=&quot;#l1856&quot; class=&quot;line&quot; id=&quot;l1856&quot;&gt;   1856&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-719&amp;quot; id=&amp;quot;h3-0-719&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( cutoffDistance &amp;amp;gt; 0.0 ) {
   1895 <a href="#l1876" class="line" id="l1876">   1876</a> &lt;a href=&quot;#l1857&quot; class=&quot;line&quot; id=&quot;l1857&quot;&gt;   1857&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-720&amp;quot; id=&amp;quot;h3-0-720&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		distanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );
   1896 <a href="#l1877" class="line" id="l1877">   1877</a> &lt;a href=&quot;#l1858&quot; class=&quot;line&quot; id=&quot;l1858&quot;&gt;   1858&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-721&amp;quot; id=&amp;quot;h3-0-721&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1897 <a href="#l1878" class="line" id="l1878">   1878</a> &lt;a href=&quot;#l1859&quot; class=&quot;line&quot; id=&quot;l1859&quot;&gt;   1859&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-722&amp;quot; id=&amp;quot;h3-0-722&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return distanceFalloff;
   1898 <a href="#l1879" class="line" id="l1879">   1879</a> &lt;a href=&quot;#l1860&quot; class=&quot;line&quot; id=&quot;l1860&quot;&gt;   1860&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-723&amp;quot; id=&amp;quot;h3-0-723&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1899 <a href="#l1880" class="line" id="l1880">   1880</a> &lt;a href=&quot;#l1861&quot; class=&quot;line&quot; id=&quot;l1861&quot;&gt;   1861&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-724&amp;quot; id=&amp;quot;h3-0-724&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float getSpotAttenuation( const in float coneCosine, const in float penumbraCosine, const in float angleCosine ) {
   1900 <a href="#l1881" class="line" id="l1881">   1881</a> &lt;a href=&quot;#l1862&quot; class=&quot;line&quot; id=&quot;l1862&quot;&gt;   1862&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-725&amp;quot; id=&amp;quot;h3-0-725&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return smoothstep( coneCosine, penumbraCosine, angleCosine );
   1901 <a href="#l1882" class="line" id="l1882">   1882</a> &lt;a href=&quot;#l1863&quot; class=&quot;line&quot; id=&quot;l1863&quot;&gt;   1863&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-726&amp;quot; id=&amp;quot;h3-0-726&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   1902 <a href="#l1883" class="line" id="l1883">   1883</a> &lt;a href=&quot;#l1864&quot; class=&quot;line&quot; id=&quot;l1864&quot;&gt;   1864&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-727&amp;quot; id=&amp;quot;h3-0-727&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if NUM_DIR_LIGHTS &amp;amp;gt; 0
   1903 <a href="#l1884" class="line" id="l1884">   1884</a> &lt;a href=&quot;#l1865&quot; class=&quot;line&quot; id=&quot;l1865&quot;&gt;   1865&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-728&amp;quot; id=&amp;quot;h3-0-728&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	struct DirectionalLight {
   1904 <a href="#l1885" class="line" id="l1885">   1885</a> &lt;a href=&quot;#l1866&quot; class=&quot;line&quot; id=&quot;l1866&quot;&gt;   1866&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-729&amp;quot; id=&amp;quot;h3-0-729&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 direction;
   1905 <a href="#l1886" class="line" id="l1886">   1886</a> &lt;a href=&quot;#l1867&quot; class=&quot;line&quot; id=&quot;l1867&quot;&gt;   1867&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-730&amp;quot; id=&amp;quot;h3-0-730&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 color;
   1906 <a href="#l1887" class="line" id="l1887">   1887</a> &lt;a href=&quot;#l1868&quot; class=&quot;line&quot; id=&quot;l1868&quot;&gt;   1868&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-731&amp;quot; id=&amp;quot;h3-0-731&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	};
   1907 <a href="#l1888" class="line" id="l1888">   1888</a> &lt;a href=&quot;#l1869&quot; class=&quot;line&quot; id=&quot;l1869&quot;&gt;   1869&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-732&amp;quot; id=&amp;quot;h3-0-732&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];
   1908 <a href="#l1889" class="line" id="l1889">   1889</a> &lt;a href=&quot;#l1870&quot; class=&quot;line&quot; id=&quot;l1870&quot;&gt;   1870&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-733&amp;quot; id=&amp;quot;h3-0-733&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	void getDirectionalLightInfo( const in DirectionalLight directionalLight, out IncidentLight light ) {
   1909 <a href="#l1890" class="line" id="l1890">   1890</a> &lt;a href=&quot;#l1871&quot; class=&quot;line&quot; id=&quot;l1871&quot;&gt;   1871&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-734&amp;quot; id=&amp;quot;h3-0-734&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		light.color = directionalLight.color;
   1910 <a href="#l1891" class="line" id="l1891">   1891</a> &lt;a href=&quot;#l1872&quot; class=&quot;line&quot; id=&quot;l1872&quot;&gt;   1872&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-735&amp;quot; id=&amp;quot;h3-0-735&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		light.direction = directionalLight.direction;
   1911 <a href="#l1892" class="line" id="l1892">   1892</a> &lt;a href=&quot;#l1873&quot; class=&quot;line&quot; id=&quot;l1873&quot;&gt;   1873&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-736&amp;quot; id=&amp;quot;h3-0-736&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		light.visible = true;
   1912 <a href="#l1893" class="line" id="l1893">   1893</a> &lt;a href=&quot;#l1874&quot; class=&quot;line&quot; id=&quot;l1874&quot;&gt;   1874&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-737&amp;quot; id=&amp;quot;h3-0-737&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1913 <a href="#l1894" class="line" id="l1894">   1894</a> &lt;a href=&quot;#l1875&quot; class=&quot;line&quot; id=&quot;l1875&quot;&gt;   1875&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-738&amp;quot; id=&amp;quot;h3-0-738&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1914 <a href="#l1895" class="line" id="l1895">   1895</a> &lt;a href=&quot;#l1876&quot; class=&quot;line&quot; id=&quot;l1876&quot;&gt;   1876&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-739&amp;quot; id=&amp;quot;h3-0-739&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if NUM_POINT_LIGHTS &amp;amp;gt; 0
   1915 <a href="#l1896" class="line" id="l1896">   1896</a> &lt;a href=&quot;#l1877&quot; class=&quot;line&quot; id=&quot;l1877&quot;&gt;   1877&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-740&amp;quot; id=&amp;quot;h3-0-740&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	struct PointLight {
   1916 <a href="#l1897" class="line" id="l1897">   1897</a> &lt;a href=&quot;#l1878&quot; class=&quot;line&quot; id=&quot;l1878&quot;&gt;   1878&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-741&amp;quot; id=&amp;quot;h3-0-741&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 position;
   1917 <a href="#l1898" class="line" id="l1898">   1898</a> &lt;a href=&quot;#l1879&quot; class=&quot;line&quot; id=&quot;l1879&quot;&gt;   1879&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-742&amp;quot; id=&amp;quot;h3-0-742&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 color;
   1918 <a href="#l1899" class="line" id="l1899">   1899</a> &lt;a href=&quot;#l1880&quot; class=&quot;line&quot; id=&quot;l1880&quot;&gt;   1880&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-743&amp;quot; id=&amp;quot;h3-0-743&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float distance;
   1919 <a href="#l1900" class="line" id="l1900">   1900</a> &lt;a href=&quot;#l1881&quot; class=&quot;line&quot; id=&quot;l1881&quot;&gt;   1881&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-744&amp;quot; id=&amp;quot;h3-0-744&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float decay;
   1920 <a href="#l1901" class="line" id="l1901">   1901</a> &lt;a href=&quot;#l1882&quot; class=&quot;line&quot; id=&quot;l1882&quot;&gt;   1882&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-745&amp;quot; id=&amp;quot;h3-0-745&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	};
   1921 <a href="#l1902" class="line" id="l1902">   1902</a> &lt;a href=&quot;#l1883&quot; class=&quot;line&quot; id=&quot;l1883&quot;&gt;   1883&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-746&amp;quot; id=&amp;quot;h3-0-746&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform PointLight pointLights[ NUM_POINT_LIGHTS ];
   1922 <a href="#l1903" class="line" id="l1903">   1903</a> &lt;a href=&quot;#l1884&quot; class=&quot;line&quot; id=&quot;l1884&quot;&gt;   1884&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-747&amp;quot; id=&amp;quot;h3-0-747&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	void getPointLightInfo( const in PointLight pointLight, const in vec3 geometryPosition, out IncidentLight light ) {
   1923 <a href="#l1904" class="line" id="l1904">   1904</a> &lt;a href=&quot;#l1885&quot; class=&quot;line&quot; id=&quot;l1885&quot;&gt;   1885&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-748&amp;quot; id=&amp;quot;h3-0-748&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 lVector = pointLight.position - geometryPosition;
   1924 <a href="#l1905" class="line" id="l1905">   1905</a> &lt;a href=&quot;#l1886&quot; class=&quot;line&quot; id=&quot;l1886&quot;&gt;   1886&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-749&amp;quot; id=&amp;quot;h3-0-749&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		light.direction = normalize( lVector );
   1925 <a href="#l1906" class="line" id="l1906">   1906</a> &lt;a href=&quot;#l1887&quot; class=&quot;line&quot; id=&quot;l1887&quot;&gt;   1887&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-750&amp;quot; id=&amp;quot;h3-0-750&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float lightDistance = length( lVector );
   1926 <a href="#l1907" class="line" id="l1907">   1907</a> &lt;a href=&quot;#l1888&quot; class=&quot;line&quot; id=&quot;l1888&quot;&gt;   1888&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-751&amp;quot; id=&amp;quot;h3-0-751&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		light.color = pointLight.color;
   1927 <a href="#l1908" class="line" id="l1908">   1908</a> &lt;a href=&quot;#l1889&quot; class=&quot;line&quot; id=&quot;l1889&quot;&gt;   1889&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-752&amp;quot; id=&amp;quot;h3-0-752&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		light.color *= getDistanceAttenuation( lightDistance, pointLight.distance, pointLight.decay );
   1928 <a href="#l1909" class="line" id="l1909">   1909</a> &lt;a href=&quot;#l1890&quot; class=&quot;line&quot; id=&quot;l1890&quot;&gt;   1890&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-753&amp;quot; id=&amp;quot;h3-0-753&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		light.visible = ( light.color != vec3( 0.0 ) );
   1929 <a href="#l1910" class="line" id="l1910">   1910</a> &lt;a href=&quot;#l1891&quot; class=&quot;line&quot; id=&quot;l1891&quot;&gt;   1891&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-754&amp;quot; id=&amp;quot;h3-0-754&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1930 <a href="#l1911" class="line" id="l1911">   1911</a> &lt;a href=&quot;#l1892&quot; class=&quot;line&quot; id=&quot;l1892&quot;&gt;   1892&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-755&amp;quot; id=&amp;quot;h3-0-755&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1931 <a href="#l1912" class="line" id="l1912">   1912</a> &lt;a href=&quot;#l1893&quot; class=&quot;line&quot; id=&quot;l1893&quot;&gt;   1893&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-756&amp;quot; id=&amp;quot;h3-0-756&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if NUM_SPOT_LIGHTS &amp;amp;gt; 0
   1932 <a href="#l1913" class="line" id="l1913">   1913</a> &lt;a href=&quot;#l1894&quot; class=&quot;line&quot; id=&quot;l1894&quot;&gt;   1894&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-757&amp;quot; id=&amp;quot;h3-0-757&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	struct SpotLight {
   1933 <a href="#l1914" class="line" id="l1914">   1914</a> &lt;a href=&quot;#l1895&quot; class=&quot;line&quot; id=&quot;l1895&quot;&gt;   1895&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-758&amp;quot; id=&amp;quot;h3-0-758&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 position;
   1934 <a href="#l1915" class="line" id="l1915">   1915</a> &lt;a href=&quot;#l1896&quot; class=&quot;line&quot; id=&quot;l1896&quot;&gt;   1896&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-759&amp;quot; id=&amp;quot;h3-0-759&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 direction;
   1935 <a href="#l1916" class="line" id="l1916">   1916</a> &lt;a href=&quot;#l1897&quot; class=&quot;line&quot; id=&quot;l1897&quot;&gt;   1897&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-760&amp;quot; id=&amp;quot;h3-0-760&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 color;
   1936 <a href="#l1917" class="line" id="l1917">   1917</a> &lt;a href=&quot;#l1898&quot; class=&quot;line&quot; id=&quot;l1898&quot;&gt;   1898&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-761&amp;quot; id=&amp;quot;h3-0-761&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float distance;
   1937 <a href="#l1918" class="line" id="l1918">   1918</a> &lt;a href=&quot;#l1899&quot; class=&quot;line&quot; id=&quot;l1899&quot;&gt;   1899&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-762&amp;quot; id=&amp;quot;h3-0-762&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float decay;
   1938 <a href="#l1919" class="line" id="l1919">   1919</a> &lt;a href=&quot;#l1900&quot; class=&quot;line&quot; id=&quot;l1900&quot;&gt;   1900&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-763&amp;quot; id=&amp;quot;h3-0-763&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float coneCos;
   1939 <a href="#l1920" class="line" id="l1920">   1920</a> &lt;a href=&quot;#l1901&quot; class=&quot;line&quot; id=&quot;l1901&quot;&gt;   1901&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-764&amp;quot; id=&amp;quot;h3-0-764&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float penumbraCos;
   1940 <a href="#l1921" class="line" id="l1921">   1921</a> &lt;a href=&quot;#l1902&quot; class=&quot;line&quot; id=&quot;l1902&quot;&gt;   1902&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-765&amp;quot; id=&amp;quot;h3-0-765&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	};
   1941 <a href="#l1922" class="line" id="l1922">   1922</a> &lt;a href=&quot;#l1903&quot; class=&quot;line&quot; id=&quot;l1903&quot;&gt;   1903&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-766&amp;quot; id=&amp;quot;h3-0-766&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];
   1942 <a href="#l1923" class="line" id="l1923">   1923</a> &lt;a href=&quot;#l1904&quot; class=&quot;line&quot; id=&quot;l1904&quot;&gt;   1904&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-767&amp;quot; id=&amp;quot;h3-0-767&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	void getSpotLightInfo( const in SpotLight spotLight, const in vec3 geometryPosition, out IncidentLight light ) {
   1943 <a href="#l1924" class="line" id="l1924">   1924</a> &lt;a href=&quot;#l1905&quot; class=&quot;line&quot; id=&quot;l1905&quot;&gt;   1905&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-768&amp;quot; id=&amp;quot;h3-0-768&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 lVector = spotLight.position - geometryPosition;
   1944 <a href="#l1925" class="line" id="l1925">   1925</a> &lt;a href=&quot;#l1906&quot; class=&quot;line&quot; id=&quot;l1906&quot;&gt;   1906&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-769&amp;quot; id=&amp;quot;h3-0-769&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		light.direction = normalize( lVector );
   1945 <a href="#l1926" class="line" id="l1926">   1926</a> &lt;a href=&quot;#l1907&quot; class=&quot;line&quot; id=&quot;l1907&quot;&gt;   1907&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-770&amp;quot; id=&amp;quot;h3-0-770&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float angleCos = dot( light.direction, spotLight.direction );
   1946 <a href="#l1927" class="line" id="l1927">   1927</a> &lt;a href=&quot;#l1908&quot; class=&quot;line&quot; id=&quot;l1908&quot;&gt;   1908&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-771&amp;quot; id=&amp;quot;h3-0-771&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float spotAttenuation = getSpotAttenuation( spotLight.coneCos, spotLight.penumbraCos, angleCos );
   1947 <a href="#l1928" class="line" id="l1928">   1928</a> &lt;a href=&quot;#l1909&quot; class=&quot;line&quot; id=&quot;l1909&quot;&gt;   1909&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-772&amp;quot; id=&amp;quot;h3-0-772&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( spotAttenuation &amp;amp;gt; 0.0 ) {
   1948 <a href="#l1929" class="line" id="l1929">   1929</a> &lt;a href=&quot;#l1910&quot; class=&quot;line&quot; id=&quot;l1910&quot;&gt;   1910&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-773&amp;quot; id=&amp;quot;h3-0-773&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float lightDistance = length( lVector );
   1949 <a href="#l1930" class="line" id="l1930">   1930</a> &lt;a href=&quot;#l1911&quot; class=&quot;line&quot; id=&quot;l1911&quot;&gt;   1911&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-774&amp;quot; id=&amp;quot;h3-0-774&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			light.color = spotLight.color * spotAttenuation;
   1950 <a href="#l1931" class="line" id="l1931">   1931</a> &lt;a href=&quot;#l1912&quot; class=&quot;line&quot; id=&quot;l1912&quot;&gt;   1912&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-775&amp;quot; id=&amp;quot;h3-0-775&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			light.color *= getDistanceAttenuation( lightDistance, spotLight.distance, spotLight.decay );
   1951 <a href="#l1932" class="line" id="l1932">   1932</a> &lt;a href=&quot;#l1913&quot; class=&quot;line&quot; id=&quot;l1913&quot;&gt;   1913&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-776&amp;quot; id=&amp;quot;h3-0-776&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			light.visible = ( light.color != vec3( 0.0 ) );
   1952 <a href="#l1933" class="line" id="l1933">   1933</a> &lt;a href=&quot;#l1914&quot; class=&quot;line&quot; id=&quot;l1914&quot;&gt;   1914&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-777&amp;quot; id=&amp;quot;h3-0-777&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else {
   1953 <a href="#l1934" class="line" id="l1934">   1934</a> &lt;a href=&quot;#l1915&quot; class=&quot;line&quot; id=&quot;l1915&quot;&gt;   1915&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-778&amp;quot; id=&amp;quot;h3-0-778&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			light.color = vec3( 0.0 );
   1954 <a href="#l1935" class="line" id="l1935">   1935</a> &lt;a href=&quot;#l1916&quot; class=&quot;line&quot; id=&quot;l1916&quot;&gt;   1916&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-779&amp;quot; id=&amp;quot;h3-0-779&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			light.visible = false;
   1955 <a href="#l1936" class="line" id="l1936">   1936</a> &lt;a href=&quot;#l1917&quot; class=&quot;line&quot; id=&quot;l1917&quot;&gt;   1917&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-780&amp;quot; id=&amp;quot;h3-0-780&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   1956 <a href="#l1937" class="line" id="l1937">   1937</a> &lt;a href=&quot;#l1918&quot; class=&quot;line&quot; id=&quot;l1918&quot;&gt;   1918&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-781&amp;quot; id=&amp;quot;h3-0-781&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1957 <a href="#l1938" class="line" id="l1938">   1938</a> &lt;a href=&quot;#l1919&quot; class=&quot;line&quot; id=&quot;l1919&quot;&gt;   1919&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-782&amp;quot; id=&amp;quot;h3-0-782&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1958 <a href="#l1939" class="line" id="l1939">   1939</a> &lt;a href=&quot;#l1920&quot; class=&quot;line&quot; id=&quot;l1920&quot;&gt;   1920&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-783&amp;quot; id=&amp;quot;h3-0-783&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if NUM_RECT_AREA_LIGHTS &amp;amp;gt; 0
   1959 <a href="#l1940" class="line" id="l1940">   1940</a> &lt;a href=&quot;#l1921&quot; class=&quot;line&quot; id=&quot;l1921&quot;&gt;   1921&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-784&amp;quot; id=&amp;quot;h3-0-784&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	struct RectAreaLight {
   1960 <a href="#l1941" class="line" id="l1941">   1941</a> &lt;a href=&quot;#l1922&quot; class=&quot;line&quot; id=&quot;l1922&quot;&gt;   1922&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-785&amp;quot; id=&amp;quot;h3-0-785&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 color;
   1961 <a href="#l1942" class="line" id="l1942">   1942</a> &lt;a href=&quot;#l1923&quot; class=&quot;line&quot; id=&quot;l1923&quot;&gt;   1923&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-786&amp;quot; id=&amp;quot;h3-0-786&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 position;
   1962 <a href="#l1943" class="line" id="l1943">   1943</a> &lt;a href=&quot;#l1924&quot; class=&quot;line&quot; id=&quot;l1924&quot;&gt;   1924&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-787&amp;quot; id=&amp;quot;h3-0-787&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 halfWidth;
   1963 <a href="#l1944" class="line" id="l1944">   1944</a> &lt;a href=&quot;#l1925&quot; class=&quot;line&quot; id=&quot;l1925&quot;&gt;   1925&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-788&amp;quot; id=&amp;quot;h3-0-788&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 halfHeight;
   1964 <a href="#l1945" class="line" id="l1945">   1945</a> &lt;a href=&quot;#l1926&quot; class=&quot;line&quot; id=&quot;l1926&quot;&gt;   1926&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-789&amp;quot; id=&amp;quot;h3-0-789&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	};
   1965 <a href="#l1946" class="line" id="l1946">   1946</a> &lt;a href=&quot;#l1927&quot; class=&quot;line&quot; id=&quot;l1927&quot;&gt;   1927&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-790&amp;quot; id=&amp;quot;h3-0-790&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D ltc_1;	uniform sampler2D ltc_2;
   1966 <a href="#l1947" class="line" id="l1947">   1947</a> &lt;a href=&quot;#l1928&quot; class=&quot;line&quot; id=&quot;l1928&quot;&gt;   1928&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-791&amp;quot; id=&amp;quot;h3-0-791&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];
   1967 <a href="#l1948" class="line" id="l1948">   1948</a> &lt;a href=&quot;#l1929&quot; class=&quot;line&quot; id=&quot;l1929&quot;&gt;   1929&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-792&amp;quot; id=&amp;quot;h3-0-792&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   1968 <a href="#l1949" class="line" id="l1949">   1949</a> &lt;a href=&quot;#l1930&quot; class=&quot;line&quot; id=&quot;l1930&quot;&gt;   1930&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-793&amp;quot; id=&amp;quot;h3-0-793&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if NUM_HEMI_LIGHTS &amp;amp;gt; 0
   1969 <a href="#l1950" class="line" id="l1950">   1950</a> &lt;a href=&quot;#l1931&quot; class=&quot;line&quot; id=&quot;l1931&quot;&gt;   1931&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-794&amp;quot; id=&amp;quot;h3-0-794&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	struct HemisphereLight {
   1970 <a href="#l1951" class="line" id="l1951">   1951</a> &lt;a href=&quot;#l1932&quot; class=&quot;line&quot; id=&quot;l1932&quot;&gt;   1932&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-795&amp;quot; id=&amp;quot;h3-0-795&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 direction;
   1971 <a href="#l1952" class="line" id="l1952">   1952</a> &lt;a href=&quot;#l1933&quot; class=&quot;line&quot; id=&quot;l1933&quot;&gt;   1933&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-796&amp;quot; id=&amp;quot;h3-0-796&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 skyColor;
   1972 <a href="#l1953" class="line" id="l1953">   1953</a> &lt;a href=&quot;#l1934&quot; class=&quot;line&quot; id=&quot;l1934&quot;&gt;   1934&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-797&amp;quot; id=&amp;quot;h3-0-797&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 groundColor;
   1973 <a href="#l1954" class="line" id="l1954">   1954</a> &lt;a href=&quot;#l1935&quot; class=&quot;line&quot; id=&quot;l1935&quot;&gt;   1935&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-798&amp;quot; id=&amp;quot;h3-0-798&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	};
   1974 <a href="#l1955" class="line" id="l1955">   1955</a> &lt;a href=&quot;#l1936&quot; class=&quot;line&quot; id=&quot;l1936&quot;&gt;   1936&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-799&amp;quot; id=&amp;quot;h3-0-799&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];
   1975 <a href="#l1956" class="line" id="l1956">   1956</a> &lt;a href=&quot;#l1937&quot; class=&quot;line&quot; id=&quot;l1937&quot;&gt;   1937&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-800&amp;quot; id=&amp;quot;h3-0-800&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in vec3 normal ) {
   1976 <a href="#l1957" class="line" id="l1957">   1957</a> &lt;a href=&quot;#l1938&quot; class=&quot;line&quot; id=&quot;l1938&quot;&gt;   1938&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-801&amp;quot; id=&amp;quot;h3-0-801&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotNL = dot( normal, hemiLight.direction );
   1977 <a href="#l1958" class="line" id="l1958">   1958</a> &lt;a href=&quot;#l1939&quot; class=&quot;line&quot; id=&quot;l1939&quot;&gt;   1939&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-802&amp;quot; id=&amp;quot;h3-0-802&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float hemiDiffuseWeight = 0.5 * dotNL + 0.5;
   1978 <a href="#l1959" class="line" id="l1959">   1959</a> &lt;a href=&quot;#l1940&quot; class=&quot;line&quot; id=&quot;l1940&quot;&gt;   1940&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-803&amp;quot; id=&amp;quot;h3-0-803&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );
   1979 <a href="#l1960" class="line" id="l1960">   1960</a> &lt;a href=&quot;#l1941&quot; class=&quot;line&quot; id=&quot;l1941&quot;&gt;   1941&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-804&amp;quot; id=&amp;quot;h3-0-804&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return irradiance;
   1980 <a href="#l1961" class="line" id="l1961">   1961</a> &lt;a href=&quot;#l1942&quot; class=&quot;line&quot; id=&quot;l1942&quot;&gt;   1942&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-805&amp;quot; id=&amp;quot;h3-0-805&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1981 <a href="#l1962" class="line" id="l1962">   1962</a> &lt;a href=&quot;#l1943&quot; class=&quot;line&quot; id=&quot;l1943&quot;&gt;   1943&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-806&amp;quot; id=&amp;quot;h3-0-806&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,$F=`#ifdef USE_ENVMAP
   1982 <a href="#l1963" class="line" id="l1963">   1963</a> &lt;a href=&quot;#l1944&quot; class=&quot;line&quot; id=&quot;l1944&quot;&gt;   1944&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-807&amp;quot; id=&amp;quot;h3-0-807&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 getIBLIrradiance( const in vec3 normal ) {
   1983 <a href="#l1964" class="line" id="l1964">   1964</a> &lt;a href=&quot;#l1945&quot; class=&quot;line&quot; id=&quot;l1945&quot;&gt;   1945&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-808&amp;quot; id=&amp;quot;h3-0-808&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef ENVMAP_TYPE_CUBE_UV
   1984 <a href="#l1965" class="line" id="l1965">   1965</a> &lt;a href=&quot;#l1946&quot; class=&quot;line&quot; id=&quot;l1946&quot;&gt;   1946&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-809&amp;quot; id=&amp;quot;h3-0-809&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 worldNormal = inverseTransformDirection( normal, viewMatrix );
   1985 <a href="#l1966" class="line" id="l1966">   1966</a> &lt;a href=&quot;#l1947&quot; class=&quot;line&quot; id=&quot;l1947&quot;&gt;   1947&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-810&amp;quot; id=&amp;quot;h3-0-810&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec4 envMapColor = textureCubeUV( envMap, envMapRotation * worldNormal, 1.0 );
   1986 <a href="#l1967" class="line" id="l1967">   1967</a> &lt;a href=&quot;#l1948&quot; class=&quot;line&quot; id=&quot;l1948&quot;&gt;   1948&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-811&amp;quot; id=&amp;quot;h3-0-811&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return PI * envMapColor.rgb * envMapIntensity;
   1987 <a href="#l1968" class="line" id="l1968">   1968</a> &lt;a href=&quot;#l1949&quot; class=&quot;line&quot; id=&quot;l1949&quot;&gt;   1949&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-812&amp;quot; id=&amp;quot;h3-0-812&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   1988 <a href="#l1969" class="line" id="l1969">   1969</a> &lt;a href=&quot;#l1950&quot; class=&quot;line&quot; id=&quot;l1950&quot;&gt;   1950&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-813&amp;quot; id=&amp;quot;h3-0-813&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return vec3( 0.0 );
   1989 <a href="#l1970" class="line" id="l1970">   1970</a> &lt;a href=&quot;#l1951&quot; class=&quot;line&quot; id=&quot;l1951&quot;&gt;   1951&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-814&amp;quot; id=&amp;quot;h3-0-814&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   1990 <a href="#l1971" class="line" id="l1971">   1971</a> &lt;a href=&quot;#l1952&quot; class=&quot;line&quot; id=&quot;l1952&quot;&gt;   1952&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-815&amp;quot; id=&amp;quot;h3-0-815&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   1991 <a href="#l1972" class="line" id="l1972">   1972</a> &lt;a href=&quot;#l1953&quot; class=&quot;line&quot; id=&quot;l1953&quot;&gt;   1953&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-816&amp;quot; id=&amp;quot;h3-0-816&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 getIBLRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness ) {
   1992 <a href="#l1973" class="line" id="l1973">   1973</a> &lt;a href=&quot;#l1954&quot; class=&quot;line&quot; id=&quot;l1954&quot;&gt;   1954&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-817&amp;quot; id=&amp;quot;h3-0-817&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef ENVMAP_TYPE_CUBE_UV
   1993 <a href="#l1974" class="line" id="l1974">   1974</a> &lt;a href=&quot;#l1955&quot; class=&quot;line&quot; id=&quot;l1955&quot;&gt;   1955&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-818&amp;quot; id=&amp;quot;h3-0-818&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 reflectVec = reflect( - viewDir, normal );
   1994 <a href="#l1975" class="line" id="l1975">   1975</a> &lt;a href=&quot;#l1956&quot; class=&quot;line&quot; id=&quot;l1956&quot;&gt;   1956&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-819&amp;quot; id=&amp;quot;h3-0-819&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			reflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );
   1995 <a href="#l1976" class="line" id="l1976">   1976</a> &lt;a href=&quot;#l1957&quot; class=&quot;line&quot; id=&quot;l1957&quot;&gt;   1957&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-820&amp;quot; id=&amp;quot;h3-0-820&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			reflectVec = inverseTransformDirection( reflectVec, viewMatrix );
   1996 <a href="#l1977" class="line" id="l1977">   1977</a> &lt;a href=&quot;#l1958&quot; class=&quot;line&quot; id=&quot;l1958&quot;&gt;   1958&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-821&amp;quot; id=&amp;quot;h3-0-821&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec4 envMapColor = textureCubeUV( envMap, envMapRotation * reflectVec, roughness );
   1997 <a href="#l1978" class="line" id="l1978">   1978</a> &lt;a href=&quot;#l1959&quot; class=&quot;line&quot; id=&quot;l1959&quot;&gt;   1959&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-822&amp;quot; id=&amp;quot;h3-0-822&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return envMapColor.rgb * envMapIntensity;
   1998 <a href="#l1979" class="line" id="l1979">   1979</a> &lt;a href=&quot;#l1960&quot; class=&quot;line&quot; id=&quot;l1960&quot;&gt;   1960&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-823&amp;quot; id=&amp;quot;h3-0-823&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   1999 <a href="#l1980" class="line" id="l1980">   1980</a> &lt;a href=&quot;#l1961&quot; class=&quot;line&quot; id=&quot;l1961&quot;&gt;   1961&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-824&amp;quot; id=&amp;quot;h3-0-824&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return vec3( 0.0 );
   2000 <a href="#l1981" class="line" id="l1981">   1981</a> &lt;a href=&quot;#l1962&quot; class=&quot;line&quot; id=&quot;l1962&quot;&gt;   1962&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-825&amp;quot; id=&amp;quot;h3-0-825&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2001 <a href="#l1982" class="line" id="l1982">   1982</a> &lt;a href=&quot;#l1963&quot; class=&quot;line&quot; id=&quot;l1963&quot;&gt;   1963&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-826&amp;quot; id=&amp;quot;h3-0-826&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2002 <a href="#l1983" class="line" id="l1983">   1983</a> &lt;a href=&quot;#l1964&quot; class=&quot;line&quot; id=&quot;l1964&quot;&gt;   1964&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-827&amp;quot; id=&amp;quot;h3-0-827&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_ANISOTROPY
   2003 <a href="#l1984" class="line" id="l1984">   1984</a> &lt;a href=&quot;#l1965&quot; class=&quot;line&quot; id=&quot;l1965&quot;&gt;   1965&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-828&amp;quot; id=&amp;quot;h3-0-828&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 getIBLAnisotropyRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in vec3 bitangent, const in float anisotropy ) {
   2004 <a href="#l1985" class="line" id="l1985">   1985</a> &lt;a href=&quot;#l1966&quot; class=&quot;line&quot; id=&quot;l1966&quot;&gt;   1966&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-829&amp;quot; id=&amp;quot;h3-0-829&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#ifdef ENVMAP_TYPE_CUBE_UV
   2005 <a href="#l1986" class="line" id="l1986">   1986</a> &lt;a href=&quot;#l1967&quot; class=&quot;line&quot; id=&quot;l1967&quot;&gt;   1967&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-830&amp;quot; id=&amp;quot;h3-0-830&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec3 bentNormal = cross( bitangent, viewDir );
   2006 <a href="#l1987" class="line" id="l1987">   1987</a> &lt;a href=&quot;#l1968&quot; class=&quot;line&quot; id=&quot;l1968&quot;&gt;   1968&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-831&amp;quot; id=&amp;quot;h3-0-831&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				bentNormal = normalize( cross( bentNormal, bitangent ) );
   2007 <a href="#l1988" class="line" id="l1988">   1988</a> &lt;a href=&quot;#l1969&quot; class=&quot;line&quot; id=&quot;l1969&quot;&gt;   1969&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-832&amp;quot; id=&amp;quot;h3-0-832&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				bentNormal = normalize( mix( bentNormal, normal, pow2( pow2( 1.0 - anisotropy * ( 1.0 - roughness ) ) ) ) );
   2008 <a href="#l1989" class="line" id="l1989">   1989</a> &lt;a href=&quot;#l1970&quot; class=&quot;line&quot; id=&quot;l1970&quot;&gt;   1970&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-833&amp;quot; id=&amp;quot;h3-0-833&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				return getIBLRadiance( viewDir, bentNormal, roughness );
   2009 <a href="#l1990" class="line" id="l1990">   1990</a> &lt;a href=&quot;#l1971&quot; class=&quot;line&quot; id=&quot;l1971&quot;&gt;   1971&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-834&amp;quot; id=&amp;quot;h3-0-834&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#else
   2010 <a href="#l1991" class="line" id="l1991">   1991</a> &lt;a href=&quot;#l1972&quot; class=&quot;line&quot; id=&quot;l1972&quot;&gt;   1972&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-835&amp;quot; id=&amp;quot;h3-0-835&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				return vec3( 0.0 );
   2011 <a href="#l1992" class="line" id="l1992">   1992</a> &lt;a href=&quot;#l1973&quot; class=&quot;line&quot; id=&quot;l1973&quot;&gt;   1973&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-836&amp;quot; id=&amp;quot;h3-0-836&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#endif
   2012 <a href="#l1993" class="line" id="l1993">   1993</a> &lt;a href=&quot;#l1974&quot; class=&quot;line&quot; id=&quot;l1974&quot;&gt;   1974&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-837&amp;quot; id=&amp;quot;h3-0-837&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   2013 <a href="#l1994" class="line" id="l1994">   1994</a> &lt;a href=&quot;#l1975&quot; class=&quot;line&quot; id=&quot;l1975&quot;&gt;   1975&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-838&amp;quot; id=&amp;quot;h3-0-838&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2014 <a href="#l1995" class="line" id="l1995">   1995</a> &lt;a href=&quot;#l1976&quot; class=&quot;line&quot; id=&quot;l1976&quot;&gt;   1976&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-839&amp;quot; id=&amp;quot;h3-0-839&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,tV=`ToonMaterial material;
   2015 <a href="#l1996" class="line" id="l1996">   1996</a> &lt;a href=&quot;#l1977&quot; class=&quot;line&quot; id=&quot;l1977&quot;&gt;   1977&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-840&amp;quot; id=&amp;quot;h3-0-840&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.diffuseColor = diffuseColor.rgb;`,eV=`varying vec3 vViewPosition;
   2016 <a href="#l1997" class="line" id="l1997">   1997</a> &lt;a href=&quot;#l1978&quot; class=&quot;line&quot; id=&quot;l1978&quot;&gt;   1978&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-841&amp;quot; id=&amp;quot;h3-0-841&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct ToonMaterial {
   2017 <a href="#l1998" class="line" id="l1998">   1998</a> &lt;a href=&quot;#l1979&quot; class=&quot;line&quot; id=&quot;l1979&quot;&gt;   1979&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-842&amp;quot; id=&amp;quot;h3-0-842&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 diffuseColor;
   2018 <a href="#l1999" class="line" id="l1999">   1999</a> &lt;a href=&quot;#l1980&quot; class=&quot;line&quot; id=&quot;l1980&quot;&gt;   1980&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-843&amp;quot; id=&amp;quot;h3-0-843&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   2019 <a href="#l2000" class="line" id="l2000">   2000</a> &lt;a href=&quot;#l1981&quot; class=&quot;line&quot; id=&quot;l1981&quot;&gt;   1981&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-844&amp;quot; id=&amp;quot;h3-0-844&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_Direct_Toon( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
   2020 <a href="#l2001" class="line" id="l2001">   2001</a> &lt;a href=&quot;#l1982&quot; class=&quot;line&quot; id=&quot;l1982&quot;&gt;   1982&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-845&amp;quot; id=&amp;quot;h3-0-845&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 irradiance = getGradientIrradiance( geometryNormal, directLight.direction ) * directLight.color;
   2021 <a href="#l2002" class="line" id="l2002">   2002</a> &lt;a href=&quot;#l1983&quot; class=&quot;line&quot; id=&quot;l1983&quot;&gt;   1983&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-846&amp;quot; id=&amp;quot;h3-0-846&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
   2022 <a href="#l2003" class="line" id="l2003">   2003</a> &lt;a href=&quot;#l1984&quot; class=&quot;line&quot; id=&quot;l1984&quot;&gt;   1984&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-847&amp;quot; id=&amp;quot;h3-0-847&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2023 <a href="#l2004" class="line" id="l2004">   2004</a> &lt;a href=&quot;#l1985&quot; class=&quot;line&quot; id=&quot;l1985&quot;&gt;   1985&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-848&amp;quot; id=&amp;quot;h3-0-848&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {
   2024 <a href="#l2005" class="line" id="l2005">   2005</a> &lt;a href=&quot;#l1986&quot; class=&quot;line&quot; id=&quot;l1986&quot;&gt;   1986&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-849&amp;quot; id=&amp;quot;h3-0-849&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
   2025 <a href="#l2006" class="line" id="l2006">   2006</a> &lt;a href=&quot;#l1987&quot; class=&quot;line&quot; id=&quot;l1987&quot;&gt;   1987&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-850&amp;quot; id=&amp;quot;h3-0-850&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2026 <a href="#l2007" class="line" id="l2007">   2007</a> &lt;a href=&quot;#l1988&quot; class=&quot;line&quot; id=&quot;l1988&quot;&gt;   1988&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-851&amp;quot; id=&amp;quot;h3-0-851&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_Direct				RE_Direct_Toon
   2027 <a href="#l2008" class="line" id="l2008">   2008</a> &lt;a href=&quot;#l1989&quot; class=&quot;line&quot; id=&quot;l1989&quot;&gt;   1989&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-852&amp;quot; id=&amp;quot;h3-0-852&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_IndirectDiffuse		RE_IndirectDiffuse_Toon`,nV=`BlinnPhongMaterial material;
   2028 <a href="#l2009" class="line" id="l2009">   2009</a> &lt;a href=&quot;#l1990&quot; class=&quot;line&quot; id=&quot;l1990&quot;&gt;   1990&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-853&amp;quot; id=&amp;quot;h3-0-853&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.diffuseColor = diffuseColor.rgb;
   2029 <a href="#l2010" class="line" id="l2010">   2010</a> &lt;a href=&quot;#l1991&quot; class=&quot;line&quot; id=&quot;l1991&quot;&gt;   1991&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-854&amp;quot; id=&amp;quot;h3-0-854&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.specularColor = specular;
   2030 <a href="#l2011" class="line" id="l2011">   2011</a> &lt;a href=&quot;#l1992&quot; class=&quot;line&quot; id=&quot;l1992&quot;&gt;   1992&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-855&amp;quot; id=&amp;quot;h3-0-855&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.specularShininess = shininess;
   2031 <a href="#l2012" class="line" id="l2012">   2012</a> &lt;a href=&quot;#l1993&quot; class=&quot;line&quot; id=&quot;l1993&quot;&gt;   1993&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-856&amp;quot; id=&amp;quot;h3-0-856&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.specularStrength = specularStrength;`,iV=`varying vec3 vViewPosition;
   2032 <a href="#l2013" class="line" id="l2013">   2013</a> &lt;a href=&quot;#l1994&quot; class=&quot;line&quot; id=&quot;l1994&quot;&gt;   1994&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-857&amp;quot; id=&amp;quot;h3-0-857&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct BlinnPhongMaterial {
   2033 <a href="#l2014" class="line" id="l2014">   2014</a> &lt;a href=&quot;#l1995&quot; class=&quot;line&quot; id=&quot;l1995&quot;&gt;   1995&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-858&amp;quot; id=&amp;quot;h3-0-858&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 diffuseColor;
   2034 <a href="#l2015" class="line" id="l2015">   2015</a> &lt;a href=&quot;#l1996&quot; class=&quot;line&quot; id=&quot;l1996&quot;&gt;   1996&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-859&amp;quot; id=&amp;quot;h3-0-859&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 specularColor;
   2035 <a href="#l2016" class="line" id="l2016">   2016</a> &lt;a href=&quot;#l1997&quot; class=&quot;line&quot; id=&quot;l1997&quot;&gt;   1997&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-860&amp;quot; id=&amp;quot;h3-0-860&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float specularShininess;
   2036 <a href="#l2017" class="line" id="l2017">   2017</a> &lt;a href=&quot;#l1998&quot; class=&quot;line&quot; id=&quot;l1998&quot;&gt;   1998&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-861&amp;quot; id=&amp;quot;h3-0-861&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float specularStrength;
   2037 <a href="#l2018" class="line" id="l2018">   2018</a> &lt;a href=&quot;#l1999&quot; class=&quot;line&quot; id=&quot;l1999&quot;&gt;   1999&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-862&amp;quot; id=&amp;quot;h3-0-862&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   2038 <a href="#l2019" class="line" id="l2019">   2019</a> &lt;a href=&quot;#l2000&quot; class=&quot;line&quot; id=&quot;l2000&quot;&gt;   2000&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-863&amp;quot; id=&amp;quot;h3-0-863&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_Direct_BlinnPhong( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
   2039 <a href="#l2020" class="line" id="l2020">   2020</a> &lt;a href=&quot;#l2001&quot; class=&quot;line&quot; id=&quot;l2001&quot;&gt;   2001&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-864&amp;quot; id=&amp;quot;h3-0-864&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
   2040 <a href="#l2021" class="line" id="l2021">   2021</a> &lt;a href=&quot;#l2002&quot; class=&quot;line&quot; id=&quot;l2002&quot;&gt;   2002&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-865&amp;quot; id=&amp;quot;h3-0-865&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 irradiance = dotNL * directLight.color;
   2041 <a href="#l2022" class="line" id="l2022">   2022</a> &lt;a href=&quot;#l2003&quot; class=&quot;line&quot; id=&quot;l2003&quot;&gt;   2003&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-866&amp;quot; id=&amp;quot;h3-0-866&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
   2042 <a href="#l2023" class="line" id="l2023">   2023</a> &lt;a href=&quot;#l2004&quot; class=&quot;line&quot; id=&quot;l2004&quot;&gt;   2004&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-867&amp;quot; id=&amp;quot;h3-0-867&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.directSpecular += irradiance * BRDF_BlinnPhong( directLight.direction, geometryViewDir, geometryNormal, material.specularColor, material.specularShininess ) * material.specularStrength;
   2043 <a href="#l2024" class="line" id="l2024">   2024</a> &lt;a href=&quot;#l2005&quot; class=&quot;line&quot; id=&quot;l2005&quot;&gt;   2005&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-868&amp;quot; id=&amp;quot;h3-0-868&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2044 <a href="#l2025" class="line" id="l2025">   2025</a> &lt;a href=&quot;#l2006&quot; class=&quot;line&quot; id=&quot;l2006&quot;&gt;   2006&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-869&amp;quot; id=&amp;quot;h3-0-869&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {
   2045 <a href="#l2026" class="line" id="l2026">   2026</a> &lt;a href=&quot;#l2007&quot; class=&quot;line&quot; id=&quot;l2007&quot;&gt;   2007&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-870&amp;quot; id=&amp;quot;h3-0-870&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
   2046 <a href="#l2027" class="line" id="l2027">   2027</a> &lt;a href=&quot;#l2008&quot; class=&quot;line&quot; id=&quot;l2008&quot;&gt;   2008&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-871&amp;quot; id=&amp;quot;h3-0-871&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2047 <a href="#l2028" class="line" id="l2028">   2028</a> &lt;a href=&quot;#l2009&quot; class=&quot;line&quot; id=&quot;l2009&quot;&gt;   2009&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-872&amp;quot; id=&amp;quot;h3-0-872&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_Direct				RE_Direct_BlinnPhong
   2048 <a href="#l2029" class="line" id="l2029">   2029</a> &lt;a href=&quot;#l2010&quot; class=&quot;line&quot; id=&quot;l2010&quot;&gt;   2010&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-873&amp;quot; id=&amp;quot;h3-0-873&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_IndirectDiffuse		RE_IndirectDiffuse_BlinnPhong`,aV=`PhysicalMaterial material;
   2049 <a href="#l2030" class="line" id="l2030">   2030</a> &lt;a href=&quot;#l2011&quot; class=&quot;line&quot; id=&quot;l2011&quot;&gt;   2011&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-874&amp;quot; id=&amp;quot;h3-0-874&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );
   2050 <a href="#l2031" class="line" id="l2031">   2031</a> &lt;a href=&quot;#l2012&quot; class=&quot;line&quot; id=&quot;l2012&quot;&gt;   2012&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-875&amp;quot; id=&amp;quot;h3-0-875&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 dxy = max( abs( dFdx( nonPerturbedNormal ) ), abs( dFdy( nonPerturbedNormal ) ) );
   2051 <a href="#l2032" class="line" id="l2032">   2032</a> &lt;a href=&quot;#l2013&quot; class=&quot;line&quot; id=&quot;l2013&quot;&gt;   2013&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-876&amp;quot; id=&amp;quot;h3-0-876&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );
   2052 <a href="#l2033" class="line" id="l2033">   2033</a> &lt;a href=&quot;#l2014&quot; class=&quot;line&quot; id=&quot;l2014&quot;&gt;   2014&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-877&amp;quot; id=&amp;quot;h3-0-877&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.roughness = max( roughnessFactor, 0.0525 );material.roughness += geometryRoughness;
   2053 <a href="#l2034" class="line" id="l2034">   2034</a> &lt;a href=&quot;#l2015&quot; class=&quot;line&quot; id=&quot;l2015&quot;&gt;   2015&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-878&amp;quot; id=&amp;quot;h3-0-878&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+material.roughness = min( material.roughness, 1.0 );
   2054 <a href="#l2035" class="line" id="l2035">   2035</a> &lt;a href=&quot;#l2016&quot; class=&quot;line&quot; id=&quot;l2016&quot;&gt;   2016&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-879&amp;quot; id=&amp;quot;h3-0-879&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef IOR
   2055 <a href="#l2036" class="line" id="l2036">   2036</a> &lt;a href=&quot;#l2017&quot; class=&quot;line&quot; id=&quot;l2017&quot;&gt;   2017&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-880&amp;quot; id=&amp;quot;h3-0-880&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.ior = ior;
   2056 <a href="#l2037" class="line" id="l2037">   2037</a> &lt;a href=&quot;#l2018&quot; class=&quot;line&quot; id=&quot;l2018&quot;&gt;   2018&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-881&amp;quot; id=&amp;quot;h3-0-881&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SPECULAR
   2057 <a href="#l2038" class="line" id="l2038">   2038</a> &lt;a href=&quot;#l2019&quot; class=&quot;line&quot; id=&quot;l2019&quot;&gt;   2019&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-882&amp;quot; id=&amp;quot;h3-0-882&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float specularIntensityFactor = specularIntensity;
   2058 <a href="#l2039" class="line" id="l2039">   2039</a> &lt;a href=&quot;#l2020&quot; class=&quot;line&quot; id=&quot;l2020&quot;&gt;   2020&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-883&amp;quot; id=&amp;quot;h3-0-883&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 specularColorFactor = specularColor;
   2059 <a href="#l2040" class="line" id="l2040">   2040</a> &lt;a href=&quot;#l2021&quot; class=&quot;line&quot; id=&quot;l2021&quot;&gt;   2021&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-884&amp;quot; id=&amp;quot;h3-0-884&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef USE_SPECULAR_COLORMAP
   2060 <a href="#l2041" class="line" id="l2041">   2041</a> &lt;a href=&quot;#l2022&quot; class=&quot;line&quot; id=&quot;l2022&quot;&gt;   2022&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-885&amp;quot; id=&amp;quot;h3-0-885&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			specularColorFactor *= texture2D( specularColorMap, vSpecularColorMapUv ).rgb;
   2061 <a href="#l2042" class="line" id="l2042">   2042</a> &lt;a href=&quot;#l2023&quot; class=&quot;line&quot; id=&quot;l2023&quot;&gt;   2023&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-886&amp;quot; id=&amp;quot;h3-0-886&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2062 <a href="#l2043" class="line" id="l2043">   2043</a> &lt;a href=&quot;#l2024&quot; class=&quot;line&quot; id=&quot;l2024&quot;&gt;   2024&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-887&amp;quot; id=&amp;quot;h3-0-887&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef USE_SPECULAR_INTENSITYMAP
   2063 <a href="#l2044" class="line" id="l2044">   2044</a> &lt;a href=&quot;#l2025&quot; class=&quot;line&quot; id=&quot;l2025&quot;&gt;   2025&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-888&amp;quot; id=&amp;quot;h3-0-888&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			specularIntensityFactor *= texture2D( specularIntensityMap, vSpecularIntensityMapUv ).a;
   2064 <a href="#l2045" class="line" id="l2045">   2045</a> &lt;a href=&quot;#l2026&quot; class=&quot;line&quot; id=&quot;l2026&quot;&gt;   2026&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-889&amp;quot; id=&amp;quot;h3-0-889&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2065 <a href="#l2046" class="line" id="l2046">   2046</a> &lt;a href=&quot;#l2027&quot; class=&quot;line&quot; id=&quot;l2027&quot;&gt;   2027&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-890&amp;quot; id=&amp;quot;h3-0-890&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.specularF90 = mix( specularIntensityFactor, 1.0, metalnessFactor );
   2066 <a href="#l2047" class="line" id="l2047">   2047</a> &lt;a href=&quot;#l2028&quot; class=&quot;line&quot; id=&quot;l2028&quot;&gt;   2028&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-891&amp;quot; id=&amp;quot;h3-0-891&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2067 <a href="#l2048" class="line" id="l2048">   2048</a> &lt;a href=&quot;#l2029&quot; class=&quot;line&quot; id=&quot;l2029&quot;&gt;   2029&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-892&amp;quot; id=&amp;quot;h3-0-892&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float specularIntensityFactor = 1.0;
   2068 <a href="#l2049" class="line" id="l2049">   2049</a> &lt;a href=&quot;#l2030&quot; class=&quot;line&quot; id=&quot;l2030&quot;&gt;   2030&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-893&amp;quot; id=&amp;quot;h3-0-893&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 specularColorFactor = vec3( 1.0 );
   2069 <a href="#l2050" class="line" id="l2050">   2050</a> &lt;a href=&quot;#l2031&quot; class=&quot;line&quot; id=&quot;l2031&quot;&gt;   2031&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-894&amp;quot; id=&amp;quot;h3-0-894&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.specularF90 = 1.0;
   2070 <a href="#l2051" class="line" id="l2051">   2051</a> &lt;a href=&quot;#l2032&quot; class=&quot;line&quot; id=&quot;l2032&quot;&gt;   2032&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-895&amp;quot; id=&amp;quot;h3-0-895&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2071 <a href="#l2052" class="line" id="l2052">   2052</a> &lt;a href=&quot;#l2033&quot; class=&quot;line&quot; id=&quot;l2033&quot;&gt;   2033&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-896&amp;quot; id=&amp;quot;h3-0-896&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.specularColor = mix( min( pow2( ( material.ior - 1.0 ) / ( material.ior + 1.0 ) ) * specularColorFactor, vec3( 1.0 ) ) * specularIntensityFactor, diffuseColor.rgb, metalnessFactor );
   2072 <a href="#l2053" class="line" id="l2053">   2053</a> &lt;a href=&quot;#l2034&quot; class=&quot;line&quot; id=&quot;l2034&quot;&gt;   2034&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-897&amp;quot; id=&amp;quot;h3-0-897&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   2073 <a href="#l2054" class="line" id="l2054">   2054</a> &lt;a href=&quot;#l2035&quot; class=&quot;line&quot; id=&quot;l2035&quot;&gt;   2035&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-898&amp;quot; id=&amp;quot;h3-0-898&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.specularColor = mix( vec3( 0.04 ), diffuseColor.rgb, metalnessFactor );
   2074 <a href="#l2055" class="line" id="l2055">   2055</a> &lt;a href=&quot;#l2036&quot; class=&quot;line&quot; id=&quot;l2036&quot;&gt;   2036&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-899&amp;quot; id=&amp;quot;h3-0-899&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.specularF90 = 1.0;
   2075 <a href="#l2056" class="line" id="l2056">   2056</a> &lt;a href=&quot;#l2037&quot; class=&quot;line&quot; id=&quot;l2037&quot;&gt;   2037&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-900&amp;quot; id=&amp;quot;h3-0-900&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2076 <a href="#l2057" class="line" id="l2057">   2057</a> &lt;a href=&quot;#l2038&quot; class=&quot;line&quot; id=&quot;l2038&quot;&gt;   2038&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-901&amp;quot; id=&amp;quot;h3-0-901&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT
   2077 <a href="#l2058" class="line" id="l2058">   2058</a> &lt;a href=&quot;#l2039&quot; class=&quot;line&quot; id=&quot;l2039&quot;&gt;   2039&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-902&amp;quot; id=&amp;quot;h3-0-902&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.clearcoat = clearcoat;
   2078 <a href="#l2059" class="line" id="l2059">   2059</a> &lt;a href=&quot;#l2040&quot; class=&quot;line&quot; id=&quot;l2040&quot;&gt;   2040&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-903&amp;quot; id=&amp;quot;h3-0-903&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.clearcoatRoughness = clearcoatRoughness;
   2079 <a href="#l2060" class="line" id="l2060">   2060</a> &lt;a href=&quot;#l2041&quot; class=&quot;line&quot; id=&quot;l2041&quot;&gt;   2041&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-904&amp;quot; id=&amp;quot;h3-0-904&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.clearcoatF0 = vec3( 0.04 );
   2080 <a href="#l2061" class="line" id="l2061">   2061</a> &lt;a href=&quot;#l2042&quot; class=&quot;line&quot; id=&quot;l2042&quot;&gt;   2042&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-905&amp;quot; id=&amp;quot;h3-0-905&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.clearcoatF90 = 1.0;
   2081 <a href="#l2062" class="line" id="l2062">   2062</a> &lt;a href=&quot;#l2043&quot; class=&quot;line&quot; id=&quot;l2043&quot;&gt;   2043&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-906&amp;quot; id=&amp;quot;h3-0-906&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_CLEARCOATMAP
   2082 <a href="#l2063" class="line" id="l2063">   2063</a> &lt;a href=&quot;#l2044&quot; class=&quot;line&quot; id=&quot;l2044&quot;&gt;   2044&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-907&amp;quot; id=&amp;quot;h3-0-907&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.clearcoat *= texture2D( clearcoatMap, vClearcoatMapUv ).x;
   2083 <a href="#l2064" class="line" id="l2064">   2064</a> &lt;a href=&quot;#l2045&quot; class=&quot;line&quot; id=&quot;l2045&quot;&gt;   2045&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-908&amp;quot; id=&amp;quot;h3-0-908&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2084 <a href="#l2065" class="line" id="l2065">   2065</a> &lt;a href=&quot;#l2046&quot; class=&quot;line&quot; id=&quot;l2046&quot;&gt;   2046&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-909&amp;quot; id=&amp;quot;h3-0-909&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_CLEARCOAT_ROUGHNESSMAP
   2085 <a href="#l2066" class="line" id="l2066">   2066</a> &lt;a href=&quot;#l2047&quot; class=&quot;line&quot; id=&quot;l2047&quot;&gt;   2047&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-910&amp;quot; id=&amp;quot;h3-0-910&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vClearcoatRoughnessMapUv ).y;
   2086 <a href="#l2067" class="line" id="l2067">   2067</a> &lt;a href=&quot;#l2048&quot; class=&quot;line&quot; id=&quot;l2048&quot;&gt;   2048&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-911&amp;quot; id=&amp;quot;h3-0-911&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2087 <a href="#l2068" class="line" id="l2068">   2068</a> &lt;a href=&quot;#l2049&quot; class=&quot;line&quot; id=&quot;l2049&quot;&gt;   2049&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-912&amp;quot; id=&amp;quot;h3-0-912&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.clearcoat = saturate( material.clearcoat );	material.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );
   2088 <a href="#l2069" class="line" id="l2069">   2069</a> &lt;a href=&quot;#l2050&quot; class=&quot;line&quot; id=&quot;l2050&quot;&gt;   2050&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-913&amp;quot; id=&amp;quot;h3-0-913&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.clearcoatRoughness += geometryRoughness;
   2089 <a href="#l2070" class="line" id="l2070">   2070</a> &lt;a href=&quot;#l2051&quot; class=&quot;line&quot; id=&quot;l2051&quot;&gt;   2051&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-914&amp;quot; id=&amp;quot;h3-0-914&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );
   2090 <a href="#l2071" class="line" id="l2071">   2071</a> &lt;a href=&quot;#l2052&quot; class=&quot;line&quot; id=&quot;l2052&quot;&gt;   2052&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-915&amp;quot; id=&amp;quot;h3-0-915&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2091 <a href="#l2072" class="line" id="l2072">   2072</a> &lt;a href=&quot;#l2053&quot; class=&quot;line&quot; id=&quot;l2053&quot;&gt;   2053&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-916&amp;quot; id=&amp;quot;h3-0-916&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_DISPERSION
   2092 <a href="#l2073" class="line" id="l2073">   2073</a> &lt;a href=&quot;#l2054&quot; class=&quot;line&quot; id=&quot;l2054&quot;&gt;   2054&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-917&amp;quot; id=&amp;quot;h3-0-917&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.dispersion = dispersion;
   2093 <a href="#l2074" class="line" id="l2074">   2074</a> &lt;a href=&quot;#l2055&quot; class=&quot;line&quot; id=&quot;l2055&quot;&gt;   2055&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-918&amp;quot; id=&amp;quot;h3-0-918&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2094 <a href="#l2075" class="line" id="l2075">   2075</a> &lt;a href=&quot;#l2056&quot; class=&quot;line&quot; id=&quot;l2056&quot;&gt;   2056&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-919&amp;quot; id=&amp;quot;h3-0-919&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCE
   2095 <a href="#l2076" class="line" id="l2076">   2076</a> &lt;a href=&quot;#l2057&quot; class=&quot;line&quot; id=&quot;l2057&quot;&gt;   2057&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-920&amp;quot; id=&amp;quot;h3-0-920&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.iridescence = iridescence;
   2096 <a href="#l2077" class="line" id="l2077">   2077</a> &lt;a href=&quot;#l2058&quot; class=&quot;line&quot; id=&quot;l2058&quot;&gt;   2058&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-921&amp;quot; id=&amp;quot;h3-0-921&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.iridescenceIOR = iridescenceIOR;
   2097 <a href="#l2078" class="line" id="l2078">   2078</a> &lt;a href=&quot;#l2059&quot; class=&quot;line&quot; id=&quot;l2059&quot;&gt;   2059&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-922&amp;quot; id=&amp;quot;h3-0-922&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_IRIDESCENCEMAP
   2098 <a href="#l2079" class="line" id="l2079">   2079</a> &lt;a href=&quot;#l2060&quot; class=&quot;line&quot; id=&quot;l2060&quot;&gt;   2060&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-923&amp;quot; id=&amp;quot;h3-0-923&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.iridescence *= texture2D( iridescenceMap, vIridescenceMapUv ).r;
   2099 <a href="#l2080" class="line" id="l2080">   2080</a> &lt;a href=&quot;#l2061&quot; class=&quot;line&quot; id=&quot;l2061&quot;&gt;   2061&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-924&amp;quot; id=&amp;quot;h3-0-924&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2100 <a href="#l2081" class="line" id="l2081">   2081</a> &lt;a href=&quot;#l2062&quot; class=&quot;line&quot; id=&quot;l2062&quot;&gt;   2062&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-925&amp;quot; id=&amp;quot;h3-0-925&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_IRIDESCENCE_THICKNESSMAP
   2101 <a href="#l2082" class="line" id="l2082">   2082</a> &lt;a href=&quot;#l2063&quot; class=&quot;line&quot; id=&quot;l2063&quot;&gt;   2063&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-926&amp;quot; id=&amp;quot;h3-0-926&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.iridescenceThickness = (iridescenceThicknessMaximum - iridescenceThicknessMinimum) * texture2D( iridescenceThicknessMap, vIridescenceThicknessMapUv ).g + iridescenceThicknessMinimum;
   2102 <a href="#l2083" class="line" id="l2083">   2083</a> &lt;a href=&quot;#l2064&quot; class=&quot;line&quot; id=&quot;l2064&quot;&gt;   2064&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-927&amp;quot; id=&amp;quot;h3-0-927&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2103 <a href="#l2084" class="line" id="l2084">   2084</a> &lt;a href=&quot;#l2065&quot; class=&quot;line&quot; id=&quot;l2065&quot;&gt;   2065&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-928&amp;quot; id=&amp;quot;h3-0-928&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.iridescenceThickness = iridescenceThicknessMaximum;
   2104 <a href="#l2085" class="line" id="l2085">   2085</a> &lt;a href=&quot;#l2066&quot; class=&quot;line&quot; id=&quot;l2066&quot;&gt;   2066&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-929&amp;quot; id=&amp;quot;h3-0-929&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2105 <a href="#l2086" class="line" id="l2086">   2086</a> &lt;a href=&quot;#l2067&quot; class=&quot;line&quot; id=&quot;l2067&quot;&gt;   2067&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-930&amp;quot; id=&amp;quot;h3-0-930&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2106 <a href="#l2087" class="line" id="l2087">   2087</a> &lt;a href=&quot;#l2068&quot; class=&quot;line&quot; id=&quot;l2068&quot;&gt;   2068&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-931&amp;quot; id=&amp;quot;h3-0-931&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHEEN
   2107 <a href="#l2088" class="line" id="l2088">   2088</a> &lt;a href=&quot;#l2069&quot; class=&quot;line&quot; id=&quot;l2069&quot;&gt;   2069&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-932&amp;quot; id=&amp;quot;h3-0-932&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.sheenColor = sheenColor;
   2108 <a href="#l2089" class="line" id="l2089">   2089</a> &lt;a href=&quot;#l2070&quot; class=&quot;line&quot; id=&quot;l2070&quot;&gt;   2070&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-933&amp;quot; id=&amp;quot;h3-0-933&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHEEN_COLORMAP
   2109 <a href="#l2090" class="line" id="l2090">   2090</a> &lt;a href=&quot;#l2071&quot; class=&quot;line&quot; id=&quot;l2071&quot;&gt;   2071&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-934&amp;quot; id=&amp;quot;h3-0-934&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.sheenColor *= texture2D( sheenColorMap, vSheenColorMapUv ).rgb;
   2110 <a href="#l2091" class="line" id="l2091">   2091</a> &lt;a href=&quot;#l2072&quot; class=&quot;line&quot; id=&quot;l2072&quot;&gt;   2072&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-935&amp;quot; id=&amp;quot;h3-0-935&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2111 <a href="#l2092" class="line" id="l2092">   2092</a> &lt;a href=&quot;#l2073&quot; class=&quot;line&quot; id=&quot;l2073&quot;&gt;   2073&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-936&amp;quot; id=&amp;quot;h3-0-936&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.sheenRoughness = clamp( sheenRoughness, 0.07, 1.0 );
   2112 <a href="#l2093" class="line" id="l2093">   2093</a> &lt;a href=&quot;#l2074&quot; class=&quot;line&quot; id=&quot;l2074&quot;&gt;   2074&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-937&amp;quot; id=&amp;quot;h3-0-937&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHEEN_ROUGHNESSMAP
   2113 <a href="#l2094" class="line" id="l2094">   2094</a> &lt;a href=&quot;#l2075&quot; class=&quot;line&quot; id=&quot;l2075&quot;&gt;   2075&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-938&amp;quot; id=&amp;quot;h3-0-938&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.sheenRoughness *= texture2D( sheenRoughnessMap, vSheenRoughnessMapUv ).a;
   2114 <a href="#l2095" class="line" id="l2095">   2095</a> &lt;a href=&quot;#l2076&quot; class=&quot;line&quot; id=&quot;l2076&quot;&gt;   2076&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-939&amp;quot; id=&amp;quot;h3-0-939&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2115 <a href="#l2096" class="line" id="l2096">   2096</a> &lt;a href=&quot;#l2077&quot; class=&quot;line&quot; id=&quot;l2077&quot;&gt;   2077&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-940&amp;quot; id=&amp;quot;h3-0-940&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2116 <a href="#l2097" class="line" id="l2097">   2097</a> &lt;a href=&quot;#l2078&quot; class=&quot;line&quot; id=&quot;l2078&quot;&gt;   2078&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-941&amp;quot; id=&amp;quot;h3-0-941&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ANISOTROPY
   2117 <a href="#l2098" class="line" id="l2098">   2098</a> &lt;a href=&quot;#l2079&quot; class=&quot;line&quot; id=&quot;l2079&quot;&gt;   2079&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-942&amp;quot; id=&amp;quot;h3-0-942&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_ANISOTROPYMAP
   2118 <a href="#l2099" class="line" id="l2099">   2099</a> &lt;a href=&quot;#l2080&quot; class=&quot;line&quot; id=&quot;l2080&quot;&gt;   2080&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-943&amp;quot; id=&amp;quot;h3-0-943&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		mat2 anisotropyMat = mat2( anisotropyVector.x, anisotropyVector.y, - anisotropyVector.y, anisotropyVector.x );
   2119 <a href="#l2100" class="line" id="l2100">   2100</a> &lt;a href=&quot;#l2081&quot; class=&quot;line&quot; id=&quot;l2081&quot;&gt;   2081&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-944&amp;quot; id=&amp;quot;h3-0-944&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 anisotropyPolar = texture2D( anisotropyMap, vAnisotropyMapUv ).rgb;
   2120 <a href="#l2101" class="line" id="l2101">   2101</a> &lt;a href=&quot;#l2082&quot; class=&quot;line&quot; id=&quot;l2082&quot;&gt;   2082&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-945&amp;quot; id=&amp;quot;h3-0-945&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 anisotropyV = anisotropyMat * normalize( 2.0 * anisotropyPolar.rg - vec2( 1.0 ) ) * anisotropyPolar.b;
   2121 <a href="#l2102" class="line" id="l2102">   2102</a> &lt;a href=&quot;#l2083&quot; class=&quot;line&quot; id=&quot;l2083&quot;&gt;   2083&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-946&amp;quot; id=&amp;quot;h3-0-946&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2122 <a href="#l2103" class="line" id="l2103">   2103</a> &lt;a href=&quot;#l2084&quot; class=&quot;line&quot; id=&quot;l2084&quot;&gt;   2084&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-947&amp;quot; id=&amp;quot;h3-0-947&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 anisotropyV = anisotropyVector;
   2123 <a href="#l2104" class="line" id="l2104">   2104</a> &lt;a href=&quot;#l2085&quot; class=&quot;line&quot; id=&quot;l2085&quot;&gt;   2085&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-948&amp;quot; id=&amp;quot;h3-0-948&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2124 <a href="#l2105" class="line" id="l2105">   2105</a> &lt;a href=&quot;#l2086&quot; class=&quot;line&quot; id=&quot;l2086&quot;&gt;   2086&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-949&amp;quot; id=&amp;quot;h3-0-949&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.anisotropy = length( anisotropyV );
   2125 <a href="#l2106" class="line" id="l2106">   2106</a> &lt;a href=&quot;#l2087&quot; class=&quot;line&quot; id=&quot;l2087&quot;&gt;   2087&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-950&amp;quot; id=&amp;quot;h3-0-950&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if( material.anisotropy == 0.0 ) {
   2126 <a href="#l2107" class="line" id="l2107">   2107</a> &lt;a href=&quot;#l2088&quot; class=&quot;line&quot; id=&quot;l2088&quot;&gt;   2088&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-951&amp;quot; id=&amp;quot;h3-0-951&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		anisotropyV = vec2( 1.0, 0.0 );
   2127 <a href="#l2108" class="line" id="l2108">   2108</a> &lt;a href=&quot;#l2089&quot; class=&quot;line&quot; id=&quot;l2089&quot;&gt;   2089&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-952&amp;quot; id=&amp;quot;h3-0-952&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	} else {
   2128 <a href="#l2109" class="line" id="l2109">   2109</a> &lt;a href=&quot;#l2090&quot; class=&quot;line&quot; id=&quot;l2090&quot;&gt;   2090&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-953&amp;quot; id=&amp;quot;h3-0-953&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		anisotropyV /= material.anisotropy;
   2129 <a href="#l2110" class="line" id="l2110">   2110</a> &lt;a href=&quot;#l2091&quot; class=&quot;line&quot; id=&quot;l2091&quot;&gt;   2091&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-954&amp;quot; id=&amp;quot;h3-0-954&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.anisotropy = saturate( material.anisotropy );
   2130 <a href="#l2111" class="line" id="l2111">   2111</a> &lt;a href=&quot;#l2092&quot; class=&quot;line&quot; id=&quot;l2092&quot;&gt;   2092&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-955&amp;quot; id=&amp;quot;h3-0-955&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2131 <a href="#l2112" class="line" id="l2112">   2112</a> &lt;a href=&quot;#l2093&quot; class=&quot;line&quot; id=&quot;l2093&quot;&gt;   2093&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-956&amp;quot; id=&amp;quot;h3-0-956&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.alphaT = mix( pow2( material.roughness ), 1.0, pow2( material.anisotropy ) );
   2132 <a href="#l2113" class="line" id="l2113">   2113</a> &lt;a href=&quot;#l2094&quot; class=&quot;line&quot; id=&quot;l2094&quot;&gt;   2094&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-957&amp;quot; id=&amp;quot;h3-0-957&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.anisotropyT = tbn[ 0 ] * anisotropyV.x + tbn[ 1 ] * anisotropyV.y;
   2133 <a href="#l2114" class="line" id="l2114">   2114</a> &lt;a href=&quot;#l2095&quot; class=&quot;line&quot; id=&quot;l2095&quot;&gt;   2095&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-958&amp;quot; id=&amp;quot;h3-0-958&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.anisotropyB = tbn[ 1 ] * anisotropyV.x - tbn[ 0 ] * anisotropyV.y;
   2134 <a href="#l2115" class="line" id="l2115">   2115</a> &lt;a href=&quot;#l2096&quot; class=&quot;line&quot; id=&quot;l2096&quot;&gt;   2096&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-959&amp;quot; id=&amp;quot;h3-0-959&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,sV=`struct PhysicalMaterial {
   2135 <a href="#l2116" class="line" id="l2116">   2116</a> &lt;a href=&quot;#l2097&quot; class=&quot;line&quot; id=&quot;l2097&quot;&gt;   2097&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-960&amp;quot; id=&amp;quot;h3-0-960&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 diffuseColor;
   2136 <a href="#l2117" class="line" id="l2117">   2117</a> &lt;a href=&quot;#l2098&quot; class=&quot;line&quot; id=&quot;l2098&quot;&gt;   2098&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-961&amp;quot; id=&amp;quot;h3-0-961&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float roughness;
   2137 <a href="#l2118" class="line" id="l2118">   2118</a> &lt;a href=&quot;#l2099&quot; class=&quot;line&quot; id=&quot;l2099&quot;&gt;   2099&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-962&amp;quot; id=&amp;quot;h3-0-962&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 specularColor;
   2138 <a href="#l2119" class="line" id="l2119">   2119</a> &lt;a href=&quot;#l2100&quot; class=&quot;line&quot; id=&quot;l2100&quot;&gt;   2100&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-963&amp;quot; id=&amp;quot;h3-0-963&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float specularF90;
   2139 <a href="#l2120" class="line" id="l2120">   2120</a> &lt;a href=&quot;#l2101&quot; class=&quot;line&quot; id=&quot;l2101&quot;&gt;   2101&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-964&amp;quot; id=&amp;quot;h3-0-964&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dispersion;
   2140 <a href="#l2121" class="line" id="l2121">   2121</a> &lt;a href=&quot;#l2102&quot; class=&quot;line&quot; id=&quot;l2102&quot;&gt;   2102&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-965&amp;quot; id=&amp;quot;h3-0-965&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_CLEARCOAT
   2141 <a href="#l2122" class="line" id="l2122">   2122</a> &lt;a href=&quot;#l2103&quot; class=&quot;line&quot; id=&quot;l2103&quot;&gt;   2103&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-966&amp;quot; id=&amp;quot;h3-0-966&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float clearcoat;
   2142 <a href="#l2123" class="line" id="l2123">   2123</a> &lt;a href=&quot;#l2104&quot; class=&quot;line&quot; id=&quot;l2104&quot;&gt;   2104&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-967&amp;quot; id=&amp;quot;h3-0-967&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float clearcoatRoughness;
   2143 <a href="#l2124" class="line" id="l2124">   2124</a> &lt;a href=&quot;#l2105&quot; class=&quot;line&quot; id=&quot;l2105&quot;&gt;   2105&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-968&amp;quot; id=&amp;quot;h3-0-968&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 clearcoatF0;
   2144 <a href="#l2125" class="line" id="l2125">   2125</a> &lt;a href=&quot;#l2106&quot; class=&quot;line&quot; id=&quot;l2106&quot;&gt;   2106&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-969&amp;quot; id=&amp;quot;h3-0-969&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float clearcoatF90;
   2145 <a href="#l2126" class="line" id="l2126">   2126</a> &lt;a href=&quot;#l2107&quot; class=&quot;line&quot; id=&quot;l2107&quot;&gt;   2107&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-970&amp;quot; id=&amp;quot;h3-0-970&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2146 <a href="#l2127" class="line" id="l2127">   2127</a> &lt;a href=&quot;#l2108&quot; class=&quot;line&quot; id=&quot;l2108&quot;&gt;   2108&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-971&amp;quot; id=&amp;quot;h3-0-971&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_IRIDESCENCE
   2147 <a href="#l2128" class="line" id="l2128">   2128</a> &lt;a href=&quot;#l2109&quot; class=&quot;line&quot; id=&quot;l2109&quot;&gt;   2109&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-972&amp;quot; id=&amp;quot;h3-0-972&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float iridescence;
   2148 <a href="#l2129" class="line" id="l2129">   2129</a> &lt;a href=&quot;#l2110&quot; class=&quot;line&quot; id=&quot;l2110&quot;&gt;   2110&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-973&amp;quot; id=&amp;quot;h3-0-973&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float iridescenceIOR;
   2149 <a href="#l2130" class="line" id="l2130">   2130</a> &lt;a href=&quot;#l2111&quot; class=&quot;line&quot; id=&quot;l2111&quot;&gt;   2111&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-974&amp;quot; id=&amp;quot;h3-0-974&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float iridescenceThickness;
   2150 <a href="#l2131" class="line" id="l2131">   2131</a> &lt;a href=&quot;#l2112&quot; class=&quot;line&quot; id=&quot;l2112&quot;&gt;   2112&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-975&amp;quot; id=&amp;quot;h3-0-975&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 iridescenceFresnel;
   2151 <a href="#l2132" class="line" id="l2132">   2132</a> &lt;a href=&quot;#l2113&quot; class=&quot;line&quot; id=&quot;l2113&quot;&gt;   2113&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-976&amp;quot; id=&amp;quot;h3-0-976&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 iridescenceF0;
   2152 <a href="#l2133" class="line" id="l2133">   2133</a> &lt;a href=&quot;#l2114&quot; class=&quot;line&quot; id=&quot;l2114&quot;&gt;   2114&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-977&amp;quot; id=&amp;quot;h3-0-977&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2153 <a href="#l2134" class="line" id="l2134">   2134</a> &lt;a href=&quot;#l2115&quot; class=&quot;line&quot; id=&quot;l2115&quot;&gt;   2115&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-978&amp;quot; id=&amp;quot;h3-0-978&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHEEN
   2154 <a href="#l2135" class="line" id="l2135">   2135</a> &lt;a href=&quot;#l2116&quot; class=&quot;line&quot; id=&quot;l2116&quot;&gt;   2116&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-979&amp;quot; id=&amp;quot;h3-0-979&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 sheenColor;
   2155 <a href="#l2136" class="line" id="l2136">   2136</a> &lt;a href=&quot;#l2117&quot; class=&quot;line&quot; id=&quot;l2117&quot;&gt;   2117&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-980&amp;quot; id=&amp;quot;h3-0-980&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float sheenRoughness;
   2156 <a href="#l2137" class="line" id="l2137">   2137</a> &lt;a href=&quot;#l2118&quot; class=&quot;line&quot; id=&quot;l2118&quot;&gt;   2118&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-981&amp;quot; id=&amp;quot;h3-0-981&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2157 <a href="#l2138" class="line" id="l2138">   2138</a> &lt;a href=&quot;#l2119&quot; class=&quot;line&quot; id=&quot;l2119&quot;&gt;   2119&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-982&amp;quot; id=&amp;quot;h3-0-982&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef IOR
   2158 <a href="#l2139" class="line" id="l2139">   2139</a> &lt;a href=&quot;#l2120&quot; class=&quot;line&quot; id=&quot;l2120&quot;&gt;   2120&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-983&amp;quot; id=&amp;quot;h3-0-983&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float ior;
   2159 <a href="#l2140" class="line" id="l2140">   2140</a> &lt;a href=&quot;#l2121&quot; class=&quot;line&quot; id=&quot;l2121&quot;&gt;   2121&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-984&amp;quot; id=&amp;quot;h3-0-984&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2160 <a href="#l2141" class="line" id="l2141">   2141</a> &lt;a href=&quot;#l2122&quot; class=&quot;line&quot; id=&quot;l2122&quot;&gt;   2122&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-985&amp;quot; id=&amp;quot;h3-0-985&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TRANSMISSION
   2161 <a href="#l2142" class="line" id="l2142">   2142</a> &lt;a href=&quot;#l2123&quot; class=&quot;line&quot; id=&quot;l2123&quot;&gt;   2123&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-986&amp;quot; id=&amp;quot;h3-0-986&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float transmission;
   2162 <a href="#l2143" class="line" id="l2143">   2143</a> &lt;a href=&quot;#l2124&quot; class=&quot;line&quot; id=&quot;l2124&quot;&gt;   2124&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-987&amp;quot; id=&amp;quot;h3-0-987&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float transmissionAlpha;
   2163 <a href="#l2144" class="line" id="l2144">   2144</a> &lt;a href=&quot;#l2125&quot; class=&quot;line&quot; id=&quot;l2125&quot;&gt;   2125&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-988&amp;quot; id=&amp;quot;h3-0-988&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float thickness;
   2164 <a href="#l2145" class="line" id="l2145">   2145</a> &lt;a href=&quot;#l2126&quot; class=&quot;line&quot; id=&quot;l2126&quot;&gt;   2126&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-989&amp;quot; id=&amp;quot;h3-0-989&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float attenuationDistance;
   2165 <a href="#l2146" class="line" id="l2146">   2146</a> &lt;a href=&quot;#l2127&quot; class=&quot;line&quot; id=&quot;l2127&quot;&gt;   2127&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-990&amp;quot; id=&amp;quot;h3-0-990&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 attenuationColor;
   2166 <a href="#l2147" class="line" id="l2147">   2147</a> &lt;a href=&quot;#l2128&quot; class=&quot;line&quot; id=&quot;l2128&quot;&gt;   2128&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-991&amp;quot; id=&amp;quot;h3-0-991&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2167 <a href="#l2148" class="line" id="l2148">   2148</a> &lt;a href=&quot;#l2129&quot; class=&quot;line&quot; id=&quot;l2129&quot;&gt;   2129&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-992&amp;quot; id=&amp;quot;h3-0-992&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_ANISOTROPY
   2168 <a href="#l2149" class="line" id="l2149">   2149</a> &lt;a href=&quot;#l2130&quot; class=&quot;line&quot; id=&quot;l2130&quot;&gt;   2130&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-993&amp;quot; id=&amp;quot;h3-0-993&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float anisotropy;
   2169 <a href="#l2150" class="line" id="l2150">   2150</a> &lt;a href=&quot;#l2131&quot; class=&quot;line&quot; id=&quot;l2131&quot;&gt;   2131&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-994&amp;quot; id=&amp;quot;h3-0-994&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float alphaT;
   2170 <a href="#l2151" class="line" id="l2151">   2151</a> &lt;a href=&quot;#l2132&quot; class=&quot;line&quot; id=&quot;l2132&quot;&gt;   2132&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-995&amp;quot; id=&amp;quot;h3-0-995&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 anisotropyT;
   2171 <a href="#l2152" class="line" id="l2152">   2152</a> &lt;a href=&quot;#l2133&quot; class=&quot;line&quot; id=&quot;l2133&quot;&gt;   2133&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-996&amp;quot; id=&amp;quot;h3-0-996&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 anisotropyB;
   2172 <a href="#l2153" class="line" id="l2153">   2153</a> &lt;a href=&quot;#l2134&quot; class=&quot;line&quot; id=&quot;l2134&quot;&gt;   2134&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-997&amp;quot; id=&amp;quot;h3-0-997&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2173 <a href="#l2154" class="line" id="l2154">   2154</a> &lt;a href=&quot;#l2135&quot; class=&quot;line&quot; id=&quot;l2135&quot;&gt;   2135&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-998&amp;quot; id=&amp;quot;h3-0-998&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   2174 <a href="#l2155" class="line" id="l2155">   2155</a> &lt;a href=&quot;#l2136&quot; class=&quot;line&quot; id=&quot;l2136&quot;&gt;   2136&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-999&amp;quot; id=&amp;quot;h3-0-999&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 clearcoatSpecularDirect = vec3( 0.0 );
   2175 <a href="#l2156" class="line" id="l2156">   2156</a> &lt;a href=&quot;#l2137&quot; class=&quot;line&quot; id=&quot;l2137&quot;&gt;   2137&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1000&amp;quot; id=&amp;quot;h3-0-1000&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 clearcoatSpecularIndirect = vec3( 0.0 );
   2176 <a href="#l2157" class="line" id="l2157">   2157</a> &lt;a href=&quot;#l2138&quot; class=&quot;line&quot; id=&quot;l2138&quot;&gt;   2138&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1001&amp;quot; id=&amp;quot;h3-0-1001&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 sheenSpecularDirect = vec3( 0.0 );
   2177 <a href="#l2158" class="line" id="l2158">   2158</a> &lt;a href=&quot;#l2139&quot; class=&quot;line&quot; id=&quot;l2139&quot;&gt;   2139&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1002&amp;quot; id=&amp;quot;h3-0-1002&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 sheenSpecularIndirect = vec3(0.0 );
   2178 <a href="#l2159" class="line" id="l2159">   2159</a> &lt;a href=&quot;#l2140&quot; class=&quot;line&quot; id=&quot;l2140&quot;&gt;   2140&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1003&amp;quot; id=&amp;quot;h3-0-1003&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 Schlick_to_F0( const in vec3 f, const in float f90, const in float dotVH ) {
   2179 <a href="#l2160" class="line" id="l2160">   2160</a> &lt;a href=&quot;#l2141&quot; class=&quot;line&quot; id=&quot;l2141&quot;&gt;   2141&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1004&amp;quot; id=&amp;quot;h3-0-1004&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float x = clamp( 1.0 - dotVH, 0.0, 1.0 );
   2180 <a href="#l2161" class="line" id="l2161">   2161</a> &lt;a href=&quot;#l2142&quot; class=&quot;line&quot; id=&quot;l2142&quot;&gt;   2142&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1005&amp;quot; id=&amp;quot;h3-0-1005&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float x2 = x * x;
   2181 <a href="#l2162" class="line" id="l2162">   2162</a> &lt;a href=&quot;#l2143&quot; class=&quot;line&quot; id=&quot;l2143&quot;&gt;   2143&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1006&amp;quot; id=&amp;quot;h3-0-1006&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float x5 = clamp( x * x2 * x2, 0.0, 0.9999 );
   2182 <a href="#l2163" class="line" id="l2163">   2163</a> &lt;a href=&quot;#l2144&quot; class=&quot;line&quot; id=&quot;l2144&quot;&gt;   2144&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1007&amp;quot; id=&amp;quot;h3-0-1007&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    return ( f - vec3( f90 ) * x5 ) / ( 1.0 - x5 );
   2183 <a href="#l2164" class="line" id="l2164">   2164</a> &lt;a href=&quot;#l2145&quot; class=&quot;line&quot; id=&quot;l2145&quot;&gt;   2145&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1008&amp;quot; id=&amp;quot;h3-0-1008&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2184 <a href="#l2165" class="line" id="l2165">   2165</a> &lt;a href=&quot;#l2146&quot; class=&quot;line&quot; id=&quot;l2146&quot;&gt;   2146&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1009&amp;quot; id=&amp;quot;h3-0-1009&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float V_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {
   2185 <a href="#l2166" class="line" id="l2166">   2166</a> &lt;a href=&quot;#l2147&quot; class=&quot;line&quot; id=&quot;l2147&quot;&gt;   2147&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1010&amp;quot; id=&amp;quot;h3-0-1010&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float a2 = pow2( alpha );
   2186 <a href="#l2167" class="line" id="l2167">   2167</a> &lt;a href=&quot;#l2148&quot; class=&quot;line&quot; id=&quot;l2148&quot;&gt;   2148&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1011&amp;quot; id=&amp;quot;h3-0-1011&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );
   2187 <a href="#l2168" class="line" id="l2168">   2168</a> &lt;a href=&quot;#l2149&quot; class=&quot;line&quot; id=&quot;l2149&quot;&gt;   2149&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1012&amp;quot; id=&amp;quot;h3-0-1012&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );
   2188 <a href="#l2169" class="line" id="l2169">   2169</a> &lt;a href=&quot;#l2150&quot; class=&quot;line&quot; id=&quot;l2150&quot;&gt;   2150&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1013&amp;quot; id=&amp;quot;h3-0-1013&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return 0.5 / max( gv + gl, EPSILON );
   2189 <a href="#l2170" class="line" id="l2170">   2170</a> &lt;a href=&quot;#l2151&quot; class=&quot;line&quot; id=&quot;l2151&quot;&gt;   2151&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1014&amp;quot; id=&amp;quot;h3-0-1014&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2190 <a href="#l2171" class="line" id="l2171">   2171</a> &lt;a href=&quot;#l2152&quot; class=&quot;line&quot; id=&quot;l2152&quot;&gt;   2152&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1015&amp;quot; id=&amp;quot;h3-0-1015&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float D_GGX( const in float alpha, const in float dotNH ) {
   2191 <a href="#l2172" class="line" id="l2172">   2172</a> &lt;a href=&quot;#l2153&quot; class=&quot;line&quot; id=&quot;l2153&quot;&gt;   2153&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1016&amp;quot; id=&amp;quot;h3-0-1016&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float a2 = pow2( alpha );
   2192 <a href="#l2173" class="line" id="l2173">   2173</a> &lt;a href=&quot;#l2154&quot; class=&quot;line&quot; id=&quot;l2154&quot;&gt;   2154&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1017&amp;quot; id=&amp;quot;h3-0-1017&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;
   2193 <a href="#l2174" class="line" id="l2174">   2174</a> &lt;a href=&quot;#l2155&quot; class=&quot;line&quot; id=&quot;l2155&quot;&gt;   2155&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1018&amp;quot; id=&amp;quot;h3-0-1018&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return RECIPROCAL_PI * a2 / pow2( denom );
   2194 <a href="#l2175" class="line" id="l2175">   2175</a> &lt;a href=&quot;#l2156&quot; class=&quot;line&quot; id=&quot;l2156&quot;&gt;   2156&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1019&amp;quot; id=&amp;quot;h3-0-1019&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2195 <a href="#l2176" class="line" id="l2176">   2176</a> &lt;a href=&quot;#l2157&quot; class=&quot;line&quot; id=&quot;l2157&quot;&gt;   2157&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1020&amp;quot; id=&amp;quot;h3-0-1020&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ANISOTROPY
   2196 <a href="#l2177" class="line" id="l2177">   2177</a> &lt;a href=&quot;#l2158&quot; class=&quot;line&quot; id=&quot;l2158&quot;&gt;   2158&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1021&amp;quot; id=&amp;quot;h3-0-1021&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float V_GGX_SmithCorrelated_Anisotropic( const in float alphaT, const in float alphaB, const in float dotTV, const in float dotBV, const in float dotTL, const in float dotBL, const in float dotNV, const in float dotNL ) {
   2197 <a href="#l2178" class="line" id="l2178">   2178</a> &lt;a href=&quot;#l2159&quot; class=&quot;line&quot; id=&quot;l2159&quot;&gt;   2159&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1022&amp;quot; id=&amp;quot;h3-0-1022&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float gv = dotNL * length( vec3( alphaT * dotTV, alphaB * dotBV, dotNV ) );
   2198 <a href="#l2179" class="line" id="l2179">   2179</a> &lt;a href=&quot;#l2160&quot; class=&quot;line&quot; id=&quot;l2160&quot;&gt;   2160&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1023&amp;quot; id=&amp;quot;h3-0-1023&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float gl = dotNV * length( vec3( alphaT * dotTL, alphaB * dotBL, dotNL ) );
   2199 <a href="#l2180" class="line" id="l2180">   2180</a> &lt;a href=&quot;#l2161&quot; class=&quot;line&quot; id=&quot;l2161&quot;&gt;   2161&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1024&amp;quot; id=&amp;quot;h3-0-1024&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float v = 0.5 / ( gv + gl );
   2200 <a href="#l2181" class="line" id="l2181">   2181</a> &lt;a href=&quot;#l2162&quot; class=&quot;line&quot; id=&quot;l2162&quot;&gt;   2162&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1025&amp;quot; id=&amp;quot;h3-0-1025&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return saturate(v);
   2201 <a href="#l2182" class="line" id="l2182">   2182</a> &lt;a href=&quot;#l2163&quot; class=&quot;line&quot; id=&quot;l2163&quot;&gt;   2163&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1026&amp;quot; id=&amp;quot;h3-0-1026&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2202 <a href="#l2183" class="line" id="l2183">   2183</a> &lt;a href=&quot;#l2164&quot; class=&quot;line&quot; id=&quot;l2164&quot;&gt;   2164&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1027&amp;quot; id=&amp;quot;h3-0-1027&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float D_GGX_Anisotropic( const in float alphaT, const in float alphaB, const in float dotNH, const in float dotTH, const in float dotBH ) {
   2203 <a href="#l2184" class="line" id="l2184">   2184</a> &lt;a href=&quot;#l2165&quot; class=&quot;line&quot; id=&quot;l2165&quot;&gt;   2165&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1028&amp;quot; id=&amp;quot;h3-0-1028&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float a2 = alphaT * alphaB;
   2204 <a href="#l2185" class="line" id="l2185">   2185</a> &lt;a href=&quot;#l2166&quot; class=&quot;line&quot; id=&quot;l2166&quot;&gt;   2166&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1029&amp;quot; id=&amp;quot;h3-0-1029&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		highp vec3 v = vec3( alphaB * dotTH, alphaT * dotBH, a2 * dotNH );
   2205 <a href="#l2186" class="line" id="l2186">   2186</a> &lt;a href=&quot;#l2167&quot; class=&quot;line&quot; id=&quot;l2167&quot;&gt;   2167&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1030&amp;quot; id=&amp;quot;h3-0-1030&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		highp float v2 = dot( v, v );
   2206 <a href="#l2187" class="line" id="l2187">   2187</a> &lt;a href=&quot;#l2168&quot; class=&quot;line&quot; id=&quot;l2168&quot;&gt;   2168&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1031&amp;quot; id=&amp;quot;h3-0-1031&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float w2 = a2 / v2;
   2207 <a href="#l2188" class="line" id="l2188">   2188</a> &lt;a href=&quot;#l2169&quot; class=&quot;line&quot; id=&quot;l2169&quot;&gt;   2169&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1032&amp;quot; id=&amp;quot;h3-0-1032&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return RECIPROCAL_PI * a2 * pow2 ( w2 );
   2208 <a href="#l2189" class="line" id="l2189">   2189</a> &lt;a href=&quot;#l2170&quot; class=&quot;line&quot; id=&quot;l2170&quot;&gt;   2170&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1033&amp;quot; id=&amp;quot;h3-0-1033&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2209 <a href="#l2190" class="line" id="l2190">   2190</a> &lt;a href=&quot;#l2171&quot; class=&quot;line&quot; id=&quot;l2171&quot;&gt;   2171&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1034&amp;quot; id=&amp;quot;h3-0-1034&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2210 <a href="#l2191" class="line" id="l2191">   2191</a> &lt;a href=&quot;#l2172&quot; class=&quot;line&quot; id=&quot;l2172&quot;&gt;   2172&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1035&amp;quot; id=&amp;quot;h3-0-1035&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT
   2211 <a href="#l2192" class="line" id="l2192">   2192</a> &lt;a href=&quot;#l2173&quot; class=&quot;line&quot; id=&quot;l2173&quot;&gt;   2173&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1036&amp;quot; id=&amp;quot;h3-0-1036&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 BRDF_GGX_Clearcoat( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material) {
   2212 <a href="#l2193" class="line" id="l2193">   2193</a> &lt;a href=&quot;#l2174&quot; class=&quot;line&quot; id=&quot;l2174&quot;&gt;   2174&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1037&amp;quot; id=&amp;quot;h3-0-1037&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 f0 = material.clearcoatF0;
   2213 <a href="#l2194" class="line" id="l2194">   2194</a> &lt;a href=&quot;#l2175&quot; class=&quot;line&quot; id=&quot;l2175&quot;&gt;   2175&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1038&amp;quot; id=&amp;quot;h3-0-1038&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float f90 = material.clearcoatF90;
   2214 <a href="#l2195" class="line" id="l2195">   2195</a> &lt;a href=&quot;#l2176&quot; class=&quot;line&quot; id=&quot;l2176&quot;&gt;   2176&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1039&amp;quot; id=&amp;quot;h3-0-1039&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float roughness = material.clearcoatRoughness;
   2215 <a href="#l2196" class="line" id="l2196">   2196</a> &lt;a href=&quot;#l2177&quot; class=&quot;line&quot; id=&quot;l2177&quot;&gt;   2177&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1040&amp;quot; id=&amp;quot;h3-0-1040&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float alpha = pow2( roughness );
   2216 <a href="#l2197" class="line" id="l2197">   2197</a> &lt;a href=&quot;#l2178&quot; class=&quot;line&quot; id=&quot;l2178&quot;&gt;   2178&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1041&amp;quot; id=&amp;quot;h3-0-1041&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 halfDir = normalize( lightDir + viewDir );
   2217 <a href="#l2198" class="line" id="l2198">   2198</a> &lt;a href=&quot;#l2179&quot; class=&quot;line&quot; id=&quot;l2179&quot;&gt;   2179&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1042&amp;quot; id=&amp;quot;h3-0-1042&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotNL = saturate( dot( normal, lightDir ) );
   2218 <a href="#l2199" class="line" id="l2199">   2199</a> &lt;a href=&quot;#l2180&quot; class=&quot;line&quot; id=&quot;l2180&quot;&gt;   2180&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1043&amp;quot; id=&amp;quot;h3-0-1043&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotNV = saturate( dot( normal, viewDir ) );
   2219 <a href="#l2200" class="line" id="l2200">   2200</a> &lt;a href=&quot;#l2181&quot; class=&quot;line&quot; id=&quot;l2181&quot;&gt;   2181&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1044&amp;quot; id=&amp;quot;h3-0-1044&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotNH = saturate( dot( normal, halfDir ) );
   2220 <a href="#l2201" class="line" id="l2201">   2201</a> &lt;a href=&quot;#l2182&quot; class=&quot;line&quot; id=&quot;l2182&quot;&gt;   2182&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1045&amp;quot; id=&amp;quot;h3-0-1045&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotVH = saturate( dot( viewDir, halfDir ) );
   2221 <a href="#l2202" class="line" id="l2202">   2202</a> &lt;a href=&quot;#l2183&quot; class=&quot;line&quot; id=&quot;l2183&quot;&gt;   2183&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1046&amp;quot; id=&amp;quot;h3-0-1046&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 F = F_Schlick( f0, f90, dotVH );
   2222 <a href="#l2203" class="line" id="l2203">   2203</a> &lt;a href=&quot;#l2184&quot; class=&quot;line&quot; id=&quot;l2184&quot;&gt;   2184&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1047&amp;quot; id=&amp;quot;h3-0-1047&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
   2223 <a href="#l2204" class="line" id="l2204">   2204</a> &lt;a href=&quot;#l2185&quot; class=&quot;line&quot; id=&quot;l2185&quot;&gt;   2185&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1048&amp;quot; id=&amp;quot;h3-0-1048&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float D = D_GGX( alpha, dotNH );
   2224 <a href="#l2205" class="line" id="l2205">   2205</a> &lt;a href=&quot;#l2186&quot; class=&quot;line&quot; id=&quot;l2186&quot;&gt;   2186&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1049&amp;quot; id=&amp;quot;h3-0-1049&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return F * ( V * D );
   2225 <a href="#l2206" class="line" id="l2206">   2206</a> &lt;a href=&quot;#l2187&quot; class=&quot;line&quot; id=&quot;l2187&quot;&gt;   2187&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1050&amp;quot; id=&amp;quot;h3-0-1050&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2226 <a href="#l2207" class="line" id="l2207">   2207</a> &lt;a href=&quot;#l2188&quot; class=&quot;line&quot; id=&quot;l2188&quot;&gt;   2188&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1051&amp;quot; id=&amp;quot;h3-0-1051&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2227 <a href="#l2208" class="line" id="l2208">   2208</a> &lt;a href=&quot;#l2189&quot; class=&quot;line&quot; id=&quot;l2189&quot;&gt;   2189&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1052&amp;quot; id=&amp;quot;h3-0-1052&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 BRDF_GGX( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, const in PhysicalMaterial material ) {
   2228 <a href="#l2209" class="line" id="l2209">   2209</a> &lt;a href=&quot;#l2190&quot; class=&quot;line&quot; id=&quot;l2190&quot;&gt;   2190&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1053&amp;quot; id=&amp;quot;h3-0-1053&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 f0 = material.specularColor;
   2229 <a href="#l2210" class="line" id="l2210">   2210</a> &lt;a href=&quot;#l2191&quot; class=&quot;line&quot; id=&quot;l2191&quot;&gt;   2191&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1054&amp;quot; id=&amp;quot;h3-0-1054&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float f90 = material.specularF90;
   2230 <a href="#l2211" class="line" id="l2211">   2211</a> &lt;a href=&quot;#l2192&quot; class=&quot;line&quot; id=&quot;l2192&quot;&gt;   2192&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1055&amp;quot; id=&amp;quot;h3-0-1055&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float roughness = material.roughness;
   2231 <a href="#l2212" class="line" id="l2212">   2212</a> &lt;a href=&quot;#l2193&quot; class=&quot;line&quot; id=&quot;l2193&quot;&gt;   2193&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1056&amp;quot; id=&amp;quot;h3-0-1056&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float alpha = pow2( roughness );
   2232 <a href="#l2213" class="line" id="l2213">   2213</a> &lt;a href=&quot;#l2194&quot; class=&quot;line&quot; id=&quot;l2194&quot;&gt;   2194&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1057&amp;quot; id=&amp;quot;h3-0-1057&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 halfDir = normalize( lightDir + viewDir );
   2233 <a href="#l2214" class="line" id="l2214">   2214</a> &lt;a href=&quot;#l2195&quot; class=&quot;line&quot; id=&quot;l2195&quot;&gt;   2195&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1058&amp;quot; id=&amp;quot;h3-0-1058&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNL = saturate( dot( normal, lightDir ) );
   2234 <a href="#l2215" class="line" id="l2215">   2215</a> &lt;a href=&quot;#l2196&quot; class=&quot;line&quot; id=&quot;l2196&quot;&gt;   2196&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1059&amp;quot; id=&amp;quot;h3-0-1059&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNV = saturate( dot( normal, viewDir ) );
   2235 <a href="#l2216" class="line" id="l2216">   2216</a> &lt;a href=&quot;#l2197&quot; class=&quot;line&quot; id=&quot;l2197&quot;&gt;   2197&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1060&amp;quot; id=&amp;quot;h3-0-1060&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNH = saturate( dot( normal, halfDir ) );
   2236 <a href="#l2217" class="line" id="l2217">   2217</a> &lt;a href=&quot;#l2198&quot; class=&quot;line&quot; id=&quot;l2198&quot;&gt;   2198&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1061&amp;quot; id=&amp;quot;h3-0-1061&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotVH = saturate( dot( viewDir, halfDir ) );
   2237 <a href="#l2218" class="line" id="l2218">   2218</a> &lt;a href=&quot;#l2199&quot; class=&quot;line&quot; id=&quot;l2199&quot;&gt;   2199&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1062&amp;quot; id=&amp;quot;h3-0-1062&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 F = F_Schlick( f0, f90, dotVH );
   2238 <a href="#l2219" class="line" id="l2219">   2219</a> &lt;a href=&quot;#l2200&quot; class=&quot;line&quot; id=&quot;l2200&quot;&gt;   2200&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1063&amp;quot; id=&amp;quot;h3-0-1063&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_IRIDESCENCE
   2239 <a href="#l2220" class="line" id="l2220">   2220</a> &lt;a href=&quot;#l2201&quot; class=&quot;line&quot; id=&quot;l2201&quot;&gt;   2201&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1064&amp;quot; id=&amp;quot;h3-0-1064&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		F = mix( F, material.iridescenceFresnel, material.iridescence );
   2240 <a href="#l2221" class="line" id="l2221">   2221</a> &lt;a href=&quot;#l2202&quot; class=&quot;line&quot; id=&quot;l2202&quot;&gt;   2202&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1065&amp;quot; id=&amp;quot;h3-0-1065&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2241 <a href="#l2222" class="line" id="l2222">   2222</a> &lt;a href=&quot;#l2203&quot; class=&quot;line&quot; id=&quot;l2203&quot;&gt;   2203&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1066&amp;quot; id=&amp;quot;h3-0-1066&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_ANISOTROPY
   2242 <a href="#l2223" class="line" id="l2223">   2223</a> &lt;a href=&quot;#l2204&quot; class=&quot;line&quot; id=&quot;l2204&quot;&gt;   2204&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1067&amp;quot; id=&amp;quot;h3-0-1067&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotTL = dot( material.anisotropyT, lightDir );
   2243 <a href="#l2224" class="line" id="l2224">   2224</a> &lt;a href=&quot;#l2205&quot; class=&quot;line&quot; id=&quot;l2205&quot;&gt;   2205&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1068&amp;quot; id=&amp;quot;h3-0-1068&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotTV = dot( material.anisotropyT, viewDir );
   2244 <a href="#l2225" class="line" id="l2225">   2225</a> &lt;a href=&quot;#l2206&quot; class=&quot;line&quot; id=&quot;l2206&quot;&gt;   2206&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1069&amp;quot; id=&amp;quot;h3-0-1069&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotTH = dot( material.anisotropyT, halfDir );
   2245 <a href="#l2226" class="line" id="l2226">   2226</a> &lt;a href=&quot;#l2207&quot; class=&quot;line&quot; id=&quot;l2207&quot;&gt;   2207&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1070&amp;quot; id=&amp;quot;h3-0-1070&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotBL = dot( material.anisotropyB, lightDir );
   2246 <a href="#l2227" class="line" id="l2227">   2227</a> &lt;a href=&quot;#l2208&quot; class=&quot;line&quot; id=&quot;l2208&quot;&gt;   2208&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1071&amp;quot; id=&amp;quot;h3-0-1071&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotBV = dot( material.anisotropyB, viewDir );
   2247 <a href="#l2228" class="line" id="l2228">   2228</a> &lt;a href=&quot;#l2209&quot; class=&quot;line&quot; id=&quot;l2209&quot;&gt;   2209&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1072&amp;quot; id=&amp;quot;h3-0-1072&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotBH = dot( material.anisotropyB, halfDir );
   2248 <a href="#l2229" class="line" id="l2229">   2229</a> &lt;a href=&quot;#l2210&quot; class=&quot;line&quot; id=&quot;l2210&quot;&gt;   2210&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1073&amp;quot; id=&amp;quot;h3-0-1073&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float V = V_GGX_SmithCorrelated_Anisotropic( material.alphaT, alpha, dotTV, dotBV, dotTL, dotBL, dotNV, dotNL );
   2249 <a href="#l2230" class="line" id="l2230">   2230</a> &lt;a href=&quot;#l2211&quot; class=&quot;line&quot; id=&quot;l2211&quot;&gt;   2211&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1074&amp;quot; id=&amp;quot;h3-0-1074&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float D = D_GGX_Anisotropic( material.alphaT, alpha, dotNH, dotTH, dotBH );
   2250 <a href="#l2231" class="line" id="l2231">   2231</a> &lt;a href=&quot;#l2212&quot; class=&quot;line&quot; id=&quot;l2212&quot;&gt;   2212&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1075&amp;quot; id=&amp;quot;h3-0-1075&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2251 <a href="#l2232" class="line" id="l2232">   2232</a> &lt;a href=&quot;#l2213&quot; class=&quot;line&quot; id=&quot;l2213&quot;&gt;   2213&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1076&amp;quot; id=&amp;quot;h3-0-1076&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float V = V_GGX_SmithCorrelated( alpha, dotNL, dotNV );
   2252 <a href="#l2233" class="line" id="l2233">   2233</a> &lt;a href=&quot;#l2214&quot; class=&quot;line&quot; id=&quot;l2214&quot;&gt;   2214&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1077&amp;quot; id=&amp;quot;h3-0-1077&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float D = D_GGX( alpha, dotNH );
   2253 <a href="#l2234" class="line" id="l2234">   2234</a> &lt;a href=&quot;#l2215&quot; class=&quot;line&quot; id=&quot;l2215&quot;&gt;   2215&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1078&amp;quot; id=&amp;quot;h3-0-1078&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2254 <a href="#l2235" class="line" id="l2235">   2235</a> &lt;a href=&quot;#l2216&quot; class=&quot;line&quot; id=&quot;l2216&quot;&gt;   2216&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1079&amp;quot; id=&amp;quot;h3-0-1079&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return F * ( V * D );
   2255 <a href="#l2236" class="line" id="l2236">   2236</a> &lt;a href=&quot;#l2217&quot; class=&quot;line&quot; id=&quot;l2217&quot;&gt;   2217&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1080&amp;quot; id=&amp;quot;h3-0-1080&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2256 <a href="#l2237" class="line" id="l2237">   2237</a> &lt;a href=&quot;#l2218&quot; class=&quot;line&quot; id=&quot;l2218&quot;&gt;   2218&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1081&amp;quot; id=&amp;quot;h3-0-1081&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {
   2257 <a href="#l2238" class="line" id="l2238">   2238</a> &lt;a href=&quot;#l2219&quot; class=&quot;line&quot; id=&quot;l2219&quot;&gt;   2219&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1082&amp;quot; id=&amp;quot;h3-0-1082&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float LUT_SIZE = 64.0;
   2258 <a href="#l2239" class="line" id="l2239">   2239</a> &lt;a href=&quot;#l2220&quot; class=&quot;line&quot; id=&quot;l2220&quot;&gt;   2220&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1083&amp;quot; id=&amp;quot;h3-0-1083&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;
   2259 <a href="#l2240" class="line" id="l2240">   2240</a> &lt;a href=&quot;#l2221&quot; class=&quot;line&quot; id=&quot;l2221&quot;&gt;   2221&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1084&amp;quot; id=&amp;quot;h3-0-1084&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float LUT_BIAS = 0.5 / LUT_SIZE;
   2260 <a href="#l2241" class="line" id="l2241">   2241</a> &lt;a href=&quot;#l2222&quot; class=&quot;line&quot; id=&quot;l2222&quot;&gt;   2222&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1085&amp;quot; id=&amp;quot;h3-0-1085&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNV = saturate( dot( N, V ) );
   2261 <a href="#l2242" class="line" id="l2242">   2242</a> &lt;a href=&quot;#l2223&quot; class=&quot;line&quot; id=&quot;l2223&quot;&gt;   2223&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1086&amp;quot; id=&amp;quot;h3-0-1086&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );
   2262 <a href="#l2243" class="line" id="l2243">   2243</a> &lt;a href=&quot;#l2224&quot; class=&quot;line&quot; id=&quot;l2224&quot;&gt;   2224&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1087&amp;quot; id=&amp;quot;h3-0-1087&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uv = uv * LUT_SCALE + LUT_BIAS;
   2263 <a href="#l2244" class="line" id="l2244">   2244</a> &lt;a href=&quot;#l2225&quot; class=&quot;line&quot; id=&quot;l2225&quot;&gt;   2225&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1088&amp;quot; id=&amp;quot;h3-0-1088&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return uv;
   2264 <a href="#l2245" class="line" id="l2245">   2245</a> &lt;a href=&quot;#l2226&quot; class=&quot;line&quot; id=&quot;l2226&quot;&gt;   2226&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1089&amp;quot; id=&amp;quot;h3-0-1089&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2265 <a href="#l2246" class="line" id="l2246">   2246</a> &lt;a href=&quot;#l2227&quot; class=&quot;line&quot; id=&quot;l2227&quot;&gt;   2227&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1090&amp;quot; id=&amp;quot;h3-0-1090&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float LTC_ClippedSphereFormFactor( const in vec3 f ) {
   2266 <a href="#l2247" class="line" id="l2247">   2247</a> &lt;a href=&quot;#l2228&quot; class=&quot;line&quot; id=&quot;l2228&quot;&gt;   2228&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1091&amp;quot; id=&amp;quot;h3-0-1091&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float l = length( f );
   2267 <a href="#l2248" class="line" id="l2248">   2248</a> &lt;a href=&quot;#l2229&quot; class=&quot;line&quot; id=&quot;l2229&quot;&gt;   2229&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1092&amp;quot; id=&amp;quot;h3-0-1092&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );
   2268 <a href="#l2249" class="line" id="l2249">   2249</a> &lt;a href=&quot;#l2230&quot; class=&quot;line&quot; id=&quot;l2230&quot;&gt;   2230&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1093&amp;quot; id=&amp;quot;h3-0-1093&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2269 <a href="#l2250" class="line" id="l2250">   2250</a> &lt;a href=&quot;#l2231&quot; class=&quot;line&quot; id=&quot;l2231&quot;&gt;   2231&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1094&amp;quot; id=&amp;quot;h3-0-1094&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {
   2270 <a href="#l2251" class="line" id="l2251">   2251</a> &lt;a href=&quot;#l2232&quot; class=&quot;line&quot; id=&quot;l2232&quot;&gt;   2232&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1095&amp;quot; id=&amp;quot;h3-0-1095&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float x = dot( v1, v2 );
   2271 <a href="#l2252" class="line" id="l2252">   2252</a> &lt;a href=&quot;#l2233&quot; class=&quot;line&quot; id=&quot;l2233&quot;&gt;   2233&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1096&amp;quot; id=&amp;quot;h3-0-1096&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float y = abs( x );
   2272 <a href="#l2253" class="line" id="l2253">   2253</a> &lt;a href=&quot;#l2234&quot; class=&quot;line&quot; id=&quot;l2234&quot;&gt;   2234&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1097&amp;quot; id=&amp;quot;h3-0-1097&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;
   2273 <a href="#l2254" class="line" id="l2254">   2254</a> &lt;a href=&quot;#l2235&quot; class=&quot;line&quot; id=&quot;l2235&quot;&gt;   2235&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1098&amp;quot; id=&amp;quot;h3-0-1098&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float b = 3.4175940 + ( 4.1616724 + y ) * y;
   2274 <a href="#l2255" class="line" id="l2255">   2255</a> &lt;a href=&quot;#l2236&quot; class=&quot;line&quot; id=&quot;l2236&quot;&gt;   2236&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1099&amp;quot; id=&amp;quot;h3-0-1099&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float v = a / b;
   2275 <a href="#l2256" class="line" id="l2256">   2256</a> &lt;a href=&quot;#l2237&quot; class=&quot;line&quot; id=&quot;l2237&quot;&gt;   2237&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1100&amp;quot; id=&amp;quot;h3-0-1100&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float theta_sintheta = ( x &amp;amp;gt; 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;
   2276 <a href="#l2257" class="line" id="l2257">   2257</a> &lt;a href=&quot;#l2238&quot; class=&quot;line&quot; id=&quot;l2238&quot;&gt;   2238&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1101&amp;quot; id=&amp;quot;h3-0-1101&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return cross( v1, v2 ) * theta_sintheta;
   2277 <a href="#l2258" class="line" id="l2258">   2258</a> &lt;a href=&quot;#l2239&quot; class=&quot;line&quot; id=&quot;l2239&quot;&gt;   2239&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1102&amp;quot; id=&amp;quot;h3-0-1102&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2278 <a href="#l2259" class="line" id="l2259">   2259</a> &lt;a href=&quot;#l2240&quot; class=&quot;line&quot; id=&quot;l2240&quot;&gt;   2240&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1103&amp;quot; id=&amp;quot;h3-0-1103&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {
   2279 <a href="#l2260" class="line" id="l2260">   2260</a> &lt;a href=&quot;#l2241&quot; class=&quot;line&quot; id=&quot;l2241&quot;&gt;   2241&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1104&amp;quot; id=&amp;quot;h3-0-1104&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];
   2280 <a href="#l2261" class="line" id="l2261">   2261</a> &lt;a href=&quot;#l2242&quot; class=&quot;line&quot; id=&quot;l2242&quot;&gt;   2242&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1105&amp;quot; id=&amp;quot;h3-0-1105&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];
   2281 <a href="#l2262" class="line" id="l2262">   2262</a> &lt;a href=&quot;#l2243&quot; class=&quot;line&quot; id=&quot;l2243&quot;&gt;   2243&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1106&amp;quot; id=&amp;quot;h3-0-1106&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 lightNormal = cross( v1, v2 );
   2282 <a href="#l2263" class="line" id="l2263">   2263</a> &lt;a href=&quot;#l2244&quot; class=&quot;line&quot; id=&quot;l2244&quot;&gt;   2244&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1107&amp;quot; id=&amp;quot;h3-0-1107&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if( dot( lightNormal, P - rectCoords[ 0 ] ) &amp;amp;lt; 0.0 ) return vec3( 0.0 );
   2283 <a href="#l2264" class="line" id="l2264">   2264</a> &lt;a href=&quot;#l2245&quot; class=&quot;line&quot; id=&quot;l2245&quot;&gt;   2245&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1108&amp;quot; id=&amp;quot;h3-0-1108&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 T1, T2;
   2284 <a href="#l2265" class="line" id="l2265">   2265</a> &lt;a href=&quot;#l2246&quot; class=&quot;line&quot; id=&quot;l2246&quot;&gt;   2246&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1109&amp;quot; id=&amp;quot;h3-0-1109&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	T1 = normalize( V - N * dot( V, N ) );
   2285 <a href="#l2266" class="line" id="l2266">   2266</a> &lt;a href=&quot;#l2247&quot; class=&quot;line&quot; id=&quot;l2247&quot;&gt;   2247&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1110&amp;quot; id=&amp;quot;h3-0-1110&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	T2 = - cross( N, T1 );
   2286 <a href="#l2267" class="line" id="l2267">   2267</a> &lt;a href=&quot;#l2248&quot; class=&quot;line&quot; id=&quot;l2248&quot;&gt;   2248&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1111&amp;quot; id=&amp;quot;h3-0-1111&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );
   2287 <a href="#l2268" class="line" id="l2268">   2268</a> &lt;a href=&quot;#l2249&quot; class=&quot;line&quot; id=&quot;l2249&quot;&gt;   2249&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1112&amp;quot; id=&amp;quot;h3-0-1112&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 coords[ 4 ];
   2288 <a href="#l2269" class="line" id="l2269">   2269</a> &lt;a href=&quot;#l2250&quot; class=&quot;line&quot; id=&quot;l2250&quot;&gt;   2250&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1113&amp;quot; id=&amp;quot;h3-0-1113&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	coords[ 0 ] = mat * ( rectCoords[ 0 ] - P );
   2289 <a href="#l2270" class="line" id="l2270">   2270</a> &lt;a href=&quot;#l2251&quot; class=&quot;line&quot; id=&quot;l2251&quot;&gt;   2251&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1114&amp;quot; id=&amp;quot;h3-0-1114&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	coords[ 1 ] = mat * ( rectCoords[ 1 ] - P );
   2290 <a href="#l2271" class="line" id="l2271">   2271</a> &lt;a href=&quot;#l2252&quot; class=&quot;line&quot; id=&quot;l2252&quot;&gt;   2252&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1115&amp;quot; id=&amp;quot;h3-0-1115&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	coords[ 2 ] = mat * ( rectCoords[ 2 ] - P );
   2291 <a href="#l2272" class="line" id="l2272">   2272</a> &lt;a href=&quot;#l2253&quot; class=&quot;line&quot; id=&quot;l2253&quot;&gt;   2253&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1116&amp;quot; id=&amp;quot;h3-0-1116&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	coords[ 3 ] = mat * ( rectCoords[ 3 ] - P );
   2292 <a href="#l2273" class="line" id="l2273">   2273</a> &lt;a href=&quot;#l2254&quot; class=&quot;line&quot; id=&quot;l2254&quot;&gt;   2254&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1117&amp;quot; id=&amp;quot;h3-0-1117&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	coords[ 0 ] = normalize( coords[ 0 ] );
   2293 <a href="#l2274" class="line" id="l2274">   2274</a> &lt;a href=&quot;#l2255&quot; class=&quot;line&quot; id=&quot;l2255&quot;&gt;   2255&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1118&amp;quot; id=&amp;quot;h3-0-1118&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	coords[ 1 ] = normalize( coords[ 1 ] );
   2294 <a href="#l2275" class="line" id="l2275">   2275</a> &lt;a href=&quot;#l2256&quot; class=&quot;line&quot; id=&quot;l2256&quot;&gt;   2256&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1119&amp;quot; id=&amp;quot;h3-0-1119&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	coords[ 2 ] = normalize( coords[ 2 ] );
   2295 <a href="#l2276" class="line" id="l2276">   2276</a> &lt;a href=&quot;#l2257&quot; class=&quot;line&quot; id=&quot;l2257&quot;&gt;   2257&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1120&amp;quot; id=&amp;quot;h3-0-1120&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	coords[ 3 ] = normalize( coords[ 3 ] );
   2296 <a href="#l2277" class="line" id="l2277">   2277</a> &lt;a href=&quot;#l2258&quot; class=&quot;line&quot; id=&quot;l2258&quot;&gt;   2258&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1121&amp;quot; id=&amp;quot;h3-0-1121&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 vectorFormFactor = vec3( 0.0 );
   2297 <a href="#l2278" class="line" id="l2278">   2278</a> &lt;a href=&quot;#l2259&quot; class=&quot;line&quot; id=&quot;l2259&quot;&gt;   2259&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1122&amp;quot; id=&amp;quot;h3-0-1122&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );
   2298 <a href="#l2279" class="line" id="l2279">   2279</a> &lt;a href=&quot;#l2260&quot; class=&quot;line&quot; id=&quot;l2260&quot;&gt;   2260&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1123&amp;quot; id=&amp;quot;h3-0-1123&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );
   2299 <a href="#l2280" class="line" id="l2280">   2280</a> &lt;a href=&quot;#l2261&quot; class=&quot;line&quot; id=&quot;l2261&quot;&gt;   2261&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1124&amp;quot; id=&amp;quot;h3-0-1124&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );
   2300 <a href="#l2281" class="line" id="l2281">   2281</a> &lt;a href=&quot;#l2262&quot; class=&quot;line&quot; id=&quot;l2262&quot;&gt;   2262&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1125&amp;quot; id=&amp;quot;h3-0-1125&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );
   2301 <a href="#l2282" class="line" id="l2282">   2282</a> &lt;a href=&quot;#l2263&quot; class=&quot;line&quot; id=&quot;l2263&quot;&gt;   2263&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1126&amp;quot; id=&amp;quot;h3-0-1126&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float result = LTC_ClippedSphereFormFactor( vectorFormFactor );
   2302 <a href="#l2283" class="line" id="l2283">   2283</a> &lt;a href=&quot;#l2264&quot; class=&quot;line&quot; id=&quot;l2264&quot;&gt;   2264&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1127&amp;quot; id=&amp;quot;h3-0-1127&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec3( result );
   2303 <a href="#l2284" class="line" id="l2284">   2284</a> &lt;a href=&quot;#l2265&quot; class=&quot;line&quot; id=&quot;l2265&quot;&gt;   2265&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1128&amp;quot; id=&amp;quot;h3-0-1128&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2304 <a href="#l2285" class="line" id="l2285">   2285</a> &lt;a href=&quot;#l2266&quot; class=&quot;line&quot; id=&quot;l2266&quot;&gt;   2266&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1129&amp;quot; id=&amp;quot;h3-0-1129&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( USE_SHEEN )
   2305 <a href="#l2286" class="line" id="l2286">   2286</a> &lt;a href=&quot;#l2267&quot; class=&quot;line&quot; id=&quot;l2267&quot;&gt;   2267&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1130&amp;quot; id=&amp;quot;h3-0-1130&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float D_Charlie( float roughness, float dotNH ) {
   2306 <a href="#l2287" class="line" id="l2287">   2287</a> &lt;a href=&quot;#l2268&quot; class=&quot;line&quot; id=&quot;l2268&quot;&gt;   2268&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1131&amp;quot; id=&amp;quot;h3-0-1131&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float alpha = pow2( roughness );
   2307 <a href="#l2288" class="line" id="l2288">   2288</a> &lt;a href=&quot;#l2269&quot; class=&quot;line&quot; id=&quot;l2269&quot;&gt;   2269&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1132&amp;quot; id=&amp;quot;h3-0-1132&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float invAlpha = 1.0 / alpha;
   2308 <a href="#l2289" class="line" id="l2289">   2289</a> &lt;a href=&quot;#l2270&quot; class=&quot;line&quot; id=&quot;l2270&quot;&gt;   2270&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1133&amp;quot; id=&amp;quot;h3-0-1133&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float cos2h = dotNH * dotNH;
   2309 <a href="#l2290" class="line" id="l2290">   2290</a> &lt;a href=&quot;#l2271&quot; class=&quot;line&quot; id=&quot;l2271&quot;&gt;   2271&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1134&amp;quot; id=&amp;quot;h3-0-1134&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float sin2h = max( 1.0 - cos2h, 0.0078125 );
   2310 <a href="#l2291" class="line" id="l2291">   2291</a> &lt;a href=&quot;#l2272&quot; class=&quot;line&quot; id=&quot;l2272&quot;&gt;   2272&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1135&amp;quot; id=&amp;quot;h3-0-1135&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return ( 2.0 + invAlpha ) * pow( sin2h, invAlpha * 0.5 ) / ( 2.0 * PI );
   2311 <a href="#l2292" class="line" id="l2292">   2292</a> &lt;a href=&quot;#l2273&quot; class=&quot;line&quot; id=&quot;l2273&quot;&gt;   2273&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1136&amp;quot; id=&amp;quot;h3-0-1136&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2312 <a href="#l2293" class="line" id="l2293">   2293</a> &lt;a href=&quot;#l2274&quot; class=&quot;line&quot; id=&quot;l2274&quot;&gt;   2274&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1137&amp;quot; id=&amp;quot;h3-0-1137&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float V_Neubelt( float dotNV, float dotNL ) {
   2313 <a href="#l2294" class="line" id="l2294">   2294</a> &lt;a href=&quot;#l2275&quot; class=&quot;line&quot; id=&quot;l2275&quot;&gt;   2275&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1138&amp;quot; id=&amp;quot;h3-0-1138&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return saturate( 1.0 / ( 4.0 * ( dotNL + dotNV - dotNL * dotNV ) ) );
   2314 <a href="#l2295" class="line" id="l2295">   2295</a> &lt;a href=&quot;#l2276&quot; class=&quot;line&quot; id=&quot;l2276&quot;&gt;   2276&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1139&amp;quot; id=&amp;quot;h3-0-1139&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2315 <a href="#l2296" class="line" id="l2296">   2296</a> &lt;a href=&quot;#l2277&quot; class=&quot;line&quot; id=&quot;l2277&quot;&gt;   2277&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1140&amp;quot; id=&amp;quot;h3-0-1140&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 BRDF_Sheen( const in vec3 lightDir, const in vec3 viewDir, const in vec3 normal, vec3 sheenColor, const in float sheenRoughness ) {
   2316 <a href="#l2297" class="line" id="l2297">   2297</a> &lt;a href=&quot;#l2278&quot; class=&quot;line&quot; id=&quot;l2278&quot;&gt;   2278&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1141&amp;quot; id=&amp;quot;h3-0-1141&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 halfDir = normalize( lightDir + viewDir );
   2317 <a href="#l2298" class="line" id="l2298">   2298</a> &lt;a href=&quot;#l2279&quot; class=&quot;line&quot; id=&quot;l2279&quot;&gt;   2279&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1142&amp;quot; id=&amp;quot;h3-0-1142&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNL = saturate( dot( normal, lightDir ) );
   2318 <a href="#l2299" class="line" id="l2299">   2299</a> &lt;a href=&quot;#l2280&quot; class=&quot;line&quot; id=&quot;l2280&quot;&gt;   2280&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1143&amp;quot; id=&amp;quot;h3-0-1143&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNV = saturate( dot( normal, viewDir ) );
   2319 <a href="#l2300" class="line" id="l2300">   2300</a> &lt;a href=&quot;#l2281&quot; class=&quot;line&quot; id=&quot;l2281&quot;&gt;   2281&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1144&amp;quot; id=&amp;quot;h3-0-1144&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNH = saturate( dot( normal, halfDir ) );
   2320 <a href="#l2301" class="line" id="l2301">   2301</a> &lt;a href=&quot;#l2282&quot; class=&quot;line&quot; id=&quot;l2282&quot;&gt;   2282&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1145&amp;quot; id=&amp;quot;h3-0-1145&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float D = D_Charlie( sheenRoughness, dotNH );
   2321 <a href="#l2302" class="line" id="l2302">   2302</a> &lt;a href=&quot;#l2283&quot; class=&quot;line&quot; id=&quot;l2283&quot;&gt;   2283&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1146&amp;quot; id=&amp;quot;h3-0-1146&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float V = V_Neubelt( dotNV, dotNL );
   2322 <a href="#l2303" class="line" id="l2303">   2303</a> &lt;a href=&quot;#l2284&quot; class=&quot;line&quot; id=&quot;l2284&quot;&gt;   2284&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1147&amp;quot; id=&amp;quot;h3-0-1147&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return sheenColor * ( D * V );
   2323 <a href="#l2304" class="line" id="l2304">   2304</a> &lt;a href=&quot;#l2285&quot; class=&quot;line&quot; id=&quot;l2285&quot;&gt;   2285&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1148&amp;quot; id=&amp;quot;h3-0-1148&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2324 <a href="#l2305" class="line" id="l2305">   2305</a> &lt;a href=&quot;#l2286&quot; class=&quot;line&quot; id=&quot;l2286&quot;&gt;   2286&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1149&amp;quot; id=&amp;quot;h3-0-1149&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2325 <a href="#l2306" class="line" id="l2306">   2306</a> &lt;a href=&quot;#l2287&quot; class=&quot;line&quot; id=&quot;l2287&quot;&gt;   2287&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1150&amp;quot; id=&amp;quot;h3-0-1150&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float IBLSheenBRDF( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
   2326 <a href="#l2307" class="line" id="l2307">   2307</a> &lt;a href=&quot;#l2288&quot; class=&quot;line&quot; id=&quot;l2288&quot;&gt;   2288&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1151&amp;quot; id=&amp;quot;h3-0-1151&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNV = saturate( dot( normal, viewDir ) );
   2327 <a href="#l2308" class="line" id="l2308">   2308</a> &lt;a href=&quot;#l2289&quot; class=&quot;line&quot; id=&quot;l2289&quot;&gt;   2289&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1152&amp;quot; id=&amp;quot;h3-0-1152&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float r2 = roughness * roughness;
   2328 <a href="#l2309" class="line" id="l2309">   2309</a> &lt;a href=&quot;#l2290&quot; class=&quot;line&quot; id=&quot;l2290&quot;&gt;   2290&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1153&amp;quot; id=&amp;quot;h3-0-1153&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float a = roughness &amp;amp;lt; 0.25 ? -339.2 * r2 + 161.4 * roughness - 25.9 : -8.48 * r2 + 14.3 * roughness - 9.95;
   2329 <a href="#l2310" class="line" id="l2310">   2310</a> &lt;a href=&quot;#l2291&quot; class=&quot;line&quot; id=&quot;l2291&quot;&gt;   2291&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1154&amp;quot; id=&amp;quot;h3-0-1154&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float b = roughness &amp;amp;lt; 0.25 ? 44.0 * r2 - 23.7 * roughness + 3.26 : 1.97 * r2 - 3.27 * roughness + 0.72;
   2330 <a href="#l2311" class="line" id="l2311">   2311</a> &lt;a href=&quot;#l2292&quot; class=&quot;line&quot; id=&quot;l2292&quot;&gt;   2292&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1155&amp;quot; id=&amp;quot;h3-0-1155&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float DG = exp( a * dotNV + b ) + ( roughness &amp;amp;lt; 0.25 ? 0.0 : 0.1 * ( roughness - 0.25 ) );
   2331 <a href="#l2312" class="line" id="l2312">   2312</a> &lt;a href=&quot;#l2293&quot; class=&quot;line&quot; id=&quot;l2293&quot;&gt;   2293&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1156&amp;quot; id=&amp;quot;h3-0-1156&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return saturate( DG * RECIPROCAL_PI );
   2332 <a href="#l2313" class="line" id="l2313">   2313</a> &lt;a href=&quot;#l2294&quot; class=&quot;line&quot; id=&quot;l2294&quot;&gt;   2294&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1157&amp;quot; id=&amp;quot;h3-0-1157&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2333 <a href="#l2314" class="line" id="l2314">   2314</a> &lt;a href=&quot;#l2295&quot; class=&quot;line&quot; id=&quot;l2295&quot;&gt;   2295&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1158&amp;quot; id=&amp;quot;h3-0-1158&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 DFGApprox( const in vec3 normal, const in vec3 viewDir, const in float roughness ) {
   2334 <a href="#l2315" class="line" id="l2315">   2315</a> &lt;a href=&quot;#l2296&quot; class=&quot;line&quot; id=&quot;l2296&quot;&gt;   2296&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1159&amp;quot; id=&amp;quot;h3-0-1159&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNV = saturate( dot( normal, viewDir ) );
   2335 <a href="#l2316" class="line" id="l2316">   2316</a> &lt;a href=&quot;#l2297&quot; class=&quot;line&quot; id=&quot;l2297&quot;&gt;   2297&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1160&amp;quot; id=&amp;quot;h3-0-1160&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );
   2336 <a href="#l2317" class="line" id="l2317">   2317</a> &lt;a href=&quot;#l2298&quot; class=&quot;line&quot; id=&quot;l2298&quot;&gt;   2298&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1161&amp;quot; id=&amp;quot;h3-0-1161&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );
   2337 <a href="#l2318" class="line" id="l2318">   2318</a> &lt;a href=&quot;#l2299&quot; class=&quot;line&quot; id=&quot;l2299&quot;&gt;   2299&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1162&amp;quot; id=&amp;quot;h3-0-1162&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 r = roughness * c0 + c1;
   2338 <a href="#l2319" class="line" id="l2319">   2319</a> &lt;a href=&quot;#l2300&quot; class=&quot;line&quot; id=&quot;l2300&quot;&gt;   2300&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1163&amp;quot; id=&amp;quot;h3-0-1163&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;
   2339 <a href="#l2320" class="line" id="l2320">   2320</a> &lt;a href=&quot;#l2301&quot; class=&quot;line&quot; id=&quot;l2301&quot;&gt;   2301&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1164&amp;quot; id=&amp;quot;h3-0-1164&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 fab = vec2( - 1.04, 1.04 ) * a004 + r.zw;
   2340 <a href="#l2321" class="line" id="l2321">   2321</a> &lt;a href=&quot;#l2302&quot; class=&quot;line&quot; id=&quot;l2302&quot;&gt;   2302&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1165&amp;quot; id=&amp;quot;h3-0-1165&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return fab;
   2341 <a href="#l2322" class="line" id="l2322">   2322</a> &lt;a href=&quot;#l2303&quot; class=&quot;line&quot; id=&quot;l2303&quot;&gt;   2303&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1166&amp;quot; id=&amp;quot;h3-0-1166&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2342 <a href="#l2323" class="line" id="l2323">   2323</a> &lt;a href=&quot;#l2304&quot; class=&quot;line&quot; id=&quot;l2304&quot;&gt;   2304&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1167&amp;quot; id=&amp;quot;h3-0-1167&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 EnvironmentBRDF( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness ) {
   2343 <a href="#l2324" class="line" id="l2324">   2324</a> &lt;a href=&quot;#l2305&quot; class=&quot;line&quot; id=&quot;l2305&quot;&gt;   2305&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1168&amp;quot; id=&amp;quot;h3-0-1168&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 fab = DFGApprox( normal, viewDir, roughness );
   2344 <a href="#l2325" class="line" id="l2325">   2325</a> &lt;a href=&quot;#l2306&quot; class=&quot;line&quot; id=&quot;l2306&quot;&gt;   2306&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1169&amp;quot; id=&amp;quot;h3-0-1169&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return specularColor * fab.x + specularF90 * fab.y;
   2345 <a href="#l2326" class="line" id="l2326">   2326</a> &lt;a href=&quot;#l2307&quot; class=&quot;line&quot; id=&quot;l2307&quot;&gt;   2307&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1170&amp;quot; id=&amp;quot;h3-0-1170&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2346 <a href="#l2327" class="line" id="l2327">   2327</a> &lt;a href=&quot;#l2308&quot; class=&quot;line&quot; id=&quot;l2308&quot;&gt;   2308&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1171&amp;quot; id=&amp;quot;h3-0-1171&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCE
   2347 <a href="#l2328" class="line" id="l2328">   2328</a> &lt;a href=&quot;#l2309&quot; class=&quot;line&quot; id=&quot;l2309&quot;&gt;   2309&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1172&amp;quot; id=&amp;quot;h3-0-1172&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void computeMultiscatteringIridescence( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float iridescence, const in vec3 iridescenceF0, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
   2348 <a href="#l2329" class="line" id="l2329">   2329</a> &lt;a href=&quot;#l2310&quot; class=&quot;line&quot; id=&quot;l2310&quot;&gt;   2310&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1173&amp;quot; id=&amp;quot;h3-0-1173&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   2349 <a href="#l2330" class="line" id="l2330">   2330</a> &lt;a href=&quot;#l2311&quot; class=&quot;line&quot; id=&quot;l2311&quot;&gt;   2311&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1174&amp;quot; id=&amp;quot;h3-0-1174&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void computeMultiscattering( const in vec3 normal, const in vec3 viewDir, const in vec3 specularColor, const in float specularF90, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {
   2350 <a href="#l2331" class="line" id="l2331">   2331</a> &lt;a href=&quot;#l2312&quot; class=&quot;line&quot; id=&quot;l2312&quot;&gt;   2312&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1175&amp;quot; id=&amp;quot;h3-0-1175&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2351 <a href="#l2332" class="line" id="l2332">   2332</a> &lt;a href=&quot;#l2313&quot; class=&quot;line&quot; id=&quot;l2313&quot;&gt;   2313&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1176&amp;quot; id=&amp;quot;h3-0-1176&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 fab = DFGApprox( normal, viewDir, roughness );
   2352 <a href="#l2333" class="line" id="l2333">   2333</a> &lt;a href=&quot;#l2314&quot; class=&quot;line&quot; id=&quot;l2314&quot;&gt;   2314&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1177&amp;quot; id=&amp;quot;h3-0-1177&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_IRIDESCENCE
   2353 <a href="#l2334" class="line" id="l2334">   2334</a> &lt;a href=&quot;#l2315&quot; class=&quot;line&quot; id=&quot;l2315&quot;&gt;   2315&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1178&amp;quot; id=&amp;quot;h3-0-1178&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 Fr = mix( specularColor, iridescenceF0, iridescence );
   2354 <a href="#l2335" class="line" id="l2335">   2335</a> &lt;a href=&quot;#l2316&quot; class=&quot;line&quot; id=&quot;l2316&quot;&gt;   2316&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1179&amp;quot; id=&amp;quot;h3-0-1179&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2355 <a href="#l2336" class="line" id="l2336">   2336</a> &lt;a href=&quot;#l2317&quot; class=&quot;line&quot; id=&quot;l2317&quot;&gt;   2317&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1180&amp;quot; id=&amp;quot;h3-0-1180&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 Fr = specularColor;
   2356 <a href="#l2337" class="line" id="l2337">   2337</a> &lt;a href=&quot;#l2318&quot; class=&quot;line&quot; id=&quot;l2318&quot;&gt;   2318&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1181&amp;quot; id=&amp;quot;h3-0-1181&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2357 <a href="#l2338" class="line" id="l2338">   2338</a> &lt;a href=&quot;#l2319&quot; class=&quot;line&quot; id=&quot;l2319&quot;&gt;   2319&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1182&amp;quot; id=&amp;quot;h3-0-1182&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 FssEss = Fr * fab.x + specularF90 * fab.y;
   2358 <a href="#l2339" class="line" id="l2339">   2339</a> &lt;a href=&quot;#l2320&quot; class=&quot;line&quot; id=&quot;l2320&quot;&gt;   2320&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1183&amp;quot; id=&amp;quot;h3-0-1183&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float Ess = fab.x + fab.y;
   2359 <a href="#l2340" class="line" id="l2340">   2340</a> &lt;a href=&quot;#l2321&quot; class=&quot;line&quot; id=&quot;l2321&quot;&gt;   2321&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1184&amp;quot; id=&amp;quot;h3-0-1184&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float Ems = 1.0 - Ess;
   2360 <a href="#l2341" class="line" id="l2341">   2341</a> &lt;a href=&quot;#l2322&quot; class=&quot;line&quot; id=&quot;l2322&quot;&gt;   2322&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1185&amp;quot; id=&amp;quot;h3-0-1185&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 Favg = Fr + ( 1.0 - Fr ) * 0.047619;	vec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );
   2361 <a href="#l2342" class="line" id="l2342">   2342</a> &lt;a href=&quot;#l2323&quot; class=&quot;line&quot; id=&quot;l2323&quot;&gt;   2323&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1186&amp;quot; id=&amp;quot;h3-0-1186&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	singleScatter += FssEss;
   2362 <a href="#l2343" class="line" id="l2343">   2343</a> &lt;a href=&quot;#l2324&quot; class=&quot;line&quot; id=&quot;l2324&quot;&gt;   2324&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1187&amp;quot; id=&amp;quot;h3-0-1187&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	multiScatter += Fms * Ems;
   2363 <a href="#l2344" class="line" id="l2344">   2344</a> &lt;a href=&quot;#l2325&quot; class=&quot;line&quot; id=&quot;l2325&quot;&gt;   2325&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1188&amp;quot; id=&amp;quot;h3-0-1188&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2364 <a href="#l2345" class="line" id="l2345">   2345</a> &lt;a href=&quot;#l2326&quot; class=&quot;line&quot; id=&quot;l2326&quot;&gt;   2326&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1189&amp;quot; id=&amp;quot;h3-0-1189&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if NUM_RECT_AREA_LIGHTS &amp;amp;gt; 0
   2365 <a href="#l2346" class="line" id="l2346">   2346</a> &lt;a href=&quot;#l2327&quot; class=&quot;line&quot; id=&quot;l2327&quot;&gt;   2327&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1190&amp;quot; id=&amp;quot;h3-0-1190&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	void RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
   2366 <a href="#l2347" class="line" id="l2347">   2347</a> &lt;a href=&quot;#l2328&quot; class=&quot;line&quot; id=&quot;l2328&quot;&gt;   2328&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1191&amp;quot; id=&amp;quot;h3-0-1191&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 normal = geometryNormal;
   2367 <a href="#l2348" class="line" id="l2348">   2348</a> &lt;a href=&quot;#l2329&quot; class=&quot;line&quot; id=&quot;l2329&quot;&gt;   2329&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1192&amp;quot; id=&amp;quot;h3-0-1192&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 viewDir = geometryViewDir;
   2368 <a href="#l2349" class="line" id="l2349">   2349</a> &lt;a href=&quot;#l2330&quot; class=&quot;line&quot; id=&quot;l2330&quot;&gt;   2330&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1193&amp;quot; id=&amp;quot;h3-0-1193&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 position = geometryPosition;
   2369 <a href="#l2350" class="line" id="l2350">   2350</a> &lt;a href=&quot;#l2331&quot; class=&quot;line&quot; id=&quot;l2331&quot;&gt;   2331&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1194&amp;quot; id=&amp;quot;h3-0-1194&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 lightPos = rectAreaLight.position;
   2370 <a href="#l2351" class="line" id="l2351">   2351</a> &lt;a href=&quot;#l2332&quot; class=&quot;line&quot; id=&quot;l2332&quot;&gt;   2332&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1195&amp;quot; id=&amp;quot;h3-0-1195&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 halfWidth = rectAreaLight.halfWidth;
   2371 <a href="#l2352" class="line" id="l2352">   2352</a> &lt;a href=&quot;#l2333&quot; class=&quot;line&quot; id=&quot;l2333&quot;&gt;   2333&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1196&amp;quot; id=&amp;quot;h3-0-1196&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 halfHeight = rectAreaLight.halfHeight;
   2372 <a href="#l2353" class="line" id="l2353">   2353</a> &lt;a href=&quot;#l2334&quot; class=&quot;line&quot; id=&quot;l2334&quot;&gt;   2334&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1197&amp;quot; id=&amp;quot;h3-0-1197&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 lightColor = rectAreaLight.color;
   2373 <a href="#l2354" class="line" id="l2354">   2354</a> &lt;a href=&quot;#l2335&quot; class=&quot;line&quot; id=&quot;l2335&quot;&gt;   2335&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1198&amp;quot; id=&amp;quot;h3-0-1198&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float roughness = material.roughness;
   2374 <a href="#l2355" class="line" id="l2355">   2355</a> &lt;a href=&quot;#l2336&quot; class=&quot;line&quot; id=&quot;l2336&quot;&gt;   2336&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1199&amp;quot; id=&amp;quot;h3-0-1199&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 rectCoords[ 4 ];
   2375 <a href="#l2356" class="line" id="l2356">   2356</a> &lt;a href=&quot;#l2337&quot; class=&quot;line&quot; id=&quot;l2337&quot;&gt;   2337&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1200&amp;quot; id=&amp;quot;h3-0-1200&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		rectCoords[ 0 ] = lightPos + halfWidth - halfHeight;		rectCoords[ 1 ] = lightPos - halfWidth - halfHeight;
   2376 <a href="#l2357" class="line" id="l2357">   2357</a> &lt;a href=&quot;#l2338&quot; class=&quot;line&quot; id=&quot;l2338&quot;&gt;   2338&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1201&amp;quot; id=&amp;quot;h3-0-1201&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		rectCoords[ 2 ] = lightPos - halfWidth + halfHeight;
   2377 <a href="#l2358" class="line" id="l2358">   2358</a> &lt;a href=&quot;#l2339&quot; class=&quot;line&quot; id=&quot;l2339&quot;&gt;   2339&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1202&amp;quot; id=&amp;quot;h3-0-1202&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		rectCoords[ 3 ] = lightPos + halfWidth + halfHeight;
   2378 <a href="#l2359" class="line" id="l2359">   2359</a> &lt;a href=&quot;#l2340&quot; class=&quot;line&quot; id=&quot;l2340&quot;&gt;   2340&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1203&amp;quot; id=&amp;quot;h3-0-1203&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 uv = LTC_Uv( normal, viewDir, roughness );
   2379 <a href="#l2360" class="line" id="l2360">   2360</a> &lt;a href=&quot;#l2341&quot; class=&quot;line&quot; id=&quot;l2341&quot;&gt;   2341&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1204&amp;quot; id=&amp;quot;h3-0-1204&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 t1 = texture2D( ltc_1, uv );
   2380 <a href="#l2361" class="line" id="l2361">   2361</a> &lt;a href=&quot;#l2342&quot; class=&quot;line&quot; id=&quot;l2342&quot;&gt;   2342&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1205&amp;quot; id=&amp;quot;h3-0-1205&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 t2 = texture2D( ltc_2, uv );
   2381 <a href="#l2362" class="line" id="l2362">   2362</a> &lt;a href=&quot;#l2343&quot; class=&quot;line&quot; id=&quot;l2343&quot;&gt;   2343&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1206&amp;quot; id=&amp;quot;h3-0-1206&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		mat3 mInv = mat3(
   2382 <a href="#l2363" class="line" id="l2363">   2363</a> &lt;a href=&quot;#l2344&quot; class=&quot;line&quot; id=&quot;l2344&quot;&gt;   2344&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1207&amp;quot; id=&amp;quot;h3-0-1207&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3( t1.x, 0, t1.y ),
   2383 <a href="#l2364" class="line" id="l2364">   2364</a> &lt;a href=&quot;#l2345&quot; class=&quot;line&quot; id=&quot;l2345&quot;&gt;   2345&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1208&amp;quot; id=&amp;quot;h3-0-1208&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3(    0, 1,    0 ),
   2384 <a href="#l2365" class="line" id="l2365">   2365</a> &lt;a href=&quot;#l2346&quot; class=&quot;line&quot; id=&quot;l2346&quot;&gt;   2346&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1209&amp;quot; id=&amp;quot;h3-0-1209&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3( t1.z, 0, t1.w )
   2385 <a href="#l2366" class="line" id="l2366">   2366</a> &lt;a href=&quot;#l2347&quot; class=&quot;line&quot; id=&quot;l2347&quot;&gt;   2347&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1210&amp;quot; id=&amp;quot;h3-0-1210&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		);
   2386 <a href="#l2367" class="line" id="l2367">   2367</a> &lt;a href=&quot;#l2348&quot; class=&quot;line&quot; id=&quot;l2348&quot;&gt;   2348&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1211&amp;quot; id=&amp;quot;h3-0-1211&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );
   2387 <a href="#l2368" class="line" id="l2368">   2368</a> &lt;a href=&quot;#l2349&quot; class=&quot;line&quot; id=&quot;l2349&quot;&gt;   2349&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1212&amp;quot; id=&amp;quot;h3-0-1212&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		reflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );
   2388 <a href="#l2369" class="line" id="l2369">   2369</a> &lt;a href=&quot;#l2350&quot; class=&quot;line&quot; id=&quot;l2350&quot;&gt;   2350&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1213&amp;quot; id=&amp;quot;h3-0-1213&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		reflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );
   2389 <a href="#l2370" class="line" id="l2370">   2370</a> &lt;a href=&quot;#l2351&quot; class=&quot;line&quot; id=&quot;l2351&quot;&gt;   2351&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1214&amp;quot; id=&amp;quot;h3-0-1214&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2390 <a href="#l2371" class="line" id="l2371">   2371</a> &lt;a href=&quot;#l2352&quot; class=&quot;line&quot; id=&quot;l2352&quot;&gt;   2352&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1215&amp;quot; id=&amp;quot;h3-0-1215&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2391 <a href="#l2372" class="line" id="l2372">   2372</a> &lt;a href=&quot;#l2353&quot; class=&quot;line&quot; id=&quot;l2353&quot;&gt;   2353&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1216&amp;quot; id=&amp;quot;h3-0-1216&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_Direct_Physical( const in IncidentLight directLight, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
   2392 <a href="#l2373" class="line" id="l2373">   2373</a> &lt;a href=&quot;#l2354&quot; class=&quot;line&quot; id=&quot;l2354&quot;&gt;   2354&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1217&amp;quot; id=&amp;quot;h3-0-1217&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNL = saturate( dot( geometryNormal, directLight.direction ) );
   2393 <a href="#l2374" class="line" id="l2374">   2374</a> &lt;a href=&quot;#l2355&quot; class=&quot;line&quot; id=&quot;l2355&quot;&gt;   2355&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1218&amp;quot; id=&amp;quot;h3-0-1218&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 irradiance = dotNL * directLight.color;
   2394 <a href="#l2375" class="line" id="l2375">   2375</a> &lt;a href=&quot;#l2356&quot; class=&quot;line&quot; id=&quot;l2356&quot;&gt;   2356&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1219&amp;quot; id=&amp;quot;h3-0-1219&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_CLEARCOAT
   2395 <a href="#l2376" class="line" id="l2376">   2376</a> &lt;a href=&quot;#l2357&quot; class=&quot;line&quot; id=&quot;l2357&quot;&gt;   2357&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1220&amp;quot; id=&amp;quot;h3-0-1220&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotNLcc = saturate( dot( geometryClearcoatNormal, directLight.direction ) );
   2396 <a href="#l2377" class="line" id="l2377">   2377</a> &lt;a href=&quot;#l2358&quot; class=&quot;line&quot; id=&quot;l2358&quot;&gt;   2358&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1221&amp;quot; id=&amp;quot;h3-0-1221&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 ccIrradiance = dotNLcc * directLight.color;
   2397 <a href="#l2378" class="line" id="l2378">   2378</a> &lt;a href=&quot;#l2359&quot; class=&quot;line&quot; id=&quot;l2359&quot;&gt;   2359&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1222&amp;quot; id=&amp;quot;h3-0-1222&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		clearcoatSpecularDirect += ccIrradiance * BRDF_GGX_Clearcoat( directLight.direction, geometryViewDir, geometryClearcoatNormal, material );
   2398 <a href="#l2379" class="line" id="l2379">   2379</a> &lt;a href=&quot;#l2360&quot; class=&quot;line&quot; id=&quot;l2360&quot;&gt;   2360&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1223&amp;quot; id=&amp;quot;h3-0-1223&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2399 <a href="#l2380" class="line" id="l2380">   2380</a> &lt;a href=&quot;#l2361&quot; class=&quot;line&quot; id=&quot;l2361&quot;&gt;   2361&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1224&amp;quot; id=&amp;quot;h3-0-1224&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHEEN
   2400 <a href="#l2381" class="line" id="l2381">   2381</a> &lt;a href=&quot;#l2362&quot; class=&quot;line&quot; id=&quot;l2362&quot;&gt;   2362&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1225&amp;quot; id=&amp;quot;h3-0-1225&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		sheenSpecularDirect += irradiance * BRDF_Sheen( directLight.direction, geometryViewDir, geometryNormal, material.sheenColor, material.sheenRoughness );
   2401 <a href="#l2382" class="line" id="l2382">   2382</a> &lt;a href=&quot;#l2363&quot; class=&quot;line&quot; id=&quot;l2363&quot;&gt;   2363&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1226&amp;quot; id=&amp;quot;h3-0-1226&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2402 <a href="#l2383" class="line" id="l2383">   2383</a> &lt;a href=&quot;#l2364&quot; class=&quot;line&quot; id=&quot;l2364&quot;&gt;   2364&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1227&amp;quot; id=&amp;quot;h3-0-1227&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.directSpecular += irradiance * BRDF_GGX( directLight.direction, geometryViewDir, geometryNormal, material );
   2403 <a href="#l2384" class="line" id="l2384">   2384</a> &lt;a href=&quot;#l2365&quot; class=&quot;line&quot; id=&quot;l2365&quot;&gt;   2365&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1228&amp;quot; id=&amp;quot;h3-0-1228&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.directDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
   2404 <a href="#l2385" class="line" id="l2385">   2385</a> &lt;a href=&quot;#l2366&quot; class=&quot;line&quot; id=&quot;l2366&quot;&gt;   2366&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1229&amp;quot; id=&amp;quot;h3-0-1229&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2405 <a href="#l2386" class="line" id="l2386">   2386</a> &lt;a href=&quot;#l2367&quot; class=&quot;line&quot; id=&quot;l2367&quot;&gt;   2367&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1230&amp;quot; id=&amp;quot;h3-0-1230&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {
   2406 <a href="#l2387" class="line" id="l2387">   2387</a> &lt;a href=&quot;#l2368&quot; class=&quot;line&quot; id=&quot;l2368&quot;&gt;   2368&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1231&amp;quot; id=&amp;quot;h3-0-1231&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectDiffuse += irradiance * BRDF_Lambert( material.diffuseColor );
   2407 <a href="#l2388" class="line" id="l2388">   2388</a> &lt;a href=&quot;#l2369&quot; class=&quot;line&quot; id=&quot;l2369&quot;&gt;   2369&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1232&amp;quot; id=&amp;quot;h3-0-1232&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2408 <a href="#l2389" class="line" id="l2389">   2389</a> &lt;a href=&quot;#l2370&quot; class=&quot;line&quot; id=&quot;l2370&quot;&gt;   2370&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1233&amp;quot; id=&amp;quot;h3-0-1233&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in vec3 geometryPosition, const in vec3 geometryNormal, const in vec3 geometryViewDir, const in vec3 geometryClearcoatNormal, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {
   2409 <a href="#l2390" class="line" id="l2390">   2390</a> &lt;a href=&quot;#l2371&quot; class=&quot;line&quot; id=&quot;l2371&quot;&gt;   2371&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1234&amp;quot; id=&amp;quot;h3-0-1234&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_CLEARCOAT
   2410 <a href="#l2391" class="line" id="l2391">   2391</a> &lt;a href=&quot;#l2372&quot; class=&quot;line&quot; id=&quot;l2372&quot;&gt;   2372&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1235&amp;quot; id=&amp;quot;h3-0-1235&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		clearcoatSpecularIndirect += clearcoatRadiance * EnvironmentBRDF( geometryClearcoatNormal, geometryViewDir, material.clearcoatF0, material.clearcoatF90, material.clearcoatRoughness );
   2411 <a href="#l2392" class="line" id="l2392">   2392</a> &lt;a href=&quot;#l2373&quot; class=&quot;line&quot; id=&quot;l2373&quot;&gt;   2373&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1236&amp;quot; id=&amp;quot;h3-0-1236&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2412 <a href="#l2393" class="line" id="l2393">   2393</a> &lt;a href=&quot;#l2374&quot; class=&quot;line&quot; id=&quot;l2374&quot;&gt;   2374&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1237&amp;quot; id=&amp;quot;h3-0-1237&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHEEN
   2413 <a href="#l2394" class="line" id="l2394">   2394</a> &lt;a href=&quot;#l2375&quot; class=&quot;line&quot; id=&quot;l2375&quot;&gt;   2375&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1238&amp;quot; id=&amp;quot;h3-0-1238&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		sheenSpecularIndirect += irradiance * material.sheenColor * IBLSheenBRDF( geometryNormal, geometryViewDir, material.sheenRoughness );
   2414 <a href="#l2395" class="line" id="l2395">   2395</a> &lt;a href=&quot;#l2376&quot; class=&quot;line&quot; id=&quot;l2376&quot;&gt;   2376&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1239&amp;quot; id=&amp;quot;h3-0-1239&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2415 <a href="#l2396" class="line" id="l2396">   2396</a> &lt;a href=&quot;#l2377&quot; class=&quot;line&quot; id=&quot;l2377&quot;&gt;   2377&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1240&amp;quot; id=&amp;quot;h3-0-1240&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 singleScattering = vec3( 0.0 );
   2416 <a href="#l2397" class="line" id="l2397">   2397</a> &lt;a href=&quot;#l2378&quot; class=&quot;line&quot; id=&quot;l2378&quot;&gt;   2378&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1241&amp;quot; id=&amp;quot;h3-0-1241&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 multiScattering = vec3( 0.0 );
   2417 <a href="#l2398" class="line" id="l2398">   2398</a> &lt;a href=&quot;#l2379&quot; class=&quot;line&quot; id=&quot;l2379&quot;&gt;   2379&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1242&amp;quot; id=&amp;quot;h3-0-1242&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;
   2418 <a href="#l2399" class="line" id="l2399">   2399</a> &lt;a href=&quot;#l2380&quot; class=&quot;line&quot; id=&quot;l2380&quot;&gt;   2380&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1243&amp;quot; id=&amp;quot;h3-0-1243&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_IRIDESCENCE
   2419 <a href="#l2400" class="line" id="l2400">   2400</a> &lt;a href=&quot;#l2381&quot; class=&quot;line&quot; id=&quot;l2381&quot;&gt;   2381&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1244&amp;quot; id=&amp;quot;h3-0-1244&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		computeMultiscatteringIridescence( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.iridescence, material.iridescenceFresnel, material.roughness, singleScattering, multiScattering );
   2420 <a href="#l2401" class="line" id="l2401">   2401</a> &lt;a href=&quot;#l2382&quot; class=&quot;line&quot; id=&quot;l2382&quot;&gt;   2382&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1245&amp;quot; id=&amp;quot;h3-0-1245&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2421 <a href="#l2402" class="line" id="l2402">   2402</a> &lt;a href=&quot;#l2383&quot; class=&quot;line&quot; id=&quot;l2383&quot;&gt;   2383&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1246&amp;quot; id=&amp;quot;h3-0-1246&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		computeMultiscattering( geometryNormal, geometryViewDir, material.specularColor, material.specularF90, material.roughness, singleScattering, multiScattering );
   2422 <a href="#l2403" class="line" id="l2403">   2403</a> &lt;a href=&quot;#l2384&quot; class=&quot;line&quot; id=&quot;l2384&quot;&gt;   2384&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1247&amp;quot; id=&amp;quot;h3-0-1247&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2423 <a href="#l2404" class="line" id="l2404">   2404</a> &lt;a href=&quot;#l2385&quot; class=&quot;line&quot; id=&quot;l2385&quot;&gt;   2385&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1248&amp;quot; id=&amp;quot;h3-0-1248&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 totalScattering = singleScattering + multiScattering;
   2424 <a href="#l2405" class="line" id="l2405">   2405</a> &lt;a href=&quot;#l2386&quot; class=&quot;line&quot; id=&quot;l2386&quot;&gt;   2386&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1249&amp;quot; id=&amp;quot;h3-0-1249&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 diffuse = material.diffuseColor * ( 1.0 - max( max( totalScattering.r, totalScattering.g ), totalScattering.b ) );
   2425 <a href="#l2406" class="line" id="l2406">   2406</a> &lt;a href=&quot;#l2387&quot; class=&quot;line&quot; id=&quot;l2387&quot;&gt;   2387&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1250&amp;quot; id=&amp;quot;h3-0-1250&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectSpecular += radiance * singleScattering;
   2426 <a href="#l2407" class="line" id="l2407">   2407</a> &lt;a href=&quot;#l2388&quot; class=&quot;line&quot; id=&quot;l2388&quot;&gt;   2388&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1251&amp;quot; id=&amp;quot;h3-0-1251&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;
   2427 <a href="#l2408" class="line" id="l2408">   2408</a> &lt;a href=&quot;#l2389&quot; class=&quot;line&quot; id=&quot;l2389&quot;&gt;   2389&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1252&amp;quot; id=&amp;quot;h3-0-1252&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;
   2428 <a href="#l2409" class="line" id="l2409">   2409</a> &lt;a href=&quot;#l2390&quot; class=&quot;line&quot; id=&quot;l2390&quot;&gt;   2390&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1253&amp;quot; id=&amp;quot;h3-0-1253&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2429 <a href="#l2410" class="line" id="l2410">   2410</a> &lt;a href=&quot;#l2391&quot; class=&quot;line&quot; id=&quot;l2391&quot;&gt;   2391&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1254&amp;quot; id=&amp;quot;h3-0-1254&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_Direct				RE_Direct_Physical
   2430 <a href="#l2411" class="line" id="l2411">   2411</a> &lt;a href=&quot;#l2392&quot; class=&quot;line&quot; id=&quot;l2392&quot;&gt;   2392&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1255&amp;quot; id=&amp;quot;h3-0-1255&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_Direct_RectArea		RE_Direct_RectArea_Physical
   2431 <a href="#l2412" class="line" id="l2412">   2412</a> &lt;a href=&quot;#l2393&quot; class=&quot;line&quot; id=&quot;l2393&quot;&gt;   2393&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1256&amp;quot; id=&amp;quot;h3-0-1256&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_IndirectDiffuse		RE_IndirectDiffuse_Physical
   2432 <a href="#l2413" class="line" id="l2413">   2413</a> &lt;a href=&quot;#l2394&quot; class=&quot;line&quot; id=&quot;l2394&quot;&gt;   2394&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1257&amp;quot; id=&amp;quot;h3-0-1257&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define RE_IndirectSpecular		RE_IndirectSpecular_Physical
   2433 <a href="#l2414" class="line" id="l2414">   2414</a> &lt;a href=&quot;#l2395&quot; class=&quot;line&quot; id=&quot;l2395&quot;&gt;   2395&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1258&amp;quot; id=&amp;quot;h3-0-1258&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {
   2434 <a href="#l2415" class="line" id="l2415">   2415</a> &lt;a href=&quot;#l2396&quot; class=&quot;line&quot; id=&quot;l2396&quot;&gt;   2396&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1259&amp;quot; id=&amp;quot;h3-0-1259&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );
   2435 <a href="#l2416" class="line" id="l2416">   2416</a> &lt;a href=&quot;#l2397&quot; class=&quot;line&quot; id=&quot;l2397&quot;&gt;   2397&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1260&amp;quot; id=&amp;quot;h3-0-1260&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,rV=`
   2436 <a href="#l2417" class="line" id="l2417">   2417</a> &lt;a href=&quot;#l2398&quot; class=&quot;line&quot; id=&quot;l2398&quot;&gt;   2398&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1261&amp;quot; id=&amp;quot;h3-0-1261&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 geometryPosition = - vViewPosition;
   2437 <a href="#l2418" class="line" id="l2418">   2418</a> &lt;a href=&quot;#l2399&quot; class=&quot;line&quot; id=&quot;l2399&quot;&gt;   2399&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1262&amp;quot; id=&amp;quot;h3-0-1262&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 geometryNormal = normal;
   2438 <a href="#l2419" class="line" id="l2419">   2419</a> &lt;a href=&quot;#l2400&quot; class=&quot;line&quot; id=&quot;l2400&quot;&gt;   2400&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1263&amp;quot; id=&amp;quot;h3-0-1263&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 geometryViewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );
   2439 <a href="#l2420" class="line" id="l2420">   2420</a> &lt;a href=&quot;#l2401&quot; class=&quot;line&quot; id=&quot;l2401&quot;&gt;   2401&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1264&amp;quot; id=&amp;quot;h3-0-1264&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 geometryClearcoatNormal = vec3( 0.0 );
   2440 <a href="#l2421" class="line" id="l2421">   2421</a> &lt;a href=&quot;#l2402&quot; class=&quot;line&quot; id=&quot;l2402&quot;&gt;   2402&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1265&amp;quot; id=&amp;quot;h3-0-1265&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT
   2441 <a href="#l2422" class="line" id="l2422">   2422</a> &lt;a href=&quot;#l2403&quot; class=&quot;line&quot; id=&quot;l2403&quot;&gt;   2403&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1266&amp;quot; id=&amp;quot;h3-0-1266&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	geometryClearcoatNormal = clearcoatNormal;
   2442 <a href="#l2423" class="line" id="l2423">   2423</a> &lt;a href=&quot;#l2404&quot; class=&quot;line&quot; id=&quot;l2404&quot;&gt;   2404&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1267&amp;quot; id=&amp;quot;h3-0-1267&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2443 <a href="#l2424" class="line" id="l2424">   2424</a> &lt;a href=&quot;#l2405&quot; class=&quot;line&quot; id=&quot;l2405&quot;&gt;   2405&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1268&amp;quot; id=&amp;quot;h3-0-1268&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCE
   2444 <a href="#l2425" class="line" id="l2425">   2425</a> &lt;a href=&quot;#l2406&quot; class=&quot;line&quot; id=&quot;l2406&quot;&gt;   2406&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1269&amp;quot; id=&amp;quot;h3-0-1269&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dotNVi = saturate( dot( normal, geometryViewDir ) );
   2445 <a href="#l2426" class="line" id="l2426">   2426</a> &lt;a href=&quot;#l2407&quot; class=&quot;line&quot; id=&quot;l2407&quot;&gt;   2407&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1270&amp;quot; id=&amp;quot;h3-0-1270&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( material.iridescenceThickness == 0.0 ) {
   2446 <a href="#l2427" class="line" id="l2427">   2427</a> &lt;a href=&quot;#l2408&quot; class=&quot;line&quot; id=&quot;l2408&quot;&gt;   2408&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1271&amp;quot; id=&amp;quot;h3-0-1271&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.iridescence = 0.0;
   2447 <a href="#l2428" class="line" id="l2428">   2428</a> &lt;a href=&quot;#l2409&quot; class=&quot;line&quot; id=&quot;l2409&quot;&gt;   2409&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1272&amp;quot; id=&amp;quot;h3-0-1272&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	} else {
   2448 <a href="#l2429" class="line" id="l2429">   2429</a> &lt;a href=&quot;#l2410&quot; class=&quot;line&quot; id=&quot;l2410&quot;&gt;   2410&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1273&amp;quot; id=&amp;quot;h3-0-1273&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.iridescence = saturate( material.iridescence );
   2449 <a href="#l2430" class="line" id="l2430">   2430</a> &lt;a href=&quot;#l2411&quot; class=&quot;line&quot; id=&quot;l2411&quot;&gt;   2411&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1274&amp;quot; id=&amp;quot;h3-0-1274&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2450 <a href="#l2431" class="line" id="l2431">   2431</a> &lt;a href=&quot;#l2412&quot; class=&quot;line&quot; id=&quot;l2412&quot;&gt;   2412&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1275&amp;quot; id=&amp;quot;h3-0-1275&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( material.iridescence &amp;amp;gt; 0.0 ) {
   2451 <a href="#l2432" class="line" id="l2432">   2432</a> &lt;a href=&quot;#l2413&quot; class=&quot;line&quot; id=&quot;l2413&quot;&gt;   2413&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1276&amp;quot; id=&amp;quot;h3-0-1276&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.iridescenceFresnel = evalIridescence( 1.0, material.iridescenceIOR, dotNVi, material.iridescenceThickness, material.specularColor );
   2452 <a href="#l2433" class="line" id="l2433">   2433</a> &lt;a href=&quot;#l2414&quot; class=&quot;line&quot; id=&quot;l2414&quot;&gt;   2414&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1277&amp;quot; id=&amp;quot;h3-0-1277&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.iridescenceF0 = Schlick_to_F0( material.iridescenceFresnel, 1.0, dotNVi );
   2453 <a href="#l2434" class="line" id="l2434">   2434</a> &lt;a href=&quot;#l2415&quot; class=&quot;line&quot; id=&quot;l2415&quot;&gt;   2415&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1278&amp;quot; id=&amp;quot;h3-0-1278&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2454 <a href="#l2435" class="line" id="l2435">   2435</a> &lt;a href=&quot;#l2416&quot; class=&quot;line&quot; id=&quot;l2416&quot;&gt;   2416&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1279&amp;quot; id=&amp;quot;h3-0-1279&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2455 <a href="#l2436" class="line" id="l2436">   2436</a> &lt;a href=&quot;#l2417&quot; class=&quot;line&quot; id=&quot;l2417&quot;&gt;   2417&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1280&amp;quot; id=&amp;quot;h3-0-1280&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IncidentLight directLight;
   2456 <a href="#l2437" class="line" id="l2437">   2437</a> &lt;a href=&quot;#l2418&quot; class=&quot;line&quot; id=&quot;l2418&quot;&gt;   2418&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1281&amp;quot; id=&amp;quot;h3-0-1281&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if ( NUM_POINT_LIGHTS &amp;amp;gt; 0 ) &amp;amp;amp;&amp;amp;amp; defined( RE_Direct )
   2457 <a href="#l2438" class="line" id="l2438">   2438</a> &lt;a href=&quot;#l2419&quot; class=&quot;line&quot; id=&quot;l2419&quot;&gt;   2419&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1282&amp;quot; id=&amp;quot;h3-0-1282&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	PointLight pointLight;
   2458 <a href="#l2439" class="line" id="l2439">   2439</a> &lt;a href=&quot;#l2420&quot; class=&quot;line&quot; id=&quot;l2420&quot;&gt;   2420&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1283&amp;quot; id=&amp;quot;h3-0-1283&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_SHADOWMAP ) &amp;amp;amp;&amp;amp;amp; NUM_POINT_LIGHT_SHADOWS &amp;amp;gt; 0
   2459 <a href="#l2440" class="line" id="l2440">   2440</a> &lt;a href=&quot;#l2421&quot; class=&quot;line&quot; id=&quot;l2421&quot;&gt;   2421&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1284&amp;quot; id=&amp;quot;h3-0-1284&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	PointLightShadow pointLightShadow;
   2460 <a href="#l2441" class="line" id="l2441">   2441</a> &lt;a href=&quot;#l2422&quot; class=&quot;line&quot; id=&quot;l2422&quot;&gt;   2422&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1285&amp;quot; id=&amp;quot;h3-0-1285&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2461 <a href="#l2442" class="line" id="l2442">   2442</a> &lt;a href=&quot;#l2423&quot; class=&quot;line&quot; id=&quot;l2423&quot;&gt;   2423&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1286&amp;quot; id=&amp;quot;h3-0-1286&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_start
   2462 <a href="#l2443" class="line" id="l2443">   2443</a> &lt;a href=&quot;#l2424&quot; class=&quot;line&quot; id=&quot;l2424&quot;&gt;   2424&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1287&amp;quot; id=&amp;quot;h3-0-1287&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; NUM_POINT_LIGHTS; i ++ ) {
   2463 <a href="#l2444" class="line" id="l2444">   2444</a> &lt;a href=&quot;#l2425&quot; class=&quot;line&quot; id=&quot;l2425&quot;&gt;   2425&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1288&amp;quot; id=&amp;quot;h3-0-1288&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		pointLight = pointLights[ i ];
   2464 <a href="#l2445" class="line" id="l2445">   2445</a> &lt;a href=&quot;#l2426&quot; class=&quot;line&quot; id=&quot;l2426&quot;&gt;   2426&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1289&amp;quot; id=&amp;quot;h3-0-1289&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		getPointLightInfo( pointLight, geometryPosition, directLight );
   2465 <a href="#l2446" class="line" id="l2446">   2446</a> &lt;a href=&quot;#l2427&quot; class=&quot;line&quot; id=&quot;l2427&quot;&gt;   2427&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1290&amp;quot; id=&amp;quot;h3-0-1290&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if defined( USE_SHADOWMAP ) &amp;amp;amp;&amp;amp;amp; ( UNROLLED_LOOP_INDEX &amp;amp;lt; NUM_POINT_LIGHT_SHADOWS )
   2466 <a href="#l2447" class="line" id="l2447">   2447</a> &lt;a href=&quot;#l2428&quot; class=&quot;line&quot; id=&quot;l2428&quot;&gt;   2428&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1291&amp;quot; id=&amp;quot;h3-0-1291&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		pointLightShadow = pointLightShadows[ i ];
   2467 <a href="#l2448" class="line" id="l2448">   2448</a> &lt;a href=&quot;#l2429&quot; class=&quot;line&quot; id=&quot;l2429&quot;&gt;   2429&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1292&amp;quot; id=&amp;quot;h3-0-1292&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		directLight.color *= ( directLight.visible &amp;amp;amp;&amp;amp;amp; receiveShadow ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowIntensity, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;
   2468 <a href="#l2449" class="line" id="l2449">   2449</a> &lt;a href=&quot;#l2430&quot; class=&quot;line&quot; id=&quot;l2430&quot;&gt;   2430&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1293&amp;quot; id=&amp;quot;h3-0-1293&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2469 <a href="#l2450" class="line" id="l2450">   2450</a> &lt;a href=&quot;#l2431&quot; class=&quot;line&quot; id=&quot;l2431&quot;&gt;   2431&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1294&amp;quot; id=&amp;quot;h3-0-1294&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
   2470 <a href="#l2451" class="line" id="l2451">   2451</a> &lt;a href=&quot;#l2432&quot; class=&quot;line&quot; id=&quot;l2432&quot;&gt;   2432&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1295&amp;quot; id=&amp;quot;h3-0-1295&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2471 <a href="#l2452" class="line" id="l2452">   2452</a> &lt;a href=&quot;#l2433&quot; class=&quot;line&quot; id=&quot;l2433&quot;&gt;   2433&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1296&amp;quot; id=&amp;quot;h3-0-1296&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_end
   2472 <a href="#l2453" class="line" id="l2453">   2453</a> &lt;a href=&quot;#l2434&quot; class=&quot;line&quot; id=&quot;l2434&quot;&gt;   2434&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1297&amp;quot; id=&amp;quot;h3-0-1297&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2473 <a href="#l2454" class="line" id="l2454">   2454</a> &lt;a href=&quot;#l2435&quot; class=&quot;line&quot; id=&quot;l2435&quot;&gt;   2435&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1298&amp;quot; id=&amp;quot;h3-0-1298&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if ( NUM_SPOT_LIGHTS &amp;amp;gt; 0 ) &amp;amp;amp;&amp;amp;amp; defined( RE_Direct )
   2474 <a href="#l2455" class="line" id="l2455">   2455</a> &lt;a href=&quot;#l2436&quot; class=&quot;line&quot; id=&quot;l2436&quot;&gt;   2436&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1299&amp;quot; id=&amp;quot;h3-0-1299&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	SpotLight spotLight;
   2475 <a href="#l2456" class="line" id="l2456">   2456</a> &lt;a href=&quot;#l2437&quot; class=&quot;line&quot; id=&quot;l2437&quot;&gt;   2437&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1300&amp;quot; id=&amp;quot;h3-0-1300&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 spotColor;
   2476 <a href="#l2457" class="line" id="l2457">   2457</a> &lt;a href=&quot;#l2438&quot; class=&quot;line&quot; id=&quot;l2438&quot;&gt;   2438&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1301&amp;quot; id=&amp;quot;h3-0-1301&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 spotLightCoord;
   2477 <a href="#l2458" class="line" id="l2458">   2458</a> &lt;a href=&quot;#l2439&quot; class=&quot;line&quot; id=&quot;l2439&quot;&gt;   2439&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1302&amp;quot; id=&amp;quot;h3-0-1302&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	bool inSpotLightMap;
   2478 <a href="#l2459" class="line" id="l2459">   2459</a> &lt;a href=&quot;#l2440&quot; class=&quot;line&quot; id=&quot;l2440&quot;&gt;   2440&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1303&amp;quot; id=&amp;quot;h3-0-1303&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_SHADOWMAP ) &amp;amp;amp;&amp;amp;amp; NUM_SPOT_LIGHT_SHADOWS &amp;amp;gt; 0
   2479 <a href="#l2460" class="line" id="l2460">   2460</a> &lt;a href=&quot;#l2441&quot; class=&quot;line&quot; id=&quot;l2441&quot;&gt;   2441&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1304&amp;quot; id=&amp;quot;h3-0-1304&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	SpotLightShadow spotLightShadow;
   2480 <a href="#l2461" class="line" id="l2461">   2461</a> &lt;a href=&quot;#l2442&quot; class=&quot;line&quot; id=&quot;l2442&quot;&gt;   2442&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1305&amp;quot; id=&amp;quot;h3-0-1305&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2481 <a href="#l2462" class="line" id="l2462">   2462</a> &lt;a href=&quot;#l2443&quot; class=&quot;line&quot; id=&quot;l2443&quot;&gt;   2443&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1306&amp;quot; id=&amp;quot;h3-0-1306&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_start
   2482 <a href="#l2463" class="line" id="l2463">   2463</a> &lt;a href=&quot;#l2444&quot; class=&quot;line&quot; id=&quot;l2444&quot;&gt;   2444&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1307&amp;quot; id=&amp;quot;h3-0-1307&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; NUM_SPOT_LIGHTS; i ++ ) {
   2483 <a href="#l2464" class="line" id="l2464">   2464</a> &lt;a href=&quot;#l2445&quot; class=&quot;line&quot; id=&quot;l2445&quot;&gt;   2445&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1308&amp;quot; id=&amp;quot;h3-0-1308&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		spotLight = spotLights[ i ];
   2484 <a href="#l2465" class="line" id="l2465">   2465</a> &lt;a href=&quot;#l2446&quot; class=&quot;line&quot; id=&quot;l2446&quot;&gt;   2446&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1309&amp;quot; id=&amp;quot;h3-0-1309&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		getSpotLightInfo( spotLight, geometryPosition, directLight );
   2485 <a href="#l2466" class="line" id="l2466">   2466</a> &lt;a href=&quot;#l2447&quot; class=&quot;line&quot; id=&quot;l2447&quot;&gt;   2447&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1310&amp;quot; id=&amp;quot;h3-0-1310&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if ( UNROLLED_LOOP_INDEX &amp;amp;lt; NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
   2486 <a href="#l2467" class="line" id="l2467">   2467</a> &lt;a href=&quot;#l2448&quot; class=&quot;line&quot; id=&quot;l2448&quot;&gt;   2448&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1311&amp;quot; id=&amp;quot;h3-0-1311&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#define SPOT_LIGHT_MAP_INDEX UNROLLED_LOOP_INDEX
   2487 <a href="#l2468" class="line" id="l2468">   2468</a> &lt;a href=&quot;#l2449&quot; class=&quot;line&quot; id=&quot;l2449&quot;&gt;   2449&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1312&amp;quot; id=&amp;quot;h3-0-1312&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#elif ( UNROLLED_LOOP_INDEX &amp;amp;lt; NUM_SPOT_LIGHT_SHADOWS )
   2488 <a href="#l2469" class="line" id="l2469">   2469</a> &lt;a href=&quot;#l2450&quot; class=&quot;line&quot; id=&quot;l2450&quot;&gt;   2450&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1313&amp;quot; id=&amp;quot;h3-0-1313&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#define SPOT_LIGHT_MAP_INDEX NUM_SPOT_LIGHT_MAPS
   2489 <a href="#l2470" class="line" id="l2470">   2470</a> &lt;a href=&quot;#l2451&quot; class=&quot;line&quot; id=&quot;l2451&quot;&gt;   2451&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1314&amp;quot; id=&amp;quot;h3-0-1314&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   2490 <a href="#l2471" class="line" id="l2471">   2471</a> &lt;a href=&quot;#l2452&quot; class=&quot;line&quot; id=&quot;l2452&quot;&gt;   2452&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1315&amp;quot; id=&amp;quot;h3-0-1315&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#define SPOT_LIGHT_MAP_INDEX ( UNROLLED_LOOP_INDEX - NUM_SPOT_LIGHT_SHADOWS + NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS )
   2491 <a href="#l2472" class="line" id="l2472">   2472</a> &lt;a href=&quot;#l2453&quot; class=&quot;line&quot; id=&quot;l2453&quot;&gt;   2453&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1316&amp;quot; id=&amp;quot;h3-0-1316&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2492 <a href="#l2473" class="line" id="l2473">   2473</a> &lt;a href=&quot;#l2454&quot; class=&quot;line&quot; id=&quot;l2454&quot;&gt;   2454&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1317&amp;quot; id=&amp;quot;h3-0-1317&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if ( SPOT_LIGHT_MAP_INDEX &amp;amp;lt; NUM_SPOT_LIGHT_MAPS )
   2493 <a href="#l2474" class="line" id="l2474">   2474</a> &lt;a href=&quot;#l2455&quot; class=&quot;line&quot; id=&quot;l2455&quot;&gt;   2455&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1318&amp;quot; id=&amp;quot;h3-0-1318&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			spotLightCoord = vSpotLightCoord[ i ].xyz / vSpotLightCoord[ i ].w;
   2494 <a href="#l2475" class="line" id="l2475">   2475</a> &lt;a href=&quot;#l2456&quot; class=&quot;line&quot; id=&quot;l2456&quot;&gt;   2456&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1319&amp;quot; id=&amp;quot;h3-0-1319&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			inSpotLightMap = all( lessThan( abs( spotLightCoord * 2. - 1. ), vec3( 1.0 ) ) );
   2495 <a href="#l2476" class="line" id="l2476">   2476</a> &lt;a href=&quot;#l2457&quot; class=&quot;line&quot; id=&quot;l2457&quot;&gt;   2457&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1320&amp;quot; id=&amp;quot;h3-0-1320&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			spotColor = texture2D( spotLightMap[ SPOT_LIGHT_MAP_INDEX ], spotLightCoord.xy );
   2496 <a href="#l2477" class="line" id="l2477">   2477</a> &lt;a href=&quot;#l2458&quot; class=&quot;line&quot; id=&quot;l2458&quot;&gt;   2458&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1321&amp;quot; id=&amp;quot;h3-0-1321&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			directLight.color = inSpotLightMap ? directLight.color * spotColor.rgb : directLight.color;
   2497 <a href="#l2478" class="line" id="l2478">   2478</a> &lt;a href=&quot;#l2459&quot; class=&quot;line&quot; id=&quot;l2459&quot;&gt;   2459&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1322&amp;quot; id=&amp;quot;h3-0-1322&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2498 <a href="#l2479" class="line" id="l2479">   2479</a> &lt;a href=&quot;#l2460&quot; class=&quot;line&quot; id=&quot;l2460&quot;&gt;   2460&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1323&amp;quot; id=&amp;quot;h3-0-1323&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#undef SPOT_LIGHT_MAP_INDEX
   2499 <a href="#l2480" class="line" id="l2480">   2480</a> &lt;a href=&quot;#l2461&quot; class=&quot;line&quot; id=&quot;l2461&quot;&gt;   2461&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1324&amp;quot; id=&amp;quot;h3-0-1324&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if defined( USE_SHADOWMAP ) &amp;amp;amp;&amp;amp;amp; ( UNROLLED_LOOP_INDEX &amp;amp;lt; NUM_SPOT_LIGHT_SHADOWS )
   2500 <a href="#l2481" class="line" id="l2481">   2481</a> &lt;a href=&quot;#l2462&quot; class=&quot;line&quot; id=&quot;l2462&quot;&gt;   2462&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1325&amp;quot; id=&amp;quot;h3-0-1325&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		spotLightShadow = spotLightShadows[ i ];
   2501 <a href="#l2482" class="line" id="l2482">   2482</a> &lt;a href=&quot;#l2463&quot; class=&quot;line&quot; id=&quot;l2463&quot;&gt;   2463&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1326&amp;quot; id=&amp;quot;h3-0-1326&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		directLight.color *= ( directLight.visible &amp;amp;amp;&amp;amp;amp; receiveShadow ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowIntensity, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
   2502 <a href="#l2483" class="line" id="l2483">   2483</a> &lt;a href=&quot;#l2464&quot; class=&quot;line&quot; id=&quot;l2464&quot;&gt;   2464&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1327&amp;quot; id=&amp;quot;h3-0-1327&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2503 <a href="#l2484" class="line" id="l2484">   2484</a> &lt;a href=&quot;#l2465&quot; class=&quot;line&quot; id=&quot;l2465&quot;&gt;   2465&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1328&amp;quot; id=&amp;quot;h3-0-1328&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
   2504 <a href="#l2485" class="line" id="l2485">   2485</a> &lt;a href=&quot;#l2466&quot; class=&quot;line&quot; id=&quot;l2466&quot;&gt;   2466&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1329&amp;quot; id=&amp;quot;h3-0-1329&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2505 <a href="#l2486" class="line" id="l2486">   2486</a> &lt;a href=&quot;#l2467&quot; class=&quot;line&quot; id=&quot;l2467&quot;&gt;   2467&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1330&amp;quot; id=&amp;quot;h3-0-1330&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_end
   2506 <a href="#l2487" class="line" id="l2487">   2487</a> &lt;a href=&quot;#l2468&quot; class=&quot;line&quot; id=&quot;l2468&quot;&gt;   2468&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1331&amp;quot; id=&amp;quot;h3-0-1331&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2507 <a href="#l2488" class="line" id="l2488">   2488</a> &lt;a href=&quot;#l2469&quot; class=&quot;line&quot; id=&quot;l2469&quot;&gt;   2469&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1332&amp;quot; id=&amp;quot;h3-0-1332&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if ( NUM_DIR_LIGHTS &amp;amp;gt; 0 ) &amp;amp;amp;&amp;amp;amp; defined( RE_Direct )
   2508 <a href="#l2489" class="line" id="l2489">   2489</a> &lt;a href=&quot;#l2470&quot; class=&quot;line&quot; id=&quot;l2470&quot;&gt;   2470&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1333&amp;quot; id=&amp;quot;h3-0-1333&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	DirectionalLight directionalLight;
   2509 <a href="#l2490" class="line" id="l2490">   2490</a> &lt;a href=&quot;#l2471&quot; class=&quot;line&quot; id=&quot;l2471&quot;&gt;   2471&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1334&amp;quot; id=&amp;quot;h3-0-1334&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_SHADOWMAP ) &amp;amp;amp;&amp;amp;amp; NUM_DIR_LIGHT_SHADOWS &amp;amp;gt; 0
   2510 <a href="#l2491" class="line" id="l2491">   2491</a> &lt;a href=&quot;#l2472&quot; class=&quot;line&quot; id=&quot;l2472&quot;&gt;   2472&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1335&amp;quot; id=&amp;quot;h3-0-1335&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	DirectionalLightShadow directionalLightShadow;
   2511 <a href="#l2492" class="line" id="l2492">   2492</a> &lt;a href=&quot;#l2473&quot; class=&quot;line&quot; id=&quot;l2473&quot;&gt;   2473&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1336&amp;quot; id=&amp;quot;h3-0-1336&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2512 <a href="#l2493" class="line" id="l2493">   2493</a> &lt;a href=&quot;#l2474&quot; class=&quot;line&quot; id=&quot;l2474&quot;&gt;   2474&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1337&amp;quot; id=&amp;quot;h3-0-1337&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_start
   2513 <a href="#l2494" class="line" id="l2494">   2494</a> &lt;a href=&quot;#l2475&quot; class=&quot;line&quot; id=&quot;l2475&quot;&gt;   2475&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1338&amp;quot; id=&amp;quot;h3-0-1338&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; NUM_DIR_LIGHTS; i ++ ) {
   2514 <a href="#l2495" class="line" id="l2495">   2495</a> &lt;a href=&quot;#l2476&quot; class=&quot;line&quot; id=&quot;l2476&quot;&gt;   2476&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1339&amp;quot; id=&amp;quot;h3-0-1339&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		directionalLight = directionalLights[ i ];
   2515 <a href="#l2496" class="line" id="l2496">   2496</a> &lt;a href=&quot;#l2477&quot; class=&quot;line&quot; id=&quot;l2477&quot;&gt;   2477&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1340&amp;quot; id=&amp;quot;h3-0-1340&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		getDirectionalLightInfo( directionalLight, directLight );
   2516 <a href="#l2497" class="line" id="l2497">   2497</a> &lt;a href=&quot;#l2478&quot; class=&quot;line&quot; id=&quot;l2478&quot;&gt;   2478&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1341&amp;quot; id=&amp;quot;h3-0-1341&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if defined( USE_SHADOWMAP ) &amp;amp;amp;&amp;amp;amp; ( UNROLLED_LOOP_INDEX &amp;amp;lt; NUM_DIR_LIGHT_SHADOWS )
   2517 <a href="#l2498" class="line" id="l2498">   2498</a> &lt;a href=&quot;#l2479&quot; class=&quot;line&quot; id=&quot;l2479&quot;&gt;   2479&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1342&amp;quot; id=&amp;quot;h3-0-1342&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		directionalLightShadow = directionalLightShadows[ i ];
   2518 <a href="#l2499" class="line" id="l2499">   2499</a> &lt;a href=&quot;#l2480&quot; class=&quot;line&quot; id=&quot;l2480&quot;&gt;   2480&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1343&amp;quot; id=&amp;quot;h3-0-1343&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		directLight.color *= ( directLight.visible &amp;amp;amp;&amp;amp;amp; receiveShadow ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowIntensity, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
   2519 <a href="#l2500" class="line" id="l2500">   2500</a> &lt;a href=&quot;#l2481&quot; class=&quot;line&quot; id=&quot;l2481&quot;&gt;   2481&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1344&amp;quot; id=&amp;quot;h3-0-1344&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2520 <a href="#l2501" class="line" id="l2501">   2501</a> &lt;a href=&quot;#l2482&quot; class=&quot;line&quot; id=&quot;l2482&quot;&gt;   2482&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1345&amp;quot; id=&amp;quot;h3-0-1345&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		RE_Direct( directLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
   2521 <a href="#l2502" class="line" id="l2502">   2502</a> &lt;a href=&quot;#l2483&quot; class=&quot;line&quot; id=&quot;l2483&quot;&gt;   2483&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1346&amp;quot; id=&amp;quot;h3-0-1346&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2522 <a href="#l2503" class="line" id="l2503">   2503</a> &lt;a href=&quot;#l2484&quot; class=&quot;line&quot; id=&quot;l2484&quot;&gt;   2484&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1347&amp;quot; id=&amp;quot;h3-0-1347&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_end
   2523 <a href="#l2504" class="line" id="l2504">   2504</a> &lt;a href=&quot;#l2485&quot; class=&quot;line&quot; id=&quot;l2485&quot;&gt;   2485&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1348&amp;quot; id=&amp;quot;h3-0-1348&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2524 <a href="#l2505" class="line" id="l2505">   2505</a> &lt;a href=&quot;#l2486&quot; class=&quot;line&quot; id=&quot;l2486&quot;&gt;   2486&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1349&amp;quot; id=&amp;quot;h3-0-1349&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if ( NUM_RECT_AREA_LIGHTS &amp;amp;gt; 0 ) &amp;amp;amp;&amp;amp;amp; defined( RE_Direct_RectArea )
   2525 <a href="#l2506" class="line" id="l2506">   2506</a> &lt;a href=&quot;#l2487&quot; class=&quot;line&quot; id=&quot;l2487&quot;&gt;   2487&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1350&amp;quot; id=&amp;quot;h3-0-1350&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	RectAreaLight rectAreaLight;
   2526 <a href="#l2507" class="line" id="l2507">   2507</a> &lt;a href=&quot;#l2488&quot; class=&quot;line&quot; id=&quot;l2488&quot;&gt;   2488&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1351&amp;quot; id=&amp;quot;h3-0-1351&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_start
   2527 <a href="#l2508" class="line" id="l2508">   2508</a> &lt;a href=&quot;#l2489&quot; class=&quot;line&quot; id=&quot;l2489&quot;&gt;   2489&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1352&amp;quot; id=&amp;quot;h3-0-1352&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; NUM_RECT_AREA_LIGHTS; i ++ ) {
   2528 <a href="#l2509" class="line" id="l2509">   2509</a> &lt;a href=&quot;#l2490&quot; class=&quot;line&quot; id=&quot;l2490&quot;&gt;   2490&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1353&amp;quot; id=&amp;quot;h3-0-1353&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		rectAreaLight = rectAreaLights[ i ];
   2529 <a href="#l2510" class="line" id="l2510">   2510</a> &lt;a href=&quot;#l2491&quot; class=&quot;line&quot; id=&quot;l2491&quot;&gt;   2491&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1354&amp;quot; id=&amp;quot;h3-0-1354&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		RE_Direct_RectArea( rectAreaLight, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
   2530 <a href="#l2511" class="line" id="l2511">   2511</a> &lt;a href=&quot;#l2492&quot; class=&quot;line&quot; id=&quot;l2492&quot;&gt;   2492&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1355&amp;quot; id=&amp;quot;h3-0-1355&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2531 <a href="#l2512" class="line" id="l2512">   2512</a> &lt;a href=&quot;#l2493&quot; class=&quot;line&quot; id=&quot;l2493&quot;&gt;   2493&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1356&amp;quot; id=&amp;quot;h3-0-1356&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_end
   2532 <a href="#l2513" class="line" id="l2513">   2513</a> &lt;a href=&quot;#l2494&quot; class=&quot;line&quot; id=&quot;l2494&quot;&gt;   2494&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1357&amp;quot; id=&amp;quot;h3-0-1357&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2533 <a href="#l2514" class="line" id="l2514">   2514</a> &lt;a href=&quot;#l2495&quot; class=&quot;line&quot; id=&quot;l2495&quot;&gt;   2495&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1358&amp;quot; id=&amp;quot;h3-0-1358&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( RE_IndirectDiffuse )
   2534 <a href="#l2515" class="line" id="l2515">   2515</a> &lt;a href=&quot;#l2496&quot; class=&quot;line&quot; id=&quot;l2496&quot;&gt;   2496&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1359&amp;quot; id=&amp;quot;h3-0-1359&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 iblIrradiance = vec3( 0.0 );
   2535 <a href="#l2516" class="line" id="l2516">   2516</a> &lt;a href=&quot;#l2497&quot; class=&quot;line&quot; id=&quot;l2497&quot;&gt;   2497&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1360&amp;quot; id=&amp;quot;h3-0-1360&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 irradiance = getAmbientLightIrradiance( ambientLightColor );
   2536 <a href="#l2517" class="line" id="l2517">   2517</a> &lt;a href=&quot;#l2498&quot; class=&quot;line&quot; id=&quot;l2498&quot;&gt;   2498&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1361&amp;quot; id=&amp;quot;h3-0-1361&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_LIGHT_PROBES )
   2537 <a href="#l2518" class="line" id="l2518">   2518</a> &lt;a href=&quot;#l2499&quot; class=&quot;line&quot; id=&quot;l2499&quot;&gt;   2499&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1362&amp;quot; id=&amp;quot;h3-0-1362&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		irradiance += getLightProbeIrradiance( lightProbe, geometryNormal );
   2538 <a href="#l2519" class="line" id="l2519">   2519</a> &lt;a href=&quot;#l2500&quot; class=&quot;line&quot; id=&quot;l2500&quot;&gt;   2500&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1363&amp;quot; id=&amp;quot;h3-0-1363&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2539 <a href="#l2520" class="line" id="l2520">   2520</a> &lt;a href=&quot;#l2501&quot; class=&quot;line&quot; id=&quot;l2501&quot;&gt;   2501&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1364&amp;quot; id=&amp;quot;h3-0-1364&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if ( NUM_HEMI_LIGHTS &amp;amp;gt; 0 )
   2540 <a href="#l2521" class="line" id="l2521">   2521</a> &lt;a href=&quot;#l2502&quot; class=&quot;line&quot; id=&quot;l2502&quot;&gt;   2502&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1365&amp;quot; id=&amp;quot;h3-0-1365&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_start
   2541 <a href="#l2522" class="line" id="l2522">   2522</a> &lt;a href=&quot;#l2503&quot; class=&quot;line&quot; id=&quot;l2503&quot;&gt;   2503&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1366&amp;quot; id=&amp;quot;h3-0-1366&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		for ( int i = 0; i &amp;amp;lt; NUM_HEMI_LIGHTS; i ++ ) {
   2542 <a href="#l2523" class="line" id="l2523">   2523</a> &lt;a href=&quot;#l2504&quot; class=&quot;line&quot; id=&quot;l2504&quot;&gt;   2504&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1367&amp;quot; id=&amp;quot;h3-0-1367&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			irradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometryNormal );
   2543 <a href="#l2524" class="line" id="l2524">   2524</a> &lt;a href=&quot;#l2505&quot; class=&quot;line&quot; id=&quot;l2505&quot;&gt;   2505&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1368&amp;quot; id=&amp;quot;h3-0-1368&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   2544 <a href="#l2525" class="line" id="l2525">   2525</a> &lt;a href=&quot;#l2506&quot; class=&quot;line&quot; id=&quot;l2506&quot;&gt;   2506&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1369&amp;quot; id=&amp;quot;h3-0-1369&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_end
   2545 <a href="#l2526" class="line" id="l2526">   2526</a> &lt;a href=&quot;#l2507&quot; class=&quot;line&quot; id=&quot;l2507&quot;&gt;   2507&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1370&amp;quot; id=&amp;quot;h3-0-1370&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2546 <a href="#l2527" class="line" id="l2527">   2527</a> &lt;a href=&quot;#l2508&quot; class=&quot;line&quot; id=&quot;l2508&quot;&gt;   2508&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1371&amp;quot; id=&amp;quot;h3-0-1371&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2547 <a href="#l2528" class="line" id="l2528">   2528</a> &lt;a href=&quot;#l2509&quot; class=&quot;line&quot; id=&quot;l2509&quot;&gt;   2509&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1372&amp;quot; id=&amp;quot;h3-0-1372&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( RE_IndirectSpecular )
   2548 <a href="#l2529" class="line" id="l2529">   2529</a> &lt;a href=&quot;#l2510&quot; class=&quot;line&quot; id=&quot;l2510&quot;&gt;   2510&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1373&amp;quot; id=&amp;quot;h3-0-1373&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 radiance = vec3( 0.0 );
   2549 <a href="#l2530" class="line" id="l2530">   2530</a> &lt;a href=&quot;#l2511&quot; class=&quot;line&quot; id=&quot;l2511&quot;&gt;   2511&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1374&amp;quot; id=&amp;quot;h3-0-1374&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 clearcoatRadiance = vec3( 0.0 );
   2550 <a href="#l2531" class="line" id="l2531">   2531</a> &lt;a href=&quot;#l2512&quot; class=&quot;line&quot; id=&quot;l2512&quot;&gt;   2512&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1375&amp;quot; id=&amp;quot;h3-0-1375&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,oV=`#if defined( RE_IndirectDiffuse )
   2551 <a href="#l2532" class="line" id="l2532">   2532</a> &lt;a href=&quot;#l2513&quot; class=&quot;line&quot; id=&quot;l2513&quot;&gt;   2513&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1376&amp;quot; id=&amp;quot;h3-0-1376&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_LIGHTMAP
   2552 <a href="#l2533" class="line" id="l2533">   2533</a> &lt;a href=&quot;#l2514&quot; class=&quot;line&quot; id=&quot;l2514&quot;&gt;   2514&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1377&amp;quot; id=&amp;quot;h3-0-1377&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
   2553 <a href="#l2534" class="line" id="l2534">   2534</a> &lt;a href=&quot;#l2515&quot; class=&quot;line&quot; id=&quot;l2515&quot;&gt;   2515&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1378&amp;quot; id=&amp;quot;h3-0-1378&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 lightMapIrradiance = lightMapTexel.rgb * lightMapIntensity;
   2554 <a href="#l2535" class="line" id="l2535">   2535</a> &lt;a href=&quot;#l2516&quot; class=&quot;line&quot; id=&quot;l2516&quot;&gt;   2516&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1379&amp;quot; id=&amp;quot;h3-0-1379&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		irradiance += lightMapIrradiance;
   2555 <a href="#l2536" class="line" id="l2536">   2536</a> &lt;a href=&quot;#l2517&quot; class=&quot;line&quot; id=&quot;l2517&quot;&gt;   2517&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1380&amp;quot; id=&amp;quot;h3-0-1380&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2556 <a href="#l2537" class="line" id="l2537">   2537</a> &lt;a href=&quot;#l2518&quot; class=&quot;line&quot; id=&quot;l2518&quot;&gt;   2518&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1381&amp;quot; id=&amp;quot;h3-0-1381&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_ENVMAP ) &amp;amp;amp;&amp;amp;amp; defined( STANDARD ) &amp;amp;amp;&amp;amp;amp; defined( ENVMAP_TYPE_CUBE_UV )
   2557 <a href="#l2538" class="line" id="l2538">   2538</a> &lt;a href=&quot;#l2519&quot; class=&quot;line&quot; id=&quot;l2519&quot;&gt;   2519&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1382&amp;quot; id=&amp;quot;h3-0-1382&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		iblIrradiance += getIBLIrradiance( geometryNormal );
   2558 <a href="#l2539" class="line" id="l2539">   2539</a> &lt;a href=&quot;#l2520&quot; class=&quot;line&quot; id=&quot;l2520&quot;&gt;   2520&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1383&amp;quot; id=&amp;quot;h3-0-1383&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2559 <a href="#l2540" class="line" id="l2540">   2540</a> &lt;a href=&quot;#l2521&quot; class=&quot;line&quot; id=&quot;l2521&quot;&gt;   2521&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1384&amp;quot; id=&amp;quot;h3-0-1384&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2560 <a href="#l2541" class="line" id="l2541">   2541</a> &lt;a href=&quot;#l2522&quot; class=&quot;line&quot; id=&quot;l2522&quot;&gt;   2522&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1385&amp;quot; id=&amp;quot;h3-0-1385&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( USE_ENVMAP ) &amp;amp;amp;&amp;amp;amp; defined( RE_IndirectSpecular )
   2561 <a href="#l2542" class="line" id="l2542">   2542</a> &lt;a href=&quot;#l2523&quot; class=&quot;line&quot; id=&quot;l2523&quot;&gt;   2523&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1386&amp;quot; id=&amp;quot;h3-0-1386&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_ANISOTROPY
   2562 <a href="#l2543" class="line" id="l2543">   2543</a> &lt;a href=&quot;#l2524&quot; class=&quot;line&quot; id=&quot;l2524&quot;&gt;   2524&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1387&amp;quot; id=&amp;quot;h3-0-1387&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		radiance += getIBLAnisotropyRadiance( geometryViewDir, geometryNormal, material.roughness, material.anisotropyB, material.anisotropy );
   2563 <a href="#l2544" class="line" id="l2544">   2544</a> &lt;a href=&quot;#l2525&quot; class=&quot;line&quot; id=&quot;l2525&quot;&gt;   2525&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1388&amp;quot; id=&amp;quot;h3-0-1388&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2564 <a href="#l2545" class="line" id="l2545">   2545</a> &lt;a href=&quot;#l2526&quot; class=&quot;line&quot; id=&quot;l2526&quot;&gt;   2526&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1389&amp;quot; id=&amp;quot;h3-0-1389&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		radiance += getIBLRadiance( geometryViewDir, geometryNormal, material.roughness );
   2565 <a href="#l2546" class="line" id="l2546">   2546</a> &lt;a href=&quot;#l2527&quot; class=&quot;line&quot; id=&quot;l2527&quot;&gt;   2527&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1390&amp;quot; id=&amp;quot;h3-0-1390&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2566 <a href="#l2547" class="line" id="l2547">   2547</a> &lt;a href=&quot;#l2528&quot; class=&quot;line&quot; id=&quot;l2528&quot;&gt;   2528&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1391&amp;quot; id=&amp;quot;h3-0-1391&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_CLEARCOAT
   2567 <a href="#l2548" class="line" id="l2548">   2548</a> &lt;a href=&quot;#l2529&quot; class=&quot;line&quot; id=&quot;l2529&quot;&gt;   2529&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1392&amp;quot; id=&amp;quot;h3-0-1392&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		clearcoatRadiance += getIBLRadiance( geometryViewDir, geometryClearcoatNormal, material.clearcoatRoughness );
   2568 <a href="#l2549" class="line" id="l2549">   2549</a> &lt;a href=&quot;#l2530&quot; class=&quot;line&quot; id=&quot;l2530&quot;&gt;   2530&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1393&amp;quot; id=&amp;quot;h3-0-1393&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2569 <a href="#l2550" class="line" id="l2550">   2550</a> &lt;a href=&quot;#l2531&quot; class=&quot;line&quot; id=&quot;l2531&quot;&gt;   2531&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1394&amp;quot; id=&amp;quot;h3-0-1394&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,lV=`#if defined( RE_IndirectDiffuse )
   2570 <a href="#l2551" class="line" id="l2551">   2551</a> &lt;a href=&quot;#l2532&quot; class=&quot;line&quot; id=&quot;l2532&quot;&gt;   2532&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1395&amp;quot; id=&amp;quot;h3-0-1395&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	RE_IndirectDiffuse( irradiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
   2571 <a href="#l2552" class="line" id="l2552">   2552</a> &lt;a href=&quot;#l2533&quot; class=&quot;line&quot; id=&quot;l2533&quot;&gt;   2533&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1396&amp;quot; id=&amp;quot;h3-0-1396&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2572 <a href="#l2553" class="line" id="l2553">   2553</a> &lt;a href=&quot;#l2534&quot; class=&quot;line&quot; id=&quot;l2534&quot;&gt;   2534&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1397&amp;quot; id=&amp;quot;h3-0-1397&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( RE_IndirectSpecular )
   2573 <a href="#l2554" class="line" id="l2554">   2554</a> &lt;a href=&quot;#l2535&quot; class=&quot;line&quot; id=&quot;l2535&quot;&gt;   2535&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1398&amp;quot; id=&amp;quot;h3-0-1398&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	RE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometryPosition, geometryNormal, geometryViewDir, geometryClearcoatNormal, material, reflectedLight );
   2574 <a href="#l2555" class="line" id="l2555">   2555</a> &lt;a href=&quot;#l2536&quot; class=&quot;line&quot; id=&quot;l2536&quot;&gt;   2536&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1399&amp;quot; id=&amp;quot;h3-0-1399&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,uV=`#if defined( USE_LOGDEPTHBUF )
   2575 <a href="#l2556" class="line" id="l2556">   2556</a> &lt;a href=&quot;#l2537&quot; class=&quot;line&quot; id=&quot;l2537&quot;&gt;   2537&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1400&amp;quot; id=&amp;quot;h3-0-1400&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragDepth = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;
   2576 <a href="#l2557" class="line" id="l2557">   2557</a> &lt;a href=&quot;#l2538&quot; class=&quot;line&quot; id=&quot;l2538&quot;&gt;   2538&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1401&amp;quot; id=&amp;quot;h3-0-1401&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,cV=`#if defined( USE_LOGDEPTHBUF )
   2577 <a href="#l2558" class="line" id="l2558">   2558</a> &lt;a href=&quot;#l2539&quot; class=&quot;line&quot; id=&quot;l2539&quot;&gt;   2539&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1402&amp;quot; id=&amp;quot;h3-0-1402&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float logDepthBufFC;
   2578 <a href="#l2559" class="line" id="l2559">   2559</a> &lt;a href=&quot;#l2540&quot; class=&quot;line&quot; id=&quot;l2540&quot;&gt;   2540&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1403&amp;quot; id=&amp;quot;h3-0-1403&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying float vFragDepth;
   2579 <a href="#l2560" class="line" id="l2560">   2560</a> &lt;a href=&quot;#l2541&quot; class=&quot;line&quot; id=&quot;l2541&quot;&gt;   2541&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1404&amp;quot; id=&amp;quot;h3-0-1404&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying float vIsPerspective;
   2580 <a href="#l2561" class="line" id="l2561">   2561</a> &lt;a href=&quot;#l2542&quot; class=&quot;line&quot; id=&quot;l2542&quot;&gt;   2542&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1405&amp;quot; id=&amp;quot;h3-0-1405&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,fV=`#ifdef USE_LOGDEPTHBUF
   2581 <a href="#l2562" class="line" id="l2562">   2562</a> &lt;a href=&quot;#l2543&quot; class=&quot;line&quot; id=&quot;l2543&quot;&gt;   2543&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1406&amp;quot; id=&amp;quot;h3-0-1406&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying float vFragDepth;
   2582 <a href="#l2563" class="line" id="l2563">   2563</a> &lt;a href=&quot;#l2544&quot; class=&quot;line&quot; id=&quot;l2544&quot;&gt;   2544&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1407&amp;quot; id=&amp;quot;h3-0-1407&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying float vIsPerspective;
   2583 <a href="#l2564" class="line" id="l2564">   2564</a> &lt;a href=&quot;#l2545&quot; class=&quot;line&quot; id=&quot;l2545&quot;&gt;   2545&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1408&amp;quot; id=&amp;quot;h3-0-1408&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,hV=`#ifdef USE_LOGDEPTHBUF
   2584 <a href="#l2565" class="line" id="l2565">   2565</a> &lt;a href=&quot;#l2546&quot; class=&quot;line&quot; id=&quot;l2546&quot;&gt;   2546&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1409&amp;quot; id=&amp;quot;h3-0-1409&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vFragDepth = 1.0 + gl_Position.w;
   2585 <a href="#l2566" class="line" id="l2566">   2566</a> &lt;a href=&quot;#l2547&quot; class=&quot;line&quot; id=&quot;l2547&quot;&gt;   2547&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1410&amp;quot; id=&amp;quot;h3-0-1410&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );
   2586 <a href="#l2567" class="line" id="l2567">   2567</a> &lt;a href=&quot;#l2548&quot; class=&quot;line&quot; id=&quot;l2548&quot;&gt;   2548&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1411&amp;quot; id=&amp;quot;h3-0-1411&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,dV=`#ifdef USE_MAP
   2587 <a href="#l2568" class="line" id="l2568">   2568</a> &lt;a href=&quot;#l2549&quot; class=&quot;line&quot; id=&quot;l2549&quot;&gt;   2549&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1412&amp;quot; id=&amp;quot;h3-0-1412&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 sampledDiffuseColor = texture2D( map, vMapUv );
   2588 <a href="#l2569" class="line" id="l2569">   2569</a> &lt;a href=&quot;#l2550&quot; class=&quot;line&quot; id=&quot;l2550&quot;&gt;   2550&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1413&amp;quot; id=&amp;quot;h3-0-1413&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef DECODE_VIDEO_TEXTURE
   2589 <a href="#l2570" class="line" id="l2570">   2570</a> &lt;a href=&quot;#l2551&quot; class=&quot;line&quot; id=&quot;l2551&quot;&gt;   2551&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1414&amp;quot; id=&amp;quot;h3-0-1414&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		sampledDiffuseColor = sRGBTransferEOTF( sampledDiffuseColor );
   2590 <a href="#l2571" class="line" id="l2571">   2571</a> &lt;a href=&quot;#l2552&quot; class=&quot;line&quot; id=&quot;l2552&quot;&gt;   2552&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1415&amp;quot; id=&amp;quot;h3-0-1415&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2591 <a href="#l2572" class="line" id="l2572">   2572</a> &lt;a href=&quot;#l2553&quot; class=&quot;line&quot; id=&quot;l2553&quot;&gt;   2553&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1416&amp;quot; id=&amp;quot;h3-0-1416&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	diffuseColor *= sampledDiffuseColor;
   2592 <a href="#l2573" class="line" id="l2573">   2573</a> &lt;a href=&quot;#l2554&quot; class=&quot;line&quot; id=&quot;l2554&quot;&gt;   2554&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1417&amp;quot; id=&amp;quot;h3-0-1417&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,pV=`#ifdef USE_MAP
   2593 <a href="#l2574" class="line" id="l2574">   2574</a> &lt;a href=&quot;#l2555&quot; class=&quot;line&quot; id=&quot;l2555&quot;&gt;   2555&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1418&amp;quot; id=&amp;quot;h3-0-1418&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D map;
   2594 <a href="#l2575" class="line" id="l2575">   2575</a> &lt;a href=&quot;#l2556&quot; class=&quot;line&quot; id=&quot;l2556&quot;&gt;   2556&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1419&amp;quot; id=&amp;quot;h3-0-1419&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,mV=`#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
   2595 <a href="#l2576" class="line" id="l2576">   2576</a> &lt;a href=&quot;#l2557&quot; class=&quot;line&quot; id=&quot;l2557&quot;&gt;   2557&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1420&amp;quot; id=&amp;quot;h3-0-1420&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_POINTS_UV )
   2596 <a href="#l2577" class="line" id="l2577">   2577</a> &lt;a href=&quot;#l2558&quot; class=&quot;line&quot; id=&quot;l2558&quot;&gt;   2558&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1421&amp;quot; id=&amp;quot;h3-0-1421&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 uv = vUv;
   2597 <a href="#l2578" class="line" id="l2578">   2578</a> &lt;a href=&quot;#l2559&quot; class=&quot;line&quot; id=&quot;l2559&quot;&gt;   2559&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1422&amp;quot; id=&amp;quot;h3-0-1422&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2598 <a href="#l2579" class="line" id="l2579">   2579</a> &lt;a href=&quot;#l2560&quot; class=&quot;line&quot; id=&quot;l2560&quot;&gt;   2560&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1423&amp;quot; id=&amp;quot;h3-0-1423&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;
   2599 <a href="#l2580" class="line" id="l2580">   2580</a> &lt;a href=&quot;#l2561&quot; class=&quot;line&quot; id=&quot;l2561&quot;&gt;   2561&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1424&amp;quot; id=&amp;quot;h3-0-1424&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2600 <a href="#l2581" class="line" id="l2581">   2581</a> &lt;a href=&quot;#l2562&quot; class=&quot;line&quot; id=&quot;l2562&quot;&gt;   2562&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1425&amp;quot; id=&amp;quot;h3-0-1425&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2601 <a href="#l2582" class="line" id="l2582">   2582</a> &lt;a href=&quot;#l2563&quot; class=&quot;line&quot; id=&quot;l2563&quot;&gt;   2563&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1426&amp;quot; id=&amp;quot;h3-0-1426&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_MAP
   2602 <a href="#l2583" class="line" id="l2583">   2583</a> &lt;a href=&quot;#l2564&quot; class=&quot;line&quot; id=&quot;l2564&quot;&gt;   2564&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1427&amp;quot; id=&amp;quot;h3-0-1427&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	diffuseColor *= texture2D( map, uv );
   2603 <a href="#l2584" class="line" id="l2584">   2584</a> &lt;a href=&quot;#l2565&quot; class=&quot;line&quot; id=&quot;l2565&quot;&gt;   2565&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1428&amp;quot; id=&amp;quot;h3-0-1428&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2604 <a href="#l2585" class="line" id="l2585">   2585</a> &lt;a href=&quot;#l2566&quot; class=&quot;line&quot; id=&quot;l2566&quot;&gt;   2566&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1429&amp;quot; id=&amp;quot;h3-0-1429&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ALPHAMAP
   2605 <a href="#l2586" class="line" id="l2586">   2586</a> &lt;a href=&quot;#l2567&quot; class=&quot;line&quot; id=&quot;l2567&quot;&gt;   2567&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1430&amp;quot; id=&amp;quot;h3-0-1430&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	diffuseColor.a *= texture2D( alphaMap, uv ).g;
   2606 <a href="#l2587" class="line" id="l2587">   2587</a> &lt;a href=&quot;#l2568&quot; class=&quot;line&quot; id=&quot;l2568&quot;&gt;   2568&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1431&amp;quot; id=&amp;quot;h3-0-1431&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,gV=`#if defined( USE_POINTS_UV )
   2607 <a href="#l2588" class="line" id="l2588">   2588</a> &lt;a href=&quot;#l2569&quot; class=&quot;line&quot; id=&quot;l2569&quot;&gt;   2569&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1432&amp;quot; id=&amp;quot;h3-0-1432&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vUv;
   2608 <a href="#l2589" class="line" id="l2589">   2589</a> &lt;a href=&quot;#l2570&quot; class=&quot;line&quot; id=&quot;l2570&quot;&gt;   2570&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1433&amp;quot; id=&amp;quot;h3-0-1433&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   2609 <a href="#l2590" class="line" id="l2590">   2590</a> &lt;a href=&quot;#l2571&quot; class=&quot;line&quot; id=&quot;l2571&quot;&gt;   2571&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1434&amp;quot; id=&amp;quot;h3-0-1434&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( USE_MAP ) || defined( USE_ALPHAMAP )
   2610 <a href="#l2591" class="line" id="l2591">   2591</a> &lt;a href=&quot;#l2572&quot; class=&quot;line&quot; id=&quot;l2572&quot;&gt;   2572&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1435&amp;quot; id=&amp;quot;h3-0-1435&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform mat3 uvTransform;
   2611 <a href="#l2592" class="line" id="l2592">   2592</a> &lt;a href=&quot;#l2573&quot; class=&quot;line&quot; id=&quot;l2573&quot;&gt;   2573&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1436&amp;quot; id=&amp;quot;h3-0-1436&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2612 <a href="#l2593" class="line" id="l2593">   2593</a> &lt;a href=&quot;#l2574&quot; class=&quot;line&quot; id=&quot;l2574&quot;&gt;   2574&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1437&amp;quot; id=&amp;quot;h3-0-1437&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2613 <a href="#l2594" class="line" id="l2594">   2594</a> &lt;a href=&quot;#l2575&quot; class=&quot;line&quot; id=&quot;l2575&quot;&gt;   2575&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1438&amp;quot; id=&amp;quot;h3-0-1438&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_MAP
   2614 <a href="#l2595" class="line" id="l2595">   2595</a> &lt;a href=&quot;#l2576&quot; class=&quot;line&quot; id=&quot;l2576&quot;&gt;   2576&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1439&amp;quot; id=&amp;quot;h3-0-1439&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D map;
   2615 <a href="#l2596" class="line" id="l2596">   2596</a> &lt;a href=&quot;#l2577&quot; class=&quot;line&quot; id=&quot;l2577&quot;&gt;   2577&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1440&amp;quot; id=&amp;quot;h3-0-1440&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2616 <a href="#l2597" class="line" id="l2597">   2597</a> &lt;a href=&quot;#l2578&quot; class=&quot;line&quot; id=&quot;l2578&quot;&gt;   2578&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1441&amp;quot; id=&amp;quot;h3-0-1441&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ALPHAMAP
   2617 <a href="#l2598" class="line" id="l2598">   2598</a> &lt;a href=&quot;#l2579&quot; class=&quot;line&quot; id=&quot;l2579&quot;&gt;   2579&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1442&amp;quot; id=&amp;quot;h3-0-1442&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D alphaMap;
   2618 <a href="#l2599" class="line" id="l2599">   2599</a> &lt;a href=&quot;#l2580&quot; class=&quot;line&quot; id=&quot;l2580&quot;&gt;   2580&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1443&amp;quot; id=&amp;quot;h3-0-1443&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,vV=`float metalnessFactor = metalness;
   2619 <a href="#l2600" class="line" id="l2600">   2600</a> &lt;a href=&quot;#l2581&quot; class=&quot;line&quot; id=&quot;l2581&quot;&gt;   2581&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1444&amp;quot; id=&amp;quot;h3-0-1444&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_METALNESSMAP
   2620 <a href="#l2601" class="line" id="l2601">   2601</a> &lt;a href=&quot;#l2582&quot; class=&quot;line&quot; id=&quot;l2582&quot;&gt;   2582&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1445&amp;quot; id=&amp;quot;h3-0-1445&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 texelMetalness = texture2D( metalnessMap, vMetalnessMapUv );
   2621 <a href="#l2602" class="line" id="l2602">   2602</a> &lt;a href=&quot;#l2583&quot; class=&quot;line&quot; id=&quot;l2583&quot;&gt;   2583&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1446&amp;quot; id=&amp;quot;h3-0-1446&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	metalnessFactor *= texelMetalness.b;
   2622 <a href="#l2603" class="line" id="l2603">   2603</a> &lt;a href=&quot;#l2584&quot; class=&quot;line&quot; id=&quot;l2584&quot;&gt;   2584&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1447&amp;quot; id=&amp;quot;h3-0-1447&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,yV=`#ifdef USE_METALNESSMAP
   2623 <a href="#l2604" class="line" id="l2604">   2604</a> &lt;a href=&quot;#l2585&quot; class=&quot;line&quot; id=&quot;l2585&quot;&gt;   2585&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1448&amp;quot; id=&amp;quot;h3-0-1448&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D metalnessMap;
   2624 <a href="#l2605" class="line" id="l2605">   2605</a> &lt;a href=&quot;#l2586&quot; class=&quot;line&quot; id=&quot;l2586&quot;&gt;   2586&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1449&amp;quot; id=&amp;quot;h3-0-1449&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,_V=`#ifdef USE_INSTANCING_MORPH
   2625 <a href="#l2606" class="line" id="l2606">   2606</a> &lt;a href=&quot;#l2587&quot; class=&quot;line&quot; id=&quot;l2587&quot;&gt;   2587&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1450&amp;quot; id=&amp;quot;h3-0-1450&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float morphTargetInfluences[ MORPHTARGETS_COUNT ];
   2626 <a href="#l2607" class="line" id="l2607">   2607</a> &lt;a href=&quot;#l2588&quot; class=&quot;line&quot; id=&quot;l2588&quot;&gt;   2588&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1451&amp;quot; id=&amp;quot;h3-0-1451&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float morphTargetBaseInfluence = texelFetch( morphTexture, ivec2( 0, gl_InstanceID ), 0 ).r;
   2627 <a href="#l2608" class="line" id="l2608">   2608</a> &lt;a href=&quot;#l2589&quot; class=&quot;line&quot; id=&quot;l2589&quot;&gt;   2589&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1452&amp;quot; id=&amp;quot;h3-0-1452&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; MORPHTARGETS_COUNT; i ++ ) {
   2628 <a href="#l2609" class="line" id="l2609">   2609</a> &lt;a href=&quot;#l2590&quot; class=&quot;line&quot; id=&quot;l2590&quot;&gt;   2590&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1453&amp;quot; id=&amp;quot;h3-0-1453&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		morphTargetInfluences[i] =  texelFetch( morphTexture, ivec2( i + 1, gl_InstanceID ), 0 ).r;
   2629 <a href="#l2610" class="line" id="l2610">   2610</a> &lt;a href=&quot;#l2591&quot; class=&quot;line&quot; id=&quot;l2591&quot;&gt;   2591&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1454&amp;quot; id=&amp;quot;h3-0-1454&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2630 <a href="#l2611" class="line" id="l2611">   2611</a> &lt;a href=&quot;#l2592&quot; class=&quot;line&quot; id=&quot;l2592&quot;&gt;   2592&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1455&amp;quot; id=&amp;quot;h3-0-1455&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,xV=`#if defined( USE_MORPHCOLORS )
   2631 <a href="#l2612" class="line" id="l2612">   2612</a> &lt;a href=&quot;#l2593&quot; class=&quot;line&quot; id=&quot;l2593&quot;&gt;   2593&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1456&amp;quot; id=&amp;quot;h3-0-1456&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vColor *= morphTargetBaseInfluence;
   2632 <a href="#l2613" class="line" id="l2613">   2613</a> &lt;a href=&quot;#l2594&quot; class=&quot;line&quot; id=&quot;l2594&quot;&gt;   2594&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1457&amp;quot; id=&amp;quot;h3-0-1457&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; MORPHTARGETS_COUNT; i ++ ) {
   2633 <a href="#l2614" class="line" id="l2614">   2614</a> &lt;a href=&quot;#l2595&quot; class=&quot;line&quot; id=&quot;l2595&quot;&gt;   2595&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1458&amp;quot; id=&amp;quot;h3-0-1458&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if defined( USE_COLOR_ALPHA )
   2634 <a href="#l2615" class="line" id="l2615">   2615</a> &lt;a href=&quot;#l2596&quot; class=&quot;line&quot; id=&quot;l2596&quot;&gt;   2596&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1459&amp;quot; id=&amp;quot;h3-0-1459&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ) * morphTargetInfluences[ i ];
   2635 <a href="#l2616" class="line" id="l2616">   2616</a> &lt;a href=&quot;#l2597&quot; class=&quot;line&quot; id=&quot;l2597&quot;&gt;   2597&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1460&amp;quot; id=&amp;quot;h3-0-1460&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#elif defined( USE_COLOR )
   2636 <a href="#l2617" class="line" id="l2617">   2617</a> &lt;a href=&quot;#l2598&quot; class=&quot;line&quot; id=&quot;l2598&quot;&gt;   2598&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1461&amp;quot; id=&amp;quot;h3-0-1461&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( morphTargetInfluences[ i ] != 0.0 ) vColor += getMorph( gl_VertexID, i, 2 ).rgb * morphTargetInfluences[ i ];
   2637 <a href="#l2618" class="line" id="l2618">   2618</a> &lt;a href=&quot;#l2599&quot; class=&quot;line&quot; id=&quot;l2599&quot;&gt;   2599&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1462&amp;quot; id=&amp;quot;h3-0-1462&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2638 <a href="#l2619" class="line" id="l2619">   2619</a> &lt;a href=&quot;#l2600&quot; class=&quot;line&quot; id=&quot;l2600&quot;&gt;   2600&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1463&amp;quot; id=&amp;quot;h3-0-1463&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2639 <a href="#l2620" class="line" id="l2620">   2620</a> &lt;a href=&quot;#l2601&quot; class=&quot;line&quot; id=&quot;l2601&quot;&gt;   2601&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1464&amp;quot; id=&amp;quot;h3-0-1464&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,SV=`#ifdef USE_MORPHNORMALS
   2640 <a href="#l2621" class="line" id="l2621">   2621</a> &lt;a href=&quot;#l2602&quot; class=&quot;line&quot; id=&quot;l2602&quot;&gt;   2602&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1465&amp;quot; id=&amp;quot;h3-0-1465&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	objectNormal *= morphTargetBaseInfluence;
   2641 <a href="#l2622" class="line" id="l2622">   2622</a> &lt;a href=&quot;#l2603&quot; class=&quot;line&quot; id=&quot;l2603&quot;&gt;   2603&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1466&amp;quot; id=&amp;quot;h3-0-1466&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; MORPHTARGETS_COUNT; i ++ ) {
   2642 <a href="#l2623" class="line" id="l2623">   2623</a> &lt;a href=&quot;#l2604&quot; class=&quot;line&quot; id=&quot;l2604&quot;&gt;   2604&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1467&amp;quot; id=&amp;quot;h3-0-1467&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( morphTargetInfluences[ i ] != 0.0 ) objectNormal += getMorph( gl_VertexID, i, 1 ).xyz * morphTargetInfluences[ i ];
   2643 <a href="#l2624" class="line" id="l2624">   2624</a> &lt;a href=&quot;#l2605&quot; class=&quot;line&quot; id=&quot;l2605&quot;&gt;   2605&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1468&amp;quot; id=&amp;quot;h3-0-1468&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2644 <a href="#l2625" class="line" id="l2625">   2625</a> &lt;a href=&quot;#l2606&quot; class=&quot;line&quot; id=&quot;l2606&quot;&gt;   2606&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1469&amp;quot; id=&amp;quot;h3-0-1469&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,MV=`#ifdef USE_MORPHTARGETS
   2645 <a href="#l2626" class="line" id="l2626">   2626</a> &lt;a href=&quot;#l2607&quot; class=&quot;line&quot; id=&quot;l2607&quot;&gt;   2607&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1470&amp;quot; id=&amp;quot;h3-0-1470&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifndef USE_INSTANCING_MORPH
   2646 <a href="#l2627" class="line" id="l2627">   2627</a> &lt;a href=&quot;#l2608&quot; class=&quot;line&quot; id=&quot;l2608&quot;&gt;   2608&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1471&amp;quot; id=&amp;quot;h3-0-1471&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform float morphTargetBaseInfluence;
   2647 <a href="#l2628" class="line" id="l2628">   2628</a> &lt;a href=&quot;#l2609&quot; class=&quot;line&quot; id=&quot;l2609&quot;&gt;   2609&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1472&amp;quot; id=&amp;quot;h3-0-1472&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform float morphTargetInfluences[ MORPHTARGETS_COUNT ];
   2648 <a href="#l2629" class="line" id="l2629">   2629</a> &lt;a href=&quot;#l2610&quot; class=&quot;line&quot; id=&quot;l2610&quot;&gt;   2610&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1473&amp;quot; id=&amp;quot;h3-0-1473&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2649 <a href="#l2630" class="line" id="l2630">   2630</a> &lt;a href=&quot;#l2611&quot; class=&quot;line&quot; id=&quot;l2611&quot;&gt;   2611&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1474&amp;quot; id=&amp;quot;h3-0-1474&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2DArray morphTargetsTexture;
   2650 <a href="#l2631" class="line" id="l2631">   2631</a> &lt;a href=&quot;#l2612&quot; class=&quot;line&quot; id=&quot;l2612&quot;&gt;   2612&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1475&amp;quot; id=&amp;quot;h3-0-1475&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform ivec2 morphTargetsTextureSize;
   2651 <a href="#l2632" class="line" id="l2632">   2632</a> &lt;a href=&quot;#l2613&quot; class=&quot;line&quot; id=&quot;l2613&quot;&gt;   2613&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1476&amp;quot; id=&amp;quot;h3-0-1476&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 getMorph( const in int vertexIndex, const in int morphTargetIndex, const in int offset ) {
   2652 <a href="#l2633" class="line" id="l2633">   2633</a> &lt;a href=&quot;#l2614&quot; class=&quot;line&quot; id=&quot;l2614&quot;&gt;   2614&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1477&amp;quot; id=&amp;quot;h3-0-1477&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int texelIndex = vertexIndex * MORPHTARGETS_TEXTURE_STRIDE + offset;
   2653 <a href="#l2634" class="line" id="l2634">   2634</a> &lt;a href=&quot;#l2615&quot; class=&quot;line&quot; id=&quot;l2615&quot;&gt;   2615&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1478&amp;quot; id=&amp;quot;h3-0-1478&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int y = texelIndex / morphTargetsTextureSize.x;
   2654 <a href="#l2635" class="line" id="l2635">   2635</a> &lt;a href=&quot;#l2616&quot; class=&quot;line&quot; id=&quot;l2616&quot;&gt;   2616&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1479&amp;quot; id=&amp;quot;h3-0-1479&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int x = texelIndex - y * morphTargetsTextureSize.x;
   2655 <a href="#l2636" class="line" id="l2636">   2636</a> &lt;a href=&quot;#l2617&quot; class=&quot;line&quot; id=&quot;l2617&quot;&gt;   2617&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1480&amp;quot; id=&amp;quot;h3-0-1480&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		ivec3 morphUV = ivec3( x, y, morphTargetIndex );
   2656 <a href="#l2637" class="line" id="l2637">   2637</a> &lt;a href=&quot;#l2618&quot; class=&quot;line&quot; id=&quot;l2618&quot;&gt;   2618&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1481&amp;quot; id=&amp;quot;h3-0-1481&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return texelFetch( morphTargetsTexture, morphUV, 0 );
   2657 <a href="#l2638" class="line" id="l2638">   2638</a> &lt;a href=&quot;#l2619&quot; class=&quot;line&quot; id=&quot;l2619&quot;&gt;   2619&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1482&amp;quot; id=&amp;quot;h3-0-1482&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2658 <a href="#l2639" class="line" id="l2639">   2639</a> &lt;a href=&quot;#l2620&quot; class=&quot;line&quot; id=&quot;l2620&quot;&gt;   2620&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1483&amp;quot; id=&amp;quot;h3-0-1483&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,EV=`#ifdef USE_MORPHTARGETS
   2659 <a href="#l2640" class="line" id="l2640">   2640</a> &lt;a href=&quot;#l2621&quot; class=&quot;line&quot; id=&quot;l2621&quot;&gt;   2621&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1484&amp;quot; id=&amp;quot;h3-0-1484&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformed *= morphTargetBaseInfluence;
   2660 <a href="#l2641" class="line" id="l2641">   2641</a> &lt;a href=&quot;#l2622&quot; class=&quot;line&quot; id=&quot;l2622&quot;&gt;   2622&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1485&amp;quot; id=&amp;quot;h3-0-1485&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; MORPHTARGETS_COUNT; i ++ ) {
   2661 <a href="#l2642" class="line" id="l2642">   2642</a> &lt;a href=&quot;#l2623&quot; class=&quot;line&quot; id=&quot;l2623&quot;&gt;   2623&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1486&amp;quot; id=&amp;quot;h3-0-1486&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( morphTargetInfluences[ i ] != 0.0 ) transformed += getMorph( gl_VertexID, i, 0 ).xyz * morphTargetInfluences[ i ];
   2662 <a href="#l2643" class="line" id="l2643">   2643</a> &lt;a href=&quot;#l2624&quot; class=&quot;line&quot; id=&quot;l2624&quot;&gt;   2624&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1487&amp;quot; id=&amp;quot;h3-0-1487&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2663 <a href="#l2644" class="line" id="l2644">   2644</a> &lt;a href=&quot;#l2625&quot; class=&quot;line&quot; id=&quot;l2625&quot;&gt;   2625&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1488&amp;quot; id=&amp;quot;h3-0-1488&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,bV=`float faceDirection = gl_FrontFacing ? 1.0 : - 1.0;
   2664 <a href="#l2645" class="line" id="l2645">   2645</a> &lt;a href=&quot;#l2626&quot; class=&quot;line&quot; id=&quot;l2626&quot;&gt;   2626&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1489&amp;quot; id=&amp;quot;h3-0-1489&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef FLAT_SHADED
   2665 <a href="#l2646" class="line" id="l2646">   2646</a> &lt;a href=&quot;#l2627&quot; class=&quot;line&quot; id=&quot;l2627&quot;&gt;   2627&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1490&amp;quot; id=&amp;quot;h3-0-1490&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 fdx = dFdx( vViewPosition );
   2666 <a href="#l2647" class="line" id="l2647">   2647</a> &lt;a href=&quot;#l2628&quot; class=&quot;line&quot; id=&quot;l2628&quot;&gt;   2628&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1491&amp;quot; id=&amp;quot;h3-0-1491&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 fdy = dFdy( vViewPosition );
   2667 <a href="#l2648" class="line" id="l2648">   2648</a> &lt;a href=&quot;#l2629&quot; class=&quot;line&quot; id=&quot;l2629&quot;&gt;   2629&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1492&amp;quot; id=&amp;quot;h3-0-1492&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 normal = normalize( cross( fdx, fdy ) );
   2668 <a href="#l2649" class="line" id="l2649">   2649</a> &lt;a href=&quot;#l2630&quot; class=&quot;line&quot; id=&quot;l2630&quot;&gt;   2630&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1493&amp;quot; id=&amp;quot;h3-0-1493&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   2669 <a href="#l2650" class="line" id="l2650">   2650</a> &lt;a href=&quot;#l2631&quot; class=&quot;line&quot; id=&quot;l2631&quot;&gt;   2631&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1494&amp;quot; id=&amp;quot;h3-0-1494&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 normal = normalize( vNormal );
   2670 <a href="#l2651" class="line" id="l2651">   2651</a> &lt;a href=&quot;#l2632&quot; class=&quot;line&quot; id=&quot;l2632&quot;&gt;   2632&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1495&amp;quot; id=&amp;quot;h3-0-1495&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef DOUBLE_SIDED
   2671 <a href="#l2652" class="line" id="l2652">   2652</a> &lt;a href=&quot;#l2633&quot; class=&quot;line&quot; id=&quot;l2633&quot;&gt;   2633&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1496&amp;quot; id=&amp;quot;h3-0-1496&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		normal *= faceDirection;
   2672 <a href="#l2653" class="line" id="l2653">   2653</a> &lt;a href=&quot;#l2634&quot; class=&quot;line&quot; id=&quot;l2634&quot;&gt;   2634&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1497&amp;quot; id=&amp;quot;h3-0-1497&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2673 <a href="#l2654" class="line" id="l2654">   2654</a> &lt;a href=&quot;#l2635&quot; class=&quot;line&quot; id=&quot;l2635&quot;&gt;   2635&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1498&amp;quot; id=&amp;quot;h3-0-1498&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2674 <a href="#l2655" class="line" id="l2655">   2655</a> &lt;a href=&quot;#l2636&quot; class=&quot;line&quot; id=&quot;l2636&quot;&gt;   2636&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1499&amp;quot; id=&amp;quot;h3-0-1499&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( USE_NORMALMAP_TANGENTSPACE ) || defined( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY )
   2675 <a href="#l2656" class="line" id="l2656">   2656</a> &lt;a href=&quot;#l2637&quot; class=&quot;line&quot; id=&quot;l2637&quot;&gt;   2637&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1500&amp;quot; id=&amp;quot;h3-0-1500&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TANGENT
   2676 <a href="#l2657" class="line" id="l2657">   2657</a> &lt;a href=&quot;#l2638&quot; class=&quot;line&quot; id=&quot;l2638&quot;&gt;   2638&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1501&amp;quot; id=&amp;quot;h3-0-1501&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		mat3 tbn = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
   2677 <a href="#l2658" class="line" id="l2658">   2658</a> &lt;a href=&quot;#l2639&quot; class=&quot;line&quot; id=&quot;l2639&quot;&gt;   2639&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1502&amp;quot; id=&amp;quot;h3-0-1502&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2678 <a href="#l2659" class="line" id="l2659">   2659</a> &lt;a href=&quot;#l2640&quot; class=&quot;line&quot; id=&quot;l2640&quot;&gt;   2640&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1503&amp;quot; id=&amp;quot;h3-0-1503&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		mat3 tbn = getTangentFrame( - vViewPosition, normal,
   2679 <a href="#l2660" class="line" id="l2660">   2660</a> &lt;a href=&quot;#l2641&quot; class=&quot;line&quot; id=&quot;l2641&quot;&gt;   2641&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1504&amp;quot; id=&amp;quot;h3-0-1504&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if defined( USE_NORMALMAP )
   2680 <a href="#l2661" class="line" id="l2661">   2661</a> &lt;a href=&quot;#l2642&quot; class=&quot;line&quot; id=&quot;l2642&quot;&gt;   2642&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1505&amp;quot; id=&amp;quot;h3-0-1505&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vNormalMapUv
   2681 <a href="#l2662" class="line" id="l2662">   2662</a> &lt;a href=&quot;#l2643&quot; class=&quot;line&quot; id=&quot;l2643&quot;&gt;   2643&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1506&amp;quot; id=&amp;quot;h3-0-1506&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#elif defined( USE_CLEARCOAT_NORMALMAP )
   2682 <a href="#l2663" class="line" id="l2663">   2663</a> &lt;a href=&quot;#l2644&quot; class=&quot;line&quot; id=&quot;l2644&quot;&gt;   2644&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1507&amp;quot; id=&amp;quot;h3-0-1507&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vClearcoatNormalMapUv
   2683 <a href="#l2664" class="line" id="l2664">   2664</a> &lt;a href=&quot;#l2645&quot; class=&quot;line&quot; id=&quot;l2645&quot;&gt;   2645&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1508&amp;quot; id=&amp;quot;h3-0-1508&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   2684 <a href="#l2665" class="line" id="l2665">   2665</a> &lt;a href=&quot;#l2646&quot; class=&quot;line&quot; id=&quot;l2646&quot;&gt;   2646&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1509&amp;quot; id=&amp;quot;h3-0-1509&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vUv
   2685 <a href="#l2666" class="line" id="l2666">   2666</a> &lt;a href=&quot;#l2647&quot; class=&quot;line&quot; id=&quot;l2647&quot;&gt;   2647&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1510&amp;quot; id=&amp;quot;h3-0-1510&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2686 <a href="#l2667" class="line" id="l2667">   2667</a> &lt;a href=&quot;#l2648&quot; class=&quot;line&quot; id=&quot;l2648&quot;&gt;   2648&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1511&amp;quot; id=&amp;quot;h3-0-1511&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		);
   2687 <a href="#l2668" class="line" id="l2668">   2668</a> &lt;a href=&quot;#l2649&quot; class=&quot;line&quot; id=&quot;l2649&quot;&gt;   2649&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1512&amp;quot; id=&amp;quot;h3-0-1512&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2688 <a href="#l2669" class="line" id="l2669">   2669</a> &lt;a href=&quot;#l2650&quot; class=&quot;line&quot; id=&quot;l2650&quot;&gt;   2650&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1513&amp;quot; id=&amp;quot;h3-0-1513&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( DOUBLE_SIDED ) &amp;amp;amp;&amp;amp;amp; ! defined( FLAT_SHADED )
   2689 <a href="#l2670" class="line" id="l2670">   2670</a> &lt;a href=&quot;#l2651&quot; class=&quot;line&quot; id=&quot;l2651&quot;&gt;   2651&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1514&amp;quot; id=&amp;quot;h3-0-1514&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		tbn[0] *= faceDirection;
   2690 <a href="#l2671" class="line" id="l2671">   2671</a> &lt;a href=&quot;#l2652&quot; class=&quot;line&quot; id=&quot;l2652&quot;&gt;   2652&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1515&amp;quot; id=&amp;quot;h3-0-1515&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		tbn[1] *= faceDirection;
   2691 <a href="#l2672" class="line" id="l2672">   2672</a> &lt;a href=&quot;#l2653&quot; class=&quot;line&quot; id=&quot;l2653&quot;&gt;   2653&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1516&amp;quot; id=&amp;quot;h3-0-1516&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2692 <a href="#l2673" class="line" id="l2673">   2673</a> &lt;a href=&quot;#l2654&quot; class=&quot;line&quot; id=&quot;l2654&quot;&gt;   2654&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1517&amp;quot; id=&amp;quot;h3-0-1517&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2693 <a href="#l2674" class="line" id="l2674">   2674</a> &lt;a href=&quot;#l2655&quot; class=&quot;line&quot; id=&quot;l2655&quot;&gt;   2655&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1518&amp;quot; id=&amp;quot;h3-0-1518&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_NORMALMAP
   2694 <a href="#l2675" class="line" id="l2675">   2675</a> &lt;a href=&quot;#l2656&quot; class=&quot;line&quot; id=&quot;l2656&quot;&gt;   2656&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1519&amp;quot; id=&amp;quot;h3-0-1519&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TANGENT
   2695 <a href="#l2676" class="line" id="l2676">   2676</a> &lt;a href=&quot;#l2657&quot; class=&quot;line&quot; id=&quot;l2657&quot;&gt;   2657&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1520&amp;quot; id=&amp;quot;h3-0-1520&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		mat3 tbn2 = mat3( normalize( vTangent ), normalize( vBitangent ), normal );
   2696 <a href="#l2677" class="line" id="l2677">   2677</a> &lt;a href=&quot;#l2658&quot; class=&quot;line&quot; id=&quot;l2658&quot;&gt;   2658&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1521&amp;quot; id=&amp;quot;h3-0-1521&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   2697 <a href="#l2678" class="line" id="l2678">   2678</a> &lt;a href=&quot;#l2659&quot; class=&quot;line&quot; id=&quot;l2659&quot;&gt;   2659&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1522&amp;quot; id=&amp;quot;h3-0-1522&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		mat3 tbn2 = getTangentFrame( - vViewPosition, normal, vClearcoatNormalMapUv );
   2698 <a href="#l2679" class="line" id="l2679">   2679</a> &lt;a href=&quot;#l2660&quot; class=&quot;line&quot; id=&quot;l2660&quot;&gt;   2660&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1523&amp;quot; id=&amp;quot;h3-0-1523&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2699 <a href="#l2680" class="line" id="l2680">   2680</a> &lt;a href=&quot;#l2661&quot; class=&quot;line&quot; id=&quot;l2661&quot;&gt;   2661&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1524&amp;quot; id=&amp;quot;h3-0-1524&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined( DOUBLE_SIDED ) &amp;amp;amp;&amp;amp;amp; ! defined( FLAT_SHADED )
   2700 <a href="#l2681" class="line" id="l2681">   2681</a> &lt;a href=&quot;#l2662&quot; class=&quot;line&quot; id=&quot;l2662&quot;&gt;   2662&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1525&amp;quot; id=&amp;quot;h3-0-1525&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		tbn2[0] *= faceDirection;
   2701 <a href="#l2682" class="line" id="l2682">   2682</a> &lt;a href=&quot;#l2663&quot; class=&quot;line&quot; id=&quot;l2663&quot;&gt;   2663&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1526&amp;quot; id=&amp;quot;h3-0-1526&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		tbn2[1] *= faceDirection;
   2702 <a href="#l2683" class="line" id="l2683">   2683</a> &lt;a href=&quot;#l2664&quot; class=&quot;line&quot; id=&quot;l2664&quot;&gt;   2664&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1527&amp;quot; id=&amp;quot;h3-0-1527&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2703 <a href="#l2684" class="line" id="l2684">   2684</a> &lt;a href=&quot;#l2665&quot; class=&quot;line&quot; id=&quot;l2665&quot;&gt;   2665&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1528&amp;quot; id=&amp;quot;h3-0-1528&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2704 <a href="#l2685" class="line" id="l2685">   2685</a> &lt;a href=&quot;#l2666&quot; class=&quot;line&quot; id=&quot;l2666&quot;&gt;   2666&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1529&amp;quot; id=&amp;quot;h3-0-1529&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 nonPerturbedNormal = normal;`,TV=`#ifdef USE_NORMALMAP_OBJECTSPACE
   2705 <a href="#l2686" class="line" id="l2686">   2686</a> &lt;a href=&quot;#l2667&quot; class=&quot;line&quot; id=&quot;l2667&quot;&gt;   2667&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1530&amp;quot; id=&amp;quot;h3-0-1530&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	normal = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
   2706 <a href="#l2687" class="line" id="l2687">   2687</a> &lt;a href=&quot;#l2668&quot; class=&quot;line&quot; id=&quot;l2668&quot;&gt;   2668&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1531&amp;quot; id=&amp;quot;h3-0-1531&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef FLIP_SIDED
   2707 <a href="#l2688" class="line" id="l2688">   2688</a> &lt;a href=&quot;#l2669&quot; class=&quot;line&quot; id=&quot;l2669&quot;&gt;   2669&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1532&amp;quot; id=&amp;quot;h3-0-1532&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		normal = - normal;
   2708 <a href="#l2689" class="line" id="l2689">   2689</a> &lt;a href=&quot;#l2670&quot; class=&quot;line&quot; id=&quot;l2670&quot;&gt;   2670&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1533&amp;quot; id=&amp;quot;h3-0-1533&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2709 <a href="#l2690" class="line" id="l2690">   2690</a> &lt;a href=&quot;#l2671&quot; class=&quot;line&quot; id=&quot;l2671&quot;&gt;   2671&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1534&amp;quot; id=&amp;quot;h3-0-1534&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef DOUBLE_SIDED
   2710 <a href="#l2691" class="line" id="l2691">   2691</a> &lt;a href=&quot;#l2672&quot; class=&quot;line&quot; id=&quot;l2672&quot;&gt;   2672&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1535&amp;quot; id=&amp;quot;h3-0-1535&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		normal = normal * faceDirection;
   2711 <a href="#l2692" class="line" id="l2692">   2692</a> &lt;a href=&quot;#l2673&quot; class=&quot;line&quot; id=&quot;l2673&quot;&gt;   2673&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1536&amp;quot; id=&amp;quot;h3-0-1536&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2712 <a href="#l2693" class="line" id="l2693">   2693</a> &lt;a href=&quot;#l2674&quot; class=&quot;line&quot; id=&quot;l2674&quot;&gt;   2674&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1537&amp;quot; id=&amp;quot;h3-0-1537&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	normal = normalize( normalMatrix * normal );
   2713 <a href="#l2694" class="line" id="l2694">   2694</a> &lt;a href=&quot;#l2675&quot; class=&quot;line&quot; id=&quot;l2675&quot;&gt;   2675&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1538&amp;quot; id=&amp;quot;h3-0-1538&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#elif defined( USE_NORMALMAP_TANGENTSPACE )
   2714 <a href="#l2695" class="line" id="l2695">   2695</a> &lt;a href=&quot;#l2676&quot; class=&quot;line&quot; id=&quot;l2676&quot;&gt;   2676&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1539&amp;quot; id=&amp;quot;h3-0-1539&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 mapN = texture2D( normalMap, vNormalMapUv ).xyz * 2.0 - 1.0;
   2715 <a href="#l2696" class="line" id="l2696">   2696</a> &lt;a href=&quot;#l2677&quot; class=&quot;line&quot; id=&quot;l2677&quot;&gt;   2677&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1540&amp;quot; id=&amp;quot;h3-0-1540&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mapN.xy *= normalScale;
   2716 <a href="#l2697" class="line" id="l2697">   2697</a> &lt;a href=&quot;#l2678&quot; class=&quot;line&quot; id=&quot;l2678&quot;&gt;   2678&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1541&amp;quot; id=&amp;quot;h3-0-1541&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	normal = normalize( tbn * mapN );
   2717 <a href="#l2698" class="line" id="l2698">   2698</a> &lt;a href=&quot;#l2679&quot; class=&quot;line&quot; id=&quot;l2679&quot;&gt;   2679&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1542&amp;quot; id=&amp;quot;h3-0-1542&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#elif defined( USE_BUMPMAP )
   2718 <a href="#l2699" class="line" id="l2699">   2699</a> &lt;a href=&quot;#l2680&quot; class=&quot;line&quot; id=&quot;l2680&quot;&gt;   2680&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1543&amp;quot; id=&amp;quot;h3-0-1543&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	normal = perturbNormalArb( - vViewPosition, normal, dHdxy_fwd(), faceDirection );
   2719 <a href="#l2700" class="line" id="l2700">   2700</a> &lt;a href=&quot;#l2681&quot; class=&quot;line&quot; id=&quot;l2681&quot;&gt;   2681&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1544&amp;quot; id=&amp;quot;h3-0-1544&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,AV=`#ifndef FLAT_SHADED
   2720 <a href="#l2701" class="line" id="l2701">   2701</a> &lt;a href=&quot;#l2682&quot; class=&quot;line&quot; id=&quot;l2682&quot;&gt;   2682&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1545&amp;quot; id=&amp;quot;h3-0-1545&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vNormal;
   2721 <a href="#l2702" class="line" id="l2702">   2702</a> &lt;a href=&quot;#l2683&quot; class=&quot;line&quot; id=&quot;l2683&quot;&gt;   2683&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1546&amp;quot; id=&amp;quot;h3-0-1546&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TANGENT
   2722 <a href="#l2703" class="line" id="l2703">   2703</a> &lt;a href=&quot;#l2684&quot; class=&quot;line&quot; id=&quot;l2684&quot;&gt;   2684&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1547&amp;quot; id=&amp;quot;h3-0-1547&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vTangent;
   2723 <a href="#l2704" class="line" id="l2704">   2704</a> &lt;a href=&quot;#l2685&quot; class=&quot;line&quot; id=&quot;l2685&quot;&gt;   2685&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1548&amp;quot; id=&amp;quot;h3-0-1548&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vBitangent;
   2724 <a href="#l2705" class="line" id="l2705">   2705</a> &lt;a href=&quot;#l2686&quot; class=&quot;line&quot; id=&quot;l2686&quot;&gt;   2686&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1549&amp;quot; id=&amp;quot;h3-0-1549&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2725 <a href="#l2706" class="line" id="l2706">   2706</a> &lt;a href=&quot;#l2687&quot; class=&quot;line&quot; id=&quot;l2687&quot;&gt;   2687&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1550&amp;quot; id=&amp;quot;h3-0-1550&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,RV=`#ifndef FLAT_SHADED
   2726 <a href="#l2707" class="line" id="l2707">   2707</a> &lt;a href=&quot;#l2688&quot; class=&quot;line&quot; id=&quot;l2688&quot;&gt;   2688&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1551&amp;quot; id=&amp;quot;h3-0-1551&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vNormal;
   2727 <a href="#l2708" class="line" id="l2708">   2708</a> &lt;a href=&quot;#l2689&quot; class=&quot;line&quot; id=&quot;l2689&quot;&gt;   2689&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1552&amp;quot; id=&amp;quot;h3-0-1552&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TANGENT
   2728 <a href="#l2709" class="line" id="l2709">   2709</a> &lt;a href=&quot;#l2690&quot; class=&quot;line&quot; id=&quot;l2690&quot;&gt;   2690&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1553&amp;quot; id=&amp;quot;h3-0-1553&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vTangent;
   2729 <a href="#l2710" class="line" id="l2710">   2710</a> &lt;a href=&quot;#l2691&quot; class=&quot;line&quot; id=&quot;l2691&quot;&gt;   2691&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1554&amp;quot; id=&amp;quot;h3-0-1554&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vBitangent;
   2730 <a href="#l2711" class="line" id="l2711">   2711</a> &lt;a href=&quot;#l2692&quot; class=&quot;line&quot; id=&quot;l2692&quot;&gt;   2692&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1555&amp;quot; id=&amp;quot;h3-0-1555&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2731 <a href="#l2712" class="line" id="l2712">   2712</a> &lt;a href=&quot;#l2693&quot; class=&quot;line&quot; id=&quot;l2693&quot;&gt;   2693&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1556&amp;quot; id=&amp;quot;h3-0-1556&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,CV=`#ifndef FLAT_SHADED
   2732 <a href="#l2713" class="line" id="l2713">   2713</a> &lt;a href=&quot;#l2694&quot; class=&quot;line&quot; id=&quot;l2694&quot;&gt;   2694&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1557&amp;quot; id=&amp;quot;h3-0-1557&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vNormal = normalize( transformedNormal );
   2733 <a href="#l2714" class="line" id="l2714">   2714</a> &lt;a href=&quot;#l2695&quot; class=&quot;line&quot; id=&quot;l2695&quot;&gt;   2695&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1558&amp;quot; id=&amp;quot;h3-0-1558&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TANGENT
   2734 <a href="#l2715" class="line" id="l2715">   2715</a> &lt;a href=&quot;#l2696&quot; class=&quot;line&quot; id=&quot;l2696&quot;&gt;   2696&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1559&amp;quot; id=&amp;quot;h3-0-1559&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vTangent = normalize( transformedTangent );
   2735 <a href="#l2716" class="line" id="l2716">   2716</a> &lt;a href=&quot;#l2697&quot; class=&quot;line&quot; id=&quot;l2697&quot;&gt;   2697&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1560&amp;quot; id=&amp;quot;h3-0-1560&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vBitangent = normalize( cross( vNormal, vTangent ) * tangent.w );
   2736 <a href="#l2717" class="line" id="l2717">   2717</a> &lt;a href=&quot;#l2698&quot; class=&quot;line&quot; id=&quot;l2698&quot;&gt;   2698&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1561&amp;quot; id=&amp;quot;h3-0-1561&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2737 <a href="#l2718" class="line" id="l2718">   2718</a> &lt;a href=&quot;#l2699&quot; class=&quot;line&quot; id=&quot;l2699&quot;&gt;   2699&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1562&amp;quot; id=&amp;quot;h3-0-1562&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,wV=`#ifdef USE_NORMALMAP
   2738 <a href="#l2719" class="line" id="l2719">   2719</a> &lt;a href=&quot;#l2700&quot; class=&quot;line&quot; id=&quot;l2700&quot;&gt;   2700&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1563&amp;quot; id=&amp;quot;h3-0-1563&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D normalMap;
   2739 <a href="#l2720" class="line" id="l2720">   2720</a> &lt;a href=&quot;#l2701&quot; class=&quot;line&quot; id=&quot;l2701&quot;&gt;   2701&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1564&amp;quot; id=&amp;quot;h3-0-1564&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec2 normalScale;
   2740 <a href="#l2721" class="line" id="l2721">   2721</a> &lt;a href=&quot;#l2702&quot; class=&quot;line&quot; id=&quot;l2702&quot;&gt;   2702&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1565&amp;quot; id=&amp;quot;h3-0-1565&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2741 <a href="#l2722" class="line" id="l2722">   2722</a> &lt;a href=&quot;#l2703&quot; class=&quot;line&quot; id=&quot;l2703&quot;&gt;   2703&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1566&amp;quot; id=&amp;quot;h3-0-1566&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_NORMALMAP_OBJECTSPACE
   2742 <a href="#l2723" class="line" id="l2723">   2723</a> &lt;a href=&quot;#l2704&quot; class=&quot;line&quot; id=&quot;l2704&quot;&gt;   2704&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1567&amp;quot; id=&amp;quot;h3-0-1567&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 normalMatrix;
   2743 <a href="#l2724" class="line" id="l2724">   2724</a> &lt;a href=&quot;#l2705&quot; class=&quot;line&quot; id=&quot;l2705&quot;&gt;   2705&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1568&amp;quot; id=&amp;quot;h3-0-1568&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2744 <a href="#l2725" class="line" id="l2725">   2725</a> &lt;a href=&quot;#l2706&quot; class=&quot;line&quot; id=&quot;l2706&quot;&gt;   2706&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1569&amp;quot; id=&amp;quot;h3-0-1569&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if ! defined ( USE_TANGENT ) &amp;amp;amp;&amp;amp;amp; ( defined ( USE_NORMALMAP_TANGENTSPACE ) || defined ( USE_CLEARCOAT_NORMALMAP ) || defined( USE_ANISOTROPY ) )
   2745 <a href="#l2726" class="line" id="l2726">   2726</a> &lt;a href=&quot;#l2707&quot; class=&quot;line&quot; id=&quot;l2707&quot;&gt;   2707&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1570&amp;quot; id=&amp;quot;h3-0-1570&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat3 getTangentFrame( vec3 eye_pos, vec3 surf_norm, vec2 uv ) {
   2746 <a href="#l2727" class="line" id="l2727">   2727</a> &lt;a href=&quot;#l2708&quot; class=&quot;line&quot; id=&quot;l2708&quot;&gt;   2708&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1571&amp;quot; id=&amp;quot;h3-0-1571&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 q0 = dFdx( eye_pos.xyz );
   2747 <a href="#l2728" class="line" id="l2728">   2728</a> &lt;a href=&quot;#l2709&quot; class=&quot;line&quot; id=&quot;l2709&quot;&gt;   2709&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1572&amp;quot; id=&amp;quot;h3-0-1572&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 q1 = dFdy( eye_pos.xyz );
   2748 <a href="#l2729" class="line" id="l2729">   2729</a> &lt;a href=&quot;#l2710&quot; class=&quot;line&quot; id=&quot;l2710&quot;&gt;   2710&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1573&amp;quot; id=&amp;quot;h3-0-1573&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 st0 = dFdx( uv.st );
   2749 <a href="#l2730" class="line" id="l2730">   2730</a> &lt;a href=&quot;#l2711&quot; class=&quot;line&quot; id=&quot;l2711&quot;&gt;   2711&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1574&amp;quot; id=&amp;quot;h3-0-1574&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 st1 = dFdy( uv.st );
   2750 <a href="#l2731" class="line" id="l2731">   2731</a> &lt;a href=&quot;#l2712&quot; class=&quot;line&quot; id=&quot;l2712&quot;&gt;   2712&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1575&amp;quot; id=&amp;quot;h3-0-1575&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 N = surf_norm;
   2751 <a href="#l2732" class="line" id="l2732">   2732</a> &lt;a href=&quot;#l2713&quot; class=&quot;line&quot; id=&quot;l2713&quot;&gt;   2713&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1576&amp;quot; id=&amp;quot;h3-0-1576&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 q1perp = cross( q1, N );
   2752 <a href="#l2733" class="line" id="l2733">   2733</a> &lt;a href=&quot;#l2714&quot; class=&quot;line&quot; id=&quot;l2714&quot;&gt;   2714&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1577&amp;quot; id=&amp;quot;h3-0-1577&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 q0perp = cross( N, q0 );
   2753 <a href="#l2734" class="line" id="l2734">   2734</a> &lt;a href=&quot;#l2715&quot; class=&quot;line&quot; id=&quot;l2715&quot;&gt;   2715&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1578&amp;quot; id=&amp;quot;h3-0-1578&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 T = q1perp * st0.x + q0perp * st1.x;
   2754 <a href="#l2735" class="line" id="l2735">   2735</a> &lt;a href=&quot;#l2716&quot; class=&quot;line&quot; id=&quot;l2716&quot;&gt;   2716&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1579&amp;quot; id=&amp;quot;h3-0-1579&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 B = q1perp * st0.y + q0perp * st1.y;
   2755 <a href="#l2736" class="line" id="l2736">   2736</a> &lt;a href=&quot;#l2717&quot; class=&quot;line&quot; id=&quot;l2717&quot;&gt;   2717&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1580&amp;quot; id=&amp;quot;h3-0-1580&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float det = max( dot( T, T ), dot( B, B ) );
   2756 <a href="#l2737" class="line" id="l2737">   2737</a> &lt;a href=&quot;#l2718&quot; class=&quot;line&quot; id=&quot;l2718&quot;&gt;   2718&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1581&amp;quot; id=&amp;quot;h3-0-1581&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float scale = ( det == 0.0 ) ? 0.0 : inversesqrt( det );
   2757 <a href="#l2738" class="line" id="l2738">   2738</a> &lt;a href=&quot;#l2719&quot; class=&quot;line&quot; id=&quot;l2719&quot;&gt;   2719&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1582&amp;quot; id=&amp;quot;h3-0-1582&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return mat3( T * scale, B * scale, N );
   2758 <a href="#l2739" class="line" id="l2739">   2739</a> &lt;a href=&quot;#l2720&quot; class=&quot;line&quot; id=&quot;l2720&quot;&gt;   2720&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1583&amp;quot; id=&amp;quot;h3-0-1583&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2759 <a href="#l2740" class="line" id="l2740">   2740</a> &lt;a href=&quot;#l2721&quot; class=&quot;line&quot; id=&quot;l2721&quot;&gt;   2721&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1584&amp;quot; id=&amp;quot;h3-0-1584&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,DV=`#ifdef USE_CLEARCOAT
   2760 <a href="#l2741" class="line" id="l2741">   2741</a> &lt;a href=&quot;#l2722&quot; class=&quot;line&quot; id=&quot;l2722&quot;&gt;   2722&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1585&amp;quot; id=&amp;quot;h3-0-1585&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 clearcoatNormal = nonPerturbedNormal;
   2761 <a href="#l2742" class="line" id="l2742">   2742</a> &lt;a href=&quot;#l2723&quot; class=&quot;line&quot; id=&quot;l2723&quot;&gt;   2723&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1586&amp;quot; id=&amp;quot;h3-0-1586&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,UV=`#ifdef USE_CLEARCOAT_NORMALMAP
   2762 <a href="#l2743" class="line" id="l2743">   2743</a> &lt;a href=&quot;#l2724&quot; class=&quot;line&quot; id=&quot;l2724&quot;&gt;   2724&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1587&amp;quot; id=&amp;quot;h3-0-1587&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 clearcoatMapN = texture2D( clearcoatNormalMap, vClearcoatNormalMapUv ).xyz * 2.0 - 1.0;
   2763 <a href="#l2744" class="line" id="l2744">   2744</a> &lt;a href=&quot;#l2725&quot; class=&quot;line&quot; id=&quot;l2725&quot;&gt;   2725&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1588&amp;quot; id=&amp;quot;h3-0-1588&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	clearcoatMapN.xy *= clearcoatNormalScale;
   2764 <a href="#l2745" class="line" id="l2745">   2745</a> &lt;a href=&quot;#l2726&quot; class=&quot;line&quot; id=&quot;l2726&quot;&gt;   2726&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1589&amp;quot; id=&amp;quot;h3-0-1589&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	clearcoatNormal = normalize( tbn2 * clearcoatMapN );
   2765 <a href="#l2746" class="line" id="l2746">   2746</a> &lt;a href=&quot;#l2727&quot; class=&quot;line&quot; id=&quot;l2727&quot;&gt;   2727&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1590&amp;quot; id=&amp;quot;h3-0-1590&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,NV=`#ifdef USE_CLEARCOATMAP
   2766 <a href="#l2747" class="line" id="l2747">   2747</a> &lt;a href=&quot;#l2728&quot; class=&quot;line&quot; id=&quot;l2728&quot;&gt;   2728&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1591&amp;quot; id=&amp;quot;h3-0-1591&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D clearcoatMap;
   2767 <a href="#l2748" class="line" id="l2748">   2748</a> &lt;a href=&quot;#l2729&quot; class=&quot;line&quot; id=&quot;l2729&quot;&gt;   2729&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1592&amp;quot; id=&amp;quot;h3-0-1592&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2768 <a href="#l2749" class="line" id="l2749">   2749</a> &lt;a href=&quot;#l2730&quot; class=&quot;line&quot; id=&quot;l2730&quot;&gt;   2730&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1593&amp;quot; id=&amp;quot;h3-0-1593&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_NORMALMAP
   2769 <a href="#l2750" class="line" id="l2750">   2750</a> &lt;a href=&quot;#l2731&quot; class=&quot;line&quot; id=&quot;l2731&quot;&gt;   2731&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1594&amp;quot; id=&amp;quot;h3-0-1594&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D clearcoatNormalMap;
   2770 <a href="#l2751" class="line" id="l2751">   2751</a> &lt;a href=&quot;#l2732&quot; class=&quot;line&quot; id=&quot;l2732&quot;&gt;   2732&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1595&amp;quot; id=&amp;quot;h3-0-1595&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec2 clearcoatNormalScale;
   2771 <a href="#l2752" class="line" id="l2752">   2752</a> &lt;a href=&quot;#l2733&quot; class=&quot;line&quot; id=&quot;l2733&quot;&gt;   2733&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1596&amp;quot; id=&amp;quot;h3-0-1596&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2772 <a href="#l2753" class="line" id="l2753">   2753</a> &lt;a href=&quot;#l2734&quot; class=&quot;line&quot; id=&quot;l2734&quot;&gt;   2734&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1597&amp;quot; id=&amp;quot;h3-0-1597&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_ROUGHNESSMAP
   2773 <a href="#l2754" class="line" id="l2754">   2754</a> &lt;a href=&quot;#l2735&quot; class=&quot;line&quot; id=&quot;l2735&quot;&gt;   2735&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1598&amp;quot; id=&amp;quot;h3-0-1598&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D clearcoatRoughnessMap;
   2774 <a href="#l2755" class="line" id="l2755">   2755</a> &lt;a href=&quot;#l2736&quot; class=&quot;line&quot; id=&quot;l2736&quot;&gt;   2736&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1599&amp;quot; id=&amp;quot;h3-0-1599&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,OV=`#ifdef USE_IRIDESCENCEMAP
   2775 <a href="#l2756" class="line" id="l2756">   2756</a> &lt;a href=&quot;#l2737&quot; class=&quot;line&quot; id=&quot;l2737&quot;&gt;   2737&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1600&amp;quot; id=&amp;quot;h3-0-1600&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D iridescenceMap;
   2776 <a href="#l2757" class="line" id="l2757">   2757</a> &lt;a href=&quot;#l2738&quot; class=&quot;line&quot; id=&quot;l2738&quot;&gt;   2738&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1601&amp;quot; id=&amp;quot;h3-0-1601&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2777 <a href="#l2758" class="line" id="l2758">   2758</a> &lt;a href=&quot;#l2739&quot; class=&quot;line&quot; id=&quot;l2739&quot;&gt;   2739&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1602&amp;quot; id=&amp;quot;h3-0-1602&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCE_THICKNESSMAP
   2778 <a href="#l2759" class="line" id="l2759">   2759</a> &lt;a href=&quot;#l2740&quot; class=&quot;line&quot; id=&quot;l2740&quot;&gt;   2740&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1603&amp;quot; id=&amp;quot;h3-0-1603&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D iridescenceThicknessMap;
   2779 <a href="#l2760" class="line" id="l2760">   2760</a> &lt;a href=&quot;#l2741&quot; class=&quot;line&quot; id=&quot;l2741&quot;&gt;   2741&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1604&amp;quot; id=&amp;quot;h3-0-1604&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,LV=`#ifdef OPAQUE
   2780 <a href="#l2761" class="line" id="l2761">   2761</a> &lt;a href=&quot;#l2742&quot; class=&quot;line&quot; id=&quot;l2742&quot;&gt;   2742&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1605&amp;quot; id=&amp;quot;h3-0-1605&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+diffuseColor.a = 1.0;
   2781 <a href="#l2762" class="line" id="l2762">   2762</a> &lt;a href=&quot;#l2743&quot; class=&quot;line&quot; id=&quot;l2743&quot;&gt;   2743&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1606&amp;quot; id=&amp;quot;h3-0-1606&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2782 <a href="#l2763" class="line" id="l2763">   2763</a> &lt;a href=&quot;#l2744&quot; class=&quot;line&quot; id=&quot;l2744&quot;&gt;   2744&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1607&amp;quot; id=&amp;quot;h3-0-1607&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TRANSMISSION
   2783 <a href="#l2764" class="line" id="l2764">   2764</a> &lt;a href=&quot;#l2745&quot; class=&quot;line&quot; id=&quot;l2745&quot;&gt;   2745&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1608&amp;quot; id=&amp;quot;h3-0-1608&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+diffuseColor.a *= material.transmissionAlpha;
   2784 <a href="#l2765" class="line" id="l2765">   2765</a> &lt;a href=&quot;#l2746&quot; class=&quot;line&quot; id=&quot;l2746&quot;&gt;   2746&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1609&amp;quot; id=&amp;quot;h3-0-1609&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2785 <a href="#l2766" class="line" id="l2766">   2766</a> &lt;a href=&quot;#l2747&quot; class=&quot;line&quot; id=&quot;l2747&quot;&gt;   2747&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1610&amp;quot; id=&amp;quot;h3-0-1610&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+gl_FragColor = vec4( outgoingLight, diffuseColor.a );`,zV=`vec3 packNormalToRGB( const in vec3 normal ) {
   2786 <a href="#l2767" class="line" id="l2767">   2767</a> &lt;a href=&quot;#l2748&quot; class=&quot;line&quot; id=&quot;l2748&quot;&gt;   2748&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1611&amp;quot; id=&amp;quot;h3-0-1611&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return normalize( normal ) * 0.5 + 0.5;
   2787 <a href="#l2768" class="line" id="l2768">   2768</a> &lt;a href=&quot;#l2749&quot; class=&quot;line&quot; id=&quot;l2749&quot;&gt;   2749&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1612&amp;quot; id=&amp;quot;h3-0-1612&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2788 <a href="#l2769" class="line" id="l2769">   2769</a> &lt;a href=&quot;#l2750&quot; class=&quot;line&quot; id=&quot;l2750&quot;&gt;   2750&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1613&amp;quot; id=&amp;quot;h3-0-1613&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 unpackRGBToNormal( const in vec3 rgb ) {
   2789 <a href="#l2770" class="line" id="l2770">   2770</a> &lt;a href=&quot;#l2751&quot; class=&quot;line&quot; id=&quot;l2751&quot;&gt;   2751&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1614&amp;quot; id=&amp;quot;h3-0-1614&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return 2.0 * rgb.xyz - 1.0;
   2790 <a href="#l2771" class="line" id="l2771">   2771</a> &lt;a href=&quot;#l2752&quot; class=&quot;line&quot; id=&quot;l2752&quot;&gt;   2752&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1615&amp;quot; id=&amp;quot;h3-0-1615&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2791 <a href="#l2772" class="line" id="l2772">   2772</a> &lt;a href=&quot;#l2753&quot; class=&quot;line&quot; id=&quot;l2753&quot;&gt;   2753&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1616&amp;quot; id=&amp;quot;h3-0-1616&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;const float ShiftRight8 = 1. / 256.;
   2792 <a href="#l2773" class="line" id="l2773">   2773</a> &lt;a href=&quot;#l2754&quot; class=&quot;line&quot; id=&quot;l2754&quot;&gt;   2754&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1617&amp;quot; id=&amp;quot;h3-0-1617&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const float Inv255 = 1. / 255.;
   2793 <a href="#l2774" class="line" id="l2774">   2774</a> &lt;a href=&quot;#l2755&quot; class=&quot;line&quot; id=&quot;l2755&quot;&gt;   2755&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1618&amp;quot; id=&amp;quot;h3-0-1618&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const vec4 PackFactors = vec4( 1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0 );
   2794 <a href="#l2775" class="line" id="l2775">   2775</a> &lt;a href=&quot;#l2756&quot; class=&quot;line&quot; id=&quot;l2756&quot;&gt;   2756&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1619&amp;quot; id=&amp;quot;h3-0-1619&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const vec2 UnpackFactors2 = vec2( UnpackDownscale, 1.0 / PackFactors.g );
   2795 <a href="#l2776" class="line" id="l2776">   2776</a> &lt;a href=&quot;#l2757&quot; class=&quot;line&quot; id=&quot;l2757&quot;&gt;   2757&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1620&amp;quot; id=&amp;quot;h3-0-1620&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const vec3 UnpackFactors3 = vec3( UnpackDownscale / PackFactors.rg, 1.0 / PackFactors.b );
   2796 <a href="#l2777" class="line" id="l2777">   2777</a> &lt;a href=&quot;#l2758&quot; class=&quot;line&quot; id=&quot;l2758&quot;&gt;   2758&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1621&amp;quot; id=&amp;quot;h3-0-1621&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const vec4 UnpackFactors4 = vec4( UnpackDownscale / PackFactors.rgb, 1.0 / PackFactors.a );
   2797 <a href="#l2778" class="line" id="l2778">   2778</a> &lt;a href=&quot;#l2759&quot; class=&quot;line&quot; id=&quot;l2759&quot;&gt;   2759&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1622&amp;quot; id=&amp;quot;h3-0-1622&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec4 packDepthToRGBA( const in float v ) {
   2798 <a href="#l2779" class="line" id="l2779">   2779</a> &lt;a href=&quot;#l2760&quot; class=&quot;line&quot; id=&quot;l2760&quot;&gt;   2760&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1623&amp;quot; id=&amp;quot;h3-0-1623&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if( v &amp;amp;lt;= 0.0 )
   2799 <a href="#l2780" class="line" id="l2780">   2780</a> &lt;a href=&quot;#l2761&quot; class=&quot;line&quot; id=&quot;l2761&quot;&gt;   2761&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1624&amp;quot; id=&amp;quot;h3-0-1624&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec4( 0., 0., 0., 0. );
   2800 <a href="#l2781" class="line" id="l2781">   2781</a> &lt;a href=&quot;#l2762&quot; class=&quot;line&quot; id=&quot;l2762&quot;&gt;   2762&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1625&amp;quot; id=&amp;quot;h3-0-1625&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if( v &amp;amp;gt;= 1.0 )
   2801 <a href="#l2782" class="line" id="l2782">   2782</a> &lt;a href=&quot;#l2763&quot; class=&quot;line&quot; id=&quot;l2763&quot;&gt;   2763&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1626&amp;quot; id=&amp;quot;h3-0-1626&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec4( 1., 1., 1., 1. );
   2802 <a href="#l2783" class="line" id="l2783">   2783</a> &lt;a href=&quot;#l2764&quot; class=&quot;line&quot; id=&quot;l2764&quot;&gt;   2764&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1627&amp;quot; id=&amp;quot;h3-0-1627&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float vuf;
   2803 <a href="#l2784" class="line" id="l2784">   2784</a> &lt;a href=&quot;#l2765&quot; class=&quot;line&quot; id=&quot;l2765&quot;&gt;   2765&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1628&amp;quot; id=&amp;quot;h3-0-1628&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float af = modf( v * PackFactors.a, vuf );
   2804 <a href="#l2785" class="line" id="l2785">   2785</a> &lt;a href=&quot;#l2766&quot; class=&quot;line&quot; id=&quot;l2766&quot;&gt;   2766&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1629&amp;quot; id=&amp;quot;h3-0-1629&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float bf = modf( vuf * ShiftRight8, vuf );
   2805 <a href="#l2786" class="line" id="l2786">   2786</a> &lt;a href=&quot;#l2767&quot; class=&quot;line&quot; id=&quot;l2767&quot;&gt;   2767&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1630&amp;quot; id=&amp;quot;h3-0-1630&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float gf = modf( vuf * ShiftRight8, vuf );
   2806 <a href="#l2787" class="line" id="l2787">   2787</a> &lt;a href=&quot;#l2768&quot; class=&quot;line&quot; id=&quot;l2768&quot;&gt;   2768&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1631&amp;quot; id=&amp;quot;h3-0-1631&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec4( vuf * Inv255, gf * PackUpscale, bf * PackUpscale, af );
   2807 <a href="#l2788" class="line" id="l2788">   2788</a> &lt;a href=&quot;#l2769&quot; class=&quot;line&quot; id=&quot;l2769&quot;&gt;   2769&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1632&amp;quot; id=&amp;quot;h3-0-1632&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2808 <a href="#l2789" class="line" id="l2789">   2789</a> &lt;a href=&quot;#l2770&quot; class=&quot;line&quot; id=&quot;l2770&quot;&gt;   2770&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1633&amp;quot; id=&amp;quot;h3-0-1633&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 packDepthToRGB( const in float v ) {
   2809 <a href="#l2790" class="line" id="l2790">   2790</a> &lt;a href=&quot;#l2771&quot; class=&quot;line&quot; id=&quot;l2771&quot;&gt;   2771&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1634&amp;quot; id=&amp;quot;h3-0-1634&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if( v &amp;amp;lt;= 0.0 )
   2810 <a href="#l2791" class="line" id="l2791">   2791</a> &lt;a href=&quot;#l2772&quot; class=&quot;line&quot; id=&quot;l2772&quot;&gt;   2772&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1635&amp;quot; id=&amp;quot;h3-0-1635&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec3( 0., 0., 0. );
   2811 <a href="#l2792" class="line" id="l2792">   2792</a> &lt;a href=&quot;#l2773&quot; class=&quot;line&quot; id=&quot;l2773&quot;&gt;   2773&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1636&amp;quot; id=&amp;quot;h3-0-1636&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if( v &amp;amp;gt;= 1.0 )
   2812 <a href="#l2793" class="line" id="l2793">   2793</a> &lt;a href=&quot;#l2774&quot; class=&quot;line&quot; id=&quot;l2774&quot;&gt;   2774&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1637&amp;quot; id=&amp;quot;h3-0-1637&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec3( 1., 1., 1. );
   2813 <a href="#l2794" class="line" id="l2794">   2794</a> &lt;a href=&quot;#l2775&quot; class=&quot;line&quot; id=&quot;l2775&quot;&gt;   2775&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1638&amp;quot; id=&amp;quot;h3-0-1638&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float vuf;
   2814 <a href="#l2795" class="line" id="l2795">   2795</a> &lt;a href=&quot;#l2776&quot; class=&quot;line&quot; id=&quot;l2776&quot;&gt;   2776&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1639&amp;quot; id=&amp;quot;h3-0-1639&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float bf = modf( v * PackFactors.b, vuf );
   2815 <a href="#l2796" class="line" id="l2796">   2796</a> &lt;a href=&quot;#l2777&quot; class=&quot;line&quot; id=&quot;l2777&quot;&gt;   2777&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1640&amp;quot; id=&amp;quot;h3-0-1640&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float gf = modf( vuf * ShiftRight8, vuf );
   2816 <a href="#l2797" class="line" id="l2797">   2797</a> &lt;a href=&quot;#l2778&quot; class=&quot;line&quot; id=&quot;l2778&quot;&gt;   2778&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1641&amp;quot; id=&amp;quot;h3-0-1641&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec3( vuf * Inv255, gf * PackUpscale, bf );
   2817 <a href="#l2798" class="line" id="l2798">   2798</a> &lt;a href=&quot;#l2779&quot; class=&quot;line&quot; id=&quot;l2779&quot;&gt;   2779&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1642&amp;quot; id=&amp;quot;h3-0-1642&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2818 <a href="#l2799" class="line" id="l2799">   2799</a> &lt;a href=&quot;#l2780&quot; class=&quot;line&quot; id=&quot;l2780&quot;&gt;   2780&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1643&amp;quot; id=&amp;quot;h3-0-1643&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 packDepthToRG( const in float v ) {
   2819 <a href="#l2800" class="line" id="l2800">   2800</a> &lt;a href=&quot;#l2781&quot; class=&quot;line&quot; id=&quot;l2781&quot;&gt;   2781&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1644&amp;quot; id=&amp;quot;h3-0-1644&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if( v &amp;amp;lt;= 0.0 )
   2820 <a href="#l2801" class="line" id="l2801">   2801</a> &lt;a href=&quot;#l2782&quot; class=&quot;line&quot; id=&quot;l2782&quot;&gt;   2782&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1645&amp;quot; id=&amp;quot;h3-0-1645&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec2( 0., 0. );
   2821 <a href="#l2802" class="line" id="l2802">   2802</a> &lt;a href=&quot;#l2783&quot; class=&quot;line&quot; id=&quot;l2783&quot;&gt;   2783&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1646&amp;quot; id=&amp;quot;h3-0-1646&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if( v &amp;amp;gt;= 1.0 )
   2822 <a href="#l2803" class="line" id="l2803">   2803</a> &lt;a href=&quot;#l2784&quot; class=&quot;line&quot; id=&quot;l2784&quot;&gt;   2784&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1647&amp;quot; id=&amp;quot;h3-0-1647&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec2( 1., 1. );
   2823 <a href="#l2804" class="line" id="l2804">   2804</a> &lt;a href=&quot;#l2785&quot; class=&quot;line&quot; id=&quot;l2785&quot;&gt;   2785&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1648&amp;quot; id=&amp;quot;h3-0-1648&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float vuf;
   2824 <a href="#l2805" class="line" id="l2805">   2805</a> &lt;a href=&quot;#l2786&quot; class=&quot;line&quot; id=&quot;l2786&quot;&gt;   2786&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1649&amp;quot; id=&amp;quot;h3-0-1649&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float gf = modf( v * 256., vuf );
   2825 <a href="#l2806" class="line" id="l2806">   2806</a> &lt;a href=&quot;#l2787&quot; class=&quot;line&quot; id=&quot;l2787&quot;&gt;   2787&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1650&amp;quot; id=&amp;quot;h3-0-1650&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec2( vuf * Inv255, gf );
   2826 <a href="#l2807" class="line" id="l2807">   2807</a> &lt;a href=&quot;#l2788&quot; class=&quot;line&quot; id=&quot;l2788&quot;&gt;   2788&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1651&amp;quot; id=&amp;quot;h3-0-1651&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2827 <a href="#l2808" class="line" id="l2808">   2808</a> &lt;a href=&quot;#l2789&quot; class=&quot;line&quot; id=&quot;l2789&quot;&gt;   2789&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1652&amp;quot; id=&amp;quot;h3-0-1652&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float unpackRGBAToDepth( const in vec4 v ) {
   2828 <a href="#l2809" class="line" id="l2809">   2809</a> &lt;a href=&quot;#l2790&quot; class=&quot;line&quot; id=&quot;l2790&quot;&gt;   2790&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1653&amp;quot; id=&amp;quot;h3-0-1653&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return dot( v, UnpackFactors4 );
   2829 <a href="#l2810" class="line" id="l2810">   2810</a> &lt;a href=&quot;#l2791&quot; class=&quot;line&quot; id=&quot;l2791&quot;&gt;   2791&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1654&amp;quot; id=&amp;quot;h3-0-1654&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2830 <a href="#l2811" class="line" id="l2811">   2811</a> &lt;a href=&quot;#l2792&quot; class=&quot;line&quot; id=&quot;l2792&quot;&gt;   2792&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1655&amp;quot; id=&amp;quot;h3-0-1655&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float unpackRGBToDepth( const in vec3 v ) {
   2831 <a href="#l2812" class="line" id="l2812">   2812</a> &lt;a href=&quot;#l2793&quot; class=&quot;line&quot; id=&quot;l2793&quot;&gt;   2793&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1656&amp;quot; id=&amp;quot;h3-0-1656&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return dot( v, UnpackFactors3 );
   2832 <a href="#l2813" class="line" id="l2813">   2813</a> &lt;a href=&quot;#l2794&quot; class=&quot;line&quot; id=&quot;l2794&quot;&gt;   2794&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1657&amp;quot; id=&amp;quot;h3-0-1657&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2833 <a href="#l2814" class="line" id="l2814">   2814</a> &lt;a href=&quot;#l2795&quot; class=&quot;line&quot; id=&quot;l2795&quot;&gt;   2795&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1658&amp;quot; id=&amp;quot;h3-0-1658&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float unpackRGToDepth( const in vec2 v ) {
   2834 <a href="#l2815" class="line" id="l2815">   2815</a> &lt;a href=&quot;#l2796&quot; class=&quot;line&quot; id=&quot;l2796&quot;&gt;   2796&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1659&amp;quot; id=&amp;quot;h3-0-1659&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return v.r * UnpackFactors2.r + v.g * UnpackFactors2.g;
   2835 <a href="#l2816" class="line" id="l2816">   2816</a> &lt;a href=&quot;#l2797&quot; class=&quot;line&quot; id=&quot;l2797&quot;&gt;   2797&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1660&amp;quot; id=&amp;quot;h3-0-1660&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2836 <a href="#l2817" class="line" id="l2817">   2817</a> &lt;a href=&quot;#l2798&quot; class=&quot;line&quot; id=&quot;l2798&quot;&gt;   2798&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1661&amp;quot; id=&amp;quot;h3-0-1661&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec4 pack2HalfToRGBA( const in vec2 v ) {
   2837 <a href="#l2818" class="line" id="l2818">   2818</a> &lt;a href=&quot;#l2799&quot; class=&quot;line&quot; id=&quot;l2799&quot;&gt;   2799&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1662&amp;quot; id=&amp;quot;h3-0-1662&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ) );
   2838 <a href="#l2819" class="line" id="l2819">   2819</a> &lt;a href=&quot;#l2800&quot; class=&quot;line&quot; id=&quot;l2800&quot;&gt;   2800&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1663&amp;quot; id=&amp;quot;h3-0-1663&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w );
   2839 <a href="#l2820" class="line" id="l2820">   2820</a> &lt;a href=&quot;#l2801&quot; class=&quot;line&quot; id=&quot;l2801&quot;&gt;   2801&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1664&amp;quot; id=&amp;quot;h3-0-1664&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2840 <a href="#l2821" class="line" id="l2821">   2821</a> &lt;a href=&quot;#l2802&quot; class=&quot;line&quot; id=&quot;l2802&quot;&gt;   2802&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1665&amp;quot; id=&amp;quot;h3-0-1665&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 unpackRGBATo2Half( const in vec4 v ) {
   2841 <a href="#l2822" class="line" id="l2822">   2822</a> &lt;a href=&quot;#l2803&quot; class=&quot;line&quot; id=&quot;l2803&quot;&gt;   2803&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1666&amp;quot; id=&amp;quot;h3-0-1666&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );
   2842 <a href="#l2823" class="line" id="l2823">   2823</a> &lt;a href=&quot;#l2804&quot; class=&quot;line&quot; id=&quot;l2804&quot;&gt;   2804&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1667&amp;quot; id=&amp;quot;h3-0-1667&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2843 <a href="#l2824" class="line" id="l2824">   2824</a> &lt;a href=&quot;#l2805&quot; class=&quot;line&quot; id=&quot;l2805&quot;&gt;   2805&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1668&amp;quot; id=&amp;quot;h3-0-1668&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {
   2844 <a href="#l2825" class="line" id="l2825">   2825</a> &lt;a href=&quot;#l2806&quot; class=&quot;line&quot; id=&quot;l2806&quot;&gt;   2806&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1669&amp;quot; id=&amp;quot;h3-0-1669&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return ( viewZ + near ) / ( near - far );
   2845 <a href="#l2826" class="line" id="l2826">   2826</a> &lt;a href=&quot;#l2807&quot; class=&quot;line&quot; id=&quot;l2807&quot;&gt;   2807&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1670&amp;quot; id=&amp;quot;h3-0-1670&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2846 <a href="#l2827" class="line" id="l2827">   2827</a> &lt;a href=&quot;#l2808&quot; class=&quot;line&quot; id=&quot;l2808&quot;&gt;   2808&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1671&amp;quot; id=&amp;quot;h3-0-1671&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float orthographicDepthToViewZ( const in float depth, const in float near, const in float far ) {
   2847 <a href="#l2828" class="line" id="l2828">   2828</a> &lt;a href=&quot;#l2809&quot; class=&quot;line&quot; id=&quot;l2809&quot;&gt;   2809&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1672&amp;quot; id=&amp;quot;h3-0-1672&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return depth * ( near - far ) - near;
   2848 <a href="#l2829" class="line" id="l2829">   2829</a> &lt;a href=&quot;#l2810&quot; class=&quot;line&quot; id=&quot;l2810&quot;&gt;   2810&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1673&amp;quot; id=&amp;quot;h3-0-1673&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2849 <a href="#l2830" class="line" id="l2830">   2830</a> &lt;a href=&quot;#l2811&quot; class=&quot;line&quot; id=&quot;l2811&quot;&gt;   2811&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1674&amp;quot; id=&amp;quot;h3-0-1674&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {
   2850 <a href="#l2831" class="line" id="l2831">   2831</a> &lt;a href=&quot;#l2812&quot; class=&quot;line&quot; id=&quot;l2812&quot;&gt;   2812&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1675&amp;quot; id=&amp;quot;h3-0-1675&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return ( ( near + viewZ ) * far ) / ( ( far - near ) * viewZ );
   2851 <a href="#l2832" class="line" id="l2832">   2832</a> &lt;a href=&quot;#l2813&quot; class=&quot;line&quot; id=&quot;l2813&quot;&gt;   2813&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1676&amp;quot; id=&amp;quot;h3-0-1676&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   2852 <a href="#l2833" class="line" id="l2833">   2833</a> &lt;a href=&quot;#l2814&quot; class=&quot;line&quot; id=&quot;l2814&quot;&gt;   2814&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1677&amp;quot; id=&amp;quot;h3-0-1677&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float perspectiveDepthToViewZ( const in float depth, const in float near, const in float far ) {
   2853 <a href="#l2834" class="line" id="l2834">   2834</a> &lt;a href=&quot;#l2815&quot; class=&quot;line&quot; id=&quot;l2815&quot;&gt;   2815&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1678&amp;quot; id=&amp;quot;h3-0-1678&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return ( near * far ) / ( ( far - near ) * depth - far );
   2854 <a href="#l2835" class="line" id="l2835">   2835</a> &lt;a href=&quot;#l2816&quot; class=&quot;line&quot; id=&quot;l2816&quot;&gt;   2816&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1679&amp;quot; id=&amp;quot;h3-0-1679&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,BV=`#ifdef PREMULTIPLIED_ALPHA
   2855 <a href="#l2836" class="line" id="l2836">   2836</a> &lt;a href=&quot;#l2817&quot; class=&quot;line&quot; id=&quot;l2817&quot;&gt;   2817&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1680&amp;quot; id=&amp;quot;h3-0-1680&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor.rgb *= gl_FragColor.a;
   2856 <a href="#l2837" class="line" id="l2837">   2837</a> &lt;a href=&quot;#l2818&quot; class=&quot;line&quot; id=&quot;l2818&quot;&gt;   2818&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1681&amp;quot; id=&amp;quot;h3-0-1681&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,PV=`vec4 mvPosition = vec4( transformed, 1.0 );
   2857 <a href="#l2838" class="line" id="l2838">   2838</a> &lt;a href=&quot;#l2819&quot; class=&quot;line&quot; id=&quot;l2819&quot;&gt;   2819&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1682&amp;quot; id=&amp;quot;h3-0-1682&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_BATCHING
   2858 <a href="#l2839" class="line" id="l2839">   2839</a> &lt;a href=&quot;#l2820&quot; class=&quot;line&quot; id=&quot;l2820&quot;&gt;   2820&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1683&amp;quot; id=&amp;quot;h3-0-1683&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mvPosition = batchingMatrix * mvPosition;
   2859 <a href="#l2840" class="line" id="l2840">   2840</a> &lt;a href=&quot;#l2821&quot; class=&quot;line&quot; id=&quot;l2821&quot;&gt;   2821&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1684&amp;quot; id=&amp;quot;h3-0-1684&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2860 <a href="#l2841" class="line" id="l2841">   2841</a> &lt;a href=&quot;#l2822&quot; class=&quot;line&quot; id=&quot;l2822&quot;&gt;   2822&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1685&amp;quot; id=&amp;quot;h3-0-1685&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_INSTANCING
   2861 <a href="#l2842" class="line" id="l2842">   2842</a> &lt;a href=&quot;#l2823&quot; class=&quot;line&quot; id=&quot;l2823&quot;&gt;   2823&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1686&amp;quot; id=&amp;quot;h3-0-1686&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mvPosition = instanceMatrix * mvPosition;
   2862 <a href="#l2843" class="line" id="l2843">   2843</a> &lt;a href=&quot;#l2824&quot; class=&quot;line&quot; id=&quot;l2824&quot;&gt;   2824&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1687&amp;quot; id=&amp;quot;h3-0-1687&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2863 <a href="#l2844" class="line" id="l2844">   2844</a> &lt;a href=&quot;#l2825&quot; class=&quot;line&quot; id=&quot;l2825&quot;&gt;   2825&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1688&amp;quot; id=&amp;quot;h3-0-1688&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+mvPosition = modelViewMatrix * mvPosition;
   2864 <a href="#l2845" class="line" id="l2845">   2845</a> &lt;a href=&quot;#l2826&quot; class=&quot;line&quot; id=&quot;l2826&quot;&gt;   2826&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1689&amp;quot; id=&amp;quot;h3-0-1689&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+gl_Position = projectionMatrix * mvPosition;`,IV=`#ifdef DITHERING
   2865 <a href="#l2846" class="line" id="l2846">   2846</a> &lt;a href=&quot;#l2827&quot; class=&quot;line&quot; id=&quot;l2827&quot;&gt;   2827&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1690&amp;quot; id=&amp;quot;h3-0-1690&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor.rgb = dithering( gl_FragColor.rgb );
   2866 <a href="#l2847" class="line" id="l2847">   2847</a> &lt;a href=&quot;#l2828&quot; class=&quot;line&quot; id=&quot;l2828&quot;&gt;   2828&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1691&amp;quot; id=&amp;quot;h3-0-1691&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,HV=`#ifdef DITHERING
   2867 <a href="#l2848" class="line" id="l2848">   2848</a> &lt;a href=&quot;#l2829&quot; class=&quot;line&quot; id=&quot;l2829&quot;&gt;   2829&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1692&amp;quot; id=&amp;quot;h3-0-1692&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 dithering( vec3 color ) {
   2868 <a href="#l2849" class="line" id="l2849">   2849</a> &lt;a href=&quot;#l2830&quot; class=&quot;line&quot; id=&quot;l2830&quot;&gt;   2830&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1693&amp;quot; id=&amp;quot;h3-0-1693&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float grid_position = rand( gl_FragCoord.xy );
   2869 <a href="#l2850" class="line" id="l2850">   2850</a> &lt;a href=&quot;#l2831&quot; class=&quot;line&quot; id=&quot;l2831&quot;&gt;   2831&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1694&amp;quot; id=&amp;quot;h3-0-1694&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );
   2870 <a href="#l2851" class="line" id="l2851">   2851</a> &lt;a href=&quot;#l2832&quot; class=&quot;line&quot; id=&quot;l2832&quot;&gt;   2832&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1695&amp;quot; id=&amp;quot;h3-0-1695&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		dither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );
   2871 <a href="#l2852" class="line" id="l2852">   2852</a> &lt;a href=&quot;#l2833&quot; class=&quot;line&quot; id=&quot;l2833&quot;&gt;   2833&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1696&amp;quot; id=&amp;quot;h3-0-1696&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return color + dither_shift_RGB;
   2872 <a href="#l2853" class="line" id="l2853">   2853</a> &lt;a href=&quot;#l2834&quot; class=&quot;line&quot; id=&quot;l2834&quot;&gt;   2834&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1697&amp;quot; id=&amp;quot;h3-0-1697&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2873 <a href="#l2854" class="line" id="l2854">   2854</a> &lt;a href=&quot;#l2835&quot; class=&quot;line&quot; id=&quot;l2835&quot;&gt;   2835&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1698&amp;quot; id=&amp;quot;h3-0-1698&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,FV=`float roughnessFactor = roughness;
   2874 <a href="#l2855" class="line" id="l2855">   2855</a> &lt;a href=&quot;#l2836&quot; class=&quot;line&quot; id=&quot;l2836&quot;&gt;   2836&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1699&amp;quot; id=&amp;quot;h3-0-1699&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ROUGHNESSMAP
   2875 <a href="#l2856" class="line" id="l2856">   2856</a> &lt;a href=&quot;#l2837&quot; class=&quot;line&quot; id=&quot;l2837&quot;&gt;   2837&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1700&amp;quot; id=&amp;quot;h3-0-1700&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 texelRoughness = texture2D( roughnessMap, vRoughnessMapUv );
   2876 <a href="#l2857" class="line" id="l2857">   2857</a> &lt;a href=&quot;#l2838&quot; class=&quot;line&quot; id=&quot;l2838&quot;&gt;   2838&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1701&amp;quot; id=&amp;quot;h3-0-1701&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	roughnessFactor *= texelRoughness.g;
   2877 <a href="#l2858" class="line" id="l2858">   2858</a> &lt;a href=&quot;#l2839&quot; class=&quot;line&quot; id=&quot;l2839&quot;&gt;   2839&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1702&amp;quot; id=&amp;quot;h3-0-1702&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,VV=`#ifdef USE_ROUGHNESSMAP
   2878 <a href="#l2859" class="line" id="l2859">   2859</a> &lt;a href=&quot;#l2840&quot; class=&quot;line&quot; id=&quot;l2840&quot;&gt;   2840&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1703&amp;quot; id=&amp;quot;h3-0-1703&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D roughnessMap;
   2879 <a href="#l2860" class="line" id="l2860">   2860</a> &lt;a href=&quot;#l2841&quot; class=&quot;line&quot; id=&quot;l2841&quot;&gt;   2841&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1704&amp;quot; id=&amp;quot;h3-0-1704&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,GV=`#if NUM_SPOT_LIGHT_COORDS &amp;amp;gt; 0
   2880 <a href="#l2861" class="line" id="l2861">   2861</a> &lt;a href=&quot;#l2842&quot; class=&quot;line&quot; id=&quot;l2842&quot;&gt;   2842&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1705&amp;quot; id=&amp;quot;h3-0-1705&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
   2881 <a href="#l2862" class="line" id="l2862">   2862</a> &lt;a href=&quot;#l2843&quot; class=&quot;line&quot; id=&quot;l2843&quot;&gt;   2843&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1706&amp;quot; id=&amp;quot;h3-0-1706&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2882 <a href="#l2863" class="line" id="l2863">   2863</a> &lt;a href=&quot;#l2844&quot; class=&quot;line&quot; id=&quot;l2844&quot;&gt;   2844&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1707&amp;quot; id=&amp;quot;h3-0-1707&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if NUM_SPOT_LIGHT_MAPS &amp;amp;gt; 0
   2883 <a href="#l2864" class="line" id="l2864">   2864</a> &lt;a href=&quot;#l2845&quot; class=&quot;line&quot; id=&quot;l2845&quot;&gt;   2845&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1708&amp;quot; id=&amp;quot;h3-0-1708&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D spotLightMap[ NUM_SPOT_LIGHT_MAPS ];
   2884 <a href="#l2865" class="line" id="l2865">   2865</a> &lt;a href=&quot;#l2846&quot; class=&quot;line&quot; id=&quot;l2846&quot;&gt;   2846&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1709&amp;quot; id=&amp;quot;h3-0-1709&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   2885 <a href="#l2866" class="line" id="l2866">   2866</a> &lt;a href=&quot;#l2847&quot; class=&quot;line&quot; id=&quot;l2847&quot;&gt;   2847&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1710&amp;quot; id=&amp;quot;h3-0-1710&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHADOWMAP
   2886 <a href="#l2867" class="line" id="l2867">   2867</a> &lt;a href=&quot;#l2848&quot; class=&quot;line&quot; id=&quot;l2848&quot;&gt;   2848&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1711&amp;quot; id=&amp;quot;h3-0-1711&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_DIR_LIGHT_SHADOWS &amp;amp;gt; 0
   2887 <a href="#l2868" class="line" id="l2868">   2868</a> &lt;a href=&quot;#l2849&quot; class=&quot;line&quot; id=&quot;l2849&quot;&gt;   2849&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1712&amp;quot; id=&amp;quot;h3-0-1712&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];
   2888 <a href="#l2869" class="line" id="l2869">   2869</a> &lt;a href=&quot;#l2850&quot; class=&quot;line&quot; id=&quot;l2850&quot;&gt;   2850&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1713&amp;quot; id=&amp;quot;h3-0-1713&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
   2889 <a href="#l2870" class="line" id="l2870">   2870</a> &lt;a href=&quot;#l2851&quot; class=&quot;line&quot; id=&quot;l2851&quot;&gt;   2851&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1714&amp;quot; id=&amp;quot;h3-0-1714&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		struct DirectionalLightShadow {
   2890 <a href="#l2871" class="line" id="l2871">   2871</a> &lt;a href=&quot;#l2852&quot; class=&quot;line&quot; id=&quot;l2852&quot;&gt;   2852&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1715&amp;quot; id=&amp;quot;h3-0-1715&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowIntensity;
   2891 <a href="#l2872" class="line" id="l2872">   2872</a> &lt;a href=&quot;#l2853&quot; class=&quot;line&quot; id=&quot;l2853&quot;&gt;   2853&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1716&amp;quot; id=&amp;quot;h3-0-1716&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowBias;
   2892 <a href="#l2873" class="line" id="l2873">   2873</a> &lt;a href=&quot;#l2854&quot; class=&quot;line&quot; id=&quot;l2854&quot;&gt;   2854&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1717&amp;quot; id=&amp;quot;h3-0-1717&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowNormalBias;
   2893 <a href="#l2874" class="line" id="l2874">   2874</a> &lt;a href=&quot;#l2855&quot; class=&quot;line&quot; id=&quot;l2855&quot;&gt;   2855&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1718&amp;quot; id=&amp;quot;h3-0-1718&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowRadius;
   2894 <a href="#l2875" class="line" id="l2875">   2875</a> &lt;a href=&quot;#l2856&quot; class=&quot;line&quot; id=&quot;l2856&quot;&gt;   2856&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1719&amp;quot; id=&amp;quot;h3-0-1719&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 shadowMapSize;
   2895 <a href="#l2876" class="line" id="l2876">   2876</a> &lt;a href=&quot;#l2857&quot; class=&quot;line&quot; id=&quot;l2857&quot;&gt;   2857&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1720&amp;quot; id=&amp;quot;h3-0-1720&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		};
   2896 <a href="#l2877" class="line" id="l2877">   2877</a> &lt;a href=&quot;#l2858&quot; class=&quot;line&quot; id=&quot;l2858&quot;&gt;   2858&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1721&amp;quot; id=&amp;quot;h3-0-1721&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
   2897 <a href="#l2878" class="line" id="l2878">   2878</a> &lt;a href=&quot;#l2859&quot; class=&quot;line&quot; id=&quot;l2859&quot;&gt;   2859&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1722&amp;quot; id=&amp;quot;h3-0-1722&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2898 <a href="#l2879" class="line" id="l2879">   2879</a> &lt;a href=&quot;#l2860&quot; class=&quot;line&quot; id=&quot;l2860&quot;&gt;   2860&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1723&amp;quot; id=&amp;quot;h3-0-1723&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_SPOT_LIGHT_SHADOWS &amp;amp;gt; 0
   2899 <a href="#l2880" class="line" id="l2880">   2880</a> &lt;a href=&quot;#l2861&quot; class=&quot;line&quot; id=&quot;l2861&quot;&gt;   2861&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1724&amp;quot; id=&amp;quot;h3-0-1724&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];
   2900 <a href="#l2881" class="line" id="l2881">   2881</a> &lt;a href=&quot;#l2862&quot; class=&quot;line&quot; id=&quot;l2862&quot;&gt;   2862&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1725&amp;quot; id=&amp;quot;h3-0-1725&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		struct SpotLightShadow {
   2901 <a href="#l2882" class="line" id="l2882">   2882</a> &lt;a href=&quot;#l2863&quot; class=&quot;line&quot; id=&quot;l2863&quot;&gt;   2863&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1726&amp;quot; id=&amp;quot;h3-0-1726&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowIntensity;
   2902 <a href="#l2883" class="line" id="l2883">   2883</a> &lt;a href=&quot;#l2864&quot; class=&quot;line&quot; id=&quot;l2864&quot;&gt;   2864&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1727&amp;quot; id=&amp;quot;h3-0-1727&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowBias;
   2903 <a href="#l2884" class="line" id="l2884">   2884</a> &lt;a href=&quot;#l2865&quot; class=&quot;line&quot; id=&quot;l2865&quot;&gt;   2865&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1728&amp;quot; id=&amp;quot;h3-0-1728&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowNormalBias;
   2904 <a href="#l2885" class="line" id="l2885">   2885</a> &lt;a href=&quot;#l2866&quot; class=&quot;line&quot; id=&quot;l2866&quot;&gt;   2866&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1729&amp;quot; id=&amp;quot;h3-0-1729&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowRadius;
   2905 <a href="#l2886" class="line" id="l2886">   2886</a> &lt;a href=&quot;#l2867&quot; class=&quot;line&quot; id=&quot;l2867&quot;&gt;   2867&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1730&amp;quot; id=&amp;quot;h3-0-1730&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 shadowMapSize;
   2906 <a href="#l2887" class="line" id="l2887">   2887</a> &lt;a href=&quot;#l2868&quot; class=&quot;line&quot; id=&quot;l2868&quot;&gt;   2868&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1731&amp;quot; id=&amp;quot;h3-0-1731&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		};
   2907 <a href="#l2888" class="line" id="l2888">   2888</a> &lt;a href=&quot;#l2869&quot; class=&quot;line&quot; id=&quot;l2869&quot;&gt;   2869&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1732&amp;quot; id=&amp;quot;h3-0-1732&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
   2908 <a href="#l2889" class="line" id="l2889">   2889</a> &lt;a href=&quot;#l2870&quot; class=&quot;line&quot; id=&quot;l2870&quot;&gt;   2870&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1733&amp;quot; id=&amp;quot;h3-0-1733&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2909 <a href="#l2890" class="line" id="l2890">   2890</a> &lt;a href=&quot;#l2871&quot; class=&quot;line&quot; id=&quot;l2871&quot;&gt;   2871&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1734&amp;quot; id=&amp;quot;h3-0-1734&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_POINT_LIGHT_SHADOWS &amp;amp;gt; 0
   2910 <a href="#l2891" class="line" id="l2891">   2891</a> &lt;a href=&quot;#l2872&quot; class=&quot;line&quot; id=&quot;l2872&quot;&gt;   2872&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1735&amp;quot; id=&amp;quot;h3-0-1735&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];
   2911 <a href="#l2892" class="line" id="l2892">   2892</a> &lt;a href=&quot;#l2873&quot; class=&quot;line&quot; id=&quot;l2873&quot;&gt;   2873&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1736&amp;quot; id=&amp;quot;h3-0-1736&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
   2912 <a href="#l2893" class="line" id="l2893">   2893</a> &lt;a href=&quot;#l2874&quot; class=&quot;line&quot; id=&quot;l2874&quot;&gt;   2874&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1737&amp;quot; id=&amp;quot;h3-0-1737&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		struct PointLightShadow {
   2913 <a href="#l2894" class="line" id="l2894">   2894</a> &lt;a href=&quot;#l2875&quot; class=&quot;line&quot; id=&quot;l2875&quot;&gt;   2875&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1738&amp;quot; id=&amp;quot;h3-0-1738&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowIntensity;
   2914 <a href="#l2895" class="line" id="l2895">   2895</a> &lt;a href=&quot;#l2876&quot; class=&quot;line&quot; id=&quot;l2876&quot;&gt;   2876&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1739&amp;quot; id=&amp;quot;h3-0-1739&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowBias;
   2915 <a href="#l2896" class="line" id="l2896">   2896</a> &lt;a href=&quot;#l2877&quot; class=&quot;line&quot; id=&quot;l2877&quot;&gt;   2877&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1740&amp;quot; id=&amp;quot;h3-0-1740&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowNormalBias;
   2916 <a href="#l2897" class="line" id="l2897">   2897</a> &lt;a href=&quot;#l2878&quot; class=&quot;line&quot; id=&quot;l2878&quot;&gt;   2878&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1741&amp;quot; id=&amp;quot;h3-0-1741&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowRadius;
   2917 <a href="#l2898" class="line" id="l2898">   2898</a> &lt;a href=&quot;#l2879&quot; class=&quot;line&quot; id=&quot;l2879&quot;&gt;   2879&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1742&amp;quot; id=&amp;quot;h3-0-1742&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 shadowMapSize;
   2918 <a href="#l2899" class="line" id="l2899">   2899</a> &lt;a href=&quot;#l2880&quot; class=&quot;line&quot; id=&quot;l2880&quot;&gt;   2880&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1743&amp;quot; id=&amp;quot;h3-0-1743&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowCameraNear;
   2919 <a href="#l2900" class="line" id="l2900">   2900</a> &lt;a href=&quot;#l2881&quot; class=&quot;line&quot; id=&quot;l2881&quot;&gt;   2881&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1744&amp;quot; id=&amp;quot;h3-0-1744&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowCameraFar;
   2920 <a href="#l2901" class="line" id="l2901">   2901</a> &lt;a href=&quot;#l2882&quot; class=&quot;line&quot; id=&quot;l2882&quot;&gt;   2882&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1745&amp;quot; id=&amp;quot;h3-0-1745&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		};
   2921 <a href="#l2902" class="line" id="l2902">   2902</a> &lt;a href=&quot;#l2883&quot; class=&quot;line&quot; id=&quot;l2883&quot;&gt;   2883&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1746&amp;quot; id=&amp;quot;h3-0-1746&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
   2922 <a href="#l2903" class="line" id="l2903">   2903</a> &lt;a href=&quot;#l2884&quot; class=&quot;line&quot; id=&quot;l2884&quot;&gt;   2884&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1747&amp;quot; id=&amp;quot;h3-0-1747&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   2923 <a href="#l2904" class="line" id="l2904">   2904</a> &lt;a href=&quot;#l2885&quot; class=&quot;line&quot; id=&quot;l2885&quot;&gt;   2885&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1748&amp;quot; id=&amp;quot;h3-0-1748&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float texture2DCompare( sampler2D depths, vec2 uv, float compare ) {
   2924 <a href="#l2905" class="line" id="l2905">   2905</a> &lt;a href=&quot;#l2886&quot; class=&quot;line&quot; id=&quot;l2886&quot;&gt;   2886&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1749&amp;quot; id=&amp;quot;h3-0-1749&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float depth = unpackRGBAToDepth( texture2D( depths, uv ) );
   2925 <a href="#l2906" class="line" id="l2906">   2906</a> &lt;a href=&quot;#l2887&quot; class=&quot;line&quot; id=&quot;l2887&quot;&gt;   2887&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1750&amp;quot; id=&amp;quot;h3-0-1750&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef USE_REVERSEDEPTHBUF
   2926 <a href="#l2907" class="line" id="l2907">   2907</a> &lt;a href=&quot;#l2888&quot; class=&quot;line&quot; id=&quot;l2888&quot;&gt;   2888&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1751&amp;quot; id=&amp;quot;h3-0-1751&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return step( depth, compare );
   2927 <a href="#l2908" class="line" id="l2908">   2908</a> &lt;a href=&quot;#l2889&quot; class=&quot;line&quot; id=&quot;l2889&quot;&gt;   2889&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1752&amp;quot; id=&amp;quot;h3-0-1752&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   2928 <a href="#l2909" class="line" id="l2909">   2909</a> &lt;a href=&quot;#l2890&quot; class=&quot;line&quot; id=&quot;l2890&quot;&gt;   2890&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1753&amp;quot; id=&amp;quot;h3-0-1753&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return step( compare, depth );
   2929 <a href="#l2910" class="line" id="l2910">   2910</a> &lt;a href=&quot;#l2891&quot; class=&quot;line&quot; id=&quot;l2891&quot;&gt;   2891&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1754&amp;quot; id=&amp;quot;h3-0-1754&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2930 <a href="#l2911" class="line" id="l2911">   2911</a> &lt;a href=&quot;#l2892&quot; class=&quot;line&quot; id=&quot;l2892&quot;&gt;   2892&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1755&amp;quot; id=&amp;quot;h3-0-1755&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2931 <a href="#l2912" class="line" id="l2912">   2912</a> &lt;a href=&quot;#l2893&quot; class=&quot;line&quot; id=&quot;l2893&quot;&gt;   2893&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1756&amp;quot; id=&amp;quot;h3-0-1756&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {
   2932 <a href="#l2913" class="line" id="l2913">   2913</a> &lt;a href=&quot;#l2894&quot; class=&quot;line&quot; id=&quot;l2894&quot;&gt;   2894&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1757&amp;quot; id=&amp;quot;h3-0-1757&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return unpackRGBATo2Half( texture2D( shadow, uv ) );
   2933 <a href="#l2914" class="line" id="l2914">   2914</a> &lt;a href=&quot;#l2895&quot; class=&quot;line&quot; id=&quot;l2895&quot;&gt;   2895&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1758&amp;quot; id=&amp;quot;h3-0-1758&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2934 <a href="#l2915" class="line" id="l2915">   2915</a> &lt;a href=&quot;#l2896&quot; class=&quot;line&quot; id=&quot;l2896&quot;&gt;   2896&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1759&amp;quot; id=&amp;quot;h3-0-1759&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float VSMShadow (sampler2D shadow, vec2 uv, float compare ){
   2935 <a href="#l2916" class="line" id="l2916">   2916</a> &lt;a href=&quot;#l2897&quot; class=&quot;line&quot; id=&quot;l2897&quot;&gt;   2897&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1760&amp;quot; id=&amp;quot;h3-0-1760&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float occlusion = 1.0;
   2936 <a href="#l2917" class="line" id="l2917">   2917</a> &lt;a href=&quot;#l2898&quot; class=&quot;line&quot; id=&quot;l2898&quot;&gt;   2898&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1761&amp;quot; id=&amp;quot;h3-0-1761&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 distribution = texture2DDistribution( shadow, uv );
   2937 <a href="#l2918" class="line" id="l2918">   2918</a> &lt;a href=&quot;#l2899&quot; class=&quot;line&quot; id=&quot;l2899&quot;&gt;   2899&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1762&amp;quot; id=&amp;quot;h3-0-1762&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef USE_REVERSEDEPTHBUF
   2938 <a href="#l2919" class="line" id="l2919">   2919</a> &lt;a href=&quot;#l2900&quot; class=&quot;line&quot; id=&quot;l2900&quot;&gt;   2900&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1763&amp;quot; id=&amp;quot;h3-0-1763&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float hard_shadow = step( distribution.x, compare );
   2939 <a href="#l2920" class="line" id="l2920">   2920</a> &lt;a href=&quot;#l2901&quot; class=&quot;line&quot; id=&quot;l2901&quot;&gt;   2901&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1764&amp;quot; id=&amp;quot;h3-0-1764&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   2940 <a href="#l2921" class="line" id="l2921">   2921</a> &lt;a href=&quot;#l2902&quot; class=&quot;line&quot; id=&quot;l2902&quot;&gt;   2902&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1765&amp;quot; id=&amp;quot;h3-0-1765&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float hard_shadow = step( compare , distribution.x );
   2941 <a href="#l2922" class="line" id="l2922">   2922</a> &lt;a href=&quot;#l2903&quot; class=&quot;line&quot; id=&quot;l2903&quot;&gt;   2903&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1766&amp;quot; id=&amp;quot;h3-0-1766&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   2942 <a href="#l2923" class="line" id="l2923">   2923</a> &lt;a href=&quot;#l2904&quot; class=&quot;line&quot; id=&quot;l2904&quot;&gt;   2904&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1767&amp;quot; id=&amp;quot;h3-0-1767&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if (hard_shadow != 1.0 ) {
   2943 <a href="#l2924" class="line" id="l2924">   2924</a> &lt;a href=&quot;#l2905&quot; class=&quot;line&quot; id=&quot;l2905&quot;&gt;   2905&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1768&amp;quot; id=&amp;quot;h3-0-1768&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float distance = compare - distribution.x ;
   2944 <a href="#l2925" class="line" id="l2925">   2925</a> &lt;a href=&quot;#l2906&quot; class=&quot;line&quot; id=&quot;l2906&quot;&gt;   2906&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1769&amp;quot; id=&amp;quot;h3-0-1769&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float variance = max( 0.00000, distribution.y * distribution.y );
   2945 <a href="#l2926" class="line" id="l2926">   2926</a> &lt;a href=&quot;#l2907&quot; class=&quot;line&quot; id=&quot;l2907&quot;&gt;   2907&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1770&amp;quot; id=&amp;quot;h3-0-1770&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float softness_probability = variance / (variance + distance * distance );			softness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );			occlusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );
   2946 <a href="#l2927" class="line" id="l2927">   2927</a> &lt;a href=&quot;#l2908&quot; class=&quot;line&quot; id=&quot;l2908&quot;&gt;   2908&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1771&amp;quot; id=&amp;quot;h3-0-1771&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   2947 <a href="#l2928" class="line" id="l2928">   2928</a> &lt;a href=&quot;#l2909&quot; class=&quot;line&quot; id=&quot;l2909&quot;&gt;   2909&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1772&amp;quot; id=&amp;quot;h3-0-1772&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return occlusion;
   2948 <a href="#l2929" class="line" id="l2929">   2929</a> &lt;a href=&quot;#l2910&quot; class=&quot;line&quot; id=&quot;l2910&quot;&gt;   2910&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1773&amp;quot; id=&amp;quot;h3-0-1773&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   2949 <a href="#l2930" class="line" id="l2930">   2930</a> &lt;a href=&quot;#l2911&quot; class=&quot;line&quot; id=&quot;l2911&quot;&gt;   2911&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1774&amp;quot; id=&amp;quot;h3-0-1774&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord ) {
   2950 <a href="#l2931" class="line" id="l2931">   2931</a> &lt;a href=&quot;#l2912&quot; class=&quot;line&quot; id=&quot;l2912&quot;&gt;   2912&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1775&amp;quot; id=&amp;quot;h3-0-1775&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float shadow = 1.0;
   2951 <a href="#l2932" class="line" id="l2932">   2932</a> &lt;a href=&quot;#l2913&quot; class=&quot;line&quot; id=&quot;l2913&quot;&gt;   2913&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1776&amp;quot; id=&amp;quot;h3-0-1776&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		shadowCoord.xyz /= shadowCoord.w;
   2952 <a href="#l2933" class="line" id="l2933">   2933</a> &lt;a href=&quot;#l2914&quot; class=&quot;line&quot; id=&quot;l2914&quot;&gt;   2914&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1777&amp;quot; id=&amp;quot;h3-0-1777&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		shadowCoord.z += shadowBias;
   2953 <a href="#l2934" class="line" id="l2934">   2934</a> &lt;a href=&quot;#l2915&quot; class=&quot;line&quot; id=&quot;l2915&quot;&gt;   2915&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1778&amp;quot; id=&amp;quot;h3-0-1778&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		bool inFrustum = shadowCoord.x &amp;amp;gt;= 0.0 &amp;amp;amp;&amp;amp;amp; shadowCoord.x &amp;amp;lt;= 1.0 &amp;amp;amp;&amp;amp;amp; shadowCoord.y &amp;amp;gt;= 0.0 &amp;amp;amp;&amp;amp;amp; shadowCoord.y &amp;amp;lt;= 1.0;
   2954 <a href="#l2935" class="line" id="l2935">   2935</a> &lt;a href=&quot;#l2916&quot; class=&quot;line&quot; id=&quot;l2916&quot;&gt;   2916&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1779&amp;quot; id=&amp;quot;h3-0-1779&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		bool frustumTest = inFrustum &amp;amp;amp;&amp;amp;amp; shadowCoord.z &amp;amp;lt;= 1.0;
   2955 <a href="#l2936" class="line" id="l2936">   2936</a> &lt;a href=&quot;#l2917&quot; class=&quot;line&quot; id=&quot;l2917&quot;&gt;   2917&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1780&amp;quot; id=&amp;quot;h3-0-1780&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( frustumTest ) {
   2956 <a href="#l2937" class="line" id="l2937">   2937</a> &lt;a href=&quot;#l2918&quot; class=&quot;line&quot; id=&quot;l2918&quot;&gt;   2918&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1781&amp;quot; id=&amp;quot;h3-0-1781&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if defined( SHADOWMAP_TYPE_PCF )
   2957 <a href="#l2938" class="line" id="l2938">   2938</a> &lt;a href=&quot;#l2919&quot; class=&quot;line&quot; id=&quot;l2919&quot;&gt;   2919&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1782&amp;quot; id=&amp;quot;h3-0-1782&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
   2958 <a href="#l2939" class="line" id="l2939">   2939</a> &lt;a href=&quot;#l2920&quot; class=&quot;line&quot; id=&quot;l2920&quot;&gt;   2920&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1783&amp;quot; id=&amp;quot;h3-0-1783&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dx0 = - texelSize.x * shadowRadius;
   2959 <a href="#l2940" class="line" id="l2940">   2940</a> &lt;a href=&quot;#l2921&quot; class=&quot;line&quot; id=&quot;l2921&quot;&gt;   2921&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1784&amp;quot; id=&amp;quot;h3-0-1784&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dy0 = - texelSize.y * shadowRadius;
   2960 <a href="#l2941" class="line" id="l2941">   2941</a> &lt;a href=&quot;#l2922&quot; class=&quot;line&quot; id=&quot;l2922&quot;&gt;   2922&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1785&amp;quot; id=&amp;quot;h3-0-1785&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dx1 = + texelSize.x * shadowRadius;
   2961 <a href="#l2942" class="line" id="l2942">   2942</a> &lt;a href=&quot;#l2923&quot; class=&quot;line&quot; id=&quot;l2923&quot;&gt;   2923&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1786&amp;quot; id=&amp;quot;h3-0-1786&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dy1 = + texelSize.y * shadowRadius;
   2962 <a href="#l2943" class="line" id="l2943">   2943</a> &lt;a href=&quot;#l2924&quot; class=&quot;line&quot; id=&quot;l2924&quot;&gt;   2924&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1787&amp;quot; id=&amp;quot;h3-0-1787&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dx2 = dx0 / 2.0;
   2963 <a href="#l2944" class="line" id="l2944">   2944</a> &lt;a href=&quot;#l2925&quot; class=&quot;line&quot; id=&quot;l2925&quot;&gt;   2925&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1788&amp;quot; id=&amp;quot;h3-0-1788&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dy2 = dy0 / 2.0;
   2964 <a href="#l2945" class="line" id="l2945">   2945</a> &lt;a href=&quot;#l2926&quot; class=&quot;line&quot; id=&quot;l2926&quot;&gt;   2926&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1789&amp;quot; id=&amp;quot;h3-0-1789&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dx3 = dx1 / 2.0;
   2965 <a href="#l2946" class="line" id="l2946">   2946</a> &lt;a href=&quot;#l2927&quot; class=&quot;line&quot; id=&quot;l2927&quot;&gt;   2927&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1790&amp;quot; id=&amp;quot;h3-0-1790&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dy3 = dy1 / 2.0;
   2966 <a href="#l2947" class="line" id="l2947">   2947</a> &lt;a href=&quot;#l2928&quot; class=&quot;line&quot; id=&quot;l2928&quot;&gt;   2928&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1791&amp;quot; id=&amp;quot;h3-0-1791&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			shadow = (
   2967 <a href="#l2948" class="line" id="l2948">   2948</a> &lt;a href=&quot;#l2929&quot; class=&quot;line&quot; id=&quot;l2929&quot;&gt;   2929&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1792&amp;quot; id=&amp;quot;h3-0-1792&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +
   2968 <a href="#l2949" class="line" id="l2949">   2949</a> &lt;a href=&quot;#l2930&quot; class=&quot;line&quot; id=&quot;l2930&quot;&gt;   2930&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1793&amp;quot; id=&amp;quot;h3-0-1793&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +
   2969 <a href="#l2950" class="line" id="l2950">   2950</a> &lt;a href=&quot;#l2931&quot; class=&quot;line&quot; id=&quot;l2931&quot;&gt;   2931&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1794&amp;quot; id=&amp;quot;h3-0-1794&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +
   2970 <a href="#l2951" class="line" id="l2951">   2951</a> &lt;a href=&quot;#l2932&quot; class=&quot;line&quot; id=&quot;l2932&quot;&gt;   2932&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1795&amp;quot; id=&amp;quot;h3-0-1795&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +
   2971 <a href="#l2952" class="line" id="l2952">   2952</a> &lt;a href=&quot;#l2933&quot; class=&quot;line&quot; id=&quot;l2933&quot;&gt;   2933&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1796&amp;quot; id=&amp;quot;h3-0-1796&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +
   2972 <a href="#l2953" class="line" id="l2953">   2953</a> &lt;a href=&quot;#l2934&quot; class=&quot;line&quot; id=&quot;l2934&quot;&gt;   2934&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1797&amp;quot; id=&amp;quot;h3-0-1797&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +
   2973 <a href="#l2954" class="line" id="l2954">   2954</a> &lt;a href=&quot;#l2935&quot; class=&quot;line&quot; id=&quot;l2935&quot;&gt;   2935&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1798&amp;quot; id=&amp;quot;h3-0-1798&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +
   2974 <a href="#l2955" class="line" id="l2955">   2955</a> &lt;a href=&quot;#l2936&quot; class=&quot;line&quot; id=&quot;l2936&quot;&gt;   2936&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1799&amp;quot; id=&amp;quot;h3-0-1799&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +
   2975 <a href="#l2956" class="line" id="l2956">   2956</a> &lt;a href=&quot;#l2937&quot; class=&quot;line&quot; id=&quot;l2937&quot;&gt;   2937&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1800&amp;quot; id=&amp;quot;h3-0-1800&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +
   2976 <a href="#l2957" class="line" id="l2957">   2957</a> &lt;a href=&quot;#l2938&quot; class=&quot;line&quot; id=&quot;l2938&quot;&gt;   2938&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1801&amp;quot; id=&amp;quot;h3-0-1801&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +
   2977 <a href="#l2958" class="line" id="l2958">   2958</a> &lt;a href=&quot;#l2939&quot; class=&quot;line&quot; id=&quot;l2939&quot;&gt;   2939&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1802&amp;quot; id=&amp;quot;h3-0-1802&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +
   2978 <a href="#l2959" class="line" id="l2959">   2959</a> &lt;a href=&quot;#l2940&quot; class=&quot;line&quot; id=&quot;l2940&quot;&gt;   2940&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1803&amp;quot; id=&amp;quot;h3-0-1803&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +
   2979 <a href="#l2960" class="line" id="l2960">   2960</a> &lt;a href=&quot;#l2941&quot; class=&quot;line&quot; id=&quot;l2941&quot;&gt;   2941&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1804&amp;quot; id=&amp;quot;h3-0-1804&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +
   2980 <a href="#l2961" class="line" id="l2961">   2961</a> &lt;a href=&quot;#l2942&quot; class=&quot;line&quot; id=&quot;l2942&quot;&gt;   2942&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1805&amp;quot; id=&amp;quot;h3-0-1805&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +
   2981 <a href="#l2962" class="line" id="l2962">   2962</a> &lt;a href=&quot;#l2943&quot; class=&quot;line&quot; id=&quot;l2943&quot;&gt;   2943&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1806&amp;quot; id=&amp;quot;h3-0-1806&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +
   2982 <a href="#l2963" class="line" id="l2963">   2963</a> &lt;a href=&quot;#l2944&quot; class=&quot;line&quot; id=&quot;l2944&quot;&gt;   2944&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1807&amp;quot; id=&amp;quot;h3-0-1807&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +
   2983 <a href="#l2964" class="line" id="l2964">   2964</a> &lt;a href=&quot;#l2945&quot; class=&quot;line&quot; id=&quot;l2945&quot;&gt;   2945&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1808&amp;quot; id=&amp;quot;h3-0-1808&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )
   2984 <a href="#l2965" class="line" id="l2965">   2965</a> &lt;a href=&quot;#l2946&quot; class=&quot;line&quot; id=&quot;l2946&quot;&gt;   2946&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1809&amp;quot; id=&amp;quot;h3-0-1809&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			) * ( 1.0 / 17.0 );
   2985 <a href="#l2966" class="line" id="l2966">   2966</a> &lt;a href=&quot;#l2947&quot; class=&quot;line&quot; id=&quot;l2947&quot;&gt;   2947&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1810&amp;quot; id=&amp;quot;h3-0-1810&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#elif defined( SHADOWMAP_TYPE_PCF_SOFT )
   2986 <a href="#l2967" class="line" id="l2967">   2967</a> &lt;a href=&quot;#l2948&quot; class=&quot;line&quot; id=&quot;l2948&quot;&gt;   2948&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1811&amp;quot; id=&amp;quot;h3-0-1811&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 texelSize = vec2( 1.0 ) / shadowMapSize;
   2987 <a href="#l2968" class="line" id="l2968">   2968</a> &lt;a href=&quot;#l2949&quot; class=&quot;line&quot; id=&quot;l2949&quot;&gt;   2949&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1812&amp;quot; id=&amp;quot;h3-0-1812&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dx = texelSize.x;
   2988 <a href="#l2969" class="line" id="l2969">   2969</a> &lt;a href=&quot;#l2950&quot; class=&quot;line&quot; id=&quot;l2950&quot;&gt;   2950&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1813&amp;quot; id=&amp;quot;h3-0-1813&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dy = texelSize.y;
   2989 <a href="#l2970" class="line" id="l2970">   2970</a> &lt;a href=&quot;#l2951&quot; class=&quot;line&quot; id=&quot;l2951&quot;&gt;   2951&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1814&amp;quot; id=&amp;quot;h3-0-1814&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 uv = shadowCoord.xy;
   2990 <a href="#l2971" class="line" id="l2971">   2971</a> &lt;a href=&quot;#l2952&quot; class=&quot;line&quot; id=&quot;l2952&quot;&gt;   2952&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1815&amp;quot; id=&amp;quot;h3-0-1815&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 f = fract( uv * shadowMapSize + 0.5 );
   2991 <a href="#l2972" class="line" id="l2972">   2972</a> &lt;a href=&quot;#l2953&quot; class=&quot;line&quot; id=&quot;l2953&quot;&gt;   2953&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1816&amp;quot; id=&amp;quot;h3-0-1816&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv -= f * texelSize;
   2992 <a href="#l2973" class="line" id="l2973">   2973</a> &lt;a href=&quot;#l2954&quot; class=&quot;line&quot; id=&quot;l2954&quot;&gt;   2954&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1817&amp;quot; id=&amp;quot;h3-0-1817&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			shadow = (
   2993 <a href="#l2974" class="line" id="l2974">   2974</a> &lt;a href=&quot;#l2955&quot; class=&quot;line&quot; id=&quot;l2955&quot;&gt;   2955&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1818&amp;quot; id=&amp;quot;h3-0-1818&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, uv, shadowCoord.z ) +
   2994 <a href="#l2975" class="line" id="l2975">   2975</a> &lt;a href=&quot;#l2956&quot; class=&quot;line&quot; id=&quot;l2956&quot;&gt;   2956&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1819&amp;quot; id=&amp;quot;h3-0-1819&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +
   2995 <a href="#l2976" class="line" id="l2976">   2976</a> &lt;a href=&quot;#l2957&quot; class=&quot;line&quot; id=&quot;l2957&quot;&gt;   2957&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1820&amp;quot; id=&amp;quot;h3-0-1820&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +
   2996 <a href="#l2977" class="line" id="l2977">   2977</a> &lt;a href=&quot;#l2958&quot; class=&quot;line&quot; id=&quot;l2958&quot;&gt;   2958&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1821&amp;quot; id=&amp;quot;h3-0-1821&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				texture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +
   2997 <a href="#l2978" class="line" id="l2978">   2978</a> &lt;a href=&quot;#l2959&quot; class=&quot;line&quot; id=&quot;l2959&quot;&gt;   2959&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1822&amp;quot; id=&amp;quot;h3-0-1822&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				mix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ),
   2998 <a href="#l2979" class="line" id="l2979">   2979</a> &lt;a href=&quot;#l2960&quot; class=&quot;line&quot; id=&quot;l2960&quot;&gt;   2960&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1823&amp;quot; id=&amp;quot;h3-0-1823&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),
   2999 <a href="#l2980" class="line" id="l2980">   2980</a> &lt;a href=&quot;#l2961&quot; class=&quot;line&quot; id=&quot;l2961&quot;&gt;   2961&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1824&amp;quot; id=&amp;quot;h3-0-1824&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 f.x ) +
   3000 <a href="#l2981" class="line" id="l2981">   2981</a> &lt;a href=&quot;#l2962&quot; class=&quot;line&quot; id=&quot;l2962&quot;&gt;   2962&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1825&amp;quot; id=&amp;quot;h3-0-1825&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				mix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ),
   3001 <a href="#l2982" class="line" id="l2982">   2982</a> &lt;a href=&quot;#l2963&quot; class=&quot;line&quot; id=&quot;l2963&quot;&gt;   2963&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1826&amp;quot; id=&amp;quot;h3-0-1826&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),
   3002 <a href="#l2983" class="line" id="l2983">   2983</a> &lt;a href=&quot;#l2964&quot; class=&quot;line&quot; id=&quot;l2964&quot;&gt;   2964&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1827&amp;quot; id=&amp;quot;h3-0-1827&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 f.x ) +
   3003 <a href="#l2984" class="line" id="l2984">   2984</a> &lt;a href=&quot;#l2965&quot; class=&quot;line&quot; id=&quot;l2965&quot;&gt;   2965&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1828&amp;quot; id=&amp;quot;h3-0-1828&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				mix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ),
   3004 <a href="#l2985" class="line" id="l2985">   2985</a> &lt;a href=&quot;#l2966&quot; class=&quot;line&quot; id=&quot;l2966&quot;&gt;   2966&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1829&amp;quot; id=&amp;quot;h3-0-1829&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),
   3005 <a href="#l2986" class="line" id="l2986">   2986</a> &lt;a href=&quot;#l2967&quot; class=&quot;line&quot; id=&quot;l2967&quot;&gt;   2967&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1830&amp;quot; id=&amp;quot;h3-0-1830&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 f.y ) +
   3006 <a href="#l2987" class="line" id="l2987">   2987</a> &lt;a href=&quot;#l2968&quot; class=&quot;line&quot; id=&quot;l2968&quot;&gt;   2968&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1831&amp;quot; id=&amp;quot;h3-0-1831&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				mix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ),
   3007 <a href="#l2988" class="line" id="l2988">   2988</a> &lt;a href=&quot;#l2969&quot; class=&quot;line&quot; id=&quot;l2969&quot;&gt;   2969&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1832&amp;quot; id=&amp;quot;h3-0-1832&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),
   3008 <a href="#l2989" class="line" id="l2989">   2989</a> &lt;a href=&quot;#l2970&quot; class=&quot;line&quot; id=&quot;l2970&quot;&gt;   2970&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1833&amp;quot; id=&amp;quot;h3-0-1833&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 f.y ) +
   3009 <a href="#l2990" class="line" id="l2990">   2990</a> &lt;a href=&quot;#l2971&quot; class=&quot;line&quot; id=&quot;l2971&quot;&gt;   2971&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1834&amp;quot; id=&amp;quot;h3-0-1834&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				mix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ),
   3010 <a href="#l2991" class="line" id="l2991">   2991</a> &lt;a href=&quot;#l2972&quot; class=&quot;line&quot; id=&quot;l2972&quot;&gt;   2972&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1835&amp;quot; id=&amp;quot;h3-0-1835&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+						  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),
   3011 <a href="#l2992" class="line" id="l2992">   2992</a> &lt;a href=&quot;#l2973&quot; class=&quot;line&quot; id=&quot;l2973&quot;&gt;   2973&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1836&amp;quot; id=&amp;quot;h3-0-1836&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+						  f.x ),
   3012 <a href="#l2993" class="line" id="l2993">   2993</a> &lt;a href=&quot;#l2974&quot; class=&quot;line&quot; id=&quot;l2974&quot;&gt;   2974&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1837&amp;quot; id=&amp;quot;h3-0-1837&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ),
   3013 <a href="#l2994" class="line" id="l2994">   2994</a> &lt;a href=&quot;#l2975&quot; class=&quot;line&quot; id=&quot;l2975&quot;&gt;   2975&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1838&amp;quot; id=&amp;quot;h3-0-1838&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+						  texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),
   3014 <a href="#l2995" class="line" id="l2995">   2995</a> &lt;a href=&quot;#l2976&quot; class=&quot;line&quot; id=&quot;l2976&quot;&gt;   2976&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1839&amp;quot; id=&amp;quot;h3-0-1839&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+						  f.x ),
   3015 <a href="#l2996" class="line" id="l2996">   2996</a> &lt;a href=&quot;#l2977&quot; class=&quot;line&quot; id=&quot;l2977&quot;&gt;   2977&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1840&amp;quot; id=&amp;quot;h3-0-1840&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					 f.y )
   3016 <a href="#l2997" class="line" id="l2997">   2997</a> &lt;a href=&quot;#l2978&quot; class=&quot;line&quot; id=&quot;l2978&quot;&gt;   2978&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1841&amp;quot; id=&amp;quot;h3-0-1841&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			) * ( 1.0 / 9.0 );
   3017 <a href="#l2998" class="line" id="l2998">   2998</a> &lt;a href=&quot;#l2979&quot; class=&quot;line&quot; id=&quot;l2979&quot;&gt;   2979&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1842&amp;quot; id=&amp;quot;h3-0-1842&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#elif defined( SHADOWMAP_TYPE_VSM )
   3018 <a href="#l2999" class="line" id="l2999">   2999</a> &lt;a href=&quot;#l2980&quot; class=&quot;line&quot; id=&quot;l2980&quot;&gt;   2980&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1843&amp;quot; id=&amp;quot;h3-0-1843&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			shadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );
   3019 <a href="#l3000" class="line" id="l3000">   3000</a> &lt;a href=&quot;#l2981&quot; class=&quot;line&quot; id=&quot;l2981&quot;&gt;   2981&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1844&amp;quot; id=&amp;quot;h3-0-1844&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   3020 <a href="#l3001" class="line" id="l3001">   3001</a> &lt;a href=&quot;#l2982&quot; class=&quot;line&quot; id=&quot;l2982&quot;&gt;   2982&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1845&amp;quot; id=&amp;quot;h3-0-1845&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			shadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );
   3021 <a href="#l3002" class="line" id="l3002">   3002</a> &lt;a href=&quot;#l2983&quot; class=&quot;line&quot; id=&quot;l2983&quot;&gt;   2983&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1846&amp;quot; id=&amp;quot;h3-0-1846&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   3022 <a href="#l3003" class="line" id="l3003">   3003</a> &lt;a href=&quot;#l2984&quot; class=&quot;line&quot; id=&quot;l2984&quot;&gt;   2984&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1847&amp;quot; id=&amp;quot;h3-0-1847&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   3023 <a href="#l3004" class="line" id="l3004">   3004</a> &lt;a href=&quot;#l2985&quot; class=&quot;line&quot; id=&quot;l2985&quot;&gt;   2985&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1848&amp;quot; id=&amp;quot;h3-0-1848&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return mix( 1.0, shadow, shadowIntensity );
   3024 <a href="#l3005" class="line" id="l3005">   3005</a> &lt;a href=&quot;#l2986&quot; class=&quot;line&quot; id=&quot;l2986&quot;&gt;   2986&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1849&amp;quot; id=&amp;quot;h3-0-1849&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3025 <a href="#l3006" class="line" id="l3006">   3006</a> &lt;a href=&quot;#l2987&quot; class=&quot;line&quot; id=&quot;l2987&quot;&gt;   2987&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1850&amp;quot; id=&amp;quot;h3-0-1850&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 cubeToUV( vec3 v, float texelSizeY ) {
   3026 <a href="#l3007" class="line" id="l3007">   3007</a> &lt;a href=&quot;#l2988&quot; class=&quot;line&quot; id=&quot;l2988&quot;&gt;   2988&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1851&amp;quot; id=&amp;quot;h3-0-1851&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 absV = abs( v );
   3027 <a href="#l3008" class="line" id="l3008">   3008</a> &lt;a href=&quot;#l2989&quot; class=&quot;line&quot; id=&quot;l2989&quot;&gt;   2989&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1852&amp;quot; id=&amp;quot;h3-0-1852&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );
   3028 <a href="#l3009" class="line" id="l3009">   3009</a> &lt;a href=&quot;#l2990&quot; class=&quot;line&quot; id=&quot;l2990&quot;&gt;   2990&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1853&amp;quot; id=&amp;quot;h3-0-1853&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		absV *= scaleToCube;
   3029 <a href="#l3010" class="line" id="l3010">   3010</a> &lt;a href=&quot;#l2991&quot; class=&quot;line&quot; id=&quot;l2991&quot;&gt;   2991&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1854&amp;quot; id=&amp;quot;h3-0-1854&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		v *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );
   3030 <a href="#l3011" class="line" id="l3011">   3011</a> &lt;a href=&quot;#l2992&quot; class=&quot;line&quot; id=&quot;l2992&quot;&gt;   2992&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1855&amp;quot; id=&amp;quot;h3-0-1855&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 planar = v.xy;
   3031 <a href="#l3012" class="line" id="l3012">   3012</a> &lt;a href=&quot;#l2993&quot; class=&quot;line&quot; id=&quot;l2993&quot;&gt;   2993&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1856&amp;quot; id=&amp;quot;h3-0-1856&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float almostATexel = 1.5 * texelSizeY;
   3032 <a href="#l3013" class="line" id="l3013">   3013</a> &lt;a href=&quot;#l2994&quot; class=&quot;line&quot; id=&quot;l2994&quot;&gt;   2994&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1857&amp;quot; id=&amp;quot;h3-0-1857&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float almostOne = 1.0 - almostATexel;
   3033 <a href="#l3014" class="line" id="l3014">   3014</a> &lt;a href=&quot;#l2995&quot; class=&quot;line&quot; id=&quot;l2995&quot;&gt;   2995&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1858&amp;quot; id=&amp;quot;h3-0-1858&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( absV.z &amp;amp;gt;= almostOne ) {
   3034 <a href="#l3015" class="line" id="l3015">   3015</a> &lt;a href=&quot;#l2996&quot; class=&quot;line&quot; id=&quot;l2996&quot;&gt;   2996&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1859&amp;quot; id=&amp;quot;h3-0-1859&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( v.z &amp;amp;gt; 0.0 )
   3035 <a href="#l3016" class="line" id="l3016">   3016</a> &lt;a href=&quot;#l2997&quot; class=&quot;line&quot; id=&quot;l2997&quot;&gt;   2997&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1860&amp;quot; id=&amp;quot;h3-0-1860&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				planar.x = 4.0 - v.x;
   3036 <a href="#l3017" class="line" id="l3017">   3017</a> &lt;a href=&quot;#l2998&quot; class=&quot;line&quot; id=&quot;l2998&quot;&gt;   2998&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1861&amp;quot; id=&amp;quot;h3-0-1861&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( absV.x &amp;amp;gt;= almostOne ) {
   3037 <a href="#l3018" class="line" id="l3018">   3018</a> &lt;a href=&quot;#l2999&quot; class=&quot;line&quot; id=&quot;l2999&quot;&gt;   2999&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1862&amp;quot; id=&amp;quot;h3-0-1862&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float signX = sign( v.x );
   3038 <a href="#l3019" class="line" id="l3019">   3019</a> &lt;a href=&quot;#l3000&quot; class=&quot;line&quot; id=&quot;l3000&quot;&gt;   3000&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1863&amp;quot; id=&amp;quot;h3-0-1863&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			planar.x = v.z * signX + 2.0 * signX;
   3039 <a href="#l3020" class="line" id="l3020">   3020</a> &lt;a href=&quot;#l3001&quot; class=&quot;line&quot; id=&quot;l3001&quot;&gt;   3001&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1864&amp;quot; id=&amp;quot;h3-0-1864&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else if ( absV.y &amp;amp;gt;= almostOne ) {
   3040 <a href="#l3021" class="line" id="l3021">   3021</a> &lt;a href=&quot;#l3002&quot; class=&quot;line&quot; id=&quot;l3002&quot;&gt;   3002&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1865&amp;quot; id=&amp;quot;h3-0-1865&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float signY = sign( v.y );
   3041 <a href="#l3022" class="line" id="l3022">   3022</a> &lt;a href=&quot;#l3003&quot; class=&quot;line&quot; id=&quot;l3003&quot;&gt;   3003&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1866&amp;quot; id=&amp;quot;h3-0-1866&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			planar.x = v.x + 2.0 * signY + 2.0;
   3042 <a href="#l3023" class="line" id="l3023">   3023</a> &lt;a href=&quot;#l3004&quot; class=&quot;line&quot; id=&quot;l3004&quot;&gt;   3004&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1867&amp;quot; id=&amp;quot;h3-0-1867&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			planar.y = v.z * signY - 2.0;
   3043 <a href="#l3024" class="line" id="l3024">   3024</a> &lt;a href=&quot;#l3005&quot; class=&quot;line&quot; id=&quot;l3005&quot;&gt;   3005&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1868&amp;quot; id=&amp;quot;h3-0-1868&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   3044 <a href="#l3025" class="line" id="l3025">   3025</a> &lt;a href=&quot;#l3006&quot; class=&quot;line&quot; id=&quot;l3006&quot;&gt;   3006&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1869&amp;quot; id=&amp;quot;h3-0-1869&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );
   3045 <a href="#l3026" class="line" id="l3026">   3026</a> &lt;a href=&quot;#l3007&quot; class=&quot;line&quot; id=&quot;l3007&quot;&gt;   3007&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1870&amp;quot; id=&amp;quot;h3-0-1870&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3046 <a href="#l3027" class="line" id="l3027">   3027</a> &lt;a href=&quot;#l3008&quot; class=&quot;line&quot; id=&quot;l3008&quot;&gt;   3008&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1871&amp;quot; id=&amp;quot;h3-0-1871&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowIntensity, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {
   3047 <a href="#l3028" class="line" id="l3028">   3028</a> &lt;a href=&quot;#l3009&quot; class=&quot;line&quot; id=&quot;l3009&quot;&gt;   3009&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1872&amp;quot; id=&amp;quot;h3-0-1872&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float shadow = 1.0;
   3048 <a href="#l3029" class="line" id="l3029">   3029</a> &lt;a href=&quot;#l3010&quot; class=&quot;line&quot; id=&quot;l3010&quot;&gt;   3010&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1873&amp;quot; id=&amp;quot;h3-0-1873&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 lightToPosition = shadowCoord.xyz;
   3049 <a href="#l3030" class="line" id="l3030">   3030</a> &lt;a href=&quot;#l3011&quot; class=&quot;line&quot; id=&quot;l3011&quot;&gt;   3011&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1874&amp;quot; id=&amp;quot;h3-0-1874&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   3050 <a href="#l3031" class="line" id="l3031">   3031</a> &lt;a href=&quot;#l3012&quot; class=&quot;line&quot; id=&quot;l3012&quot;&gt;   3012&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1875&amp;quot; id=&amp;quot;h3-0-1875&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float lightToPositionLength = length( lightToPosition );
   3051 <a href="#l3032" class="line" id="l3032">   3032</a> &lt;a href=&quot;#l3013&quot; class=&quot;line&quot; id=&quot;l3013&quot;&gt;   3013&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1876&amp;quot; id=&amp;quot;h3-0-1876&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( lightToPositionLength - shadowCameraFar &amp;amp;lt;= 0.0 &amp;amp;amp;&amp;amp;amp; lightToPositionLength - shadowCameraNear &amp;amp;gt;= 0.0 ) {
   3052 <a href="#l3033" class="line" id="l3033">   3033</a> &lt;a href=&quot;#l3014&quot; class=&quot;line&quot; id=&quot;l3014&quot;&gt;   3014&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1877&amp;quot; id=&amp;quot;h3-0-1877&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float dp = ( lightToPositionLength - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );			dp += shadowBias;
   3053 <a href="#l3034" class="line" id="l3034">   3034</a> &lt;a href=&quot;#l3015&quot; class=&quot;line&quot; id=&quot;l3015&quot;&gt;   3015&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1878&amp;quot; id=&amp;quot;h3-0-1878&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 bd3D = normalize( lightToPosition );
   3054 <a href="#l3035" class="line" id="l3035">   3035</a> &lt;a href=&quot;#l3016&quot; class=&quot;line&quot; id=&quot;l3016&quot;&gt;   3016&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1879&amp;quot; id=&amp;quot;h3-0-1879&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );
   3055 <a href="#l3036" class="line" id="l3036">   3036</a> &lt;a href=&quot;#l3017&quot; class=&quot;line&quot; id=&quot;l3017&quot;&gt;   3017&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1880&amp;quot; id=&amp;quot;h3-0-1880&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )
   3056 <a href="#l3037" class="line" id="l3037">   3037</a> &lt;a href=&quot;#l3018&quot; class=&quot;line&quot; id=&quot;l3018&quot;&gt;   3018&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1881&amp;quot; id=&amp;quot;h3-0-1881&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;
   3057 <a href="#l3038" class="line" id="l3038">   3038</a> &lt;a href=&quot;#l3019&quot; class=&quot;line&quot; id=&quot;l3019&quot;&gt;   3019&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1882&amp;quot; id=&amp;quot;h3-0-1882&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				shadow = (
   3058 <a href="#l3039" class="line" id="l3039">   3039</a> &lt;a href=&quot;#l3020&quot; class=&quot;line&quot; id=&quot;l3020&quot;&gt;   3020&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1883&amp;quot; id=&amp;quot;h3-0-1883&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +
   3059 <a href="#l3040" class="line" id="l3040">   3040</a> &lt;a href=&quot;#l3021&quot; class=&quot;line&quot; id=&quot;l3021&quot;&gt;   3021&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1884&amp;quot; id=&amp;quot;h3-0-1884&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +
   3060 <a href="#l3041" class="line" id="l3041">   3041</a> &lt;a href=&quot;#l3022&quot; class=&quot;line&quot; id=&quot;l3022&quot;&gt;   3022&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1885&amp;quot; id=&amp;quot;h3-0-1885&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +
   3061 <a href="#l3042" class="line" id="l3042">   3042</a> &lt;a href=&quot;#l3023&quot; class=&quot;line&quot; id=&quot;l3023&quot;&gt;   3023&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1886&amp;quot; id=&amp;quot;h3-0-1886&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +
   3062 <a href="#l3043" class="line" id="l3043">   3043</a> &lt;a href=&quot;#l3024&quot; class=&quot;line&quot; id=&quot;l3024&quot;&gt;   3024&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1887&amp;quot; id=&amp;quot;h3-0-1887&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +
   3063 <a href="#l3044" class="line" id="l3044">   3044</a> &lt;a href=&quot;#l3025&quot; class=&quot;line&quot; id=&quot;l3025&quot;&gt;   3025&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1888&amp;quot; id=&amp;quot;h3-0-1888&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +
   3064 <a href="#l3045" class="line" id="l3045">   3045</a> &lt;a href=&quot;#l3026&quot; class=&quot;line&quot; id=&quot;l3026&quot;&gt;   3026&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1889&amp;quot; id=&amp;quot;h3-0-1889&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +
   3065 <a href="#l3046" class="line" id="l3046">   3046</a> &lt;a href=&quot;#l3027&quot; class=&quot;line&quot; id=&quot;l3027&quot;&gt;   3027&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1890&amp;quot; id=&amp;quot;h3-0-1890&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +
   3066 <a href="#l3047" class="line" id="l3047">   3047</a> &lt;a href=&quot;#l3028&quot; class=&quot;line&quot; id=&quot;l3028&quot;&gt;   3028&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1891&amp;quot; id=&amp;quot;h3-0-1891&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					texture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )
   3067 <a href="#l3048" class="line" id="l3048">   3048</a> &lt;a href=&quot;#l3029&quot; class=&quot;line&quot; id=&quot;l3029&quot;&gt;   3029&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1892&amp;quot; id=&amp;quot;h3-0-1892&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				) * ( 1.0 / 9.0 );
   3068 <a href="#l3049" class="line" id="l3049">   3049</a> &lt;a href=&quot;#l3030&quot; class=&quot;line&quot; id=&quot;l3030&quot;&gt;   3030&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1893&amp;quot; id=&amp;quot;h3-0-1893&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#else
   3069 <a href="#l3050" class="line" id="l3050">   3050</a> &lt;a href=&quot;#l3031&quot; class=&quot;line&quot; id=&quot;l3031&quot;&gt;   3031&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1894&amp;quot; id=&amp;quot;h3-0-1894&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				shadow = texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );
   3070 <a href="#l3051" class="line" id="l3051">   3051</a> &lt;a href=&quot;#l3032&quot; class=&quot;line&quot; id=&quot;l3032&quot;&gt;   3032&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1895&amp;quot; id=&amp;quot;h3-0-1895&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#endif
   3071 <a href="#l3052" class="line" id="l3052">   3052</a> &lt;a href=&quot;#l3033&quot; class=&quot;line&quot; id=&quot;l3033&quot;&gt;   3033&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1896&amp;quot; id=&amp;quot;h3-0-1896&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   3072 <a href="#l3053" class="line" id="l3053">   3053</a> &lt;a href=&quot;#l3034&quot; class=&quot;line&quot; id=&quot;l3034&quot;&gt;   3034&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1897&amp;quot; id=&amp;quot;h3-0-1897&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return mix( 1.0, shadow, shadowIntensity );
   3073 <a href="#l3054" class="line" id="l3054">   3054</a> &lt;a href=&quot;#l3035&quot; class=&quot;line&quot; id=&quot;l3035&quot;&gt;   3035&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1898&amp;quot; id=&amp;quot;h3-0-1898&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3074 <a href="#l3055" class="line" id="l3055">   3055</a> &lt;a href=&quot;#l3036&quot; class=&quot;line&quot; id=&quot;l3036&quot;&gt;   3036&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1899&amp;quot; id=&amp;quot;h3-0-1899&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,XV=`#if NUM_SPOT_LIGHT_COORDS &amp;amp;gt; 0
   3075 <a href="#l3056" class="line" id="l3056">   3056</a> &lt;a href=&quot;#l3037&quot; class=&quot;line&quot; id=&quot;l3037&quot;&gt;   3037&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1900&amp;quot; id=&amp;quot;h3-0-1900&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat4 spotLightMatrix[ NUM_SPOT_LIGHT_COORDS ];
   3076 <a href="#l3057" class="line" id="l3057">   3057</a> &lt;a href=&quot;#l3038&quot; class=&quot;line&quot; id=&quot;l3038&quot;&gt;   3038&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1901&amp;quot; id=&amp;quot;h3-0-1901&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec4 vSpotLightCoord[ NUM_SPOT_LIGHT_COORDS ];
   3077 <a href="#l3058" class="line" id="l3058">   3058</a> &lt;a href=&quot;#l3039&quot; class=&quot;line&quot; id=&quot;l3039&quot;&gt;   3039&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1902&amp;quot; id=&amp;quot;h3-0-1902&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3078 <a href="#l3059" class="line" id="l3059">   3059</a> &lt;a href=&quot;#l3040&quot; class=&quot;line&quot; id=&quot;l3040&quot;&gt;   3040&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1903&amp;quot; id=&amp;quot;h3-0-1903&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHADOWMAP
   3079 <a href="#l3060" class="line" id="l3060">   3060</a> &lt;a href=&quot;#l3041&quot; class=&quot;line&quot; id=&quot;l3041&quot;&gt;   3041&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1904&amp;quot; id=&amp;quot;h3-0-1904&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_DIR_LIGHT_SHADOWS &amp;amp;gt; 0
   3080 <a href="#l3061" class="line" id="l3061">   3061</a> &lt;a href=&quot;#l3042&quot; class=&quot;line&quot; id=&quot;l3042&quot;&gt;   3042&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1905&amp;quot; id=&amp;quot;h3-0-1905&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];
   3081 <a href="#l3062" class="line" id="l3062">   3062</a> &lt;a href=&quot;#l3043&quot; class=&quot;line&quot; id=&quot;l3043&quot;&gt;   3043&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1906&amp;quot; id=&amp;quot;h3-0-1906&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];
   3082 <a href="#l3063" class="line" id="l3063">   3063</a> &lt;a href=&quot;#l3044&quot; class=&quot;line&quot; id=&quot;l3044&quot;&gt;   3044&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1907&amp;quot; id=&amp;quot;h3-0-1907&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		struct DirectionalLightShadow {
   3083 <a href="#l3064" class="line" id="l3064">   3064</a> &lt;a href=&quot;#l3045&quot; class=&quot;line&quot; id=&quot;l3045&quot;&gt;   3045&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1908&amp;quot; id=&amp;quot;h3-0-1908&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowIntensity;
   3084 <a href="#l3065" class="line" id="l3065">   3065</a> &lt;a href=&quot;#l3046&quot; class=&quot;line&quot; id=&quot;l3046&quot;&gt;   3046&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1909&amp;quot; id=&amp;quot;h3-0-1909&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowBias;
   3085 <a href="#l3066" class="line" id="l3066">   3066</a> &lt;a href=&quot;#l3047&quot; class=&quot;line&quot; id=&quot;l3047&quot;&gt;   3047&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1910&amp;quot; id=&amp;quot;h3-0-1910&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowNormalBias;
   3086 <a href="#l3067" class="line" id="l3067">   3067</a> &lt;a href=&quot;#l3048&quot; class=&quot;line&quot; id=&quot;l3048&quot;&gt;   3048&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1911&amp;quot; id=&amp;quot;h3-0-1911&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowRadius;
   3087 <a href="#l3068" class="line" id="l3068">   3068</a> &lt;a href=&quot;#l3049&quot; class=&quot;line&quot; id=&quot;l3049&quot;&gt;   3049&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1912&amp;quot; id=&amp;quot;h3-0-1912&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 shadowMapSize;
   3088 <a href="#l3069" class="line" id="l3069">   3069</a> &lt;a href=&quot;#l3050&quot; class=&quot;line&quot; id=&quot;l3050&quot;&gt;   3050&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1913&amp;quot; id=&amp;quot;h3-0-1913&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		};
   3089 <a href="#l3070" class="line" id="l3070">   3070</a> &lt;a href=&quot;#l3051&quot; class=&quot;line&quot; id=&quot;l3051&quot;&gt;   3051&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1914&amp;quot; id=&amp;quot;h3-0-1914&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];
   3090 <a href="#l3071" class="line" id="l3071">   3071</a> &lt;a href=&quot;#l3052&quot; class=&quot;line&quot; id=&quot;l3052&quot;&gt;   3052&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1915&amp;quot; id=&amp;quot;h3-0-1915&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3091 <a href="#l3072" class="line" id="l3072">   3072</a> &lt;a href=&quot;#l3053&quot; class=&quot;line&quot; id=&quot;l3053&quot;&gt;   3053&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1916&amp;quot; id=&amp;quot;h3-0-1916&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_SPOT_LIGHT_SHADOWS &amp;amp;gt; 0
   3092 <a href="#l3073" class="line" id="l3073">   3073</a> &lt;a href=&quot;#l3054&quot; class=&quot;line&quot; id=&quot;l3054&quot;&gt;   3054&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1917&amp;quot; id=&amp;quot;h3-0-1917&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		struct SpotLightShadow {
   3093 <a href="#l3074" class="line" id="l3074">   3074</a> &lt;a href=&quot;#l3055&quot; class=&quot;line&quot; id=&quot;l3055&quot;&gt;   3055&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1918&amp;quot; id=&amp;quot;h3-0-1918&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowIntensity;
   3094 <a href="#l3075" class="line" id="l3075">   3075</a> &lt;a href=&quot;#l3056&quot; class=&quot;line&quot; id=&quot;l3056&quot;&gt;   3056&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1919&amp;quot; id=&amp;quot;h3-0-1919&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowBias;
   3095 <a href="#l3076" class="line" id="l3076">   3076</a> &lt;a href=&quot;#l3057&quot; class=&quot;line&quot; id=&quot;l3057&quot;&gt;   3057&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1920&amp;quot; id=&amp;quot;h3-0-1920&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowNormalBias;
   3096 <a href="#l3077" class="line" id="l3077">   3077</a> &lt;a href=&quot;#l3058&quot; class=&quot;line&quot; id=&quot;l3058&quot;&gt;   3058&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1921&amp;quot; id=&amp;quot;h3-0-1921&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowRadius;
   3097 <a href="#l3078" class="line" id="l3078">   3078</a> &lt;a href=&quot;#l3059&quot; class=&quot;line&quot; id=&quot;l3059&quot;&gt;   3059&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1922&amp;quot; id=&amp;quot;h3-0-1922&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 shadowMapSize;
   3098 <a href="#l3079" class="line" id="l3079">   3079</a> &lt;a href=&quot;#l3060&quot; class=&quot;line&quot; id=&quot;l3060&quot;&gt;   3060&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1923&amp;quot; id=&amp;quot;h3-0-1923&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		};
   3099 <a href="#l3080" class="line" id="l3080">   3080</a> &lt;a href=&quot;#l3061&quot; class=&quot;line&quot; id=&quot;l3061&quot;&gt;   3061&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1924&amp;quot; id=&amp;quot;h3-0-1924&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];
   3100 <a href="#l3081" class="line" id="l3081">   3081</a> &lt;a href=&quot;#l3062&quot; class=&quot;line&quot; id=&quot;l3062&quot;&gt;   3062&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1925&amp;quot; id=&amp;quot;h3-0-1925&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3101 <a href="#l3082" class="line" id="l3082">   3082</a> &lt;a href=&quot;#l3063&quot; class=&quot;line&quot; id=&quot;l3063&quot;&gt;   3063&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1926&amp;quot; id=&amp;quot;h3-0-1926&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_POINT_LIGHT_SHADOWS &amp;amp;gt; 0
   3102 <a href="#l3083" class="line" id="l3083">   3083</a> &lt;a href=&quot;#l3064&quot; class=&quot;line&quot; id=&quot;l3064&quot;&gt;   3064&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1927&amp;quot; id=&amp;quot;h3-0-1927&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];
   3103 <a href="#l3084" class="line" id="l3084">   3084</a> &lt;a href=&quot;#l3065&quot; class=&quot;line&quot; id=&quot;l3065&quot;&gt;   3065&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1928&amp;quot; id=&amp;quot;h3-0-1928&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];
   3104 <a href="#l3085" class="line" id="l3085">   3085</a> &lt;a href=&quot;#l3066&quot; class=&quot;line&quot; id=&quot;l3066&quot;&gt;   3066&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1929&amp;quot; id=&amp;quot;h3-0-1929&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		struct PointLightShadow {
   3105 <a href="#l3086" class="line" id="l3086">   3086</a> &lt;a href=&quot;#l3067&quot; class=&quot;line&quot; id=&quot;l3067&quot;&gt;   3067&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1930&amp;quot; id=&amp;quot;h3-0-1930&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowIntensity;
   3106 <a href="#l3087" class="line" id="l3087">   3087</a> &lt;a href=&quot;#l3068&quot; class=&quot;line&quot; id=&quot;l3068&quot;&gt;   3068&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1931&amp;quot; id=&amp;quot;h3-0-1931&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowBias;
   3107 <a href="#l3088" class="line" id="l3088">   3088</a> &lt;a href=&quot;#l3069&quot; class=&quot;line&quot; id=&quot;l3069&quot;&gt;   3069&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1932&amp;quot; id=&amp;quot;h3-0-1932&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowNormalBias;
   3108 <a href="#l3089" class="line" id="l3089">   3089</a> &lt;a href=&quot;#l3070&quot; class=&quot;line&quot; id=&quot;l3070&quot;&gt;   3070&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1933&amp;quot; id=&amp;quot;h3-0-1933&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowRadius;
   3109 <a href="#l3090" class="line" id="l3090">   3090</a> &lt;a href=&quot;#l3071&quot; class=&quot;line&quot; id=&quot;l3071&quot;&gt;   3071&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1934&amp;quot; id=&amp;quot;h3-0-1934&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 shadowMapSize;
   3110 <a href="#l3091" class="line" id="l3091">   3091</a> &lt;a href=&quot;#l3072&quot; class=&quot;line&quot; id=&quot;l3072&quot;&gt;   3072&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1935&amp;quot; id=&amp;quot;h3-0-1935&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowCameraNear;
   3111 <a href="#l3092" class="line" id="l3092">   3092</a> &lt;a href=&quot;#l3073&quot; class=&quot;line&quot; id=&quot;l3073&quot;&gt;   3073&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1936&amp;quot; id=&amp;quot;h3-0-1936&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float shadowCameraFar;
   3112 <a href="#l3093" class="line" id="l3093">   3093</a> &lt;a href=&quot;#l3074&quot; class=&quot;line&quot; id=&quot;l3074&quot;&gt;   3074&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1937&amp;quot; id=&amp;quot;h3-0-1937&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		};
   3113 <a href="#l3094" class="line" id="l3094">   3094</a> &lt;a href=&quot;#l3075&quot; class=&quot;line&quot; id=&quot;l3075&quot;&gt;   3075&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1938&amp;quot; id=&amp;quot;h3-0-1938&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];
   3114 <a href="#l3095" class="line" id="l3095">   3095</a> &lt;a href=&quot;#l3076&quot; class=&quot;line&quot; id=&quot;l3076&quot;&gt;   3076&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1939&amp;quot; id=&amp;quot;h3-0-1939&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3115 <a href="#l3096" class="line" id="l3096">   3096</a> &lt;a href=&quot;#l3077&quot; class=&quot;line&quot; id=&quot;l3077&quot;&gt;   3077&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1940&amp;quot; id=&amp;quot;h3-0-1940&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,qV=`#if ( defined( USE_SHADOWMAP ) &amp;amp;amp;&amp;amp;amp; ( NUM_DIR_LIGHT_SHADOWS &amp;amp;gt; 0 || NUM_POINT_LIGHT_SHADOWS &amp;amp;gt; 0 ) ) || ( NUM_SPOT_LIGHT_COORDS &amp;amp;gt; 0 )
   3116 <a href="#l3097" class="line" id="l3097">   3097</a> &lt;a href=&quot;#l3078&quot; class=&quot;line&quot; id=&quot;l3078&quot;&gt;   3078&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1941&amp;quot; id=&amp;quot;h3-0-1941&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );
   3117 <a href="#l3098" class="line" id="l3098">   3098</a> &lt;a href=&quot;#l3079&quot; class=&quot;line&quot; id=&quot;l3079&quot;&gt;   3079&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1942&amp;quot; id=&amp;quot;h3-0-1942&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 shadowWorldPosition;
   3118 <a href="#l3099" class="line" id="l3099">   3099</a> &lt;a href=&quot;#l3080&quot; class=&quot;line&quot; id=&quot;l3080&quot;&gt;   3080&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1943&amp;quot; id=&amp;quot;h3-0-1943&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3119 <a href="#l3100" class="line" id="l3100">   3100</a> &lt;a href=&quot;#l3081&quot; class=&quot;line&quot; id=&quot;l3081&quot;&gt;   3081&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1944&amp;quot; id=&amp;quot;h3-0-1944&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( USE_SHADOWMAP )
   3120 <a href="#l3101" class="line" id="l3101">   3101</a> &lt;a href=&quot;#l3082&quot; class=&quot;line&quot; id=&quot;l3082&quot;&gt;   3082&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1945&amp;quot; id=&amp;quot;h3-0-1945&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_DIR_LIGHT_SHADOWS &amp;amp;gt; 0
   3121 <a href="#l3102" class="line" id="l3102">   3102</a> &lt;a href=&quot;#l3083&quot; class=&quot;line&quot; id=&quot;l3083&quot;&gt;   3083&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1946&amp;quot; id=&amp;quot;h3-0-1946&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_start
   3122 <a href="#l3103" class="line" id="l3103">   3103</a> &lt;a href=&quot;#l3084&quot; class=&quot;line&quot; id=&quot;l3084&quot;&gt;   3084&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1947&amp;quot; id=&amp;quot;h3-0-1947&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		for ( int i = 0; i &amp;amp;lt; NUM_DIR_LIGHT_SHADOWS; i ++ ) {
   3123 <a href="#l3104" class="line" id="l3104">   3104</a> &lt;a href=&quot;#l3085&quot; class=&quot;line&quot; id=&quot;l3085&quot;&gt;   3085&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1948&amp;quot; id=&amp;quot;h3-0-1948&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );
   3124 <a href="#l3105" class="line" id="l3105">   3105</a> &lt;a href=&quot;#l3086&quot; class=&quot;line&quot; id=&quot;l3086&quot;&gt;   3086&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1949&amp;quot; id=&amp;quot;h3-0-1949&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;
   3125 <a href="#l3106" class="line" id="l3106">   3106</a> &lt;a href=&quot;#l3087&quot; class=&quot;line&quot; id=&quot;l3087&quot;&gt;   3087&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1950&amp;quot; id=&amp;quot;h3-0-1950&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   3126 <a href="#l3107" class="line" id="l3107">   3107</a> &lt;a href=&quot;#l3088&quot; class=&quot;line&quot; id=&quot;l3088&quot;&gt;   3088&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1951&amp;quot; id=&amp;quot;h3-0-1951&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_end
   3127 <a href="#l3108" class="line" id="l3108">   3108</a> &lt;a href=&quot;#l3089&quot; class=&quot;line&quot; id=&quot;l3089&quot;&gt;   3089&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1952&amp;quot; id=&amp;quot;h3-0-1952&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3128 <a href="#l3109" class="line" id="l3109">   3109</a> &lt;a href=&quot;#l3090&quot; class=&quot;line&quot; id=&quot;l3090&quot;&gt;   3090&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1953&amp;quot; id=&amp;quot;h3-0-1953&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_POINT_LIGHT_SHADOWS &amp;amp;gt; 0
   3129 <a href="#l3110" class="line" id="l3110">   3110</a> &lt;a href=&quot;#l3091&quot; class=&quot;line&quot; id=&quot;l3091&quot;&gt;   3091&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1954&amp;quot; id=&amp;quot;h3-0-1954&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_start
   3130 <a href="#l3111" class="line" id="l3111">   3111</a> &lt;a href=&quot;#l3092&quot; class=&quot;line&quot; id=&quot;l3092&quot;&gt;   3092&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1955&amp;quot; id=&amp;quot;h3-0-1955&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		for ( int i = 0; i &amp;amp;lt; NUM_POINT_LIGHT_SHADOWS; i ++ ) {
   3131 <a href="#l3112" class="line" id="l3112">   3112</a> &lt;a href=&quot;#l3093&quot; class=&quot;line&quot; id=&quot;l3093&quot;&gt;   3093&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1956&amp;quot; id=&amp;quot;h3-0-1956&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			shadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );
   3132 <a href="#l3113" class="line" id="l3113">   3113</a> &lt;a href=&quot;#l3094&quot; class=&quot;line&quot; id=&quot;l3094&quot;&gt;   3094&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1957&amp;quot; id=&amp;quot;h3-0-1957&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;
   3133 <a href="#l3114" class="line" id="l3114">   3114</a> &lt;a href=&quot;#l3095&quot; class=&quot;line&quot; id=&quot;l3095&quot;&gt;   3095&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1958&amp;quot; id=&amp;quot;h3-0-1958&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   3134 <a href="#l3115" class="line" id="l3115">   3115</a> &lt;a href=&quot;#l3096&quot; class=&quot;line&quot; id=&quot;l3096&quot;&gt;   3096&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1959&amp;quot; id=&amp;quot;h3-0-1959&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#pragma unroll_loop_end
   3135 <a href="#l3116" class="line" id="l3116">   3116</a> &lt;a href=&quot;#l3097&quot; class=&quot;line&quot; id=&quot;l3097&quot;&gt;   3097&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1960&amp;quot; id=&amp;quot;h3-0-1960&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3136 <a href="#l3117" class="line" id="l3117">   3117</a> &lt;a href=&quot;#l3098&quot; class=&quot;line&quot; id=&quot;l3098&quot;&gt;   3098&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1961&amp;quot; id=&amp;quot;h3-0-1961&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3137 <a href="#l3118" class="line" id="l3118">   3118</a> &lt;a href=&quot;#l3099&quot; class=&quot;line&quot; id=&quot;l3099&quot;&gt;   3099&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1962&amp;quot; id=&amp;quot;h3-0-1962&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if NUM_SPOT_LIGHT_COORDS &amp;amp;gt; 0
   3138 <a href="#l3119" class="line" id="l3119">   3119</a> &lt;a href=&quot;#l3100&quot; class=&quot;line&quot; id=&quot;l3100&quot;&gt;   3100&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1963&amp;quot; id=&amp;quot;h3-0-1963&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_start
   3139 <a href="#l3120" class="line" id="l3120">   3120</a> &lt;a href=&quot;#l3101&quot; class=&quot;line&quot; id=&quot;l3101&quot;&gt;   3101&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1964&amp;quot; id=&amp;quot;h3-0-1964&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; NUM_SPOT_LIGHT_COORDS; i ++ ) {
   3140 <a href="#l3121" class="line" id="l3121">   3121</a> &lt;a href=&quot;#l3102&quot; class=&quot;line&quot; id=&quot;l3102&quot;&gt;   3102&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1965&amp;quot; id=&amp;quot;h3-0-1965&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		shadowWorldPosition = worldPosition;
   3141 <a href="#l3122" class="line" id="l3122">   3122</a> &lt;a href=&quot;#l3103&quot; class=&quot;line&quot; id=&quot;l3103&quot;&gt;   3103&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1966&amp;quot; id=&amp;quot;h3-0-1966&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#if ( defined( USE_SHADOWMAP ) &amp;amp;amp;&amp;amp;amp; UNROLLED_LOOP_INDEX &amp;amp;lt; NUM_SPOT_LIGHT_SHADOWS )
   3142 <a href="#l3123" class="line" id="l3123">   3123</a> &lt;a href=&quot;#l3104&quot; class=&quot;line&quot; id=&quot;l3104&quot;&gt;   3104&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1967&amp;quot; id=&amp;quot;h3-0-1967&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			shadowWorldPosition.xyz += shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias;
   3143 <a href="#l3124" class="line" id="l3124">   3124</a> &lt;a href=&quot;#l3105&quot; class=&quot;line&quot; id=&quot;l3105&quot;&gt;   3105&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1968&amp;quot; id=&amp;quot;h3-0-1968&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   3144 <a href="#l3125" class="line" id="l3125">   3125</a> &lt;a href=&quot;#l3106&quot; class=&quot;line&quot; id=&quot;l3106&quot;&gt;   3106&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1969&amp;quot; id=&amp;quot;h3-0-1969&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vSpotLightCoord[ i ] = spotLightMatrix[ i ] * shadowWorldPosition;
   3145 <a href="#l3126" class="line" id="l3126">   3126</a> &lt;a href=&quot;#l3107&quot; class=&quot;line&quot; id=&quot;l3107&quot;&gt;   3107&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1970&amp;quot; id=&amp;quot;h3-0-1970&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3146 <a href="#l3127" class="line" id="l3127">   3127</a> &lt;a href=&quot;#l3108&quot; class=&quot;line&quot; id=&quot;l3108&quot;&gt;   3108&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1971&amp;quot; id=&amp;quot;h3-0-1971&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_end
   3147 <a href="#l3128" class="line" id="l3128">   3128</a> &lt;a href=&quot;#l3109&quot; class=&quot;line&quot; id=&quot;l3109&quot;&gt;   3109&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1972&amp;quot; id=&amp;quot;h3-0-1972&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,YV=`float getShadowMask() {
   3148 <a href="#l3129" class="line" id="l3129">   3129</a> &lt;a href=&quot;#l3110&quot; class=&quot;line&quot; id=&quot;l3110&quot;&gt;   3110&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1973&amp;quot; id=&amp;quot;h3-0-1973&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float shadow = 1.0;
   3149 <a href="#l3130" class="line" id="l3130">   3130</a> &lt;a href=&quot;#l3111&quot; class=&quot;line&quot; id=&quot;l3111&quot;&gt;   3111&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1974&amp;quot; id=&amp;quot;h3-0-1974&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHADOWMAP
   3150 <a href="#l3131" class="line" id="l3131">   3131</a> &lt;a href=&quot;#l3112&quot; class=&quot;line&quot; id=&quot;l3112&quot;&gt;   3112&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1975&amp;quot; id=&amp;quot;h3-0-1975&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_DIR_LIGHT_SHADOWS &amp;amp;gt; 0
   3151 <a href="#l3132" class="line" id="l3132">   3132</a> &lt;a href=&quot;#l3113&quot; class=&quot;line&quot; id=&quot;l3113&quot;&gt;   3113&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1976&amp;quot; id=&amp;quot;h3-0-1976&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	DirectionalLightShadow directionalLight;
   3152 <a href="#l3133" class="line" id="l3133">   3133</a> &lt;a href=&quot;#l3114&quot; class=&quot;line&quot; id=&quot;l3114&quot;&gt;   3114&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1977&amp;quot; id=&amp;quot;h3-0-1977&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_start
   3153 <a href="#l3134" class="line" id="l3134">   3134</a> &lt;a href=&quot;#l3115&quot; class=&quot;line&quot; id=&quot;l3115&quot;&gt;   3115&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1978&amp;quot; id=&amp;quot;h3-0-1978&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; NUM_DIR_LIGHT_SHADOWS; i ++ ) {
   3154 <a href="#l3135" class="line" id="l3135">   3135</a> &lt;a href=&quot;#l3116&quot; class=&quot;line&quot; id=&quot;l3116&quot;&gt;   3116&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1979&amp;quot; id=&amp;quot;h3-0-1979&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		directionalLight = directionalLightShadows[ i ];
   3155 <a href="#l3136" class="line" id="l3136">   3136</a> &lt;a href=&quot;#l3117&quot; class=&quot;line&quot; id=&quot;l3117&quot;&gt;   3117&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1980&amp;quot; id=&amp;quot;h3-0-1980&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		shadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowIntensity, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;
   3156 <a href="#l3137" class="line" id="l3137">   3137</a> &lt;a href=&quot;#l3118&quot; class=&quot;line&quot; id=&quot;l3118&quot;&gt;   3118&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1981&amp;quot; id=&amp;quot;h3-0-1981&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3157 <a href="#l3138" class="line" id="l3138">   3138</a> &lt;a href=&quot;#l3119&quot; class=&quot;line&quot; id=&quot;l3119&quot;&gt;   3119&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1982&amp;quot; id=&amp;quot;h3-0-1982&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_end
   3158 <a href="#l3139" class="line" id="l3139">   3139</a> &lt;a href=&quot;#l3120&quot; class=&quot;line&quot; id=&quot;l3120&quot;&gt;   3120&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1983&amp;quot; id=&amp;quot;h3-0-1983&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3159 <a href="#l3140" class="line" id="l3140">   3140</a> &lt;a href=&quot;#l3121&quot; class=&quot;line&quot; id=&quot;l3121&quot;&gt;   3121&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1984&amp;quot; id=&amp;quot;h3-0-1984&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_SPOT_LIGHT_SHADOWS &amp;amp;gt; 0
   3160 <a href="#l3141" class="line" id="l3141">   3141</a> &lt;a href=&quot;#l3122&quot; class=&quot;line&quot; id=&quot;l3122&quot;&gt;   3122&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1985&amp;quot; id=&amp;quot;h3-0-1985&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	SpotLightShadow spotLight;
   3161 <a href="#l3142" class="line" id="l3142">   3142</a> &lt;a href=&quot;#l3123&quot; class=&quot;line&quot; id=&quot;l3123&quot;&gt;   3123&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1986&amp;quot; id=&amp;quot;h3-0-1986&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_start
   3162 <a href="#l3143" class="line" id="l3143">   3143</a> &lt;a href=&quot;#l3124&quot; class=&quot;line&quot; id=&quot;l3124&quot;&gt;   3124&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1987&amp;quot; id=&amp;quot;h3-0-1987&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; NUM_SPOT_LIGHT_SHADOWS; i ++ ) {
   3163 <a href="#l3144" class="line" id="l3144">   3144</a> &lt;a href=&quot;#l3125&quot; class=&quot;line&quot; id=&quot;l3125&quot;&gt;   3125&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1988&amp;quot; id=&amp;quot;h3-0-1988&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		spotLight = spotLightShadows[ i ];
   3164 <a href="#l3145" class="line" id="l3145">   3145</a> &lt;a href=&quot;#l3126&quot; class=&quot;line&quot; id=&quot;l3126&quot;&gt;   3126&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1989&amp;quot; id=&amp;quot;h3-0-1989&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		shadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowIntensity, spotLight.shadowBias, spotLight.shadowRadius, vSpotLightCoord[ i ] ) : 1.0;
   3165 <a href="#l3146" class="line" id="l3146">   3146</a> &lt;a href=&quot;#l3127&quot; class=&quot;line&quot; id=&quot;l3127&quot;&gt;   3127&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1990&amp;quot; id=&amp;quot;h3-0-1990&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3166 <a href="#l3147" class="line" id="l3147">   3147</a> &lt;a href=&quot;#l3128&quot; class=&quot;line&quot; id=&quot;l3128&quot;&gt;   3128&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1991&amp;quot; id=&amp;quot;h3-0-1991&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_end
   3167 <a href="#l3148" class="line" id="l3148">   3148</a> &lt;a href=&quot;#l3129&quot; class=&quot;line&quot; id=&quot;l3129&quot;&gt;   3129&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1992&amp;quot; id=&amp;quot;h3-0-1992&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3168 <a href="#l3149" class="line" id="l3149">   3149</a> &lt;a href=&quot;#l3130&quot; class=&quot;line&quot; id=&quot;l3130&quot;&gt;   3130&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1993&amp;quot; id=&amp;quot;h3-0-1993&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if NUM_POINT_LIGHT_SHADOWS &amp;amp;gt; 0
   3169 <a href="#l3150" class="line" id="l3150">   3150</a> &lt;a href=&quot;#l3131&quot; class=&quot;line&quot; id=&quot;l3131&quot;&gt;   3131&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1994&amp;quot; id=&amp;quot;h3-0-1994&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	PointLightShadow pointLight;
   3170 <a href="#l3151" class="line" id="l3151">   3151</a> &lt;a href=&quot;#l3132&quot; class=&quot;line&quot; id=&quot;l3132&quot;&gt;   3132&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1995&amp;quot; id=&amp;quot;h3-0-1995&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_start
   3171 <a href="#l3152" class="line" id="l3152">   3152</a> &lt;a href=&quot;#l3133&quot; class=&quot;line&quot; id=&quot;l3133&quot;&gt;   3133&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1996&amp;quot; id=&amp;quot;h3-0-1996&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( int i = 0; i &amp;amp;lt; NUM_POINT_LIGHT_SHADOWS; i ++ ) {
   3172 <a href="#l3153" class="line" id="l3153">   3153</a> &lt;a href=&quot;#l3134&quot; class=&quot;line&quot; id=&quot;l3134&quot;&gt;   3134&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1997&amp;quot; id=&amp;quot;h3-0-1997&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		pointLight = pointLightShadows[ i ];
   3173 <a href="#l3154" class="line" id="l3154">   3154</a> &lt;a href=&quot;#l3135&quot; class=&quot;line&quot; id=&quot;l3135&quot;&gt;   3135&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1998&amp;quot; id=&amp;quot;h3-0-1998&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		shadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowIntensity, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;
   3174 <a href="#l3155" class="line" id="l3155">   3155</a> &lt;a href=&quot;#l3136&quot; class=&quot;line&quot; id=&quot;l3136&quot;&gt;   3136&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-1999&amp;quot; id=&amp;quot;h3-0-1999&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3175 <a href="#l3156" class="line" id="l3156">   3156</a> &lt;a href=&quot;#l3137&quot; class=&quot;line&quot; id=&quot;l3137&quot;&gt;   3137&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2000&amp;quot; id=&amp;quot;h3-0-2000&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#pragma unroll_loop_end
   3176 <a href="#l3157" class="line" id="l3157">   3157</a> &lt;a href=&quot;#l3138&quot; class=&quot;line&quot; id=&quot;l3138&quot;&gt;   3138&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2001&amp;quot; id=&amp;quot;h3-0-2001&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3177 <a href="#l3158" class="line" id="l3158">   3158</a> &lt;a href=&quot;#l3139&quot; class=&quot;line&quot; id=&quot;l3139&quot;&gt;   3139&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2002&amp;quot; id=&amp;quot;h3-0-2002&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3178 <a href="#l3159" class="line" id="l3159">   3159</a> &lt;a href=&quot;#l3140&quot; class=&quot;line&quot; id=&quot;l3140&quot;&gt;   3140&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2003&amp;quot; id=&amp;quot;h3-0-2003&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return shadow;
   3179 <a href="#l3160" class="line" id="l3160">   3160</a> &lt;a href=&quot;#l3141&quot; class=&quot;line&quot; id=&quot;l3141&quot;&gt;   3141&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2004&amp;quot; id=&amp;quot;h3-0-2004&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,WV=`#ifdef USE_SKINNING
   3180 <a href="#l3161" class="line" id="l3161">   3161</a> &lt;a href=&quot;#l3142&quot; class=&quot;line&quot; id=&quot;l3142&quot;&gt;   3142&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2005&amp;quot; id=&amp;quot;h3-0-2005&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat4 boneMatX = getBoneMatrix( skinIndex.x );
   3181 <a href="#l3162" class="line" id="l3162">   3162</a> &lt;a href=&quot;#l3143&quot; class=&quot;line&quot; id=&quot;l3143&quot;&gt;   3143&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2006&amp;quot; id=&amp;quot;h3-0-2006&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat4 boneMatY = getBoneMatrix( skinIndex.y );
   3182 <a href="#l3163" class="line" id="l3163">   3163</a> &lt;a href=&quot;#l3144&quot; class=&quot;line&quot; id=&quot;l3144&quot;&gt;   3144&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2007&amp;quot; id=&amp;quot;h3-0-2007&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat4 boneMatZ = getBoneMatrix( skinIndex.z );
   3183 <a href="#l3164" class="line" id="l3164">   3164</a> &lt;a href=&quot;#l3145&quot; class=&quot;line&quot; id=&quot;l3145&quot;&gt;   3145&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2008&amp;quot; id=&amp;quot;h3-0-2008&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat4 boneMatW = getBoneMatrix( skinIndex.w );
   3184 <a href="#l3165" class="line" id="l3165">   3165</a> &lt;a href=&quot;#l3146&quot; class=&quot;line&quot; id=&quot;l3146&quot;&gt;   3146&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2009&amp;quot; id=&amp;quot;h3-0-2009&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,kV=`#ifdef USE_SKINNING
   3185 <a href="#l3166" class="line" id="l3166">   3166</a> &lt;a href=&quot;#l3147&quot; class=&quot;line&quot; id=&quot;l3147&quot;&gt;   3147&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2010&amp;quot; id=&amp;quot;h3-0-2010&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat4 bindMatrix;
   3186 <a href="#l3167" class="line" id="l3167">   3167</a> &lt;a href=&quot;#l3148&quot; class=&quot;line&quot; id=&quot;l3148&quot;&gt;   3148&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2011&amp;quot; id=&amp;quot;h3-0-2011&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat4 bindMatrixInverse;
   3187 <a href="#l3168" class="line" id="l3168">   3168</a> &lt;a href=&quot;#l3149&quot; class=&quot;line&quot; id=&quot;l3149&quot;&gt;   3149&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2012&amp;quot; id=&amp;quot;h3-0-2012&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform highp sampler2D boneTexture;
   3188 <a href="#l3169" class="line" id="l3169">   3169</a> &lt;a href=&quot;#l3150&quot; class=&quot;line&quot; id=&quot;l3150&quot;&gt;   3150&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2013&amp;quot; id=&amp;quot;h3-0-2013&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat4 getBoneMatrix( const in float i ) {
   3189 <a href="#l3170" class="line" id="l3170">   3170</a> &lt;a href=&quot;#l3151&quot; class=&quot;line&quot; id=&quot;l3151&quot;&gt;   3151&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2014&amp;quot; id=&amp;quot;h3-0-2014&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int size = textureSize( boneTexture, 0 ).x;
   3190 <a href="#l3171" class="line" id="l3171">   3171</a> &lt;a href=&quot;#l3152&quot; class=&quot;line&quot; id=&quot;l3152&quot;&gt;   3152&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2015&amp;quot; id=&amp;quot;h3-0-2015&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int j = int( i ) * 4;
   3191 <a href="#l3172" class="line" id="l3172">   3172</a> &lt;a href=&quot;#l3153&quot; class=&quot;line&quot; id=&quot;l3153&quot;&gt;   3153&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2016&amp;quot; id=&amp;quot;h3-0-2016&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int x = j % size;
   3192 <a href="#l3173" class="line" id="l3173">   3173</a> &lt;a href=&quot;#l3154&quot; class=&quot;line&quot; id=&quot;l3154&quot;&gt;   3154&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2017&amp;quot; id=&amp;quot;h3-0-2017&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		int y = j / size;
   3193 <a href="#l3174" class="line" id="l3174">   3174</a> &lt;a href=&quot;#l3155&quot; class=&quot;line&quot; id=&quot;l3155&quot;&gt;   3155&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2018&amp;quot; id=&amp;quot;h3-0-2018&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 v1 = texelFetch( boneTexture, ivec2( x, y ), 0 );
   3194 <a href="#l3175" class="line" id="l3175">   3175</a> &lt;a href=&quot;#l3156&quot; class=&quot;line&quot; id=&quot;l3156&quot;&gt;   3156&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2019&amp;quot; id=&amp;quot;h3-0-2019&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 v2 = texelFetch( boneTexture, ivec2( x + 1, y ), 0 );
   3195 <a href="#l3176" class="line" id="l3176">   3176</a> &lt;a href=&quot;#l3157&quot; class=&quot;line&quot; id=&quot;l3157&quot;&gt;   3157&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2020&amp;quot; id=&amp;quot;h3-0-2020&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 v3 = texelFetch( boneTexture, ivec2( x + 2, y ), 0 );
   3196 <a href="#l3177" class="line" id="l3177">   3177</a> &lt;a href=&quot;#l3158&quot; class=&quot;line&quot; id=&quot;l3158&quot;&gt;   3158&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2021&amp;quot; id=&amp;quot;h3-0-2021&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 v4 = texelFetch( boneTexture, ivec2( x + 3, y ), 0 );
   3197 <a href="#l3178" class="line" id="l3178">   3178</a> &lt;a href=&quot;#l3159&quot; class=&quot;line&quot; id=&quot;l3159&quot;&gt;   3159&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2022&amp;quot; id=&amp;quot;h3-0-2022&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return mat4( v1, v2, v3, v4 );
   3198 <a href="#l3179" class="line" id="l3179">   3179</a> &lt;a href=&quot;#l3160&quot; class=&quot;line&quot; id=&quot;l3160&quot;&gt;   3160&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2023&amp;quot; id=&amp;quot;h3-0-2023&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3199 <a href="#l3180" class="line" id="l3180">   3180</a> &lt;a href=&quot;#l3161&quot; class=&quot;line&quot; id=&quot;l3161&quot;&gt;   3161&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2024&amp;quot; id=&amp;quot;h3-0-2024&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,ZV=`#ifdef USE_SKINNING
   3200 <a href="#l3181" class="line" id="l3181">   3181</a> &lt;a href=&quot;#l3162&quot; class=&quot;line&quot; id=&quot;l3162&quot;&gt;   3162&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2025&amp;quot; id=&amp;quot;h3-0-2025&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
   3201 <a href="#l3182" class="line" id="l3182">   3182</a> &lt;a href=&quot;#l3163&quot; class=&quot;line&quot; id=&quot;l3163&quot;&gt;   3163&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2026&amp;quot; id=&amp;quot;h3-0-2026&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 skinned = vec4( 0.0 );
   3202 <a href="#l3183" class="line" id="l3183">   3183</a> &lt;a href=&quot;#l3164&quot; class=&quot;line&quot; id=&quot;l3164&quot;&gt;   3164&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2027&amp;quot; id=&amp;quot;h3-0-2027&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinned += boneMatX * skinVertex * skinWeight.x;
   3203 <a href="#l3184" class="line" id="l3184">   3184</a> &lt;a href=&quot;#l3165&quot; class=&quot;line&quot; id=&quot;l3165&quot;&gt;   3165&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2028&amp;quot; id=&amp;quot;h3-0-2028&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinned += boneMatY * skinVertex * skinWeight.y;
   3204 <a href="#l3185" class="line" id="l3185">   3185</a> &lt;a href=&quot;#l3166&quot; class=&quot;line&quot; id=&quot;l3166&quot;&gt;   3166&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2029&amp;quot; id=&amp;quot;h3-0-2029&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinned += boneMatZ * skinVertex * skinWeight.z;
   3205 <a href="#l3186" class="line" id="l3186">   3186</a> &lt;a href=&quot;#l3167&quot; class=&quot;line&quot; id=&quot;l3167&quot;&gt;   3167&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2030&amp;quot; id=&amp;quot;h3-0-2030&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinned += boneMatW * skinVertex * skinWeight.w;
   3206 <a href="#l3187" class="line" id="l3187">   3187</a> &lt;a href=&quot;#l3168&quot; class=&quot;line&quot; id=&quot;l3168&quot;&gt;   3168&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2031&amp;quot; id=&amp;quot;h3-0-2031&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	transformed = ( bindMatrixInverse * skinned ).xyz;
   3207 <a href="#l3188" class="line" id="l3188">   3188</a> &lt;a href=&quot;#l3169&quot; class=&quot;line&quot; id=&quot;l3169&quot;&gt;   3169&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2032&amp;quot; id=&amp;quot;h3-0-2032&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,jV=`#ifdef USE_SKINNING
   3208 <a href="#l3189" class="line" id="l3189">   3189</a> &lt;a href=&quot;#l3170&quot; class=&quot;line&quot; id=&quot;l3170&quot;&gt;   3170&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2033&amp;quot; id=&amp;quot;h3-0-2033&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mat4 skinMatrix = mat4( 0.0 );
   3209 <a href="#l3190" class="line" id="l3190">   3190</a> &lt;a href=&quot;#l3171&quot; class=&quot;line&quot; id=&quot;l3171&quot;&gt;   3171&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2034&amp;quot; id=&amp;quot;h3-0-2034&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinMatrix += skinWeight.x * boneMatX;
   3210 <a href="#l3191" class="line" id="l3191">   3191</a> &lt;a href=&quot;#l3172&quot; class=&quot;line&quot; id=&quot;l3172&quot;&gt;   3172&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2035&amp;quot; id=&amp;quot;h3-0-2035&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinMatrix += skinWeight.y * boneMatY;
   3211 <a href="#l3192" class="line" id="l3192">   3192</a> &lt;a href=&quot;#l3173&quot; class=&quot;line&quot; id=&quot;l3173&quot;&gt;   3173&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2036&amp;quot; id=&amp;quot;h3-0-2036&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinMatrix += skinWeight.z * boneMatZ;
   3212 <a href="#l3193" class="line" id="l3193">   3193</a> &lt;a href=&quot;#l3174&quot; class=&quot;line&quot; id=&quot;l3174&quot;&gt;   3174&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2037&amp;quot; id=&amp;quot;h3-0-2037&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinMatrix += skinWeight.w * boneMatW;
   3213 <a href="#l3194" class="line" id="l3194">   3194</a> &lt;a href=&quot;#l3175&quot; class=&quot;line&quot; id=&quot;l3175&quot;&gt;   3175&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2038&amp;quot; id=&amp;quot;h3-0-2038&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
   3214 <a href="#l3195" class="line" id="l3195">   3195</a> &lt;a href=&quot;#l3176&quot; class=&quot;line&quot; id=&quot;l3176&quot;&gt;   3176&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2039&amp;quot; id=&amp;quot;h3-0-2039&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
   3215 <a href="#l3196" class="line" id="l3196">   3196</a> &lt;a href=&quot;#l3177&quot; class=&quot;line&quot; id=&quot;l3177&quot;&gt;   3177&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2040&amp;quot; id=&amp;quot;h3-0-2040&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TANGENT
   3216 <a href="#l3197" class="line" id="l3197">   3197</a> &lt;a href=&quot;#l3178&quot; class=&quot;line&quot; id=&quot;l3178&quot;&gt;   3178&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2041&amp;quot; id=&amp;quot;h3-0-2041&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
   3217 <a href="#l3198" class="line" id="l3198">   3198</a> &lt;a href=&quot;#l3179&quot; class=&quot;line&quot; id=&quot;l3179&quot;&gt;   3179&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2042&amp;quot; id=&amp;quot;h3-0-2042&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3218 <a href="#l3199" class="line" id="l3199">   3199</a> &lt;a href=&quot;#l3180&quot; class=&quot;line&quot; id=&quot;l3180&quot;&gt;   3180&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2043&amp;quot; id=&amp;quot;h3-0-2043&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,QV=`float specularStrength;
   3219 <a href="#l3200" class="line" id="l3200">   3200</a> &lt;a href=&quot;#l3181&quot; class=&quot;line&quot; id=&quot;l3181&quot;&gt;   3181&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2044&amp;quot; id=&amp;quot;h3-0-2044&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULARMAP
   3220 <a href="#l3201" class="line" id="l3201">   3201</a> &lt;a href=&quot;#l3182&quot; class=&quot;line&quot; id=&quot;l3182&quot;&gt;   3182&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2045&amp;quot; id=&amp;quot;h3-0-2045&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 texelSpecular = texture2D( specularMap, vSpecularMapUv );
   3221 <a href="#l3202" class="line" id="l3202">   3202</a> &lt;a href=&quot;#l3183&quot; class=&quot;line&quot; id=&quot;l3183&quot;&gt;   3183&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2046&amp;quot; id=&amp;quot;h3-0-2046&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	specularStrength = texelSpecular.r;
   3222 <a href="#l3203" class="line" id="l3203">   3203</a> &lt;a href=&quot;#l3184&quot; class=&quot;line&quot; id=&quot;l3184&quot;&gt;   3184&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2047&amp;quot; id=&amp;quot;h3-0-2047&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   3223 <a href="#l3204" class="line" id="l3204">   3204</a> &lt;a href=&quot;#l3185&quot; class=&quot;line&quot; id=&quot;l3185&quot;&gt;   3185&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2048&amp;quot; id=&amp;quot;h3-0-2048&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	specularStrength = 1.0;
   3224 <a href="#l3205" class="line" id="l3205">   3205</a> &lt;a href=&quot;#l3186&quot; class=&quot;line&quot; id=&quot;l3186&quot;&gt;   3186&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2049&amp;quot; id=&amp;quot;h3-0-2049&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,KV=`#ifdef USE_SPECULARMAP
   3225 <a href="#l3206" class="line" id="l3206">   3206</a> &lt;a href=&quot;#l3187&quot; class=&quot;line&quot; id=&quot;l3187&quot;&gt;   3187&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2050&amp;quot; id=&amp;quot;h3-0-2050&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D specularMap;
   3226 <a href="#l3207" class="line" id="l3207">   3207</a> &lt;a href=&quot;#l3188&quot; class=&quot;line&quot; id=&quot;l3188&quot;&gt;   3188&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2051&amp;quot; id=&amp;quot;h3-0-2051&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,JV=`#if defined( TONE_MAPPING )
   3227 <a href="#l3208" class="line" id="l3208">   3208</a> &lt;a href=&quot;#l3189&quot; class=&quot;line&quot; id=&quot;l3189&quot;&gt;   3189&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2052&amp;quot; id=&amp;quot;h3-0-2052&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );
   3228 <a href="#l3209" class="line" id="l3209">   3209</a> &lt;a href=&quot;#l3190&quot; class=&quot;line&quot; id=&quot;l3190&quot;&gt;   3190&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2053&amp;quot; id=&amp;quot;h3-0-2053&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,$V=`#ifndef saturate
   3229 <a href="#l3210" class="line" id="l3210">   3210</a> &lt;a href=&quot;#l3191&quot; class=&quot;line&quot; id=&quot;l3191&quot;&gt;   3191&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2054&amp;quot; id=&amp;quot;h3-0-2054&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define saturate( a ) clamp( a, 0.0, 1.0 )
   3230 <a href="#l3211" class="line" id="l3211">   3211</a> &lt;a href=&quot;#l3192&quot; class=&quot;line&quot; id=&quot;l3192&quot;&gt;   3192&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2055&amp;quot; id=&amp;quot;h3-0-2055&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3231 <a href="#l3212" class="line" id="l3212">   3212</a> &lt;a href=&quot;#l3193&quot; class=&quot;line&quot; id=&quot;l3193&quot;&gt;   3193&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2056&amp;quot; id=&amp;quot;h3-0-2056&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float toneMappingExposure;
   3232 <a href="#l3213" class="line" id="l3213">   3213</a> &lt;a href=&quot;#l3194&quot; class=&quot;line&quot; id=&quot;l3194&quot;&gt;   3194&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2057&amp;quot; id=&amp;quot;h3-0-2057&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 LinearToneMapping( vec3 color ) {
   3233 <a href="#l3214" class="line" id="l3214">   3214</a> &lt;a href=&quot;#l3195&quot; class=&quot;line&quot; id=&quot;l3195&quot;&gt;   3195&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2058&amp;quot; id=&amp;quot;h3-0-2058&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return saturate( toneMappingExposure * color );
   3234 <a href="#l3215" class="line" id="l3215">   3215</a> &lt;a href=&quot;#l3196&quot; class=&quot;line&quot; id=&quot;l3196&quot;&gt;   3196&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2059&amp;quot; id=&amp;quot;h3-0-2059&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   3235 <a href="#l3216" class="line" id="l3216">   3216</a> &lt;a href=&quot;#l3197&quot; class=&quot;line&quot; id=&quot;l3197&quot;&gt;   3197&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2060&amp;quot; id=&amp;quot;h3-0-2060&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 ReinhardToneMapping( vec3 color ) {
   3236 <a href="#l3217" class="line" id="l3217">   3217</a> &lt;a href=&quot;#l3198&quot; class=&quot;line&quot; id=&quot;l3198&quot;&gt;   3198&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2061&amp;quot; id=&amp;quot;h3-0-2061&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color *= toneMappingExposure;
   3237 <a href="#l3218" class="line" id="l3218">   3218</a> &lt;a href=&quot;#l3199&quot; class=&quot;line&quot; id=&quot;l3199&quot;&gt;   3199&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2062&amp;quot; id=&amp;quot;h3-0-2062&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return saturate( color / ( vec3( 1.0 ) + color ) );
   3238 <a href="#l3219" class="line" id="l3219">   3219</a> &lt;a href=&quot;#l3200&quot; class=&quot;line&quot; id=&quot;l3200&quot;&gt;   3200&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2063&amp;quot; id=&amp;quot;h3-0-2063&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   3239 <a href="#l3220" class="line" id="l3220">   3220</a> &lt;a href=&quot;#l3201&quot; class=&quot;line&quot; id=&quot;l3201&quot;&gt;   3201&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2064&amp;quot; id=&amp;quot;h3-0-2064&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 CineonToneMapping( vec3 color ) {
   3240 <a href="#l3221" class="line" id="l3221">   3221</a> &lt;a href=&quot;#l3202&quot; class=&quot;line&quot; id=&quot;l3202&quot;&gt;   3202&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2065&amp;quot; id=&amp;quot;h3-0-2065&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color *= toneMappingExposure;
   3241 <a href="#l3222" class="line" id="l3222">   3222</a> &lt;a href=&quot;#l3203&quot; class=&quot;line&quot; id=&quot;l3203&quot;&gt;   3203&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2066&amp;quot; id=&amp;quot;h3-0-2066&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = max( vec3( 0.0 ), color - 0.004 );
   3242 <a href="#l3223" class="line" id="l3223">   3223</a> &lt;a href=&quot;#l3204&quot; class=&quot;line&quot; id=&quot;l3204&quot;&gt;   3204&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2067&amp;quot; id=&amp;quot;h3-0-2067&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );
   3243 <a href="#l3224" class="line" id="l3224">   3224</a> &lt;a href=&quot;#l3205&quot; class=&quot;line&quot; id=&quot;l3205&quot;&gt;   3205&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2068&amp;quot; id=&amp;quot;h3-0-2068&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   3244 <a href="#l3225" class="line" id="l3225">   3225</a> &lt;a href=&quot;#l3206&quot; class=&quot;line&quot; id=&quot;l3206&quot;&gt;   3206&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2069&amp;quot; id=&amp;quot;h3-0-2069&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 RRTAndODTFit( vec3 v ) {
   3245 <a href="#l3226" class="line" id="l3226">   3226</a> &lt;a href=&quot;#l3207&quot; class=&quot;line&quot; id=&quot;l3207&quot;&gt;   3207&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2070&amp;quot; id=&amp;quot;h3-0-2070&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 a = v * ( v + 0.0245786 ) - 0.000090537;
   3246 <a href="#l3227" class="line" id="l3227">   3227</a> &lt;a href=&quot;#l3208&quot; class=&quot;line&quot; id=&quot;l3208&quot;&gt;   3208&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2071&amp;quot; id=&amp;quot;h3-0-2071&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;
   3247 <a href="#l3228" class="line" id="l3228">   3228</a> &lt;a href=&quot;#l3209&quot; class=&quot;line&quot; id=&quot;l3209&quot;&gt;   3209&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2072&amp;quot; id=&amp;quot;h3-0-2072&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return a / b;
   3248 <a href="#l3229" class="line" id="l3229">   3229</a> &lt;a href=&quot;#l3210&quot; class=&quot;line&quot; id=&quot;l3210&quot;&gt;   3210&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2073&amp;quot; id=&amp;quot;h3-0-2073&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   3249 <a href="#l3230" class="line" id="l3230">   3230</a> &lt;a href=&quot;#l3211&quot; class=&quot;line&quot; id=&quot;l3211&quot;&gt;   3211&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2074&amp;quot; id=&amp;quot;h3-0-2074&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 ACESFilmicToneMapping( vec3 color ) {
   3250 <a href="#l3231" class="line" id="l3231">   3231</a> &lt;a href=&quot;#l3212&quot; class=&quot;line&quot; id=&quot;l3212&quot;&gt;   3212&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2075&amp;quot; id=&amp;quot;h3-0-2075&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const mat3 ACESInputMat = mat3(
   3251 <a href="#l3232" class="line" id="l3232">   3232</a> &lt;a href=&quot;#l3213&quot; class=&quot;line&quot; id=&quot;l3213&quot;&gt;   3213&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2076&amp;quot; id=&amp;quot;h3-0-2076&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( 0.59719, 0.07600, 0.02840 ),		vec3( 0.35458, 0.90834, 0.13383 ),
   3252 <a href="#l3233" class="line" id="l3233">   3233</a> &lt;a href=&quot;#l3214&quot; class=&quot;line&quot; id=&quot;l3214&quot;&gt;   3214&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2077&amp;quot; id=&amp;quot;h3-0-2077&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( 0.04823, 0.01566, 0.83777 )
   3253 <a href="#l3234" class="line" id="l3234">   3234</a> &lt;a href=&quot;#l3215&quot; class=&quot;line&quot; id=&quot;l3215&quot;&gt;   3215&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2078&amp;quot; id=&amp;quot;h3-0-2078&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	);
   3254 <a href="#l3235" class="line" id="l3235">   3235</a> &lt;a href=&quot;#l3216&quot; class=&quot;line&quot; id=&quot;l3216&quot;&gt;   3216&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2079&amp;quot; id=&amp;quot;h3-0-2079&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const mat3 ACESOutputMat = mat3(
   3255 <a href="#l3236" class="line" id="l3236">   3236</a> &lt;a href=&quot;#l3217&quot; class=&quot;line&quot; id=&quot;l3217&quot;&gt;   3217&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2080&amp;quot; id=&amp;quot;h3-0-2080&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3(  1.60475, -0.10208, -0.00327 ),		vec3( -0.53108,  1.10813, -0.07276 ),
   3256 <a href="#l3237" class="line" id="l3237">   3237</a> &lt;a href=&quot;#l3218&quot; class=&quot;line&quot; id=&quot;l3218&quot;&gt;   3218&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2081&amp;quot; id=&amp;quot;h3-0-2081&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( -0.07367, -0.00605,  1.07602 )
   3257 <a href="#l3238" class="line" id="l3238">   3238</a> &lt;a href=&quot;#l3219&quot; class=&quot;line&quot; id=&quot;l3219&quot;&gt;   3219&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2082&amp;quot; id=&amp;quot;h3-0-2082&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	);
   3258 <a href="#l3239" class="line" id="l3239">   3239</a> &lt;a href=&quot;#l3220&quot; class=&quot;line&quot; id=&quot;l3220&quot;&gt;   3220&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2083&amp;quot; id=&amp;quot;h3-0-2083&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color *= toneMappingExposure / 0.6;
   3259 <a href="#l3240" class="line" id="l3240">   3240</a> &lt;a href=&quot;#l3221&quot; class=&quot;line&quot; id=&quot;l3221&quot;&gt;   3221&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2084&amp;quot; id=&amp;quot;h3-0-2084&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = ACESInputMat * color;
   3260 <a href="#l3241" class="line" id="l3241">   3241</a> &lt;a href=&quot;#l3222&quot; class=&quot;line&quot; id=&quot;l3222&quot;&gt;   3222&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2085&amp;quot; id=&amp;quot;h3-0-2085&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = RRTAndODTFit( color );
   3261 <a href="#l3242" class="line" id="l3242">   3242</a> &lt;a href=&quot;#l3223&quot; class=&quot;line&quot; id=&quot;l3223&quot;&gt;   3223&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2086&amp;quot; id=&amp;quot;h3-0-2086&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = ACESOutputMat * color;
   3262 <a href="#l3243" class="line" id="l3243">   3243</a> &lt;a href=&quot;#l3224&quot; class=&quot;line&quot; id=&quot;l3224&quot;&gt;   3224&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2087&amp;quot; id=&amp;quot;h3-0-2087&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return saturate( color );
   3263 <a href="#l3244" class="line" id="l3244">   3244</a> &lt;a href=&quot;#l3225&quot; class=&quot;line&quot; id=&quot;l3225&quot;&gt;   3225&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2088&amp;quot; id=&amp;quot;h3-0-2088&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   3264 <a href="#l3245" class="line" id="l3245">   3245</a> &lt;a href=&quot;#l3226&quot; class=&quot;line&quot; id=&quot;l3226&quot;&gt;   3226&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2089&amp;quot; id=&amp;quot;h3-0-2089&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const mat3 LINEAR_REC2020_TO_LINEAR_SRGB = mat3(
   3265 <a href="#l3246" class="line" id="l3246">   3246</a> &lt;a href=&quot;#l3227&quot; class=&quot;line&quot; id=&quot;l3227&quot;&gt;   3227&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2090&amp;quot; id=&amp;quot;h3-0-2090&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3( 1.6605, - 0.1246, - 0.0182 ),
   3266 <a href="#l3247" class="line" id="l3247">   3247</a> &lt;a href=&quot;#l3228&quot; class=&quot;line&quot; id=&quot;l3228&quot;&gt;   3228&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2091&amp;quot; id=&amp;quot;h3-0-2091&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3( - 0.5876, 1.1329, - 0.1006 ),
   3267 <a href="#l3248" class="line" id="l3248">   3248</a> &lt;a href=&quot;#l3229&quot; class=&quot;line&quot; id=&quot;l3229&quot;&gt;   3229&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2092&amp;quot; id=&amp;quot;h3-0-2092&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3( - 0.0728, - 0.0083, 1.1187 )
   3268 <a href="#l3249" class="line" id="l3249">   3249</a> &lt;a href=&quot;#l3230&quot; class=&quot;line&quot; id=&quot;l3230&quot;&gt;   3230&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2093&amp;quot; id=&amp;quot;h3-0-2093&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+);
   3269 <a href="#l3250" class="line" id="l3250">   3250</a> &lt;a href=&quot;#l3231&quot; class=&quot;line&quot; id=&quot;l3231&quot;&gt;   3231&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2094&amp;quot; id=&amp;quot;h3-0-2094&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const mat3 LINEAR_SRGB_TO_LINEAR_REC2020 = mat3(
   3270 <a href="#l3251" class="line" id="l3251">   3251</a> &lt;a href=&quot;#l3232&quot; class=&quot;line&quot; id=&quot;l3232&quot;&gt;   3232&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2095&amp;quot; id=&amp;quot;h3-0-2095&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3( 0.6274, 0.0691, 0.0164 ),
   3271 <a href="#l3252" class="line" id="l3252">   3252</a> &lt;a href=&quot;#l3233&quot; class=&quot;line&quot; id=&quot;l3233&quot;&gt;   3233&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2096&amp;quot; id=&amp;quot;h3-0-2096&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3( 0.3293, 0.9195, 0.0880 ),
   3272 <a href="#l3253" class="line" id="l3253">   3253</a> &lt;a href=&quot;#l3234&quot; class=&quot;line&quot; id=&quot;l3234&quot;&gt;   3234&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2097&amp;quot; id=&amp;quot;h3-0-2097&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3( 0.0433, 0.0113, 0.8956 )
   3273 <a href="#l3254" class="line" id="l3254">   3254</a> &lt;a href=&quot;#l3235&quot; class=&quot;line&quot; id=&quot;l3235&quot;&gt;   3235&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2098&amp;quot; id=&amp;quot;h3-0-2098&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+);
   3274 <a href="#l3255" class="line" id="l3255">   3255</a> &lt;a href=&quot;#l3236&quot; class=&quot;line&quot; id=&quot;l3236&quot;&gt;   3236&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2099&amp;quot; id=&amp;quot;h3-0-2099&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 agxDefaultContrastApprox( vec3 x ) {
   3275 <a href="#l3256" class="line" id="l3256">   3256</a> &lt;a href=&quot;#l3237&quot; class=&quot;line&quot; id=&quot;l3237&quot;&gt;   3237&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2100&amp;quot; id=&amp;quot;h3-0-2100&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 x2 = x * x;
   3276 <a href="#l3257" class="line" id="l3257">   3257</a> &lt;a href=&quot;#l3238&quot; class=&quot;line&quot; id=&quot;l3238&quot;&gt;   3238&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2101&amp;quot; id=&amp;quot;h3-0-2101&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 x4 = x2 * x2;
   3277 <a href="#l3258" class="line" id="l3258">   3258</a> &lt;a href=&quot;#l3239&quot; class=&quot;line&quot; id=&quot;l3239&quot;&gt;   3239&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2102&amp;quot; id=&amp;quot;h3-0-2102&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return + 15.5 * x4 * x2
   3278 <a href="#l3259" class="line" id="l3259">   3259</a> &lt;a href=&quot;#l3240&quot; class=&quot;line&quot; id=&quot;l3240&quot;&gt;   3240&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2103&amp;quot; id=&amp;quot;h3-0-2103&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		- 40.14 * x4 * x
   3279 <a href="#l3260" class="line" id="l3260">   3260</a> &lt;a href=&quot;#l3241&quot; class=&quot;line&quot; id=&quot;l3241&quot;&gt;   3241&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2104&amp;quot; id=&amp;quot;h3-0-2104&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		+ 31.96 * x4
   3280 <a href="#l3261" class="line" id="l3261">   3261</a> &lt;a href=&quot;#l3242&quot; class=&quot;line&quot; id=&quot;l3242&quot;&gt;   3242&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2105&amp;quot; id=&amp;quot;h3-0-2105&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		- 6.868 * x2 * x
   3281 <a href="#l3262" class="line" id="l3262">   3262</a> &lt;a href=&quot;#l3243&quot; class=&quot;line&quot; id=&quot;l3243&quot;&gt;   3243&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2106&amp;quot; id=&amp;quot;h3-0-2106&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		+ 0.4298 * x2
   3282 <a href="#l3263" class="line" id="l3263">   3263</a> &lt;a href=&quot;#l3244&quot; class=&quot;line&quot; id=&quot;l3244&quot;&gt;   3244&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2107&amp;quot; id=&amp;quot;h3-0-2107&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		+ 0.1191 * x
   3283 <a href="#l3264" class="line" id="l3264">   3264</a> &lt;a href=&quot;#l3245&quot; class=&quot;line&quot; id=&quot;l3245&quot;&gt;   3245&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2108&amp;quot; id=&amp;quot;h3-0-2108&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		- 0.00232;
   3284 <a href="#l3265" class="line" id="l3265">   3265</a> &lt;a href=&quot;#l3246&quot; class=&quot;line&quot; id=&quot;l3246&quot;&gt;   3246&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2109&amp;quot; id=&amp;quot;h3-0-2109&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   3285 <a href="#l3266" class="line" id="l3266">   3266</a> &lt;a href=&quot;#l3247&quot; class=&quot;line&quot; id=&quot;l3247&quot;&gt;   3247&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2110&amp;quot; id=&amp;quot;h3-0-2110&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 AgXToneMapping( vec3 color ) {
   3286 <a href="#l3267" class="line" id="l3267">   3267</a> &lt;a href=&quot;#l3248&quot; class=&quot;line&quot; id=&quot;l3248&quot;&gt;   3248&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2111&amp;quot; id=&amp;quot;h3-0-2111&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const mat3 AgXInsetMatrix = mat3(
   3287 <a href="#l3268" class="line" id="l3268">   3268</a> &lt;a href=&quot;#l3249&quot; class=&quot;line&quot; id=&quot;l3249&quot;&gt;   3249&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2112&amp;quot; id=&amp;quot;h3-0-2112&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( 0.856627153315983, 0.137318972929847, 0.11189821299995 ),
   3288 <a href="#l3269" class="line" id="l3269">   3269</a> &lt;a href=&quot;#l3250&quot; class=&quot;line&quot; id=&quot;l3250&quot;&gt;   3250&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2113&amp;quot; id=&amp;quot;h3-0-2113&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( 0.0951212405381588, 0.761241990602591, 0.0767994186031903 ),
   3289 <a href="#l3270" class="line" id="l3270">   3270</a> &lt;a href=&quot;#l3251&quot; class=&quot;line&quot; id=&quot;l3251&quot;&gt;   3251&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2114&amp;quot; id=&amp;quot;h3-0-2114&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( 0.0482516061458583, 0.101439036467562, 0.811302368396859 )
   3290 <a href="#l3271" class="line" id="l3271">   3271</a> &lt;a href=&quot;#l3252&quot; class=&quot;line&quot; id=&quot;l3252&quot;&gt;   3252&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2115&amp;quot; id=&amp;quot;h3-0-2115&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	);
   3291 <a href="#l3272" class="line" id="l3272">   3272</a> &lt;a href=&quot;#l3253&quot; class=&quot;line&quot; id=&quot;l3253&quot;&gt;   3253&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2116&amp;quot; id=&amp;quot;h3-0-2116&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const mat3 AgXOutsetMatrix = mat3(
   3292 <a href="#l3273" class="line" id="l3273">   3273</a> &lt;a href=&quot;#l3254&quot; class=&quot;line&quot; id=&quot;l3254&quot;&gt;   3254&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2117&amp;quot; id=&amp;quot;h3-0-2117&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( 1.1271005818144368, - 0.1413297634984383, - 0.14132976349843826 ),
   3293 <a href="#l3274" class="line" id="l3274">   3274</a> &lt;a href=&quot;#l3255&quot; class=&quot;line&quot; id=&quot;l3255&quot;&gt;   3255&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2118&amp;quot; id=&amp;quot;h3-0-2118&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( - 0.11060664309660323, 1.157823702216272, - 0.11060664309660294 ),
   3294 <a href="#l3275" class="line" id="l3275">   3275</a> &lt;a href=&quot;#l3256&quot; class=&quot;line&quot; id=&quot;l3256&quot;&gt;   3256&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2119&amp;quot; id=&amp;quot;h3-0-2119&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3( - 0.016493938717834573, - 0.016493938717834257, 1.2519364065950405 )
   3295 <a href="#l3276" class="line" id="l3276">   3276</a> &lt;a href=&quot;#l3257&quot; class=&quot;line&quot; id=&quot;l3257&quot;&gt;   3257&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2120&amp;quot; id=&amp;quot;h3-0-2120&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	);
   3296 <a href="#l3277" class="line" id="l3277">   3277</a> &lt;a href=&quot;#l3258&quot; class=&quot;line&quot; id=&quot;l3258&quot;&gt;   3258&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2121&amp;quot; id=&amp;quot;h3-0-2121&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float AgxMinEv = - 12.47393;	const float AgxMaxEv = 4.026069;
   3297 <a href="#l3278" class="line" id="l3278">   3278</a> &lt;a href=&quot;#l3259&quot; class=&quot;line&quot; id=&quot;l3259&quot;&gt;   3259&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2122&amp;quot; id=&amp;quot;h3-0-2122&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color *= toneMappingExposure;
   3298 <a href="#l3279" class="line" id="l3279">   3279</a> &lt;a href=&quot;#l3260&quot; class=&quot;line&quot; id=&quot;l3260&quot;&gt;   3260&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2123&amp;quot; id=&amp;quot;h3-0-2123&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = LINEAR_SRGB_TO_LINEAR_REC2020 * color;
   3299 <a href="#l3280" class="line" id="l3280">   3280</a> &lt;a href=&quot;#l3261&quot; class=&quot;line&quot; id=&quot;l3261&quot;&gt;   3261&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2124&amp;quot; id=&amp;quot;h3-0-2124&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = AgXInsetMatrix * color;
   3300 <a href="#l3281" class="line" id="l3281">   3281</a> &lt;a href=&quot;#l3262&quot; class=&quot;line&quot; id=&quot;l3262&quot;&gt;   3262&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2125&amp;quot; id=&amp;quot;h3-0-2125&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = max( color, 1e-10 );	color = log2( color );
   3301 <a href="#l3282" class="line" id="l3282">   3282</a> &lt;a href=&quot;#l3263&quot; class=&quot;line&quot; id=&quot;l3263&quot;&gt;   3263&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2126&amp;quot; id=&amp;quot;h3-0-2126&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = ( color - AgxMinEv ) / ( AgxMaxEv - AgxMinEv );
   3302 <a href="#l3283" class="line" id="l3283">   3283</a> &lt;a href=&quot;#l3264&quot; class=&quot;line&quot; id=&quot;l3264&quot;&gt;   3264&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2127&amp;quot; id=&amp;quot;h3-0-2127&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = clamp( color, 0.0, 1.0 );
   3303 <a href="#l3284" class="line" id="l3284">   3284</a> &lt;a href=&quot;#l3265&quot; class=&quot;line&quot; id=&quot;l3265&quot;&gt;   3265&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2128&amp;quot; id=&amp;quot;h3-0-2128&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = agxDefaultContrastApprox( color );
   3304 <a href="#l3285" class="line" id="l3285">   3285</a> &lt;a href=&quot;#l3266&quot; class=&quot;line&quot; id=&quot;l3266&quot;&gt;   3266&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2129&amp;quot; id=&amp;quot;h3-0-2129&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = AgXOutsetMatrix * color;
   3305 <a href="#l3286" class="line" id="l3286">   3286</a> &lt;a href=&quot;#l3267&quot; class=&quot;line&quot; id=&quot;l3267&quot;&gt;   3267&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2130&amp;quot; id=&amp;quot;h3-0-2130&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = pow( max( vec3( 0.0 ), color ), vec3( 2.2 ) );
   3306 <a href="#l3287" class="line" id="l3287">   3287</a> &lt;a href=&quot;#l3268&quot; class=&quot;line&quot; id=&quot;l3268&quot;&gt;   3268&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2131&amp;quot; id=&amp;quot;h3-0-2131&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = LINEAR_REC2020_TO_LINEAR_SRGB * color;
   3307 <a href="#l3288" class="line" id="l3288">   3288</a> &lt;a href=&quot;#l3269&quot; class=&quot;line&quot; id=&quot;l3269&quot;&gt;   3269&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2132&amp;quot; id=&amp;quot;h3-0-2132&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color = clamp( color, 0.0, 1.0 );
   3308 <a href="#l3289" class="line" id="l3289">   3289</a> &lt;a href=&quot;#l3270&quot; class=&quot;line&quot; id=&quot;l3270&quot;&gt;   3270&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2133&amp;quot; id=&amp;quot;h3-0-2133&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return color;
   3309 <a href="#l3290" class="line" id="l3290">   3290</a> &lt;a href=&quot;#l3271&quot; class=&quot;line&quot; id=&quot;l3271&quot;&gt;   3271&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2134&amp;quot; id=&amp;quot;h3-0-2134&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   3310 <a href="#l3291" class="line" id="l3291">   3291</a> &lt;a href=&quot;#l3272&quot; class=&quot;line&quot; id=&quot;l3272&quot;&gt;   3272&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2135&amp;quot; id=&amp;quot;h3-0-2135&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 NeutralToneMapping( vec3 color ) {
   3311 <a href="#l3292" class="line" id="l3292">   3292</a> &lt;a href=&quot;#l3273&quot; class=&quot;line&quot; id=&quot;l3273&quot;&gt;   3273&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2136&amp;quot; id=&amp;quot;h3-0-2136&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float StartCompression = 0.8 - 0.04;
   3312 <a href="#l3293" class="line" id="l3293">   3293</a> &lt;a href=&quot;#l3274&quot; class=&quot;line&quot; id=&quot;l3274&quot;&gt;   3274&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2137&amp;quot; id=&amp;quot;h3-0-2137&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float Desaturation = 0.15;
   3313 <a href="#l3294" class="line" id="l3294">   3294</a> &lt;a href=&quot;#l3275&quot; class=&quot;line&quot; id=&quot;l3275&quot;&gt;   3275&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2138&amp;quot; id=&amp;quot;h3-0-2138&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color *= toneMappingExposure;
   3314 <a href="#l3295" class="line" id="l3295">   3295</a> &lt;a href=&quot;#l3276&quot; class=&quot;line&quot; id=&quot;l3276&quot;&gt;   3276&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2139&amp;quot; id=&amp;quot;h3-0-2139&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float x = min( color.r, min( color.g, color.b ) );
   3315 <a href="#l3296" class="line" id="l3296">   3296</a> &lt;a href=&quot;#l3277&quot; class=&quot;line&quot; id=&quot;l3277&quot;&gt;   3277&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2140&amp;quot; id=&amp;quot;h3-0-2140&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float offset = x &amp;amp;lt; 0.08 ? x - 6.25 * x * x : 0.04;
   3316 <a href="#l3297" class="line" id="l3297">   3297</a> &lt;a href=&quot;#l3278&quot; class=&quot;line&quot; id=&quot;l3278&quot;&gt;   3278&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2141&amp;quot; id=&amp;quot;h3-0-2141&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color -= offset;
   3317 <a href="#l3298" class="line" id="l3298">   3298</a> &lt;a href=&quot;#l3279&quot; class=&quot;line&quot; id=&quot;l3279&quot;&gt;   3279&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2142&amp;quot; id=&amp;quot;h3-0-2142&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float peak = max( color.r, max( color.g, color.b ) );
   3318 <a href="#l3299" class="line" id="l3299">   3299</a> &lt;a href=&quot;#l3280&quot; class=&quot;line&quot; id=&quot;l3280&quot;&gt;   3280&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2143&amp;quot; id=&amp;quot;h3-0-2143&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( peak &amp;amp;lt; StartCompression ) return color;
   3319 <a href="#l3300" class="line" id="l3300">   3300</a> &lt;a href=&quot;#l3281&quot; class=&quot;line&quot; id=&quot;l3281&quot;&gt;   3281&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2144&amp;quot; id=&amp;quot;h3-0-2144&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float d = 1. - StartCompression;
   3320 <a href="#l3301" class="line" id="l3301">   3301</a> &lt;a href=&quot;#l3282&quot; class=&quot;line&quot; id=&quot;l3282&quot;&gt;   3282&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2145&amp;quot; id=&amp;quot;h3-0-2145&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float newPeak = 1. - d * d / ( peak + d - StartCompression );
   3321 <a href="#l3302" class="line" id="l3302">   3302</a> &lt;a href=&quot;#l3283&quot; class=&quot;line&quot; id=&quot;l3283&quot;&gt;   3283&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2146&amp;quot; id=&amp;quot;h3-0-2146&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	color *= newPeak / peak;
   3322 <a href="#l3303" class="line" id="l3303">   3303</a> &lt;a href=&quot;#l3284&quot; class=&quot;line&quot; id=&quot;l3284&quot;&gt;   3284&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2147&amp;quot; id=&amp;quot;h3-0-2147&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float g = 1. - 1. / ( Desaturation * ( peak - newPeak ) + 1. );
   3323 <a href="#l3304" class="line" id="l3304">   3304</a> &lt;a href=&quot;#l3285&quot; class=&quot;line&quot; id=&quot;l3285&quot;&gt;   3285&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2148&amp;quot; id=&amp;quot;h3-0-2148&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	return mix( color, vec3( newPeak ), g );
   3324 <a href="#l3305" class="line" id="l3305">   3305</a> &lt;a href=&quot;#l3286&quot; class=&quot;line&quot; id=&quot;l3286&quot;&gt;   3286&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2149&amp;quot; id=&amp;quot;h3-0-2149&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   3325 <a href="#l3306" class="line" id="l3306">   3306</a> &lt;a href=&quot;#l3287&quot; class=&quot;line&quot; id=&quot;l3287&quot;&gt;   3287&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2150&amp;quot; id=&amp;quot;h3-0-2150&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 CustomToneMapping( vec3 color ) { return color; }`,t6=`#ifdef USE_TRANSMISSION
   3326 <a href="#l3307" class="line" id="l3307">   3307</a> &lt;a href=&quot;#l3288&quot; class=&quot;line&quot; id=&quot;l3288&quot;&gt;   3288&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2151&amp;quot; id=&amp;quot;h3-0-2151&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.transmission = transmission;
   3327 <a href="#l3308" class="line" id="l3308">   3308</a> &lt;a href=&quot;#l3289&quot; class=&quot;line&quot; id=&quot;l3289&quot;&gt;   3289&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2152&amp;quot; id=&amp;quot;h3-0-2152&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.transmissionAlpha = 1.0;
   3328 <a href="#l3309" class="line" id="l3309">   3309</a> &lt;a href=&quot;#l3290&quot; class=&quot;line&quot; id=&quot;l3290&quot;&gt;   3290&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2153&amp;quot; id=&amp;quot;h3-0-2153&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.thickness = thickness;
   3329 <a href="#l3310" class="line" id="l3310">   3310</a> &lt;a href=&quot;#l3291&quot; class=&quot;line&quot; id=&quot;l3291&quot;&gt;   3291&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2154&amp;quot; id=&amp;quot;h3-0-2154&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.attenuationDistance = attenuationDistance;
   3330 <a href="#l3311" class="line" id="l3311">   3311</a> &lt;a href=&quot;#l3292&quot; class=&quot;line&quot; id=&quot;l3292&quot;&gt;   3292&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2155&amp;quot; id=&amp;quot;h3-0-2155&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.attenuationColor = attenuationColor;
   3331 <a href="#l3312" class="line" id="l3312">   3312</a> &lt;a href=&quot;#l3293&quot; class=&quot;line&quot; id=&quot;l3293&quot;&gt;   3293&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2156&amp;quot; id=&amp;quot;h3-0-2156&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TRANSMISSIONMAP
   3332 <a href="#l3313" class="line" id="l3313">   3313</a> &lt;a href=&quot;#l3294&quot; class=&quot;line&quot; id=&quot;l3294&quot;&gt;   3294&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2157&amp;quot; id=&amp;quot;h3-0-2157&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.transmission *= texture2D( transmissionMap, vTransmissionMapUv ).r;
   3333 <a href="#l3314" class="line" id="l3314">   3314</a> &lt;a href=&quot;#l3295&quot; class=&quot;line&quot; id=&quot;l3295&quot;&gt;   3295&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2158&amp;quot; id=&amp;quot;h3-0-2158&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3334 <a href="#l3315" class="line" id="l3315">   3315</a> &lt;a href=&quot;#l3296&quot; class=&quot;line&quot; id=&quot;l3296&quot;&gt;   3296&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2159&amp;quot; id=&amp;quot;h3-0-2159&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_THICKNESSMAP
   3335 <a href="#l3316" class="line" id="l3316">   3316</a> &lt;a href=&quot;#l3297&quot; class=&quot;line&quot; id=&quot;l3297&quot;&gt;   3297&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2160&amp;quot; id=&amp;quot;h3-0-2160&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.thickness *= texture2D( thicknessMap, vThicknessMapUv ).g;
   3336 <a href="#l3317" class="line" id="l3317">   3317</a> &lt;a href=&quot;#l3298&quot; class=&quot;line&quot; id=&quot;l3298&quot;&gt;   3298&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2161&amp;quot; id=&amp;quot;h3-0-2161&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3337 <a href="#l3318" class="line" id="l3318">   3318</a> &lt;a href=&quot;#l3299&quot; class=&quot;line&quot; id=&quot;l3299&quot;&gt;   3299&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2162&amp;quot; id=&amp;quot;h3-0-2162&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 pos = vWorldPosition;
   3338 <a href="#l3319" class="line" id="l3319">   3319</a> &lt;a href=&quot;#l3300&quot; class=&quot;line&quot; id=&quot;l3300&quot;&gt;   3300&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2163&amp;quot; id=&amp;quot;h3-0-2163&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 v = normalize( cameraPosition - pos );
   3339 <a href="#l3320" class="line" id="l3320">   3320</a> &lt;a href=&quot;#l3301&quot; class=&quot;line&quot; id=&quot;l3301&quot;&gt;   3301&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2164&amp;quot; id=&amp;quot;h3-0-2164&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 n = inverseTransformDirection( normal, viewMatrix );
   3340 <a href="#l3321" class="line" id="l3321">   3321</a> &lt;a href=&quot;#l3302&quot; class=&quot;line&quot; id=&quot;l3302&quot;&gt;   3302&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2165&amp;quot; id=&amp;quot;h3-0-2165&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 transmitted = getIBLVolumeRefraction(
   3341 <a href="#l3322" class="line" id="l3322">   3322</a> &lt;a href=&quot;#l3303&quot; class=&quot;line&quot; id=&quot;l3303&quot;&gt;   3303&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2166&amp;quot; id=&amp;quot;h3-0-2166&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		n, v, material.roughness, material.diffuseColor, material.specularColor, material.specularF90,
   3342 <a href="#l3323" class="line" id="l3323">   3323</a> &lt;a href=&quot;#l3304&quot; class=&quot;line&quot; id=&quot;l3304&quot;&gt;   3304&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2167&amp;quot; id=&amp;quot;h3-0-2167&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		pos, modelMatrix, viewMatrix, projectionMatrix, material.dispersion, material.ior, material.thickness,
   3343 <a href="#l3324" class="line" id="l3324">   3324</a> &lt;a href=&quot;#l3305&quot; class=&quot;line&quot; id=&quot;l3305&quot;&gt;   3305&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2168&amp;quot; id=&amp;quot;h3-0-2168&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		material.attenuationColor, material.attenuationDistance );
   3344 <a href="#l3325" class="line" id="l3325">   3325</a> &lt;a href=&quot;#l3306&quot; class=&quot;line&quot; id=&quot;l3306&quot;&gt;   3306&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2169&amp;quot; id=&amp;quot;h3-0-2169&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	material.transmissionAlpha = mix( material.transmissionAlpha, transmitted.a, material.transmission );
   3345 <a href="#l3326" class="line" id="l3326">   3326</a> &lt;a href=&quot;#l3307&quot; class=&quot;line&quot; id=&quot;l3307&quot;&gt;   3307&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2170&amp;quot; id=&amp;quot;h3-0-2170&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	totalDiffuse = mix( totalDiffuse, transmitted.rgb, material.transmission );
   3346 <a href="#l3327" class="line" id="l3327">   3327</a> &lt;a href=&quot;#l3308&quot; class=&quot;line&quot; id=&quot;l3308&quot;&gt;   3308&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2171&amp;quot; id=&amp;quot;h3-0-2171&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,e6=`#ifdef USE_TRANSMISSION
   3347 <a href="#l3328" class="line" id="l3328">   3328</a> &lt;a href=&quot;#l3309&quot; class=&quot;line&quot; id=&quot;l3309&quot;&gt;   3309&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2172&amp;quot; id=&amp;quot;h3-0-2172&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float transmission;
   3348 <a href="#l3329" class="line" id="l3329">   3329</a> &lt;a href=&quot;#l3310&quot; class=&quot;line&quot; id=&quot;l3310&quot;&gt;   3310&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2173&amp;quot; id=&amp;quot;h3-0-2173&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float thickness;
   3349 <a href="#l3330" class="line" id="l3330">   3330</a> &lt;a href=&quot;#l3311&quot; class=&quot;line&quot; id=&quot;l3311&quot;&gt;   3311&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2174&amp;quot; id=&amp;quot;h3-0-2174&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float attenuationDistance;
   3350 <a href="#l3331" class="line" id="l3331">   3331</a> &lt;a href=&quot;#l3312&quot; class=&quot;line&quot; id=&quot;l3312&quot;&gt;   3312&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2175&amp;quot; id=&amp;quot;h3-0-2175&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec3 attenuationColor;
   3351 <a href="#l3332" class="line" id="l3332">   3332</a> &lt;a href=&quot;#l3313&quot; class=&quot;line&quot; id=&quot;l3313&quot;&gt;   3313&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2176&amp;quot; id=&amp;quot;h3-0-2176&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_TRANSMISSIONMAP
   3352 <a href="#l3333" class="line" id="l3333">   3333</a> &lt;a href=&quot;#l3314&quot; class=&quot;line&quot; id=&quot;l3314&quot;&gt;   3314&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2177&amp;quot; id=&amp;quot;h3-0-2177&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D transmissionMap;
   3353 <a href="#l3334" class="line" id="l3334">   3334</a> &lt;a href=&quot;#l3315&quot; class=&quot;line&quot; id=&quot;l3315&quot;&gt;   3315&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2178&amp;quot; id=&amp;quot;h3-0-2178&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3354 <a href="#l3335" class="line" id="l3335">   3335</a> &lt;a href=&quot;#l3316&quot; class=&quot;line&quot; id=&quot;l3316&quot;&gt;   3316&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2179&amp;quot; id=&amp;quot;h3-0-2179&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_THICKNESSMAP
   3355 <a href="#l3336" class="line" id="l3336">   3336</a> &lt;a href=&quot;#l3317&quot; class=&quot;line&quot; id=&quot;l3317&quot;&gt;   3317&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2180&amp;quot; id=&amp;quot;h3-0-2180&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D thicknessMap;
   3356 <a href="#l3337" class="line" id="l3337">   3337</a> &lt;a href=&quot;#l3318&quot; class=&quot;line&quot; id=&quot;l3318&quot;&gt;   3318&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2181&amp;quot; id=&amp;quot;h3-0-2181&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3357 <a href="#l3338" class="line" id="l3338">   3338</a> &lt;a href=&quot;#l3319&quot; class=&quot;line&quot; id=&quot;l3319&quot;&gt;   3319&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2182&amp;quot; id=&amp;quot;h3-0-2182&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec2 transmissionSamplerSize;
   3358 <a href="#l3339" class="line" id="l3339">   3339</a> &lt;a href=&quot;#l3320&quot; class=&quot;line&quot; id=&quot;l3320&quot;&gt;   3320&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2183&amp;quot; id=&amp;quot;h3-0-2183&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D transmissionSamplerMap;
   3359 <a href="#l3340" class="line" id="l3340">   3340</a> &lt;a href=&quot;#l3321&quot; class=&quot;line&quot; id=&quot;l3321&quot;&gt;   3321&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2184&amp;quot; id=&amp;quot;h3-0-2184&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat4 modelMatrix;
   3360 <a href="#l3341" class="line" id="l3341">   3341</a> &lt;a href=&quot;#l3322&quot; class=&quot;line&quot; id=&quot;l3322&quot;&gt;   3322&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2185&amp;quot; id=&amp;quot;h3-0-2185&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat4 projectionMatrix;
   3361 <a href="#l3342" class="line" id="l3342">   3342</a> &lt;a href=&quot;#l3323&quot; class=&quot;line&quot; id=&quot;l3323&quot;&gt;   3323&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2186&amp;quot; id=&amp;quot;h3-0-2186&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vWorldPosition;
   3362 <a href="#l3343" class="line" id="l3343">   3343</a> &lt;a href=&quot;#l3324&quot; class=&quot;line&quot; id=&quot;l3324&quot;&gt;   3324&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2187&amp;quot; id=&amp;quot;h3-0-2187&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float w0( float a ) {
   3363 <a href="#l3344" class="line" id="l3344">   3344</a> &lt;a href=&quot;#l3325&quot; class=&quot;line&quot; id=&quot;l3325&quot;&gt;   3325&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2188&amp;quot; id=&amp;quot;h3-0-2188&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return ( 1.0 / 6.0 ) * ( a * ( a * ( - a + 3.0 ) - 3.0 ) + 1.0 );
   3364 <a href="#l3345" class="line" id="l3345">   3345</a> &lt;a href=&quot;#l3326&quot; class=&quot;line&quot; id=&quot;l3326&quot;&gt;   3326&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2189&amp;quot; id=&amp;quot;h3-0-2189&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3365 <a href="#l3346" class="line" id="l3346">   3346</a> &lt;a href=&quot;#l3327&quot; class=&quot;line&quot; id=&quot;l3327&quot;&gt;   3327&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2190&amp;quot; id=&amp;quot;h3-0-2190&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float w1( float a ) {
   3366 <a href="#l3347" class="line" id="l3347">   3347</a> &lt;a href=&quot;#l3328&quot; class=&quot;line&quot; id=&quot;l3328&quot;&gt;   3328&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2191&amp;quot; id=&amp;quot;h3-0-2191&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return ( 1.0 / 6.0 ) * ( a *  a * ( 3.0 * a - 6.0 ) + 4.0 );
   3367 <a href="#l3348" class="line" id="l3348">   3348</a> &lt;a href=&quot;#l3329&quot; class=&quot;line&quot; id=&quot;l3329&quot;&gt;   3329&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2192&amp;quot; id=&amp;quot;h3-0-2192&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3368 <a href="#l3349" class="line" id="l3349">   3349</a> &lt;a href=&quot;#l3330&quot; class=&quot;line&quot; id=&quot;l3330&quot;&gt;   3330&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2193&amp;quot; id=&amp;quot;h3-0-2193&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float w2( float a ){
   3369 <a href="#l3350" class="line" id="l3350">   3350</a> &lt;a href=&quot;#l3331&quot; class=&quot;line&quot; id=&quot;l3331&quot;&gt;   3331&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2194&amp;quot; id=&amp;quot;h3-0-2194&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return ( 1.0 / 6.0 ) * ( a * ( a * ( - 3.0 * a + 3.0 ) + 3.0 ) + 1.0 );
   3370 <a href="#l3351" class="line" id="l3351">   3351</a> &lt;a href=&quot;#l3332&quot; class=&quot;line&quot; id=&quot;l3332&quot;&gt;   3332&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2195&amp;quot; id=&amp;quot;h3-0-2195&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3371 <a href="#l3352" class="line" id="l3352">   3352</a> &lt;a href=&quot;#l3333&quot; class=&quot;line&quot; id=&quot;l3333&quot;&gt;   3333&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2196&amp;quot; id=&amp;quot;h3-0-2196&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float w3( float a ) {
   3372 <a href="#l3353" class="line" id="l3353">   3353</a> &lt;a href=&quot;#l3334&quot; class=&quot;line&quot; id=&quot;l3334&quot;&gt;   3334&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2197&amp;quot; id=&amp;quot;h3-0-2197&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return ( 1.0 / 6.0 ) * ( a * a * a );
   3373 <a href="#l3354" class="line" id="l3354">   3354</a> &lt;a href=&quot;#l3335&quot; class=&quot;line&quot; id=&quot;l3335&quot;&gt;   3335&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2198&amp;quot; id=&amp;quot;h3-0-2198&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3374 <a href="#l3355" class="line" id="l3355">   3355</a> &lt;a href=&quot;#l3336&quot; class=&quot;line&quot; id=&quot;l3336&quot;&gt;   3336&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2199&amp;quot; id=&amp;quot;h3-0-2199&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float g0( float a ) {
   3375 <a href="#l3356" class="line" id="l3356">   3356</a> &lt;a href=&quot;#l3337&quot; class=&quot;line&quot; id=&quot;l3337&quot;&gt;   3337&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2200&amp;quot; id=&amp;quot;h3-0-2200&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return w0( a ) + w1( a );
   3376 <a href="#l3357" class="line" id="l3357">   3357</a> &lt;a href=&quot;#l3338&quot; class=&quot;line&quot; id=&quot;l3338&quot;&gt;   3338&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2201&amp;quot; id=&amp;quot;h3-0-2201&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3377 <a href="#l3358" class="line" id="l3358">   3358</a> &lt;a href=&quot;#l3339&quot; class=&quot;line&quot; id=&quot;l3339&quot;&gt;   3339&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2202&amp;quot; id=&amp;quot;h3-0-2202&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float g1( float a ) {
   3378 <a href="#l3359" class="line" id="l3359">   3359</a> &lt;a href=&quot;#l3340&quot; class=&quot;line&quot; id=&quot;l3340&quot;&gt;   3340&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2203&amp;quot; id=&amp;quot;h3-0-2203&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return w2( a ) + w3( a );
   3379 <a href="#l3360" class="line" id="l3360">   3360</a> &lt;a href=&quot;#l3341&quot; class=&quot;line&quot; id=&quot;l3341&quot;&gt;   3341&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2204&amp;quot; id=&amp;quot;h3-0-2204&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3380 <a href="#l3361" class="line" id="l3361">   3361</a> &lt;a href=&quot;#l3342&quot; class=&quot;line&quot; id=&quot;l3342&quot;&gt;   3342&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2205&amp;quot; id=&amp;quot;h3-0-2205&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float h0( float a ) {
   3381 <a href="#l3362" class="line" id="l3362">   3362</a> &lt;a href=&quot;#l3343&quot; class=&quot;line&quot; id=&quot;l3343&quot;&gt;   3343&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2206&amp;quot; id=&amp;quot;h3-0-2206&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return - 1.0 + w1( a ) / ( w0( a ) + w1( a ) );
   3382 <a href="#l3363" class="line" id="l3363">   3363</a> &lt;a href=&quot;#l3344&quot; class=&quot;line&quot; id=&quot;l3344&quot;&gt;   3344&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2207&amp;quot; id=&amp;quot;h3-0-2207&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3383 <a href="#l3364" class="line" id="l3364">   3364</a> &lt;a href=&quot;#l3345&quot; class=&quot;line&quot; id=&quot;l3345&quot;&gt;   3345&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2208&amp;quot; id=&amp;quot;h3-0-2208&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float h1( float a ) {
   3384 <a href="#l3365" class="line" id="l3365">   3365</a> &lt;a href=&quot;#l3346&quot; class=&quot;line&quot; id=&quot;l3346&quot;&gt;   3346&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2209&amp;quot; id=&amp;quot;h3-0-2209&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return 1.0 + w3( a ) / ( w2( a ) + w3( a ) );
   3385 <a href="#l3366" class="line" id="l3366">   3366</a> &lt;a href=&quot;#l3347&quot; class=&quot;line&quot; id=&quot;l3347&quot;&gt;   3347&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2210&amp;quot; id=&amp;quot;h3-0-2210&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3386 <a href="#l3367" class="line" id="l3367">   3367</a> &lt;a href=&quot;#l3348&quot; class=&quot;line&quot; id=&quot;l3348&quot;&gt;   3348&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2211&amp;quot; id=&amp;quot;h3-0-2211&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 bicubic( sampler2D tex, vec2 uv, vec4 texelSize, float lod ) {
   3387 <a href="#l3368" class="line" id="l3368">   3368</a> &lt;a href=&quot;#l3349&quot; class=&quot;line&quot; id=&quot;l3349&quot;&gt;   3349&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2212&amp;quot; id=&amp;quot;h3-0-2212&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uv = uv * texelSize.zw + 0.5;
   3388 <a href="#l3369" class="line" id="l3369">   3369</a> &lt;a href=&quot;#l3350&quot; class=&quot;line&quot; id=&quot;l3350&quot;&gt;   3350&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2213&amp;quot; id=&amp;quot;h3-0-2213&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 iuv = floor( uv );
   3389 <a href="#l3370" class="line" id="l3370">   3370</a> &lt;a href=&quot;#l3351&quot; class=&quot;line&quot; id=&quot;l3351&quot;&gt;   3351&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2214&amp;quot; id=&amp;quot;h3-0-2214&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 fuv = fract( uv );
   3390 <a href="#l3371" class="line" id="l3371">   3371</a> &lt;a href=&quot;#l3352&quot; class=&quot;line&quot; id=&quot;l3352&quot;&gt;   3352&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2215&amp;quot; id=&amp;quot;h3-0-2215&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float g0x = g0( fuv.x );
   3391 <a href="#l3372" class="line" id="l3372">   3372</a> &lt;a href=&quot;#l3353&quot; class=&quot;line&quot; id=&quot;l3353&quot;&gt;   3353&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2216&amp;quot; id=&amp;quot;h3-0-2216&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float g1x = g1( fuv.x );
   3392 <a href="#l3373" class="line" id="l3373">   3373</a> &lt;a href=&quot;#l3354&quot; class=&quot;line&quot; id=&quot;l3354&quot;&gt;   3354&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2217&amp;quot; id=&amp;quot;h3-0-2217&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float h0x = h0( fuv.x );
   3393 <a href="#l3374" class="line" id="l3374">   3374</a> &lt;a href=&quot;#l3355&quot; class=&quot;line&quot; id=&quot;l3355&quot;&gt;   3355&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2218&amp;quot; id=&amp;quot;h3-0-2218&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float h1x = h1( fuv.x );
   3394 <a href="#l3375" class="line" id="l3375">   3375</a> &lt;a href=&quot;#l3356&quot; class=&quot;line&quot; id=&quot;l3356&quot;&gt;   3356&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2219&amp;quot; id=&amp;quot;h3-0-2219&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float h0y = h0( fuv.y );
   3395 <a href="#l3376" class="line" id="l3376">   3376</a> &lt;a href=&quot;#l3357&quot; class=&quot;line&quot; id=&quot;l3357&quot;&gt;   3357&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2220&amp;quot; id=&amp;quot;h3-0-2220&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float h1y = h1( fuv.y );
   3396 <a href="#l3377" class="line" id="l3377">   3377</a> &lt;a href=&quot;#l3358&quot; class=&quot;line&quot; id=&quot;l3358&quot;&gt;   3358&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2221&amp;quot; id=&amp;quot;h3-0-2221&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 p0 = ( vec2( iuv.x + h0x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
   3397 <a href="#l3378" class="line" id="l3378">   3378</a> &lt;a href=&quot;#l3359&quot; class=&quot;line&quot; id=&quot;l3359&quot;&gt;   3359&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2222&amp;quot; id=&amp;quot;h3-0-2222&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 p1 = ( vec2( iuv.x + h1x, iuv.y + h0y ) - 0.5 ) * texelSize.xy;
   3398 <a href="#l3379" class="line" id="l3379">   3379</a> &lt;a href=&quot;#l3360&quot; class=&quot;line&quot; id=&quot;l3360&quot;&gt;   3360&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2223&amp;quot; id=&amp;quot;h3-0-2223&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 p2 = ( vec2( iuv.x + h0x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
   3399 <a href="#l3380" class="line" id="l3380">   3380</a> &lt;a href=&quot;#l3361&quot; class=&quot;line&quot; id=&quot;l3361&quot;&gt;   3361&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2224&amp;quot; id=&amp;quot;h3-0-2224&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 p3 = ( vec2( iuv.x + h1x, iuv.y + h1y ) - 0.5 ) * texelSize.xy;
   3400 <a href="#l3381" class="line" id="l3381">   3381</a> &lt;a href=&quot;#l3362&quot; class=&quot;line&quot; id=&quot;l3362&quot;&gt;   3362&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2225&amp;quot; id=&amp;quot;h3-0-2225&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return g0( fuv.y ) * ( g0x * textureLod( tex, p0, lod ) + g1x * textureLod( tex, p1, lod ) ) +
   3401 <a href="#l3382" class="line" id="l3382">   3382</a> &lt;a href=&quot;#l3363&quot; class=&quot;line&quot; id=&quot;l3363&quot;&gt;   3363&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2226&amp;quot; id=&amp;quot;h3-0-2226&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			g1( fuv.y ) * ( g0x * textureLod( tex, p2, lod ) + g1x * textureLod( tex, p3, lod ) );
   3402 <a href="#l3383" class="line" id="l3383">   3383</a> &lt;a href=&quot;#l3364&quot; class=&quot;line&quot; id=&quot;l3364&quot;&gt;   3364&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2227&amp;quot; id=&amp;quot;h3-0-2227&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3403 <a href="#l3384" class="line" id="l3384">   3384</a> &lt;a href=&quot;#l3365&quot; class=&quot;line&quot; id=&quot;l3365&quot;&gt;   3365&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2228&amp;quot; id=&amp;quot;h3-0-2228&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 textureBicubic( sampler2D sampler, vec2 uv, float lod ) {
   3404 <a href="#l3385" class="line" id="l3385">   3385</a> &lt;a href=&quot;#l3366&quot; class=&quot;line&quot; id=&quot;l3366&quot;&gt;   3366&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2229&amp;quot; id=&amp;quot;h3-0-2229&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 fLodSize = vec2( textureSize( sampler, int( lod ) ) );
   3405 <a href="#l3386" class="line" id="l3386">   3386</a> &lt;a href=&quot;#l3367&quot; class=&quot;line&quot; id=&quot;l3367&quot;&gt;   3367&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2230&amp;quot; id=&amp;quot;h3-0-2230&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 cLodSize = vec2( textureSize( sampler, int( lod + 1.0 ) ) );
   3406 <a href="#l3387" class="line" id="l3387">   3387</a> &lt;a href=&quot;#l3368&quot; class=&quot;line&quot; id=&quot;l3368&quot;&gt;   3368&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2231&amp;quot; id=&amp;quot;h3-0-2231&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 fLodSizeInv = 1.0 / fLodSize;
   3407 <a href="#l3388" class="line" id="l3388">   3388</a> &lt;a href=&quot;#l3369&quot; class=&quot;line&quot; id=&quot;l3369&quot;&gt;   3369&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2232&amp;quot; id=&amp;quot;h3-0-2232&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec2 cLodSizeInv = 1.0 / cLodSize;
   3408 <a href="#l3389" class="line" id="l3389">   3389</a> &lt;a href=&quot;#l3370&quot; class=&quot;line&quot; id=&quot;l3370&quot;&gt;   3370&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2233&amp;quot; id=&amp;quot;h3-0-2233&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 fSample = bicubic( sampler, uv, vec4( fLodSizeInv, fLodSize ), floor( lod ) );
   3409 <a href="#l3390" class="line" id="l3390">   3390</a> &lt;a href=&quot;#l3371&quot; class=&quot;line&quot; id=&quot;l3371&quot;&gt;   3371&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2234&amp;quot; id=&amp;quot;h3-0-2234&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 cSample = bicubic( sampler, uv, vec4( cLodSizeInv, cLodSize ), ceil( lod ) );
   3410 <a href="#l3391" class="line" id="l3391">   3391</a> &lt;a href=&quot;#l3372&quot; class=&quot;line&quot; id=&quot;l3372&quot;&gt;   3372&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2235&amp;quot; id=&amp;quot;h3-0-2235&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return mix( fSample, cSample, fract( lod ) );
   3411 <a href="#l3392" class="line" id="l3392">   3392</a> &lt;a href=&quot;#l3373&quot; class=&quot;line&quot; id=&quot;l3373&quot;&gt;   3373&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2236&amp;quot; id=&amp;quot;h3-0-2236&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3412 <a href="#l3393" class="line" id="l3393">   3393</a> &lt;a href=&quot;#l3374&quot; class=&quot;line&quot; id=&quot;l3374&quot;&gt;   3374&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2237&amp;quot; id=&amp;quot;h3-0-2237&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 getVolumeTransmissionRay( const in vec3 n, const in vec3 v, const in float thickness, const in float ior, const in mat4 modelMatrix ) {
   3413 <a href="#l3394" class="line" id="l3394">   3394</a> &lt;a href=&quot;#l3375&quot; class=&quot;line&quot; id=&quot;l3375&quot;&gt;   3375&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2238&amp;quot; id=&amp;quot;h3-0-2238&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 refractionVector = refract( - v, normalize( n ), 1.0 / ior );
   3414 <a href="#l3395" class="line" id="l3395">   3395</a> &lt;a href=&quot;#l3376&quot; class=&quot;line&quot; id=&quot;l3376&quot;&gt;   3376&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2239&amp;quot; id=&amp;quot;h3-0-2239&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 modelScale;
   3415 <a href="#l3396" class="line" id="l3396">   3396</a> &lt;a href=&quot;#l3377&quot; class=&quot;line&quot; id=&quot;l3377&quot;&gt;   3377&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2240&amp;quot; id=&amp;quot;h3-0-2240&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		modelScale.x = length( vec3( modelMatrix[ 0 ].xyz ) );
   3416 <a href="#l3397" class="line" id="l3397">   3397</a> &lt;a href=&quot;#l3378&quot; class=&quot;line&quot; id=&quot;l3378&quot;&gt;   3378&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2241&amp;quot; id=&amp;quot;h3-0-2241&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		modelScale.y = length( vec3( modelMatrix[ 1 ].xyz ) );
   3417 <a href="#l3398" class="line" id="l3398">   3398</a> &lt;a href=&quot;#l3379&quot; class=&quot;line&quot; id=&quot;l3379&quot;&gt;   3379&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2242&amp;quot; id=&amp;quot;h3-0-2242&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		modelScale.z = length( vec3( modelMatrix[ 2 ].xyz ) );
   3418 <a href="#l3399" class="line" id="l3399">   3399</a> &lt;a href=&quot;#l3380&quot; class=&quot;line&quot; id=&quot;l3380&quot;&gt;   3380&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2243&amp;quot; id=&amp;quot;h3-0-2243&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return normalize( refractionVector ) * thickness * modelScale;
   3419 <a href="#l3400" class="line" id="l3400">   3400</a> &lt;a href=&quot;#l3381&quot; class=&quot;line&quot; id=&quot;l3381&quot;&gt;   3381&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2244&amp;quot; id=&amp;quot;h3-0-2244&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3420 <a href="#l3401" class="line" id="l3401">   3401</a> &lt;a href=&quot;#l3382&quot; class=&quot;line&quot; id=&quot;l3382&quot;&gt;   3382&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2245&amp;quot; id=&amp;quot;h3-0-2245&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float applyIorToRoughness( const in float roughness, const in float ior ) {
   3421 <a href="#l3402" class="line" id="l3402">   3402</a> &lt;a href=&quot;#l3383&quot; class=&quot;line&quot; id=&quot;l3383&quot;&gt;   3383&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2246&amp;quot; id=&amp;quot;h3-0-2246&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return roughness * clamp( ior * 2.0 - 2.0, 0.0, 1.0 );
   3422 <a href="#l3403" class="line" id="l3403">   3403</a> &lt;a href=&quot;#l3384&quot; class=&quot;line&quot; id=&quot;l3384&quot;&gt;   3384&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2247&amp;quot; id=&amp;quot;h3-0-2247&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3423 <a href="#l3404" class="line" id="l3404">   3404</a> &lt;a href=&quot;#l3385&quot; class=&quot;line&quot; id=&quot;l3385&quot;&gt;   3385&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2248&amp;quot; id=&amp;quot;h3-0-2248&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 getTransmissionSample( const in vec2 fragCoord, const in float roughness, const in float ior ) {
   3424 <a href="#l3405" class="line" id="l3405">   3405</a> &lt;a href=&quot;#l3386&quot; class=&quot;line&quot; id=&quot;l3386&quot;&gt;   3386&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2249&amp;quot; id=&amp;quot;h3-0-2249&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float lod = log2( transmissionSamplerSize.x ) * applyIorToRoughness( roughness, ior );
   3425 <a href="#l3406" class="line" id="l3406">   3406</a> &lt;a href=&quot;#l3387&quot; class=&quot;line&quot; id=&quot;l3387&quot;&gt;   3387&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2250&amp;quot; id=&amp;quot;h3-0-2250&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return textureBicubic( transmissionSamplerMap, fragCoord.xy, lod );
   3426 <a href="#l3407" class="line" id="l3407">   3407</a> &lt;a href=&quot;#l3388&quot; class=&quot;line&quot; id=&quot;l3388&quot;&gt;   3388&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2251&amp;quot; id=&amp;quot;h3-0-2251&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3427 <a href="#l3408" class="line" id="l3408">   3408</a> &lt;a href=&quot;#l3389&quot; class=&quot;line&quot; id=&quot;l3389&quot;&gt;   3389&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2252&amp;quot; id=&amp;quot;h3-0-2252&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 volumeAttenuation( const in float transmissionDistance, const in vec3 attenuationColor, const in float attenuationDistance ) {
   3428 <a href="#l3409" class="line" id="l3409">   3409</a> &lt;a href=&quot;#l3390&quot; class=&quot;line&quot; id=&quot;l3390&quot;&gt;   3390&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2253&amp;quot; id=&amp;quot;h3-0-2253&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( isinf( attenuationDistance ) ) {
   3429 <a href="#l3410" class="line" id="l3410">   3410</a> &lt;a href=&quot;#l3391&quot; class=&quot;line&quot; id=&quot;l3391&quot;&gt;   3391&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2254&amp;quot; id=&amp;quot;h3-0-2254&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return vec3( 1.0 );
   3430 <a href="#l3411" class="line" id="l3411">   3411</a> &lt;a href=&quot;#l3392&quot; class=&quot;line&quot; id=&quot;l3392&quot;&gt;   3392&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2255&amp;quot; id=&amp;quot;h3-0-2255&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		} else {
   3431 <a href="#l3412" class="line" id="l3412">   3412</a> &lt;a href=&quot;#l3393&quot; class=&quot;line&quot; id=&quot;l3393&quot;&gt;   3393&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2256&amp;quot; id=&amp;quot;h3-0-2256&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 attenuationCoefficient = -log( attenuationColor ) / attenuationDistance;
   3432 <a href="#l3413" class="line" id="l3413">   3413</a> &lt;a href=&quot;#l3394&quot; class=&quot;line&quot; id=&quot;l3394&quot;&gt;   3394&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2257&amp;quot; id=&amp;quot;h3-0-2257&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 transmittance = exp( - attenuationCoefficient * transmissionDistance );			return transmittance;
   3433 <a href="#l3414" class="line" id="l3414">   3414</a> &lt;a href=&quot;#l3395&quot; class=&quot;line&quot; id=&quot;l3395&quot;&gt;   3395&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2258&amp;quot; id=&amp;quot;h3-0-2258&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   3434 <a href="#l3415" class="line" id="l3415">   3415</a> &lt;a href=&quot;#l3396&quot; class=&quot;line&quot; id=&quot;l3396&quot;&gt;   3396&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2259&amp;quot; id=&amp;quot;h3-0-2259&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3435 <a href="#l3416" class="line" id="l3416">   3416</a> &lt;a href=&quot;#l3397&quot; class=&quot;line&quot; id=&quot;l3397&quot;&gt;   3397&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2260&amp;quot; id=&amp;quot;h3-0-2260&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 getIBLVolumeRefraction( const in vec3 n, const in vec3 v, const in float roughness, const in vec3 diffuseColor,
   3436 <a href="#l3417" class="line" id="l3417">   3417</a> &lt;a href=&quot;#l3398&quot; class=&quot;line&quot; id=&quot;l3398&quot;&gt;   3398&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2261&amp;quot; id=&amp;quot;h3-0-2261&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		const in vec3 specularColor, const in float specularF90, const in vec3 position, const in mat4 modelMatrix,
   3437 <a href="#l3418" class="line" id="l3418">   3418</a> &lt;a href=&quot;#l3399&quot; class=&quot;line&quot; id=&quot;l3399&quot;&gt;   3399&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2262&amp;quot; id=&amp;quot;h3-0-2262&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		const in mat4 viewMatrix, const in mat4 projMatrix, const in float dispersion, const in float ior, const in float thickness,
   3438 <a href="#l3419" class="line" id="l3419">   3419</a> &lt;a href=&quot;#l3400&quot; class=&quot;line&quot; id=&quot;l3400&quot;&gt;   3400&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2263&amp;quot; id=&amp;quot;h3-0-2263&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		const in vec3 attenuationColor, const in float attenuationDistance ) {
   3439 <a href="#l3420" class="line" id="l3420">   3420</a> &lt;a href=&quot;#l3401&quot; class=&quot;line&quot; id=&quot;l3401&quot;&gt;   3401&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2264&amp;quot; id=&amp;quot;h3-0-2264&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 transmittedLight;
   3440 <a href="#l3421" class="line" id="l3421">   3421</a> &lt;a href=&quot;#l3402&quot; class=&quot;line&quot; id=&quot;l3402&quot;&gt;   3402&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2265&amp;quot; id=&amp;quot;h3-0-2265&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 transmittance;
   3441 <a href="#l3422" class="line" id="l3422">   3422</a> &lt;a href=&quot;#l3403&quot; class=&quot;line&quot; id=&quot;l3403&quot;&gt;   3403&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2266&amp;quot; id=&amp;quot;h3-0-2266&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef USE_DISPERSION
   3442 <a href="#l3423" class="line" id="l3423">   3423</a> &lt;a href=&quot;#l3404&quot; class=&quot;line&quot; id=&quot;l3404&quot;&gt;   3404&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2267&amp;quot; id=&amp;quot;h3-0-2267&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float halfSpread = ( ior - 1.0 ) * 0.025 * dispersion;
   3443 <a href="#l3424" class="line" id="l3424">   3424</a> &lt;a href=&quot;#l3405&quot; class=&quot;line&quot; id=&quot;l3405&quot;&gt;   3405&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2268&amp;quot; id=&amp;quot;h3-0-2268&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 iors = vec3( ior - halfSpread, ior, ior + halfSpread );
   3444 <a href="#l3425" class="line" id="l3425">   3425</a> &lt;a href=&quot;#l3406&quot; class=&quot;line&quot; id=&quot;l3406&quot;&gt;   3406&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2269&amp;quot; id=&amp;quot;h3-0-2269&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			for ( int i = 0; i &amp;amp;lt; 3; i ++ ) {
   3445 <a href="#l3426" class="line" id="l3426">   3426</a> &lt;a href=&quot;#l3407&quot; class=&quot;line&quot; id=&quot;l3407&quot;&gt;   3407&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2270&amp;quot; id=&amp;quot;h3-0-2270&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, iors[ i ], modelMatrix );
   3446 <a href="#l3427" class="line" id="l3427">   3427</a> &lt;a href=&quot;#l3408&quot; class=&quot;line&quot; id=&quot;l3408&quot;&gt;   3408&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2271&amp;quot; id=&amp;quot;h3-0-2271&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec3 refractedRayExit = position + transmissionRay;
   3447 <a href="#l3428" class="line" id="l3428">   3428</a> &lt;a href=&quot;#l3409&quot; class=&quot;line&quot; id=&quot;l3409&quot;&gt;   3409&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2272&amp;quot; id=&amp;quot;h3-0-2272&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
   3448 <a href="#l3429" class="line" id="l3429">   3429</a> &lt;a href=&quot;#l3410&quot; class=&quot;line&quot; id=&quot;l3410&quot;&gt;   3410&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2273&amp;quot; id=&amp;quot;h3-0-2273&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec2 refractionCoords = ndcPos.xy / ndcPos.w;
   3449 <a href="#l3430" class="line" id="l3430">   3430</a> &lt;a href=&quot;#l3411&quot; class=&quot;line&quot; id=&quot;l3411&quot;&gt;   3411&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2274&amp;quot; id=&amp;quot;h3-0-2274&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				refractionCoords += 1.0;
   3450 <a href="#l3431" class="line" id="l3431">   3431</a> &lt;a href=&quot;#l3412&quot; class=&quot;line&quot; id=&quot;l3412&quot;&gt;   3412&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2275&amp;quot; id=&amp;quot;h3-0-2275&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				refractionCoords /= 2.0;
   3451 <a href="#l3432" class="line" id="l3432">   3432</a> &lt;a href=&quot;#l3413&quot; class=&quot;line&quot; id=&quot;l3413&quot;&gt;   3413&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2276&amp;quot; id=&amp;quot;h3-0-2276&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec4 transmissionSample = getTransmissionSample( refractionCoords, roughness, iors[ i ] );
   3452 <a href="#l3433" class="line" id="l3433">   3433</a> &lt;a href=&quot;#l3414&quot; class=&quot;line&quot; id=&quot;l3414&quot;&gt;   3414&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2277&amp;quot; id=&amp;quot;h3-0-2277&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				transmittedLight[ i ] = transmissionSample[ i ];
   3453 <a href="#l3434" class="line" id="l3434">   3434</a> &lt;a href=&quot;#l3415&quot; class=&quot;line&quot; id=&quot;l3415&quot;&gt;   3415&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2278&amp;quot; id=&amp;quot;h3-0-2278&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				transmittedLight.a += transmissionSample.a;
   3454 <a href="#l3435" class="line" id="l3435">   3435</a> &lt;a href=&quot;#l3416&quot; class=&quot;line&quot; id=&quot;l3416&quot;&gt;   3416&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2279&amp;quot; id=&amp;quot;h3-0-2279&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				transmittance[ i ] = diffuseColor[ i ] * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance )[ i ];
   3455 <a href="#l3436" class="line" id="l3436">   3436</a> &lt;a href=&quot;#l3417&quot; class=&quot;line&quot; id=&quot;l3417&quot;&gt;   3417&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2280&amp;quot; id=&amp;quot;h3-0-2280&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			}
   3456 <a href="#l3437" class="line" id="l3437">   3437</a> &lt;a href=&quot;#l3418&quot; class=&quot;line&quot; id=&quot;l3418&quot;&gt;   3418&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2281&amp;quot; id=&amp;quot;h3-0-2281&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			transmittedLight.a /= 3.0;
   3457 <a href="#l3438" class="line" id="l3438">   3438</a> &lt;a href=&quot;#l3419&quot; class=&quot;line&quot; id=&quot;l3419&quot;&gt;   3419&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2282&amp;quot; id=&amp;quot;h3-0-2282&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   3458 <a href="#l3439" class="line" id="l3439">   3439</a> &lt;a href=&quot;#l3420&quot; class=&quot;line&quot; id=&quot;l3420&quot;&gt;   3420&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2283&amp;quot; id=&amp;quot;h3-0-2283&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 transmissionRay = getVolumeTransmissionRay( n, v, thickness, ior, modelMatrix );
   3459 <a href="#l3440" class="line" id="l3440">   3440</a> &lt;a href=&quot;#l3421&quot; class=&quot;line&quot; id=&quot;l3421&quot;&gt;   3421&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2284&amp;quot; id=&amp;quot;h3-0-2284&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 refractedRayExit = position + transmissionRay;
   3460 <a href="#l3441" class="line" id="l3441">   3441</a> &lt;a href=&quot;#l3422&quot; class=&quot;line&quot; id=&quot;l3422&quot;&gt;   3422&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2285&amp;quot; id=&amp;quot;h3-0-2285&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec4 ndcPos = projMatrix * viewMatrix * vec4( refractedRayExit, 1.0 );
   3461 <a href="#l3442" class="line" id="l3442">   3442</a> &lt;a href=&quot;#l3423&quot; class=&quot;line&quot; id=&quot;l3423&quot;&gt;   3423&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2286&amp;quot; id=&amp;quot;h3-0-2286&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 refractionCoords = ndcPos.xy / ndcPos.w;
   3462 <a href="#l3443" class="line" id="l3443">   3443</a> &lt;a href=&quot;#l3424&quot; class=&quot;line&quot; id=&quot;l3424&quot;&gt;   3424&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2287&amp;quot; id=&amp;quot;h3-0-2287&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			refractionCoords += 1.0;
   3463 <a href="#l3444" class="line" id="l3444">   3444</a> &lt;a href=&quot;#l3425&quot; class=&quot;line&quot; id=&quot;l3425&quot;&gt;   3425&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2288&amp;quot; id=&amp;quot;h3-0-2288&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			refractionCoords /= 2.0;
   3464 <a href="#l3445" class="line" id="l3445">   3445</a> &lt;a href=&quot;#l3426&quot; class=&quot;line&quot; id=&quot;l3426&quot;&gt;   3426&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2289&amp;quot; id=&amp;quot;h3-0-2289&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			transmittedLight = getTransmissionSample( refractionCoords, roughness, ior );
   3465 <a href="#l3446" class="line" id="l3446">   3446</a> &lt;a href=&quot;#l3427&quot; class=&quot;line&quot; id=&quot;l3427&quot;&gt;   3427&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2290&amp;quot; id=&amp;quot;h3-0-2290&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			transmittance = diffuseColor * volumeAttenuation( length( transmissionRay ), attenuationColor, attenuationDistance );
   3466 <a href="#l3447" class="line" id="l3447">   3447</a> &lt;a href=&quot;#l3428&quot; class=&quot;line&quot; id=&quot;l3428&quot;&gt;   3428&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2291&amp;quot; id=&amp;quot;h3-0-2291&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   3467 <a href="#l3448" class="line" id="l3448">   3448</a> &lt;a href=&quot;#l3429&quot; class=&quot;line&quot; id=&quot;l3429&quot;&gt;   3429&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2292&amp;quot; id=&amp;quot;h3-0-2292&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 attenuatedColor = transmittance * transmittedLight.rgb;
   3468 <a href="#l3449" class="line" id="l3449">   3449</a> &lt;a href=&quot;#l3430&quot; class=&quot;line&quot; id=&quot;l3430&quot;&gt;   3430&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2293&amp;quot; id=&amp;quot;h3-0-2293&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 F = EnvironmentBRDF( n, v, specularColor, specularF90, roughness );
   3469 <a href="#l3450" class="line" id="l3450">   3450</a> &lt;a href=&quot;#l3431&quot; class=&quot;line&quot; id=&quot;l3431&quot;&gt;   3431&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2294&amp;quot; id=&amp;quot;h3-0-2294&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float transmittanceFactor = ( transmittance.r + transmittance.g + transmittance.b ) / 3.0;
   3470 <a href="#l3451" class="line" id="l3451">   3451</a> &lt;a href=&quot;#l3432&quot; class=&quot;line&quot; id=&quot;l3432&quot;&gt;   3432&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2295&amp;quot; id=&amp;quot;h3-0-2295&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		return vec4( ( 1.0 - F ) * attenuatedColor, 1.0 - ( 1.0 - transmittedLight.a ) * transmittanceFactor );
   3471 <a href="#l3452" class="line" id="l3452">   3452</a> &lt;a href=&quot;#l3433&quot; class=&quot;line&quot; id=&quot;l3433&quot;&gt;   3433&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2296&amp;quot; id=&amp;quot;h3-0-2296&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3472 <a href="#l3453" class="line" id="l3453">   3453</a> &lt;a href=&quot;#l3434&quot; class=&quot;line&quot; id=&quot;l3434&quot;&gt;   3434&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2297&amp;quot; id=&amp;quot;h3-0-2297&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,n6=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
   3473 <a href="#l3454" class="line" id="l3454">   3454</a> &lt;a href=&quot;#l3435&quot; class=&quot;line&quot; id=&quot;l3435&quot;&gt;   3435&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2298&amp;quot; id=&amp;quot;h3-0-2298&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vUv;
   3474 <a href="#l3455" class="line" id="l3455">   3455</a> &lt;a href=&quot;#l3436&quot; class=&quot;line&quot; id=&quot;l3436&quot;&gt;   3436&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2299&amp;quot; id=&amp;quot;h3-0-2299&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3475 <a href="#l3456" class="line" id="l3456">   3456</a> &lt;a href=&quot;#l3437&quot; class=&quot;line&quot; id=&quot;l3437&quot;&gt;   3437&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2300&amp;quot; id=&amp;quot;h3-0-2300&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_MAP
   3476 <a href="#l3457" class="line" id="l3457">   3457</a> &lt;a href=&quot;#l3438&quot; class=&quot;line&quot; id=&quot;l3438&quot;&gt;   3438&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2301&amp;quot; id=&amp;quot;h3-0-2301&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vMapUv;
   3477 <a href="#l3458" class="line" id="l3458">   3458</a> &lt;a href=&quot;#l3439&quot; class=&quot;line&quot; id=&quot;l3439&quot;&gt;   3439&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2302&amp;quot; id=&amp;quot;h3-0-2302&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3478 <a href="#l3459" class="line" id="l3459">   3459</a> &lt;a href=&quot;#l3440&quot; class=&quot;line&quot; id=&quot;l3440&quot;&gt;   3440&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2303&amp;quot; id=&amp;quot;h3-0-2303&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ALPHAMAP
   3479 <a href="#l3460" class="line" id="l3460">   3460</a> &lt;a href=&quot;#l3441&quot; class=&quot;line&quot; id=&quot;l3441&quot;&gt;   3441&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2304&amp;quot; id=&amp;quot;h3-0-2304&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vAlphaMapUv;
   3480 <a href="#l3461" class="line" id="l3461">   3461</a> &lt;a href=&quot;#l3442&quot; class=&quot;line&quot; id=&quot;l3442&quot;&gt;   3442&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2305&amp;quot; id=&amp;quot;h3-0-2305&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3481 <a href="#l3462" class="line" id="l3462">   3462</a> &lt;a href=&quot;#l3443&quot; class=&quot;line&quot; id=&quot;l3443&quot;&gt;   3443&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2306&amp;quot; id=&amp;quot;h3-0-2306&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_LIGHTMAP
   3482 <a href="#l3463" class="line" id="l3463">   3463</a> &lt;a href=&quot;#l3444&quot; class=&quot;line&quot; id=&quot;l3444&quot;&gt;   3444&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2307&amp;quot; id=&amp;quot;h3-0-2307&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vLightMapUv;
   3483 <a href="#l3464" class="line" id="l3464">   3464</a> &lt;a href=&quot;#l3445&quot; class=&quot;line&quot; id=&quot;l3445&quot;&gt;   3445&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2308&amp;quot; id=&amp;quot;h3-0-2308&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3484 <a href="#l3465" class="line" id="l3465">   3465</a> &lt;a href=&quot;#l3446&quot; class=&quot;line&quot; id=&quot;l3446&quot;&gt;   3446&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2309&amp;quot; id=&amp;quot;h3-0-2309&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_AOMAP
   3485 <a href="#l3466" class="line" id="l3466">   3466</a> &lt;a href=&quot;#l3447&quot; class=&quot;line&quot; id=&quot;l3447&quot;&gt;   3447&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2310&amp;quot; id=&amp;quot;h3-0-2310&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vAoMapUv;
   3486 <a href="#l3467" class="line" id="l3467">   3467</a> &lt;a href=&quot;#l3448&quot; class=&quot;line&quot; id=&quot;l3448&quot;&gt;   3448&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2311&amp;quot; id=&amp;quot;h3-0-2311&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3487 <a href="#l3468" class="line" id="l3468">   3468</a> &lt;a href=&quot;#l3449&quot; class=&quot;line&quot; id=&quot;l3449&quot;&gt;   3449&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2312&amp;quot; id=&amp;quot;h3-0-2312&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_BUMPMAP
   3488 <a href="#l3469" class="line" id="l3469">   3469</a> &lt;a href=&quot;#l3450&quot; class=&quot;line&quot; id=&quot;l3450&quot;&gt;   3450&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2313&amp;quot; id=&amp;quot;h3-0-2313&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vBumpMapUv;
   3489 <a href="#l3470" class="line" id="l3470">   3470</a> &lt;a href=&quot;#l3451&quot; class=&quot;line&quot; id=&quot;l3451&quot;&gt;   3451&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2314&amp;quot; id=&amp;quot;h3-0-2314&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3490 <a href="#l3471" class="line" id="l3471">   3471</a> &lt;a href=&quot;#l3452&quot; class=&quot;line&quot; id=&quot;l3452&quot;&gt;   3452&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2315&amp;quot; id=&amp;quot;h3-0-2315&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_NORMALMAP
   3491 <a href="#l3472" class="line" id="l3472">   3472</a> &lt;a href=&quot;#l3453&quot; class=&quot;line&quot; id=&quot;l3453&quot;&gt;   3453&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2316&amp;quot; id=&amp;quot;h3-0-2316&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vNormalMapUv;
   3492 <a href="#l3473" class="line" id="l3473">   3473</a> &lt;a href=&quot;#l3454&quot; class=&quot;line&quot; id=&quot;l3454&quot;&gt;   3454&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2317&amp;quot; id=&amp;quot;h3-0-2317&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3493 <a href="#l3474" class="line" id="l3474">   3474</a> &lt;a href=&quot;#l3455&quot; class=&quot;line&quot; id=&quot;l3455&quot;&gt;   3455&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2318&amp;quot; id=&amp;quot;h3-0-2318&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_EMISSIVEMAP
   3494 <a href="#l3475" class="line" id="l3475">   3475</a> &lt;a href=&quot;#l3456&quot; class=&quot;line&quot; id=&quot;l3456&quot;&gt;   3456&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2319&amp;quot; id=&amp;quot;h3-0-2319&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vEmissiveMapUv;
   3495 <a href="#l3476" class="line" id="l3476">   3476</a> &lt;a href=&quot;#l3457&quot; class=&quot;line&quot; id=&quot;l3457&quot;&gt;   3457&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2320&amp;quot; id=&amp;quot;h3-0-2320&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3496 <a href="#l3477" class="line" id="l3477">   3477</a> &lt;a href=&quot;#l3458&quot; class=&quot;line&quot; id=&quot;l3458&quot;&gt;   3458&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2321&amp;quot; id=&amp;quot;h3-0-2321&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_METALNESSMAP
   3497 <a href="#l3478" class="line" id="l3478">   3478</a> &lt;a href=&quot;#l3459&quot; class=&quot;line&quot; id=&quot;l3459&quot;&gt;   3459&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2322&amp;quot; id=&amp;quot;h3-0-2322&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vMetalnessMapUv;
   3498 <a href="#l3479" class="line" id="l3479">   3479</a> &lt;a href=&quot;#l3460&quot; class=&quot;line&quot; id=&quot;l3460&quot;&gt;   3460&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2323&amp;quot; id=&amp;quot;h3-0-2323&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3499 <a href="#l3480" class="line" id="l3480">   3480</a> &lt;a href=&quot;#l3461&quot; class=&quot;line&quot; id=&quot;l3461&quot;&gt;   3461&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2324&amp;quot; id=&amp;quot;h3-0-2324&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ROUGHNESSMAP
   3500 <a href="#l3481" class="line" id="l3481">   3481</a> &lt;a href=&quot;#l3462&quot; class=&quot;line&quot; id=&quot;l3462&quot;&gt;   3462&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2325&amp;quot; id=&amp;quot;h3-0-2325&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vRoughnessMapUv;
   3501 <a href="#l3482" class="line" id="l3482">   3482</a> &lt;a href=&quot;#l3463&quot; class=&quot;line&quot; id=&quot;l3463&quot;&gt;   3463&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2326&amp;quot; id=&amp;quot;h3-0-2326&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3502 <a href="#l3483" class="line" id="l3483">   3483</a> &lt;a href=&quot;#l3464&quot; class=&quot;line&quot; id=&quot;l3464&quot;&gt;   3464&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2327&amp;quot; id=&amp;quot;h3-0-2327&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ANISOTROPYMAP
   3503 <a href="#l3484" class="line" id="l3484">   3484</a> &lt;a href=&quot;#l3465&quot; class=&quot;line&quot; id=&quot;l3465&quot;&gt;   3465&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2328&amp;quot; id=&amp;quot;h3-0-2328&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vAnisotropyMapUv;
   3504 <a href="#l3485" class="line" id="l3485">   3485</a> &lt;a href=&quot;#l3466&quot; class=&quot;line&quot; id=&quot;l3466&quot;&gt;   3466&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2329&amp;quot; id=&amp;quot;h3-0-2329&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3505 <a href="#l3486" class="line" id="l3486">   3486</a> &lt;a href=&quot;#l3467&quot; class=&quot;line&quot; id=&quot;l3467&quot;&gt;   3467&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2330&amp;quot; id=&amp;quot;h3-0-2330&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOATMAP
   3506 <a href="#l3487" class="line" id="l3487">   3487</a> &lt;a href=&quot;#l3468&quot; class=&quot;line&quot; id=&quot;l3468&quot;&gt;   3468&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2331&amp;quot; id=&amp;quot;h3-0-2331&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vClearcoatMapUv;
   3507 <a href="#l3488" class="line" id="l3488">   3488</a> &lt;a href=&quot;#l3469&quot; class=&quot;line&quot; id=&quot;l3469&quot;&gt;   3469&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2332&amp;quot; id=&amp;quot;h3-0-2332&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3508 <a href="#l3489" class="line" id="l3489">   3489</a> &lt;a href=&quot;#l3470&quot; class=&quot;line&quot; id=&quot;l3470&quot;&gt;   3470&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2333&amp;quot; id=&amp;quot;h3-0-2333&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_NORMALMAP
   3509 <a href="#l3490" class="line" id="l3490">   3490</a> &lt;a href=&quot;#l3471&quot; class=&quot;line&quot; id=&quot;l3471&quot;&gt;   3471&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2334&amp;quot; id=&amp;quot;h3-0-2334&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vClearcoatNormalMapUv;
   3510 <a href="#l3491" class="line" id="l3491">   3491</a> &lt;a href=&quot;#l3472&quot; class=&quot;line&quot; id=&quot;l3472&quot;&gt;   3472&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2335&amp;quot; id=&amp;quot;h3-0-2335&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3511 <a href="#l3492" class="line" id="l3492">   3492</a> &lt;a href=&quot;#l3473&quot; class=&quot;line&quot; id=&quot;l3473&quot;&gt;   3473&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2336&amp;quot; id=&amp;quot;h3-0-2336&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_ROUGHNESSMAP
   3512 <a href="#l3493" class="line" id="l3493">   3493</a> &lt;a href=&quot;#l3474&quot; class=&quot;line&quot; id=&quot;l3474&quot;&gt;   3474&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2337&amp;quot; id=&amp;quot;h3-0-2337&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vClearcoatRoughnessMapUv;
   3513 <a href="#l3494" class="line" id="l3494">   3494</a> &lt;a href=&quot;#l3475&quot; class=&quot;line&quot; id=&quot;l3475&quot;&gt;   3475&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2338&amp;quot; id=&amp;quot;h3-0-2338&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3514 <a href="#l3495" class="line" id="l3495">   3495</a> &lt;a href=&quot;#l3476&quot; class=&quot;line&quot; id=&quot;l3476&quot;&gt;   3476&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2339&amp;quot; id=&amp;quot;h3-0-2339&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCEMAP
   3515 <a href="#l3496" class="line" id="l3496">   3496</a> &lt;a href=&quot;#l3477&quot; class=&quot;line&quot; id=&quot;l3477&quot;&gt;   3477&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2340&amp;quot; id=&amp;quot;h3-0-2340&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vIridescenceMapUv;
   3516 <a href="#l3497" class="line" id="l3497">   3497</a> &lt;a href=&quot;#l3478&quot; class=&quot;line&quot; id=&quot;l3478&quot;&gt;   3478&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2341&amp;quot; id=&amp;quot;h3-0-2341&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3517 <a href="#l3498" class="line" id="l3498">   3498</a> &lt;a href=&quot;#l3479&quot; class=&quot;line&quot; id=&quot;l3479&quot;&gt;   3479&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2342&amp;quot; id=&amp;quot;h3-0-2342&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCE_THICKNESSMAP
   3518 <a href="#l3499" class="line" id="l3499">   3499</a> &lt;a href=&quot;#l3480&quot; class=&quot;line&quot; id=&quot;l3480&quot;&gt;   3480&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2343&amp;quot; id=&amp;quot;h3-0-2343&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vIridescenceThicknessMapUv;
   3519 <a href="#l3500" class="line" id="l3500">   3500</a> &lt;a href=&quot;#l3481&quot; class=&quot;line&quot; id=&quot;l3481&quot;&gt;   3481&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2344&amp;quot; id=&amp;quot;h3-0-2344&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3520 <a href="#l3501" class="line" id="l3501">   3501</a> &lt;a href=&quot;#l3482&quot; class=&quot;line&quot; id=&quot;l3482&quot;&gt;   3482&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2345&amp;quot; id=&amp;quot;h3-0-2345&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHEEN_COLORMAP
   3521 <a href="#l3502" class="line" id="l3502">   3502</a> &lt;a href=&quot;#l3483&quot; class=&quot;line&quot; id=&quot;l3483&quot;&gt;   3483&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2346&amp;quot; id=&amp;quot;h3-0-2346&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSheenColorMapUv;
   3522 <a href="#l3503" class="line" id="l3503">   3503</a> &lt;a href=&quot;#l3484&quot; class=&quot;line&quot; id=&quot;l3484&quot;&gt;   3484&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2347&amp;quot; id=&amp;quot;h3-0-2347&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3523 <a href="#l3504" class="line" id="l3504">   3504</a> &lt;a href=&quot;#l3485&quot; class=&quot;line&quot; id=&quot;l3485&quot;&gt;   3485&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2348&amp;quot; id=&amp;quot;h3-0-2348&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHEEN_ROUGHNESSMAP
   3524 <a href="#l3505" class="line" id="l3505">   3505</a> &lt;a href=&quot;#l3486&quot; class=&quot;line&quot; id=&quot;l3486&quot;&gt;   3486&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2349&amp;quot; id=&amp;quot;h3-0-2349&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSheenRoughnessMapUv;
   3525 <a href="#l3506" class="line" id="l3506">   3506</a> &lt;a href=&quot;#l3487&quot; class=&quot;line&quot; id=&quot;l3487&quot;&gt;   3487&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2350&amp;quot; id=&amp;quot;h3-0-2350&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3526 <a href="#l3507" class="line" id="l3507">   3507</a> &lt;a href=&quot;#l3488&quot; class=&quot;line&quot; id=&quot;l3488&quot;&gt;   3488&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2351&amp;quot; id=&amp;quot;h3-0-2351&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULARMAP
   3527 <a href="#l3508" class="line" id="l3508">   3508</a> &lt;a href=&quot;#l3489&quot; class=&quot;line&quot; id=&quot;l3489&quot;&gt;   3489&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2352&amp;quot; id=&amp;quot;h3-0-2352&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSpecularMapUv;
   3528 <a href="#l3509" class="line" id="l3509">   3509</a> &lt;a href=&quot;#l3490&quot; class=&quot;line&quot; id=&quot;l3490&quot;&gt;   3490&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2353&amp;quot; id=&amp;quot;h3-0-2353&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3529 <a href="#l3510" class="line" id="l3510">   3510</a> &lt;a href=&quot;#l3491&quot; class=&quot;line&quot; id=&quot;l3491&quot;&gt;   3491&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2354&amp;quot; id=&amp;quot;h3-0-2354&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULAR_COLORMAP
   3530 <a href="#l3511" class="line" id="l3511">   3511</a> &lt;a href=&quot;#l3492&quot; class=&quot;line&quot; id=&quot;l3492&quot;&gt;   3492&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2355&amp;quot; id=&amp;quot;h3-0-2355&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSpecularColorMapUv;
   3531 <a href="#l3512" class="line" id="l3512">   3512</a> &lt;a href=&quot;#l3493&quot; class=&quot;line&quot; id=&quot;l3493&quot;&gt;   3493&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2356&amp;quot; id=&amp;quot;h3-0-2356&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3532 <a href="#l3513" class="line" id="l3513">   3513</a> &lt;a href=&quot;#l3494&quot; class=&quot;line&quot; id=&quot;l3494&quot;&gt;   3494&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2357&amp;quot; id=&amp;quot;h3-0-2357&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULAR_INTENSITYMAP
   3533 <a href="#l3514" class="line" id="l3514">   3514</a> &lt;a href=&quot;#l3495&quot; class=&quot;line&quot; id=&quot;l3495&quot;&gt;   3495&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2358&amp;quot; id=&amp;quot;h3-0-2358&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSpecularIntensityMapUv;
   3534 <a href="#l3515" class="line" id="l3515">   3515</a> &lt;a href=&quot;#l3496&quot; class=&quot;line&quot; id=&quot;l3496&quot;&gt;   3496&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2359&amp;quot; id=&amp;quot;h3-0-2359&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3535 <a href="#l3516" class="line" id="l3516">   3516</a> &lt;a href=&quot;#l3497&quot; class=&quot;line&quot; id=&quot;l3497&quot;&gt;   3497&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2360&amp;quot; id=&amp;quot;h3-0-2360&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TRANSMISSIONMAP
   3536 <a href="#l3517" class="line" id="l3517">   3517</a> &lt;a href=&quot;#l3498&quot; class=&quot;line&quot; id=&quot;l3498&quot;&gt;   3498&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2361&amp;quot; id=&amp;quot;h3-0-2361&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 transmissionMapTransform;
   3537 <a href="#l3518" class="line" id="l3518">   3518</a> &lt;a href=&quot;#l3499&quot; class=&quot;line&quot; id=&quot;l3499&quot;&gt;   3499&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2362&amp;quot; id=&amp;quot;h3-0-2362&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vTransmissionMapUv;
   3538 <a href="#l3519" class="line" id="l3519">   3519</a> &lt;a href=&quot;#l3500&quot; class=&quot;line&quot; id=&quot;l3500&quot;&gt;   3500&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2363&amp;quot; id=&amp;quot;h3-0-2363&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3539 <a href="#l3520" class="line" id="l3520">   3520</a> &lt;a href=&quot;#l3501&quot; class=&quot;line&quot; id=&quot;l3501&quot;&gt;   3501&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2364&amp;quot; id=&amp;quot;h3-0-2364&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_THICKNESSMAP
   3540 <a href="#l3521" class="line" id="l3521">   3521</a> &lt;a href=&quot;#l3502&quot; class=&quot;line&quot; id=&quot;l3502&quot;&gt;   3502&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2365&amp;quot; id=&amp;quot;h3-0-2365&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 thicknessMapTransform;
   3541 <a href="#l3522" class="line" id="l3522">   3522</a> &lt;a href=&quot;#l3503&quot; class=&quot;line&quot; id=&quot;l3503&quot;&gt;   3503&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2366&amp;quot; id=&amp;quot;h3-0-2366&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vThicknessMapUv;
   3542 <a href="#l3523" class="line" id="l3523">   3523</a> &lt;a href=&quot;#l3504&quot; class=&quot;line&quot; id=&quot;l3504&quot;&gt;   3504&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2367&amp;quot; id=&amp;quot;h3-0-2367&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,i6=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
   3543 <a href="#l3524" class="line" id="l3524">   3524</a> &lt;a href=&quot;#l3505&quot; class=&quot;line&quot; id=&quot;l3505&quot;&gt;   3505&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2368&amp;quot; id=&amp;quot;h3-0-2368&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vUv;
   3544 <a href="#l3525" class="line" id="l3525">   3525</a> &lt;a href=&quot;#l3506&quot; class=&quot;line&quot; id=&quot;l3506&quot;&gt;   3506&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2369&amp;quot; id=&amp;quot;h3-0-2369&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3545 <a href="#l3526" class="line" id="l3526">   3526</a> &lt;a href=&quot;#l3507&quot; class=&quot;line&quot; id=&quot;l3507&quot;&gt;   3507&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2370&amp;quot; id=&amp;quot;h3-0-2370&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_MAP
   3546 <a href="#l3527" class="line" id="l3527">   3527</a> &lt;a href=&quot;#l3508&quot; class=&quot;line&quot; id=&quot;l3508&quot;&gt;   3508&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2371&amp;quot; id=&amp;quot;h3-0-2371&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 mapTransform;
   3547 <a href="#l3528" class="line" id="l3528">   3528</a> &lt;a href=&quot;#l3509&quot; class=&quot;line&quot; id=&quot;l3509&quot;&gt;   3509&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2372&amp;quot; id=&amp;quot;h3-0-2372&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vMapUv;
   3548 <a href="#l3529" class="line" id="l3529">   3529</a> &lt;a href=&quot;#l3510&quot; class=&quot;line&quot; id=&quot;l3510&quot;&gt;   3510&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2373&amp;quot; id=&amp;quot;h3-0-2373&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3549 <a href="#l3530" class="line" id="l3530">   3530</a> &lt;a href=&quot;#l3511&quot; class=&quot;line&quot; id=&quot;l3511&quot;&gt;   3511&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2374&amp;quot; id=&amp;quot;h3-0-2374&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ALPHAMAP
   3550 <a href="#l3531" class="line" id="l3531">   3531</a> &lt;a href=&quot;#l3512&quot; class=&quot;line&quot; id=&quot;l3512&quot;&gt;   3512&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2375&amp;quot; id=&amp;quot;h3-0-2375&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 alphaMapTransform;
   3551 <a href="#l3532" class="line" id="l3532">   3532</a> &lt;a href=&quot;#l3513&quot; class=&quot;line&quot; id=&quot;l3513&quot;&gt;   3513&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2376&amp;quot; id=&amp;quot;h3-0-2376&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vAlphaMapUv;
   3552 <a href="#l3533" class="line" id="l3533">   3533</a> &lt;a href=&quot;#l3514&quot; class=&quot;line&quot; id=&quot;l3514&quot;&gt;   3514&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2377&amp;quot; id=&amp;quot;h3-0-2377&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3553 <a href="#l3534" class="line" id="l3534">   3534</a> &lt;a href=&quot;#l3515&quot; class=&quot;line&quot; id=&quot;l3515&quot;&gt;   3515&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2378&amp;quot; id=&amp;quot;h3-0-2378&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_LIGHTMAP
   3554 <a href="#l3535" class="line" id="l3535">   3535</a> &lt;a href=&quot;#l3516&quot; class=&quot;line&quot; id=&quot;l3516&quot;&gt;   3516&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2379&amp;quot; id=&amp;quot;h3-0-2379&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 lightMapTransform;
   3555 <a href="#l3536" class="line" id="l3536">   3536</a> &lt;a href=&quot;#l3517&quot; class=&quot;line&quot; id=&quot;l3517&quot;&gt;   3517&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2380&amp;quot; id=&amp;quot;h3-0-2380&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vLightMapUv;
   3556 <a href="#l3537" class="line" id="l3537">   3537</a> &lt;a href=&quot;#l3518&quot; class=&quot;line&quot; id=&quot;l3518&quot;&gt;   3518&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2381&amp;quot; id=&amp;quot;h3-0-2381&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3557 <a href="#l3538" class="line" id="l3538">   3538</a> &lt;a href=&quot;#l3519&quot; class=&quot;line&quot; id=&quot;l3519&quot;&gt;   3519&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2382&amp;quot; id=&amp;quot;h3-0-2382&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_AOMAP
   3558 <a href="#l3539" class="line" id="l3539">   3539</a> &lt;a href=&quot;#l3520&quot; class=&quot;line&quot; id=&quot;l3520&quot;&gt;   3520&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2383&amp;quot; id=&amp;quot;h3-0-2383&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 aoMapTransform;
   3559 <a href="#l3540" class="line" id="l3540">   3540</a> &lt;a href=&quot;#l3521&quot; class=&quot;line&quot; id=&quot;l3521&quot;&gt;   3521&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2384&amp;quot; id=&amp;quot;h3-0-2384&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vAoMapUv;
   3560 <a href="#l3541" class="line" id="l3541">   3541</a> &lt;a href=&quot;#l3522&quot; class=&quot;line&quot; id=&quot;l3522&quot;&gt;   3522&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2385&amp;quot; id=&amp;quot;h3-0-2385&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3561 <a href="#l3542" class="line" id="l3542">   3542</a> &lt;a href=&quot;#l3523&quot; class=&quot;line&quot; id=&quot;l3523&quot;&gt;   3523&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2386&amp;quot; id=&amp;quot;h3-0-2386&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_BUMPMAP
   3562 <a href="#l3543" class="line" id="l3543">   3543</a> &lt;a href=&quot;#l3524&quot; class=&quot;line&quot; id=&quot;l3524&quot;&gt;   3524&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2387&amp;quot; id=&amp;quot;h3-0-2387&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 bumpMapTransform;
   3563 <a href="#l3544" class="line" id="l3544">   3544</a> &lt;a href=&quot;#l3525&quot; class=&quot;line&quot; id=&quot;l3525&quot;&gt;   3525&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2388&amp;quot; id=&amp;quot;h3-0-2388&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vBumpMapUv;
   3564 <a href="#l3545" class="line" id="l3545">   3545</a> &lt;a href=&quot;#l3526&quot; class=&quot;line&quot; id=&quot;l3526&quot;&gt;   3526&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2389&amp;quot; id=&amp;quot;h3-0-2389&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3565 <a href="#l3546" class="line" id="l3546">   3546</a> &lt;a href=&quot;#l3527&quot; class=&quot;line&quot; id=&quot;l3527&quot;&gt;   3527&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2390&amp;quot; id=&amp;quot;h3-0-2390&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_NORMALMAP
   3566 <a href="#l3547" class="line" id="l3547">   3547</a> &lt;a href=&quot;#l3528&quot; class=&quot;line&quot; id=&quot;l3528&quot;&gt;   3528&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2391&amp;quot; id=&amp;quot;h3-0-2391&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 normalMapTransform;
   3567 <a href="#l3548" class="line" id="l3548">   3548</a> &lt;a href=&quot;#l3529&quot; class=&quot;line&quot; id=&quot;l3529&quot;&gt;   3529&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2392&amp;quot; id=&amp;quot;h3-0-2392&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vNormalMapUv;
   3568 <a href="#l3549" class="line" id="l3549">   3549</a> &lt;a href=&quot;#l3530&quot; class=&quot;line&quot; id=&quot;l3530&quot;&gt;   3530&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2393&amp;quot; id=&amp;quot;h3-0-2393&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3569 <a href="#l3550" class="line" id="l3550">   3550</a> &lt;a href=&quot;#l3531&quot; class=&quot;line&quot; id=&quot;l3531&quot;&gt;   3531&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2394&amp;quot; id=&amp;quot;h3-0-2394&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_DISPLACEMENTMAP
   3570 <a href="#l3551" class="line" id="l3551">   3551</a> &lt;a href=&quot;#l3532&quot; class=&quot;line&quot; id=&quot;l3532&quot;&gt;   3532&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2395&amp;quot; id=&amp;quot;h3-0-2395&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 displacementMapTransform;
   3571 <a href="#l3552" class="line" id="l3552">   3552</a> &lt;a href=&quot;#l3533&quot; class=&quot;line&quot; id=&quot;l3533&quot;&gt;   3533&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2396&amp;quot; id=&amp;quot;h3-0-2396&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vDisplacementMapUv;
   3572 <a href="#l3553" class="line" id="l3553">   3553</a> &lt;a href=&quot;#l3534&quot; class=&quot;line&quot; id=&quot;l3534&quot;&gt;   3534&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2397&amp;quot; id=&amp;quot;h3-0-2397&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3573 <a href="#l3554" class="line" id="l3554">   3554</a> &lt;a href=&quot;#l3535&quot; class=&quot;line&quot; id=&quot;l3535&quot;&gt;   3535&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2398&amp;quot; id=&amp;quot;h3-0-2398&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_EMISSIVEMAP
   3574 <a href="#l3555" class="line" id="l3555">   3555</a> &lt;a href=&quot;#l3536&quot; class=&quot;line&quot; id=&quot;l3536&quot;&gt;   3536&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2399&amp;quot; id=&amp;quot;h3-0-2399&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 emissiveMapTransform;
   3575 <a href="#l3556" class="line" id="l3556">   3556</a> &lt;a href=&quot;#l3537&quot; class=&quot;line&quot; id=&quot;l3537&quot;&gt;   3537&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2400&amp;quot; id=&amp;quot;h3-0-2400&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vEmissiveMapUv;
   3576 <a href="#l3557" class="line" id="l3557">   3557</a> &lt;a href=&quot;#l3538&quot; class=&quot;line&quot; id=&quot;l3538&quot;&gt;   3538&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2401&amp;quot; id=&amp;quot;h3-0-2401&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3577 <a href="#l3558" class="line" id="l3558">   3558</a> &lt;a href=&quot;#l3539&quot; class=&quot;line&quot; id=&quot;l3539&quot;&gt;   3539&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2402&amp;quot; id=&amp;quot;h3-0-2402&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_METALNESSMAP
   3578 <a href="#l3559" class="line" id="l3559">   3559</a> &lt;a href=&quot;#l3540&quot; class=&quot;line&quot; id=&quot;l3540&quot;&gt;   3540&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2403&amp;quot; id=&amp;quot;h3-0-2403&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 metalnessMapTransform;
   3579 <a href="#l3560" class="line" id="l3560">   3560</a> &lt;a href=&quot;#l3541&quot; class=&quot;line&quot; id=&quot;l3541&quot;&gt;   3541&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2404&amp;quot; id=&amp;quot;h3-0-2404&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vMetalnessMapUv;
   3580 <a href="#l3561" class="line" id="l3561">   3561</a> &lt;a href=&quot;#l3542&quot; class=&quot;line&quot; id=&quot;l3542&quot;&gt;   3542&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2405&amp;quot; id=&amp;quot;h3-0-2405&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3581 <a href="#l3562" class="line" id="l3562">   3562</a> &lt;a href=&quot;#l3543&quot; class=&quot;line&quot; id=&quot;l3543&quot;&gt;   3543&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2406&amp;quot; id=&amp;quot;h3-0-2406&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ROUGHNESSMAP
   3582 <a href="#l3563" class="line" id="l3563">   3563</a> &lt;a href=&quot;#l3544&quot; class=&quot;line&quot; id=&quot;l3544&quot;&gt;   3544&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2407&amp;quot; id=&amp;quot;h3-0-2407&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 roughnessMapTransform;
   3583 <a href="#l3564" class="line" id="l3564">   3564</a> &lt;a href=&quot;#l3545&quot; class=&quot;line&quot; id=&quot;l3545&quot;&gt;   3545&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2408&amp;quot; id=&amp;quot;h3-0-2408&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vRoughnessMapUv;
   3584 <a href="#l3565" class="line" id="l3565">   3565</a> &lt;a href=&quot;#l3546&quot; class=&quot;line&quot; id=&quot;l3546&quot;&gt;   3546&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2409&amp;quot; id=&amp;quot;h3-0-2409&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3585 <a href="#l3566" class="line" id="l3566">   3566</a> &lt;a href=&quot;#l3547&quot; class=&quot;line&quot; id=&quot;l3547&quot;&gt;   3547&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2410&amp;quot; id=&amp;quot;h3-0-2410&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ANISOTROPYMAP
   3586 <a href="#l3567" class="line" id="l3567">   3567</a> &lt;a href=&quot;#l3548&quot; class=&quot;line&quot; id=&quot;l3548&quot;&gt;   3548&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2411&amp;quot; id=&amp;quot;h3-0-2411&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 anisotropyMapTransform;
   3587 <a href="#l3568" class="line" id="l3568">   3568</a> &lt;a href=&quot;#l3549&quot; class=&quot;line&quot; id=&quot;l3549&quot;&gt;   3549&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2412&amp;quot; id=&amp;quot;h3-0-2412&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vAnisotropyMapUv;
   3588 <a href="#l3569" class="line" id="l3569">   3569</a> &lt;a href=&quot;#l3550&quot; class=&quot;line&quot; id=&quot;l3550&quot;&gt;   3550&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2413&amp;quot; id=&amp;quot;h3-0-2413&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3589 <a href="#l3570" class="line" id="l3570">   3570</a> &lt;a href=&quot;#l3551&quot; class=&quot;line&quot; id=&quot;l3551&quot;&gt;   3551&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2414&amp;quot; id=&amp;quot;h3-0-2414&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOATMAP
   3590 <a href="#l3571" class="line" id="l3571">   3571</a> &lt;a href=&quot;#l3552&quot; class=&quot;line&quot; id=&quot;l3552&quot;&gt;   3552&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2415&amp;quot; id=&amp;quot;h3-0-2415&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 clearcoatMapTransform;
   3591 <a href="#l3572" class="line" id="l3572">   3572</a> &lt;a href=&quot;#l3553&quot; class=&quot;line&quot; id=&quot;l3553&quot;&gt;   3553&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2416&amp;quot; id=&amp;quot;h3-0-2416&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vClearcoatMapUv;
   3592 <a href="#l3573" class="line" id="l3573">   3573</a> &lt;a href=&quot;#l3554&quot; class=&quot;line&quot; id=&quot;l3554&quot;&gt;   3554&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2417&amp;quot; id=&amp;quot;h3-0-2417&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3593 <a href="#l3574" class="line" id="l3574">   3574</a> &lt;a href=&quot;#l3555&quot; class=&quot;line&quot; id=&quot;l3555&quot;&gt;   3555&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2418&amp;quot; id=&amp;quot;h3-0-2418&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_NORMALMAP
   3594 <a href="#l3575" class="line" id="l3575">   3575</a> &lt;a href=&quot;#l3556&quot; class=&quot;line&quot; id=&quot;l3556&quot;&gt;   3556&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2419&amp;quot; id=&amp;quot;h3-0-2419&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 clearcoatNormalMapTransform;
   3595 <a href="#l3576" class="line" id="l3576">   3576</a> &lt;a href=&quot;#l3557&quot; class=&quot;line&quot; id=&quot;l3557&quot;&gt;   3557&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2420&amp;quot; id=&amp;quot;h3-0-2420&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vClearcoatNormalMapUv;
   3596 <a href="#l3577" class="line" id="l3577">   3577</a> &lt;a href=&quot;#l3558&quot; class=&quot;line&quot; id=&quot;l3558&quot;&gt;   3558&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2421&amp;quot; id=&amp;quot;h3-0-2421&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3597 <a href="#l3578" class="line" id="l3578">   3578</a> &lt;a href=&quot;#l3559&quot; class=&quot;line&quot; id=&quot;l3559&quot;&gt;   3559&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2422&amp;quot; id=&amp;quot;h3-0-2422&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_ROUGHNESSMAP
   3598 <a href="#l3579" class="line" id="l3579">   3579</a> &lt;a href=&quot;#l3560&quot; class=&quot;line&quot; id=&quot;l3560&quot;&gt;   3560&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2423&amp;quot; id=&amp;quot;h3-0-2423&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 clearcoatRoughnessMapTransform;
   3599 <a href="#l3580" class="line" id="l3580">   3580</a> &lt;a href=&quot;#l3561&quot; class=&quot;line&quot; id=&quot;l3561&quot;&gt;   3561&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2424&amp;quot; id=&amp;quot;h3-0-2424&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vClearcoatRoughnessMapUv;
   3600 <a href="#l3581" class="line" id="l3581">   3581</a> &lt;a href=&quot;#l3562&quot; class=&quot;line&quot; id=&quot;l3562&quot;&gt;   3562&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2425&amp;quot; id=&amp;quot;h3-0-2425&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3601 <a href="#l3582" class="line" id="l3582">   3582</a> &lt;a href=&quot;#l3563&quot; class=&quot;line&quot; id=&quot;l3563&quot;&gt;   3563&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2426&amp;quot; id=&amp;quot;h3-0-2426&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHEEN_COLORMAP
   3602 <a href="#l3583" class="line" id="l3583">   3583</a> &lt;a href=&quot;#l3564&quot; class=&quot;line&quot; id=&quot;l3564&quot;&gt;   3564&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2427&amp;quot; id=&amp;quot;h3-0-2427&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 sheenColorMapTransform;
   3603 <a href="#l3584" class="line" id="l3584">   3584</a> &lt;a href=&quot;#l3565&quot; class=&quot;line&quot; id=&quot;l3565&quot;&gt;   3565&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2428&amp;quot; id=&amp;quot;h3-0-2428&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSheenColorMapUv;
   3604 <a href="#l3585" class="line" id="l3585">   3585</a> &lt;a href=&quot;#l3566&quot; class=&quot;line&quot; id=&quot;l3566&quot;&gt;   3566&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2429&amp;quot; id=&amp;quot;h3-0-2429&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3605 <a href="#l3586" class="line" id="l3586">   3586</a> &lt;a href=&quot;#l3567&quot; class=&quot;line&quot; id=&quot;l3567&quot;&gt;   3567&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2430&amp;quot; id=&amp;quot;h3-0-2430&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHEEN_ROUGHNESSMAP
   3606 <a href="#l3587" class="line" id="l3587">   3587</a> &lt;a href=&quot;#l3568&quot; class=&quot;line&quot; id=&quot;l3568&quot;&gt;   3568&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2431&amp;quot; id=&amp;quot;h3-0-2431&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 sheenRoughnessMapTransform;
   3607 <a href="#l3588" class="line" id="l3588">   3588</a> &lt;a href=&quot;#l3569&quot; class=&quot;line&quot; id=&quot;l3569&quot;&gt;   3569&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2432&amp;quot; id=&amp;quot;h3-0-2432&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSheenRoughnessMapUv;
   3608 <a href="#l3589" class="line" id="l3589">   3589</a> &lt;a href=&quot;#l3570&quot; class=&quot;line&quot; id=&quot;l3570&quot;&gt;   3570&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2433&amp;quot; id=&amp;quot;h3-0-2433&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3609 <a href="#l3590" class="line" id="l3590">   3590</a> &lt;a href=&quot;#l3571&quot; class=&quot;line&quot; id=&quot;l3571&quot;&gt;   3571&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2434&amp;quot; id=&amp;quot;h3-0-2434&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCEMAP
   3610 <a href="#l3591" class="line" id="l3591">   3591</a> &lt;a href=&quot;#l3572&quot; class=&quot;line&quot; id=&quot;l3572&quot;&gt;   3572&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2435&amp;quot; id=&amp;quot;h3-0-2435&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 iridescenceMapTransform;
   3611 <a href="#l3592" class="line" id="l3592">   3592</a> &lt;a href=&quot;#l3573&quot; class=&quot;line&quot; id=&quot;l3573&quot;&gt;   3573&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2436&amp;quot; id=&amp;quot;h3-0-2436&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vIridescenceMapUv;
   3612 <a href="#l3593" class="line" id="l3593">   3593</a> &lt;a href=&quot;#l3574&quot; class=&quot;line&quot; id=&quot;l3574&quot;&gt;   3574&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2437&amp;quot; id=&amp;quot;h3-0-2437&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3613 <a href="#l3594" class="line" id="l3594">   3594</a> &lt;a href=&quot;#l3575&quot; class=&quot;line&quot; id=&quot;l3575&quot;&gt;   3575&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2438&amp;quot; id=&amp;quot;h3-0-2438&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCE_THICKNESSMAP
   3614 <a href="#l3595" class="line" id="l3595">   3595</a> &lt;a href=&quot;#l3576&quot; class=&quot;line&quot; id=&quot;l3576&quot;&gt;   3576&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2439&amp;quot; id=&amp;quot;h3-0-2439&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 iridescenceThicknessMapTransform;
   3615 <a href="#l3596" class="line" id="l3596">   3596</a> &lt;a href=&quot;#l3577&quot; class=&quot;line&quot; id=&quot;l3577&quot;&gt;   3577&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2440&amp;quot; id=&amp;quot;h3-0-2440&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vIridescenceThicknessMapUv;
   3616 <a href="#l3597" class="line" id="l3597">   3597</a> &lt;a href=&quot;#l3578&quot; class=&quot;line&quot; id=&quot;l3578&quot;&gt;   3578&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2441&amp;quot; id=&amp;quot;h3-0-2441&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3617 <a href="#l3598" class="line" id="l3598">   3598</a> &lt;a href=&quot;#l3579&quot; class=&quot;line&quot; id=&quot;l3579&quot;&gt;   3579&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2442&amp;quot; id=&amp;quot;h3-0-2442&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULARMAP
   3618 <a href="#l3599" class="line" id="l3599">   3599</a> &lt;a href=&quot;#l3580&quot; class=&quot;line&quot; id=&quot;l3580&quot;&gt;   3580&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2443&amp;quot; id=&amp;quot;h3-0-2443&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 specularMapTransform;
   3619 <a href="#l3600" class="line" id="l3600">   3600</a> &lt;a href=&quot;#l3581&quot; class=&quot;line&quot; id=&quot;l3581&quot;&gt;   3581&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2444&amp;quot; id=&amp;quot;h3-0-2444&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSpecularMapUv;
   3620 <a href="#l3601" class="line" id="l3601">   3601</a> &lt;a href=&quot;#l3582&quot; class=&quot;line&quot; id=&quot;l3582&quot;&gt;   3582&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2445&amp;quot; id=&amp;quot;h3-0-2445&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3621 <a href="#l3602" class="line" id="l3602">   3602</a> &lt;a href=&quot;#l3583&quot; class=&quot;line&quot; id=&quot;l3583&quot;&gt;   3583&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2446&amp;quot; id=&amp;quot;h3-0-2446&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULAR_COLORMAP
   3622 <a href="#l3603" class="line" id="l3603">   3603</a> &lt;a href=&quot;#l3584&quot; class=&quot;line&quot; id=&quot;l3584&quot;&gt;   3584&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2447&amp;quot; id=&amp;quot;h3-0-2447&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 specularColorMapTransform;
   3623 <a href="#l3604" class="line" id="l3604">   3604</a> &lt;a href=&quot;#l3585&quot; class=&quot;line&quot; id=&quot;l3585&quot;&gt;   3585&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2448&amp;quot; id=&amp;quot;h3-0-2448&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSpecularColorMapUv;
   3624 <a href="#l3605" class="line" id="l3605">   3605</a> &lt;a href=&quot;#l3586&quot; class=&quot;line&quot; id=&quot;l3586&quot;&gt;   3586&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2449&amp;quot; id=&amp;quot;h3-0-2449&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3625 <a href="#l3606" class="line" id="l3606">   3606</a> &lt;a href=&quot;#l3587&quot; class=&quot;line&quot; id=&quot;l3587&quot;&gt;   3587&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2450&amp;quot; id=&amp;quot;h3-0-2450&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULAR_INTENSITYMAP
   3626 <a href="#l3607" class="line" id="l3607">   3607</a> &lt;a href=&quot;#l3588&quot; class=&quot;line&quot; id=&quot;l3588&quot;&gt;   3588&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2451&amp;quot; id=&amp;quot;h3-0-2451&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 specularIntensityMapTransform;
   3627 <a href="#l3608" class="line" id="l3608">   3608</a> &lt;a href=&quot;#l3589&quot; class=&quot;line&quot; id=&quot;l3589&quot;&gt;   3589&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2452&amp;quot; id=&amp;quot;h3-0-2452&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vSpecularIntensityMapUv;
   3628 <a href="#l3609" class="line" id="l3609">   3609</a> &lt;a href=&quot;#l3590&quot; class=&quot;line&quot; id=&quot;l3590&quot;&gt;   3590&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2453&amp;quot; id=&amp;quot;h3-0-2453&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3629 <a href="#l3610" class="line" id="l3610">   3610</a> &lt;a href=&quot;#l3591&quot; class=&quot;line&quot; id=&quot;l3591&quot;&gt;   3591&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2454&amp;quot; id=&amp;quot;h3-0-2454&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TRANSMISSIONMAP
   3630 <a href="#l3611" class="line" id="l3611">   3611</a> &lt;a href=&quot;#l3592&quot; class=&quot;line&quot; id=&quot;l3592&quot;&gt;   3592&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2455&amp;quot; id=&amp;quot;h3-0-2455&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 transmissionMapTransform;
   3631 <a href="#l3612" class="line" id="l3612">   3612</a> &lt;a href=&quot;#l3593&quot; class=&quot;line&quot; id=&quot;l3593&quot;&gt;   3593&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2456&amp;quot; id=&amp;quot;h3-0-2456&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vTransmissionMapUv;
   3632 <a href="#l3613" class="line" id="l3613">   3613</a> &lt;a href=&quot;#l3594&quot; class=&quot;line&quot; id=&quot;l3594&quot;&gt;   3594&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2457&amp;quot; id=&amp;quot;h3-0-2457&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3633 <a href="#l3614" class="line" id="l3614">   3614</a> &lt;a href=&quot;#l3595&quot; class=&quot;line&quot; id=&quot;l3595&quot;&gt;   3595&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2458&amp;quot; id=&amp;quot;h3-0-2458&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_THICKNESSMAP
   3634 <a href="#l3615" class="line" id="l3615">   3615</a> &lt;a href=&quot;#l3596&quot; class=&quot;line&quot; id=&quot;l3596&quot;&gt;   3596&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2459&amp;quot; id=&amp;quot;h3-0-2459&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 thicknessMapTransform;
   3635 <a href="#l3616" class="line" id="l3616">   3616</a> &lt;a href=&quot;#l3597&quot; class=&quot;line&quot; id=&quot;l3597&quot;&gt;   3597&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2460&amp;quot; id=&amp;quot;h3-0-2460&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vThicknessMapUv;
   3636 <a href="#l3617" class="line" id="l3617">   3617</a> &lt;a href=&quot;#l3598&quot; class=&quot;line&quot; id=&quot;l3598&quot;&gt;   3598&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2461&amp;quot; id=&amp;quot;h3-0-2461&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,a6=`#if defined( USE_UV ) || defined( USE_ANISOTROPY )
   3637 <a href="#l3618" class="line" id="l3618">   3618</a> &lt;a href=&quot;#l3599&quot; class=&quot;line&quot; id=&quot;l3599&quot;&gt;   3599&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2462&amp;quot; id=&amp;quot;h3-0-2462&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vUv = vec3( uv, 1 ).xy;
   3638 <a href="#l3619" class="line" id="l3619">   3619</a> &lt;a href=&quot;#l3600&quot; class=&quot;line&quot; id=&quot;l3600&quot;&gt;   3600&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2463&amp;quot; id=&amp;quot;h3-0-2463&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3639 <a href="#l3620" class="line" id="l3620">   3620</a> &lt;a href=&quot;#l3601&quot; class=&quot;line&quot; id=&quot;l3601&quot;&gt;   3601&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2464&amp;quot; id=&amp;quot;h3-0-2464&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_MAP
   3640 <a href="#l3621" class="line" id="l3621">   3621</a> &lt;a href=&quot;#l3602&quot; class=&quot;line&quot; id=&quot;l3602&quot;&gt;   3602&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2465&amp;quot; id=&amp;quot;h3-0-2465&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vMapUv = ( mapTransform * vec3( MAP_UV, 1 ) ).xy;
   3641 <a href="#l3622" class="line" id="l3622">   3622</a> &lt;a href=&quot;#l3603&quot; class=&quot;line&quot; id=&quot;l3603&quot;&gt;   3603&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2466&amp;quot; id=&amp;quot;h3-0-2466&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3642 <a href="#l3623" class="line" id="l3623">   3623</a> &lt;a href=&quot;#l3604&quot; class=&quot;line&quot; id=&quot;l3604&quot;&gt;   3604&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2467&amp;quot; id=&amp;quot;h3-0-2467&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ALPHAMAP
   3643 <a href="#l3624" class="line" id="l3624">   3624</a> &lt;a href=&quot;#l3605&quot; class=&quot;line&quot; id=&quot;l3605&quot;&gt;   3605&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2468&amp;quot; id=&amp;quot;h3-0-2468&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vAlphaMapUv = ( alphaMapTransform * vec3( ALPHAMAP_UV, 1 ) ).xy;
   3644 <a href="#l3625" class="line" id="l3625">   3625</a> &lt;a href=&quot;#l3606&quot; class=&quot;line&quot; id=&quot;l3606&quot;&gt;   3606&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2469&amp;quot; id=&amp;quot;h3-0-2469&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3645 <a href="#l3626" class="line" id="l3626">   3626</a> &lt;a href=&quot;#l3607&quot; class=&quot;line&quot; id=&quot;l3607&quot;&gt;   3607&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2470&amp;quot; id=&amp;quot;h3-0-2470&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_LIGHTMAP
   3646 <a href="#l3627" class="line" id="l3627">   3627</a> &lt;a href=&quot;#l3608&quot; class=&quot;line&quot; id=&quot;l3608&quot;&gt;   3608&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2471&amp;quot; id=&amp;quot;h3-0-2471&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vLightMapUv = ( lightMapTransform * vec3( LIGHTMAP_UV, 1 ) ).xy;
   3647 <a href="#l3628" class="line" id="l3628">   3628</a> &lt;a href=&quot;#l3609&quot; class=&quot;line&quot; id=&quot;l3609&quot;&gt;   3609&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2472&amp;quot; id=&amp;quot;h3-0-2472&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3648 <a href="#l3629" class="line" id="l3629">   3629</a> &lt;a href=&quot;#l3610&quot; class=&quot;line&quot; id=&quot;l3610&quot;&gt;   3610&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2473&amp;quot; id=&amp;quot;h3-0-2473&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_AOMAP
   3649 <a href="#l3630" class="line" id="l3630">   3630</a> &lt;a href=&quot;#l3611&quot; class=&quot;line&quot; id=&quot;l3611&quot;&gt;   3611&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2474&amp;quot; id=&amp;quot;h3-0-2474&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vAoMapUv = ( aoMapTransform * vec3( AOMAP_UV, 1 ) ).xy;
   3650 <a href="#l3631" class="line" id="l3631">   3631</a> &lt;a href=&quot;#l3612&quot; class=&quot;line&quot; id=&quot;l3612&quot;&gt;   3612&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2475&amp;quot; id=&amp;quot;h3-0-2475&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3651 <a href="#l3632" class="line" id="l3632">   3632</a> &lt;a href=&quot;#l3613&quot; class=&quot;line&quot; id=&quot;l3613&quot;&gt;   3613&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2476&amp;quot; id=&amp;quot;h3-0-2476&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_BUMPMAP
   3652 <a href="#l3633" class="line" id="l3633">   3633</a> &lt;a href=&quot;#l3614&quot; class=&quot;line&quot; id=&quot;l3614&quot;&gt;   3614&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2477&amp;quot; id=&amp;quot;h3-0-2477&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vBumpMapUv = ( bumpMapTransform * vec3( BUMPMAP_UV, 1 ) ).xy;
   3653 <a href="#l3634" class="line" id="l3634">   3634</a> &lt;a href=&quot;#l3615&quot; class=&quot;line&quot; id=&quot;l3615&quot;&gt;   3615&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2478&amp;quot; id=&amp;quot;h3-0-2478&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3654 <a href="#l3635" class="line" id="l3635">   3635</a> &lt;a href=&quot;#l3616&quot; class=&quot;line&quot; id=&quot;l3616&quot;&gt;   3616&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2479&amp;quot; id=&amp;quot;h3-0-2479&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_NORMALMAP
   3655 <a href="#l3636" class="line" id="l3636">   3636</a> &lt;a href=&quot;#l3617&quot; class=&quot;line&quot; id=&quot;l3617&quot;&gt;   3617&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2480&amp;quot; id=&amp;quot;h3-0-2480&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vNormalMapUv = ( normalMapTransform * vec3( NORMALMAP_UV, 1 ) ).xy;
   3656 <a href="#l3637" class="line" id="l3637">   3637</a> &lt;a href=&quot;#l3618&quot; class=&quot;line&quot; id=&quot;l3618&quot;&gt;   3618&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2481&amp;quot; id=&amp;quot;h3-0-2481&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3657 <a href="#l3638" class="line" id="l3638">   3638</a> &lt;a href=&quot;#l3619&quot; class=&quot;line&quot; id=&quot;l3619&quot;&gt;   3619&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2482&amp;quot; id=&amp;quot;h3-0-2482&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_DISPLACEMENTMAP
   3658 <a href="#l3639" class="line" id="l3639">   3639</a> &lt;a href=&quot;#l3620&quot; class=&quot;line&quot; id=&quot;l3620&quot;&gt;   3620&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2483&amp;quot; id=&amp;quot;h3-0-2483&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vDisplacementMapUv = ( displacementMapTransform * vec3( DISPLACEMENTMAP_UV, 1 ) ).xy;
   3659 <a href="#l3640" class="line" id="l3640">   3640</a> &lt;a href=&quot;#l3621&quot; class=&quot;line&quot; id=&quot;l3621&quot;&gt;   3621&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2484&amp;quot; id=&amp;quot;h3-0-2484&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3660 <a href="#l3641" class="line" id="l3641">   3641</a> &lt;a href=&quot;#l3622&quot; class=&quot;line&quot; id=&quot;l3622&quot;&gt;   3622&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2485&amp;quot; id=&amp;quot;h3-0-2485&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_EMISSIVEMAP
   3661 <a href="#l3642" class="line" id="l3642">   3642</a> &lt;a href=&quot;#l3623&quot; class=&quot;line&quot; id=&quot;l3623&quot;&gt;   3623&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2486&amp;quot; id=&amp;quot;h3-0-2486&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vEmissiveMapUv = ( emissiveMapTransform * vec3( EMISSIVEMAP_UV, 1 ) ).xy;
   3662 <a href="#l3643" class="line" id="l3643">   3643</a> &lt;a href=&quot;#l3624&quot; class=&quot;line&quot; id=&quot;l3624&quot;&gt;   3624&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2487&amp;quot; id=&amp;quot;h3-0-2487&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3663 <a href="#l3644" class="line" id="l3644">   3644</a> &lt;a href=&quot;#l3625&quot; class=&quot;line&quot; id=&quot;l3625&quot;&gt;   3625&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2488&amp;quot; id=&amp;quot;h3-0-2488&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_METALNESSMAP
   3664 <a href="#l3645" class="line" id="l3645">   3645</a> &lt;a href=&quot;#l3626&quot; class=&quot;line&quot; id=&quot;l3626&quot;&gt;   3626&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2489&amp;quot; id=&amp;quot;h3-0-2489&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vMetalnessMapUv = ( metalnessMapTransform * vec3( METALNESSMAP_UV, 1 ) ).xy;
   3665 <a href="#l3646" class="line" id="l3646">   3646</a> &lt;a href=&quot;#l3627&quot; class=&quot;line&quot; id=&quot;l3627&quot;&gt;   3627&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2490&amp;quot; id=&amp;quot;h3-0-2490&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3666 <a href="#l3647" class="line" id="l3647">   3647</a> &lt;a href=&quot;#l3628&quot; class=&quot;line&quot; id=&quot;l3628&quot;&gt;   3628&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2491&amp;quot; id=&amp;quot;h3-0-2491&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ROUGHNESSMAP
   3667 <a href="#l3648" class="line" id="l3648">   3648</a> &lt;a href=&quot;#l3629&quot; class=&quot;line&quot; id=&quot;l3629&quot;&gt;   3629&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2492&amp;quot; id=&amp;quot;h3-0-2492&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vRoughnessMapUv = ( roughnessMapTransform * vec3( ROUGHNESSMAP_UV, 1 ) ).xy;
   3668 <a href="#l3649" class="line" id="l3649">   3649</a> &lt;a href=&quot;#l3630&quot; class=&quot;line&quot; id=&quot;l3630&quot;&gt;   3630&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2493&amp;quot; id=&amp;quot;h3-0-2493&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3669 <a href="#l3650" class="line" id="l3650">   3650</a> &lt;a href=&quot;#l3631&quot; class=&quot;line&quot; id=&quot;l3631&quot;&gt;   3631&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2494&amp;quot; id=&amp;quot;h3-0-2494&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ANISOTROPYMAP
   3670 <a href="#l3651" class="line" id="l3651">   3651</a> &lt;a href=&quot;#l3632&quot; class=&quot;line&quot; id=&quot;l3632&quot;&gt;   3632&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2495&amp;quot; id=&amp;quot;h3-0-2495&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vAnisotropyMapUv = ( anisotropyMapTransform * vec3( ANISOTROPYMAP_UV, 1 ) ).xy;
   3671 <a href="#l3652" class="line" id="l3652">   3652</a> &lt;a href=&quot;#l3633&quot; class=&quot;line&quot; id=&quot;l3633&quot;&gt;   3633&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2496&amp;quot; id=&amp;quot;h3-0-2496&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3672 <a href="#l3653" class="line" id="l3653">   3653</a> &lt;a href=&quot;#l3634&quot; class=&quot;line&quot; id=&quot;l3634&quot;&gt;   3634&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2497&amp;quot; id=&amp;quot;h3-0-2497&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOATMAP
   3673 <a href="#l3654" class="line" id="l3654">   3654</a> &lt;a href=&quot;#l3635&quot; class=&quot;line&quot; id=&quot;l3635&quot;&gt;   3635&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2498&amp;quot; id=&amp;quot;h3-0-2498&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vClearcoatMapUv = ( clearcoatMapTransform * vec3( CLEARCOATMAP_UV, 1 ) ).xy;
   3674 <a href="#l3655" class="line" id="l3655">   3655</a> &lt;a href=&quot;#l3636&quot; class=&quot;line&quot; id=&quot;l3636&quot;&gt;   3636&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2499&amp;quot; id=&amp;quot;h3-0-2499&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3675 <a href="#l3656" class="line" id="l3656">   3656</a> &lt;a href=&quot;#l3637&quot; class=&quot;line&quot; id=&quot;l3637&quot;&gt;   3637&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2500&amp;quot; id=&amp;quot;h3-0-2500&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_NORMALMAP
   3676 <a href="#l3657" class="line" id="l3657">   3657</a> &lt;a href=&quot;#l3638&quot; class=&quot;line&quot; id=&quot;l3638&quot;&gt;   3638&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2501&amp;quot; id=&amp;quot;h3-0-2501&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vClearcoatNormalMapUv = ( clearcoatNormalMapTransform * vec3( CLEARCOAT_NORMALMAP_UV, 1 ) ).xy;
   3677 <a href="#l3658" class="line" id="l3658">   3658</a> &lt;a href=&quot;#l3639&quot; class=&quot;line&quot; id=&quot;l3639&quot;&gt;   3639&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2502&amp;quot; id=&amp;quot;h3-0-2502&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3678 <a href="#l3659" class="line" id="l3659">   3659</a> &lt;a href=&quot;#l3640&quot; class=&quot;line&quot; id=&quot;l3640&quot;&gt;   3640&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2503&amp;quot; id=&amp;quot;h3-0-2503&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT_ROUGHNESSMAP
   3679 <a href="#l3660" class="line" id="l3660">   3660</a> &lt;a href=&quot;#l3641&quot; class=&quot;line&quot; id=&quot;l3641&quot;&gt;   3641&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2504&amp;quot; id=&amp;quot;h3-0-2504&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vClearcoatRoughnessMapUv = ( clearcoatRoughnessMapTransform * vec3( CLEARCOAT_ROUGHNESSMAP_UV, 1 ) ).xy;
   3680 <a href="#l3661" class="line" id="l3661">   3661</a> &lt;a href=&quot;#l3642&quot; class=&quot;line&quot; id=&quot;l3642&quot;&gt;   3642&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2505&amp;quot; id=&amp;quot;h3-0-2505&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3681 <a href="#l3662" class="line" id="l3662">   3662</a> &lt;a href=&quot;#l3643&quot; class=&quot;line&quot; id=&quot;l3643&quot;&gt;   3643&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2506&amp;quot; id=&amp;quot;h3-0-2506&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCEMAP
   3682 <a href="#l3663" class="line" id="l3663">   3663</a> &lt;a href=&quot;#l3644&quot; class=&quot;line&quot; id=&quot;l3644&quot;&gt;   3644&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2507&amp;quot; id=&amp;quot;h3-0-2507&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vIridescenceMapUv = ( iridescenceMapTransform * vec3( IRIDESCENCEMAP_UV, 1 ) ).xy;
   3683 <a href="#l3664" class="line" id="l3664">   3664</a> &lt;a href=&quot;#l3645&quot; class=&quot;line&quot; id=&quot;l3645&quot;&gt;   3645&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2508&amp;quot; id=&amp;quot;h3-0-2508&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3684 <a href="#l3665" class="line" id="l3665">   3665</a> &lt;a href=&quot;#l3646&quot; class=&quot;line&quot; id=&quot;l3646&quot;&gt;   3646&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2509&amp;quot; id=&amp;quot;h3-0-2509&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCE_THICKNESSMAP
   3685 <a href="#l3666" class="line" id="l3666">   3666</a> &lt;a href=&quot;#l3647&quot; class=&quot;line&quot; id=&quot;l3647&quot;&gt;   3647&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2510&amp;quot; id=&amp;quot;h3-0-2510&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vIridescenceThicknessMapUv = ( iridescenceThicknessMapTransform * vec3( IRIDESCENCE_THICKNESSMAP_UV, 1 ) ).xy;
   3686 <a href="#l3667" class="line" id="l3667">   3667</a> &lt;a href=&quot;#l3648&quot; class=&quot;line&quot; id=&quot;l3648&quot;&gt;   3648&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2511&amp;quot; id=&amp;quot;h3-0-2511&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3687 <a href="#l3668" class="line" id="l3668">   3668</a> &lt;a href=&quot;#l3649&quot; class=&quot;line&quot; id=&quot;l3649&quot;&gt;   3649&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2512&amp;quot; id=&amp;quot;h3-0-2512&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHEEN_COLORMAP
   3688 <a href="#l3669" class="line" id="l3669">   3669</a> &lt;a href=&quot;#l3650&quot; class=&quot;line&quot; id=&quot;l3650&quot;&gt;   3650&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2513&amp;quot; id=&amp;quot;h3-0-2513&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vSheenColorMapUv = ( sheenColorMapTransform * vec3( SHEEN_COLORMAP_UV, 1 ) ).xy;
   3689 <a href="#l3670" class="line" id="l3670">   3670</a> &lt;a href=&quot;#l3651&quot; class=&quot;line&quot; id=&quot;l3651&quot;&gt;   3651&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2514&amp;quot; id=&amp;quot;h3-0-2514&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3690 <a href="#l3671" class="line" id="l3671">   3671</a> &lt;a href=&quot;#l3652&quot; class=&quot;line&quot; id=&quot;l3652&quot;&gt;   3652&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2515&amp;quot; id=&amp;quot;h3-0-2515&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHEEN_ROUGHNESSMAP
   3691 <a href="#l3672" class="line" id="l3672">   3672</a> &lt;a href=&quot;#l3653&quot; class=&quot;line&quot; id=&quot;l3653&quot;&gt;   3653&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2516&amp;quot; id=&amp;quot;h3-0-2516&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vSheenRoughnessMapUv = ( sheenRoughnessMapTransform * vec3( SHEEN_ROUGHNESSMAP_UV, 1 ) ).xy;
   3692 <a href="#l3673" class="line" id="l3673">   3673</a> &lt;a href=&quot;#l3654&quot; class=&quot;line&quot; id=&quot;l3654&quot;&gt;   3654&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2517&amp;quot; id=&amp;quot;h3-0-2517&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3693 <a href="#l3674" class="line" id="l3674">   3674</a> &lt;a href=&quot;#l3655&quot; class=&quot;line&quot; id=&quot;l3655&quot;&gt;   3655&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2518&amp;quot; id=&amp;quot;h3-0-2518&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULARMAP
   3694 <a href="#l3675" class="line" id="l3675">   3675</a> &lt;a href=&quot;#l3656&quot; class=&quot;line&quot; id=&quot;l3656&quot;&gt;   3656&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2519&amp;quot; id=&amp;quot;h3-0-2519&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vSpecularMapUv = ( specularMapTransform * vec3( SPECULARMAP_UV, 1 ) ).xy;
   3695 <a href="#l3676" class="line" id="l3676">   3676</a> &lt;a href=&quot;#l3657&quot; class=&quot;line&quot; id=&quot;l3657&quot;&gt;   3657&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2520&amp;quot; id=&amp;quot;h3-0-2520&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3696 <a href="#l3677" class="line" id="l3677">   3677</a> &lt;a href=&quot;#l3658&quot; class=&quot;line&quot; id=&quot;l3658&quot;&gt;   3658&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2521&amp;quot; id=&amp;quot;h3-0-2521&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULAR_COLORMAP
   3697 <a href="#l3678" class="line" id="l3678">   3678</a> &lt;a href=&quot;#l3659&quot; class=&quot;line&quot; id=&quot;l3659&quot;&gt;   3659&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2522&amp;quot; id=&amp;quot;h3-0-2522&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vSpecularColorMapUv = ( specularColorMapTransform * vec3( SPECULAR_COLORMAP_UV, 1 ) ).xy;
   3698 <a href="#l3679" class="line" id="l3679">   3679</a> &lt;a href=&quot;#l3660&quot; class=&quot;line&quot; id=&quot;l3660&quot;&gt;   3660&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2523&amp;quot; id=&amp;quot;h3-0-2523&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3699 <a href="#l3680" class="line" id="l3680">   3680</a> &lt;a href=&quot;#l3661&quot; class=&quot;line&quot; id=&quot;l3661&quot;&gt;   3661&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2524&amp;quot; id=&amp;quot;h3-0-2524&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULAR_INTENSITYMAP
   3700 <a href="#l3681" class="line" id="l3681">   3681</a> &lt;a href=&quot;#l3662&quot; class=&quot;line&quot; id=&quot;l3662&quot;&gt;   3662&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2525&amp;quot; id=&amp;quot;h3-0-2525&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vSpecularIntensityMapUv = ( specularIntensityMapTransform * vec3( SPECULAR_INTENSITYMAP_UV, 1 ) ).xy;
   3701 <a href="#l3682" class="line" id="l3682">   3682</a> &lt;a href=&quot;#l3663&quot; class=&quot;line&quot; id=&quot;l3663&quot;&gt;   3663&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2526&amp;quot; id=&amp;quot;h3-0-2526&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3702 <a href="#l3683" class="line" id="l3683">   3683</a> &lt;a href=&quot;#l3664&quot; class=&quot;line&quot; id=&quot;l3664&quot;&gt;   3664&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2527&amp;quot; id=&amp;quot;h3-0-2527&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TRANSMISSIONMAP
   3703 <a href="#l3684" class="line" id="l3684">   3684</a> &lt;a href=&quot;#l3665&quot; class=&quot;line&quot; id=&quot;l3665&quot;&gt;   3665&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2528&amp;quot; id=&amp;quot;h3-0-2528&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vTransmissionMapUv = ( transmissionMapTransform * vec3( TRANSMISSIONMAP_UV, 1 ) ).xy;
   3704 <a href="#l3685" class="line" id="l3685">   3685</a> &lt;a href=&quot;#l3666&quot; class=&quot;line&quot; id=&quot;l3666&quot;&gt;   3666&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2529&amp;quot; id=&amp;quot;h3-0-2529&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3705 <a href="#l3686" class="line" id="l3686">   3686</a> &lt;a href=&quot;#l3667&quot; class=&quot;line&quot; id=&quot;l3667&quot;&gt;   3667&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2530&amp;quot; id=&amp;quot;h3-0-2530&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_THICKNESSMAP
   3706 <a href="#l3687" class="line" id="l3687">   3687</a> &lt;a href=&quot;#l3668&quot; class=&quot;line&quot; id=&quot;l3668&quot;&gt;   3668&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2531&amp;quot; id=&amp;quot;h3-0-2531&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vThicknessMapUv = ( thicknessMapTransform * vec3( THICKNESSMAP_UV, 1 ) ).xy;
   3707 <a href="#l3688" class="line" id="l3688">   3688</a> &lt;a href=&quot;#l3669&quot; class=&quot;line&quot; id=&quot;l3669&quot;&gt;   3669&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2532&amp;quot; id=&amp;quot;h3-0-2532&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,s6=`#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP ) || defined ( USE_TRANSMISSION ) || NUM_SPOT_LIGHT_COORDS &amp;amp;gt; 0
   3708 <a href="#l3689" class="line" id="l3689">   3689</a> &lt;a href=&quot;#l3670&quot; class=&quot;line&quot; id=&quot;l3670&quot;&gt;   3670&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2533&amp;quot; id=&amp;quot;h3-0-2533&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 worldPosition = vec4( transformed, 1.0 );
   3709 <a href="#l3690" class="line" id="l3690">   3690</a> &lt;a href=&quot;#l3671&quot; class=&quot;line&quot; id=&quot;l3671&quot;&gt;   3671&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2534&amp;quot; id=&amp;quot;h3-0-2534&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_BATCHING
   3710 <a href="#l3691" class="line" id="l3691">   3691</a> &lt;a href=&quot;#l3672&quot; class=&quot;line&quot; id=&quot;l3672&quot;&gt;   3672&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2535&amp;quot; id=&amp;quot;h3-0-2535&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		worldPosition = batchingMatrix * worldPosition;
   3711 <a href="#l3692" class="line" id="l3692">   3692</a> &lt;a href=&quot;#l3673&quot; class=&quot;line&quot; id=&quot;l3673&quot;&gt;   3673&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2536&amp;quot; id=&amp;quot;h3-0-2536&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3712 <a href="#l3693" class="line" id="l3693">   3693</a> &lt;a href=&quot;#l3674&quot; class=&quot;line&quot; id=&quot;l3674&quot;&gt;   3674&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2537&amp;quot; id=&amp;quot;h3-0-2537&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_INSTANCING
   3713 <a href="#l3694" class="line" id="l3694">   3694</a> &lt;a href=&quot;#l3675&quot; class=&quot;line&quot; id=&quot;l3675&quot;&gt;   3675&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2538&amp;quot; id=&amp;quot;h3-0-2538&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		worldPosition = instanceMatrix * worldPosition;
   3714 <a href="#l3695" class="line" id="l3695">   3695</a> &lt;a href=&quot;#l3676&quot; class=&quot;line&quot; id=&quot;l3676&quot;&gt;   3676&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2539&amp;quot; id=&amp;quot;h3-0-2539&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3715 <a href="#l3696" class="line" id="l3696">   3696</a> &lt;a href=&quot;#l3677&quot; class=&quot;line&quot; id=&quot;l3677&quot;&gt;   3677&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2540&amp;quot; id=&amp;quot;h3-0-2540&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	worldPosition = modelMatrix * worldPosition;
   3716 <a href="#l3697" class="line" id="l3697">   3697</a> &lt;a href=&quot;#l3678&quot; class=&quot;line&quot; id=&quot;l3678&quot;&gt;   3678&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2541&amp;quot; id=&amp;quot;h3-0-2541&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif`,r6=`varying vec2 vUv;
   3717 <a href="#l3698" class="line" id="l3698">   3698</a> &lt;a href=&quot;#l3679&quot; class=&quot;line&quot; id=&quot;l3679&quot;&gt;   3679&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2542&amp;quot; id=&amp;quot;h3-0-2542&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uvTransform;
   3718 <a href="#l3699" class="line" id="l3699">   3699</a> &lt;a href=&quot;#l3680&quot; class=&quot;line&quot; id=&quot;l3680&quot;&gt;   3680&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2543&amp;quot; id=&amp;quot;h3-0-2543&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3719 <a href="#l3700" class="line" id="l3700">   3700</a> &lt;a href=&quot;#l3681&quot; class=&quot;line&quot; id=&quot;l3681&quot;&gt;   3681&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2544&amp;quot; id=&amp;quot;h3-0-2544&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
   3720 <a href="#l3701" class="line" id="l3701">   3701</a> &lt;a href=&quot;#l3682&quot; class=&quot;line&quot; id=&quot;l3682&quot;&gt;   3682&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2545&amp;quot; id=&amp;quot;h3-0-2545&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_Position = vec4( position.xy, 1.0, 1.0 );
   3721 <a href="#l3702" class="line" id="l3702">   3702</a> &lt;a href=&quot;#l3683&quot; class=&quot;line&quot; id=&quot;l3683&quot;&gt;   3683&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2546&amp;quot; id=&amp;quot;h3-0-2546&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,o6=`uniform sampler2D t2D;
   3722 <a href="#l3703" class="line" id="l3703">   3703</a> &lt;a href=&quot;#l3684&quot; class=&quot;line&quot; id=&quot;l3684&quot;&gt;   3684&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2547&amp;quot; id=&amp;quot;h3-0-2547&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float backgroundIntensity;
   3723 <a href="#l3704" class="line" id="l3704">   3704</a> &lt;a href=&quot;#l3685&quot; class=&quot;line&quot; id=&quot;l3685&quot;&gt;   3685&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2548&amp;quot; id=&amp;quot;h3-0-2548&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vUv;
   3724 <a href="#l3705" class="line" id="l3705">   3705</a> &lt;a href=&quot;#l3686&quot; class=&quot;line&quot; id=&quot;l3686&quot;&gt;   3686&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2549&amp;quot; id=&amp;quot;h3-0-2549&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3725 <a href="#l3706" class="line" id="l3706">   3706</a> &lt;a href=&quot;#l3687&quot; class=&quot;line&quot; id=&quot;l3687&quot;&gt;   3687&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2550&amp;quot; id=&amp;quot;h3-0-2550&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 texColor = texture2D( t2D, vUv );
   3726 <a href="#l3707" class="line" id="l3707">   3707</a> &lt;a href=&quot;#l3688&quot; class=&quot;line&quot; id=&quot;l3688&quot;&gt;   3688&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2551&amp;quot; id=&amp;quot;h3-0-2551&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef DECODE_VIDEO_TEXTURE
   3727 <a href="#l3708" class="line" id="l3708">   3708</a> &lt;a href=&quot;#l3689&quot; class=&quot;line&quot; id=&quot;l3689&quot;&gt;   3689&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2552&amp;quot; id=&amp;quot;h3-0-2552&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		texColor = vec4( mix( pow( texColor.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), texColor.rgb * 0.0773993808, vec3( lessThanEqual( texColor.rgb, vec3( 0.04045 ) ) ) ), texColor.w );
   3728 <a href="#l3709" class="line" id="l3709">   3709</a> &lt;a href=&quot;#l3690&quot; class=&quot;line&quot; id=&quot;l3690&quot;&gt;   3690&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2553&amp;quot; id=&amp;quot;h3-0-2553&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3729 <a href="#l3710" class="line" id="l3710">   3710</a> &lt;a href=&quot;#l3691&quot; class=&quot;line&quot; id=&quot;l3691&quot;&gt;   3691&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2554&amp;quot; id=&amp;quot;h3-0-2554&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	texColor.rgb *= backgroundIntensity;
   3730 <a href="#l3711" class="line" id="l3711">   3711</a> &lt;a href=&quot;#l3692&quot; class=&quot;line&quot; id=&quot;l3692&quot;&gt;   3692&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2555&amp;quot; id=&amp;quot;h3-0-2555&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = texColor;
   3731 <a href="#l3712" class="line" id="l3712">   3712</a> &lt;a href=&quot;#l3693&quot; class=&quot;line&quot; id=&quot;l3693&quot;&gt;   3693&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2556&amp;quot; id=&amp;quot;h3-0-2556&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   3732 <a href="#l3713" class="line" id="l3713">   3713</a> &lt;a href=&quot;#l3694&quot; class=&quot;line&quot; id=&quot;l3694&quot;&gt;   3694&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2557&amp;quot; id=&amp;quot;h3-0-2557&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   3733 <a href="#l3714" class="line" id="l3714">   3714</a> &lt;a href=&quot;#l3695&quot; class=&quot;line&quot; id=&quot;l3695&quot;&gt;   3695&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2558&amp;quot; id=&amp;quot;h3-0-2558&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,l6=`varying vec3 vWorldDirection;
   3734 <a href="#l3715" class="line" id="l3715">   3715</a> &lt;a href=&quot;#l3696&quot; class=&quot;line&quot; id=&quot;l3696&quot;&gt;   3696&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2559&amp;quot; id=&amp;quot;h3-0-2559&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3735 <a href="#l3716" class="line" id="l3716">   3716</a> &lt;a href=&quot;#l3697&quot; class=&quot;line&quot; id=&quot;l3697&quot;&gt;   3697&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2560&amp;quot; id=&amp;quot;h3-0-2560&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3736 <a href="#l3717" class="line" id="l3717">   3717</a> &lt;a href=&quot;#l3698&quot; class=&quot;line&quot; id=&quot;l3698&quot;&gt;   3698&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2561&amp;quot; id=&amp;quot;h3-0-2561&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vWorldDirection = transformDirection( position, modelMatrix );
   3737 <a href="#l3718" class="line" id="l3718">   3718</a> &lt;a href=&quot;#l3699&quot; class=&quot;line&quot; id=&quot;l3699&quot;&gt;   3699&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2562&amp;quot; id=&amp;quot;h3-0-2562&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   3738 <a href="#l3719" class="line" id="l3719">   3719</a> &lt;a href=&quot;#l3700&quot; class=&quot;line&quot; id=&quot;l3700&quot;&gt;   3700&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2563&amp;quot; id=&amp;quot;h3-0-2563&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   3739 <a href="#l3720" class="line" id="l3720">   3720</a> &lt;a href=&quot;#l3701&quot; class=&quot;line&quot; id=&quot;l3701&quot;&gt;   3701&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2564&amp;quot; id=&amp;quot;h3-0-2564&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_Position.z = gl_Position.w;
   3740 <a href="#l3721" class="line" id="l3721">   3721</a> &lt;a href=&quot;#l3702&quot; class=&quot;line&quot; id=&quot;l3702&quot;&gt;   3702&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2565&amp;quot; id=&amp;quot;h3-0-2565&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,u6=`#ifdef ENVMAP_TYPE_CUBE
   3741 <a href="#l3722" class="line" id="l3722">   3722</a> &lt;a href=&quot;#l3703&quot; class=&quot;line&quot; id=&quot;l3703&quot;&gt;   3703&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2566&amp;quot; id=&amp;quot;h3-0-2566&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform samplerCube envMap;
   3742 <a href="#l3723" class="line" id="l3723">   3723</a> &lt;a href=&quot;#l3704&quot; class=&quot;line&quot; id=&quot;l3704&quot;&gt;   3704&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2567&amp;quot; id=&amp;quot;h3-0-2567&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#elif defined( ENVMAP_TYPE_CUBE_UV )
   3743 <a href="#l3724" class="line" id="l3724">   3724</a> &lt;a href=&quot;#l3705&quot; class=&quot;line&quot; id=&quot;l3705&quot;&gt;   3705&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2568&amp;quot; id=&amp;quot;h3-0-2568&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform sampler2D envMap;
   3744 <a href="#l3725" class="line" id="l3725">   3725</a> &lt;a href=&quot;#l3706&quot; class=&quot;line&quot; id=&quot;l3706&quot;&gt;   3706&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2569&amp;quot; id=&amp;quot;h3-0-2569&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3745 <a href="#l3726" class="line" id="l3726">   3726</a> &lt;a href=&quot;#l3707&quot; class=&quot;line&quot; id=&quot;l3707&quot;&gt;   3707&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2570&amp;quot; id=&amp;quot;h3-0-2570&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float flipEnvMap;
   3746 <a href="#l3727" class="line" id="l3727">   3727</a> &lt;a href=&quot;#l3708&quot; class=&quot;line&quot; id=&quot;l3708&quot;&gt;   3708&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2571&amp;quot; id=&amp;quot;h3-0-2571&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float backgroundBlurriness;
   3747 <a href="#l3728" class="line" id="l3728">   3728</a> &lt;a href=&quot;#l3709&quot; class=&quot;line&quot; id=&quot;l3709&quot;&gt;   3709&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2572&amp;quot; id=&amp;quot;h3-0-2572&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float backgroundIntensity;
   3748 <a href="#l3729" class="line" id="l3729">   3729</a> &lt;a href=&quot;#l3710&quot; class=&quot;line&quot; id=&quot;l3710&quot;&gt;   3710&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2573&amp;quot; id=&amp;quot;h3-0-2573&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 backgroundRotation;
   3749 <a href="#l3730" class="line" id="l3730">   3730</a> &lt;a href=&quot;#l3711&quot; class=&quot;line&quot; id=&quot;l3711&quot;&gt;   3711&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2574&amp;quot; id=&amp;quot;h3-0-2574&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vWorldDirection;
   3750 <a href="#l3731" class="line" id="l3731">   3731</a> &lt;a href=&quot;#l3712&quot; class=&quot;line&quot; id=&quot;l3712&quot;&gt;   3712&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2575&amp;quot; id=&amp;quot;h3-0-2575&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;cube_uv_reflection_fragment&amp;amp;gt;
   3751 <a href="#l3732" class="line" id="l3732">   3732</a> &lt;a href=&quot;#l3713&quot; class=&quot;line&quot; id=&quot;l3713&quot;&gt;   3713&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2576&amp;quot; id=&amp;quot;h3-0-2576&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3752 <a href="#l3733" class="line" id="l3733">   3733</a> &lt;a href=&quot;#l3714&quot; class=&quot;line&quot; id=&quot;l3714&quot;&gt;   3714&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2577&amp;quot; id=&amp;quot;h3-0-2577&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef ENVMAP_TYPE_CUBE
   3753 <a href="#l3734" class="line" id="l3734">   3734</a> &lt;a href=&quot;#l3715&quot; class=&quot;line&quot; id=&quot;l3715&quot;&gt;   3715&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2578&amp;quot; id=&amp;quot;h3-0-2578&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 texColor = textureCube( envMap, backgroundRotation * vec3( flipEnvMap * vWorldDirection.x, vWorldDirection.yz ) );
   3754 <a href="#l3735" class="line" id="l3735">   3735</a> &lt;a href=&quot;#l3716&quot; class=&quot;line&quot; id=&quot;l3716&quot;&gt;   3716&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2579&amp;quot; id=&amp;quot;h3-0-2579&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#elif defined( ENVMAP_TYPE_CUBE_UV )
   3755 <a href="#l3736" class="line" id="l3736">   3736</a> &lt;a href=&quot;#l3717&quot; class=&quot;line&quot; id=&quot;l3717&quot;&gt;   3717&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2580&amp;quot; id=&amp;quot;h3-0-2580&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 texColor = textureCubeUV( envMap, backgroundRotation * vWorldDirection, backgroundBlurriness );
   3756 <a href="#l3737" class="line" id="l3737">   3737</a> &lt;a href=&quot;#l3718&quot; class=&quot;line&quot; id=&quot;l3718&quot;&gt;   3718&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2581&amp;quot; id=&amp;quot;h3-0-2581&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   3757 <a href="#l3738" class="line" id="l3738">   3738</a> &lt;a href=&quot;#l3719&quot; class=&quot;line&quot; id=&quot;l3719&quot;&gt;   3719&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2582&amp;quot; id=&amp;quot;h3-0-2582&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 texColor = vec4( 0.0, 0.0, 0.0, 1.0 );
   3758 <a href="#l3739" class="line" id="l3739">   3739</a> &lt;a href=&quot;#l3720&quot; class=&quot;line&quot; id=&quot;l3720&quot;&gt;   3720&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2583&amp;quot; id=&amp;quot;h3-0-2583&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3759 <a href="#l3740" class="line" id="l3740">   3740</a> &lt;a href=&quot;#l3721&quot; class=&quot;line&quot; id=&quot;l3721&quot;&gt;   3721&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2584&amp;quot; id=&amp;quot;h3-0-2584&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	texColor.rgb *= backgroundIntensity;
   3760 <a href="#l3741" class="line" id="l3741">   3741</a> &lt;a href=&quot;#l3722&quot; class=&quot;line&quot; id=&quot;l3722&quot;&gt;   3722&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2585&amp;quot; id=&amp;quot;h3-0-2585&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = texColor;
   3761 <a href="#l3742" class="line" id="l3742">   3742</a> &lt;a href=&quot;#l3723&quot; class=&quot;line&quot; id=&quot;l3723&quot;&gt;   3723&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2586&amp;quot; id=&amp;quot;h3-0-2586&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   3762 <a href="#l3743" class="line" id="l3743">   3743</a> &lt;a href=&quot;#l3724&quot; class=&quot;line&quot; id=&quot;l3724&quot;&gt;   3724&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2587&amp;quot; id=&amp;quot;h3-0-2587&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   3763 <a href="#l3744" class="line" id="l3744">   3744</a> &lt;a href=&quot;#l3725&quot; class=&quot;line&quot; id=&quot;l3725&quot;&gt;   3725&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2588&amp;quot; id=&amp;quot;h3-0-2588&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,c6=`varying vec3 vWorldDirection;
   3764 <a href="#l3745" class="line" id="l3745">   3745</a> &lt;a href=&quot;#l3726&quot; class=&quot;line&quot; id=&quot;l3726&quot;&gt;   3726&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2589&amp;quot; id=&amp;quot;h3-0-2589&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3765 <a href="#l3746" class="line" id="l3746">   3746</a> &lt;a href=&quot;#l3727&quot; class=&quot;line&quot; id=&quot;l3727&quot;&gt;   3727&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2590&amp;quot; id=&amp;quot;h3-0-2590&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3766 <a href="#l3747" class="line" id="l3747">   3747</a> &lt;a href=&quot;#l3728&quot; class=&quot;line&quot; id=&quot;l3728&quot;&gt;   3728&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2591&amp;quot; id=&amp;quot;h3-0-2591&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vWorldDirection = transformDirection( position, modelMatrix );
   3767 <a href="#l3748" class="line" id="l3748">   3748</a> &lt;a href=&quot;#l3729&quot; class=&quot;line&quot; id=&quot;l3729&quot;&gt;   3729&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2592&amp;quot; id=&amp;quot;h3-0-2592&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   3768 <a href="#l3749" class="line" id="l3749">   3749</a> &lt;a href=&quot;#l3730&quot; class=&quot;line&quot; id=&quot;l3730&quot;&gt;   3730&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2593&amp;quot; id=&amp;quot;h3-0-2593&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   3769 <a href="#l3750" class="line" id="l3750">   3750</a> &lt;a href=&quot;#l3731&quot; class=&quot;line&quot; id=&quot;l3731&quot;&gt;   3731&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2594&amp;quot; id=&amp;quot;h3-0-2594&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_Position.z = gl_Position.w;
   3770 <a href="#l3751" class="line" id="l3751">   3751</a> &lt;a href=&quot;#l3732&quot; class=&quot;line&quot; id=&quot;l3732&quot;&gt;   3732&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2595&amp;quot; id=&amp;quot;h3-0-2595&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,f6=`uniform samplerCube tCube;
   3771 <a href="#l3752" class="line" id="l3752">   3752</a> &lt;a href=&quot;#l3733&quot; class=&quot;line&quot; id=&quot;l3733&quot;&gt;   3733&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2596&amp;quot; id=&amp;quot;h3-0-2596&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float tFlip;
   3772 <a href="#l3753" class="line" id="l3753">   3753</a> &lt;a href=&quot;#l3734&quot; class=&quot;line&quot; id=&quot;l3734&quot;&gt;   3734&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2597&amp;quot; id=&amp;quot;h3-0-2597&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   3773 <a href="#l3754" class="line" id="l3754">   3754</a> &lt;a href=&quot;#l3735&quot; class=&quot;line&quot; id=&quot;l3735&quot;&gt;   3735&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2598&amp;quot; id=&amp;quot;h3-0-2598&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vWorldDirection;
   3774 <a href="#l3755" class="line" id="l3755">   3755</a> &lt;a href=&quot;#l3736&quot; class=&quot;line&quot; id=&quot;l3736&quot;&gt;   3736&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2599&amp;quot; id=&amp;quot;h3-0-2599&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3775 <a href="#l3756" class="line" id="l3756">   3756</a> &lt;a href=&quot;#l3737&quot; class=&quot;line&quot; id=&quot;l3737&quot;&gt;   3737&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2600&amp;quot; id=&amp;quot;h3-0-2600&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 texColor = textureCube( tCube, vec3( tFlip * vWorldDirection.x, vWorldDirection.yz ) );
   3776 <a href="#l3757" class="line" id="l3757">   3757</a> &lt;a href=&quot;#l3738&quot; class=&quot;line&quot; id=&quot;l3738&quot;&gt;   3738&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2601&amp;quot; id=&amp;quot;h3-0-2601&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = texColor;
   3777 <a href="#l3758" class="line" id="l3758">   3758</a> &lt;a href=&quot;#l3739&quot; class=&quot;line&quot; id=&quot;l3739&quot;&gt;   3739&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2602&amp;quot; id=&amp;quot;h3-0-2602&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor.a *= opacity;
   3778 <a href="#l3759" class="line" id="l3759">   3759</a> &lt;a href=&quot;#l3740&quot; class=&quot;line&quot; id=&quot;l3740&quot;&gt;   3740&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2603&amp;quot; id=&amp;quot;h3-0-2603&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   3779 <a href="#l3760" class="line" id="l3760">   3760</a> &lt;a href=&quot;#l3741&quot; class=&quot;line&quot; id=&quot;l3741&quot;&gt;   3741&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2604&amp;quot; id=&amp;quot;h3-0-2604&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   3780 <a href="#l3761" class="line" id="l3761">   3761</a> &lt;a href=&quot;#l3742&quot; class=&quot;line&quot; id=&quot;l3742&quot;&gt;   3742&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2605&amp;quot; id=&amp;quot;h3-0-2605&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,h6=`#include &amp;amp;lt;common&amp;amp;gt;
   3781 <a href="#l3762" class="line" id="l3762">   3762</a> &lt;a href=&quot;#l3743&quot; class=&quot;line&quot; id=&quot;l3743&quot;&gt;   3743&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2606&amp;quot; id=&amp;quot;h3-0-2606&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   3782 <a href="#l3763" class="line" id="l3763">   3763</a> &lt;a href=&quot;#l3744&quot; class=&quot;line&quot; id=&quot;l3744&quot;&gt;   3744&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2607&amp;quot; id=&amp;quot;h3-0-2607&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   3783 <a href="#l3764" class="line" id="l3764">   3764</a> &lt;a href=&quot;#l3745&quot; class=&quot;line&quot; id=&quot;l3745&quot;&gt;   3745&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2608&amp;quot; id=&amp;quot;h3-0-2608&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;displacementmap_pars_vertex&amp;amp;gt;
   3784 <a href="#l3765" class="line" id="l3765">   3765</a> &lt;a href=&quot;#l3746&quot; class=&quot;line&quot; id=&quot;l3746&quot;&gt;   3746&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2609&amp;quot; id=&amp;quot;h3-0-2609&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   3785 <a href="#l3766" class="line" id="l3766">   3766</a> &lt;a href=&quot;#l3747&quot; class=&quot;line&quot; id=&quot;l3747&quot;&gt;   3747&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2610&amp;quot; id=&amp;quot;h3-0-2610&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   3786 <a href="#l3767" class="line" id="l3767">   3767</a> &lt;a href=&quot;#l3748&quot; class=&quot;line&quot; id=&quot;l3748&quot;&gt;   3748&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2611&amp;quot; id=&amp;quot;h3-0-2611&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   3787 <a href="#l3768" class="line" id="l3768">   3768</a> &lt;a href=&quot;#l3749&quot; class=&quot;line&quot; id=&quot;l3749&quot;&gt;   3749&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2612&amp;quot; id=&amp;quot;h3-0-2612&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   3788 <a href="#l3769" class="line" id="l3769">   3769</a> &lt;a href=&quot;#l3750&quot; class=&quot;line&quot; id=&quot;l3750&quot;&gt;   3750&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2613&amp;quot; id=&amp;quot;h3-0-2613&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vHighPrecisionZW;
   3789 <a href="#l3770" class="line" id="l3770">   3770</a> &lt;a href=&quot;#l3751&quot; class=&quot;line&quot; id=&quot;l3751&quot;&gt;   3751&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2614&amp;quot; id=&amp;quot;h3-0-2614&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3790 <a href="#l3771" class="line" id="l3771">   3771</a> &lt;a href=&quot;#l3752&quot; class=&quot;line&quot; id=&quot;l3752&quot;&gt;   3752&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2615&amp;quot; id=&amp;quot;h3-0-2615&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   3791 <a href="#l3772" class="line" id="l3772">   3772</a> &lt;a href=&quot;#l3753&quot; class=&quot;line&quot; id=&quot;l3753&quot;&gt;   3753&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2616&amp;quot; id=&amp;quot;h3-0-2616&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   3792 <a href="#l3773" class="line" id="l3773">   3773</a> &lt;a href=&quot;#l3754&quot; class=&quot;line&quot; id=&quot;l3754&quot;&gt;   3754&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2617&amp;quot; id=&amp;quot;h3-0-2617&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   3793 <a href="#l3774" class="line" id="l3774">   3774</a> &lt;a href=&quot;#l3755&quot; class=&quot;line&quot; id=&quot;l3755&quot;&gt;   3755&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2618&amp;quot; id=&amp;quot;h3-0-2618&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   3794 <a href="#l3775" class="line" id="l3775">   3775</a> &lt;a href=&quot;#l3756&quot; class=&quot;line&quot; id=&quot;l3756&quot;&gt;   3756&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2619&amp;quot; id=&amp;quot;h3-0-2619&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_DISPLACEMENTMAP
   3795 <a href="#l3776" class="line" id="l3776">   3776</a> &lt;a href=&quot;#l3757&quot; class=&quot;line&quot; id=&quot;l3757&quot;&gt;   3757&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2620&amp;quot; id=&amp;quot;h3-0-2620&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   3796 <a href="#l3777" class="line" id="l3777">   3777</a> &lt;a href=&quot;#l3758&quot; class=&quot;line&quot; id=&quot;l3758&quot;&gt;   3758&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2621&amp;quot; id=&amp;quot;h3-0-2621&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   3797 <a href="#l3778" class="line" id="l3778">   3778</a> &lt;a href=&quot;#l3759&quot; class=&quot;line&quot; id=&quot;l3759&quot;&gt;   3759&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2622&amp;quot; id=&amp;quot;h3-0-2622&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   3798 <a href="#l3779" class="line" id="l3779">   3779</a> &lt;a href=&quot;#l3760&quot; class=&quot;line&quot; id=&quot;l3760&quot;&gt;   3760&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2623&amp;quot; id=&amp;quot;h3-0-2623&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3799 <a href="#l3780" class="line" id="l3780">   3780</a> &lt;a href=&quot;#l3761&quot; class=&quot;line&quot; id=&quot;l3761&quot;&gt;   3761&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2624&amp;quot; id=&amp;quot;h3-0-2624&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   3800 <a href="#l3781" class="line" id="l3781">   3781</a> &lt;a href=&quot;#l3762&quot; class=&quot;line&quot; id=&quot;l3762&quot;&gt;   3762&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2625&amp;quot; id=&amp;quot;h3-0-2625&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   3801 <a href="#l3782" class="line" id="l3782">   3782</a> &lt;a href=&quot;#l3763&quot; class=&quot;line&quot; id=&quot;l3763&quot;&gt;   3763&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2626&amp;quot; id=&amp;quot;h3-0-2626&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   3802 <a href="#l3783" class="line" id="l3783">   3783</a> &lt;a href=&quot;#l3764&quot; class=&quot;line&quot; id=&quot;l3764&quot;&gt;   3764&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2627&amp;quot; id=&amp;quot;h3-0-2627&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;displacementmap_vertex&amp;amp;gt;
   3803 <a href="#l3784" class="line" id="l3784">   3784</a> &lt;a href=&quot;#l3765&quot; class=&quot;line&quot; id=&quot;l3765&quot;&gt;   3765&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2628&amp;quot; id=&amp;quot;h3-0-2628&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   3804 <a href="#l3785" class="line" id="l3785">   3785</a> &lt;a href=&quot;#l3766&quot; class=&quot;line&quot; id=&quot;l3766&quot;&gt;   3766&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2629&amp;quot; id=&amp;quot;h3-0-2629&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   3805 <a href="#l3786" class="line" id="l3786">   3786</a> &lt;a href=&quot;#l3767&quot; class=&quot;line&quot; id=&quot;l3767&quot;&gt;   3767&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2630&amp;quot; id=&amp;quot;h3-0-2630&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   3806 <a href="#l3787" class="line" id="l3787">   3787</a> &lt;a href=&quot;#l3768&quot; class=&quot;line&quot; id=&quot;l3768&quot;&gt;   3768&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2631&amp;quot; id=&amp;quot;h3-0-2631&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vHighPrecisionZW = gl_Position.zw;
   3807 <a href="#l3788" class="line" id="l3788">   3788</a> &lt;a href=&quot;#l3769&quot; class=&quot;line&quot; id=&quot;l3769&quot;&gt;   3769&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2632&amp;quot; id=&amp;quot;h3-0-2632&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,d6=`#if DEPTH_PACKING == 3200
   3808 <a href="#l3789" class="line" id="l3789">   3789</a> &lt;a href=&quot;#l3770&quot; class=&quot;line&quot; id=&quot;l3770&quot;&gt;   3770&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2633&amp;quot; id=&amp;quot;h3-0-2633&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float opacity;
   3809 <a href="#l3790" class="line" id="l3790">   3790</a> &lt;a href=&quot;#l3771&quot; class=&quot;line&quot; id=&quot;l3771&quot;&gt;   3771&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2634&amp;quot; id=&amp;quot;h3-0-2634&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3810 <a href="#l3791" class="line" id="l3791">   3791</a> &lt;a href=&quot;#l3772&quot; class=&quot;line&quot; id=&quot;l3772&quot;&gt;   3772&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2635&amp;quot; id=&amp;quot;h3-0-2635&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3811 <a href="#l3792" class="line" id="l3792">   3792</a> &lt;a href=&quot;#l3773&quot; class=&quot;line&quot; id=&quot;l3773&quot;&gt;   3773&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2636&amp;quot; id=&amp;quot;h3-0-2636&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   3812 <a href="#l3793" class="line" id="l3793">   3793</a> &lt;a href=&quot;#l3774&quot; class=&quot;line&quot; id=&quot;l3774&quot;&gt;   3774&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2637&amp;quot; id=&amp;quot;h3-0-2637&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   3813 <a href="#l3794" class="line" id="l3794">   3794</a> &lt;a href=&quot;#l3775&quot; class=&quot;line&quot; id=&quot;l3775&quot;&gt;   3775&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2638&amp;quot; id=&amp;quot;h3-0-2638&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   3814 <a href="#l3795" class="line" id="l3795">   3795</a> &lt;a href=&quot;#l3776&quot; class=&quot;line&quot; id=&quot;l3776&quot;&gt;   3776&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2639&amp;quot; id=&amp;quot;h3-0-2639&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   3815 <a href="#l3796" class="line" id="l3796">   3796</a> &lt;a href=&quot;#l3777&quot; class=&quot;line&quot; id=&quot;l3777&quot;&gt;   3777&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2640&amp;quot; id=&amp;quot;h3-0-2640&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   3816 <a href="#l3797" class="line" id="l3797">   3797</a> &lt;a href=&quot;#l3778&quot; class=&quot;line&quot; id=&quot;l3778&quot;&gt;   3778&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2641&amp;quot; id=&amp;quot;h3-0-2641&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   3817 <a href="#l3798" class="line" id="l3798">   3798</a> &lt;a href=&quot;#l3779&quot; class=&quot;line&quot; id=&quot;l3779&quot;&gt;   3779&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2642&amp;quot; id=&amp;quot;h3-0-2642&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   3818 <a href="#l3799" class="line" id="l3799">   3799</a> &lt;a href=&quot;#l3780&quot; class=&quot;line&quot; id=&quot;l3780&quot;&gt;   3780&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2643&amp;quot; id=&amp;quot;h3-0-2643&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   3819 <a href="#l3800" class="line" id="l3800">   3800</a> &lt;a href=&quot;#l3781&quot; class=&quot;line&quot; id=&quot;l3781&quot;&gt;   3781&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2644&amp;quot; id=&amp;quot;h3-0-2644&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vHighPrecisionZW;
   3820 <a href="#l3801" class="line" id="l3801">   3801</a> &lt;a href=&quot;#l3782&quot; class=&quot;line&quot; id=&quot;l3782&quot;&gt;   3782&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2645&amp;quot; id=&amp;quot;h3-0-2645&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3821 <a href="#l3802" class="line" id="l3802">   3802</a> &lt;a href=&quot;#l3783&quot; class=&quot;line&quot; id=&quot;l3783&quot;&gt;   3783&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2646&amp;quot; id=&amp;quot;h3-0-2646&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( 1.0 );
   3822 <a href="#l3803" class="line" id="l3803">   3803</a> &lt;a href=&quot;#l3784&quot; class=&quot;line&quot; id=&quot;l3784&quot;&gt;   3784&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2647&amp;quot; id=&amp;quot;h3-0-2647&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   3823 <a href="#l3804" class="line" id="l3804">   3804</a> &lt;a href=&quot;#l3785&quot; class=&quot;line&quot; id=&quot;l3785&quot;&gt;   3785&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2648&amp;quot; id=&amp;quot;h3-0-2648&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if DEPTH_PACKING == 3200
   3824 <a href="#l3805" class="line" id="l3805">   3805</a> &lt;a href=&quot;#l3786&quot; class=&quot;line&quot; id=&quot;l3786&quot;&gt;   3786&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2649&amp;quot; id=&amp;quot;h3-0-2649&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		diffuseColor.a = opacity;
   3825 <a href="#l3806" class="line" id="l3806">   3806</a> &lt;a href=&quot;#l3787&quot; class=&quot;line&quot; id=&quot;l3787&quot;&gt;   3787&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2650&amp;quot; id=&amp;quot;h3-0-2650&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3826 <a href="#l3807" class="line" id="l3807">   3807</a> &lt;a href=&quot;#l3788&quot; class=&quot;line&quot; id=&quot;l3788&quot;&gt;   3788&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2651&amp;quot; id=&amp;quot;h3-0-2651&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   3827 <a href="#l3808" class="line" id="l3808">   3808</a> &lt;a href=&quot;#l3789&quot; class=&quot;line&quot; id=&quot;l3789&quot;&gt;   3789&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2652&amp;quot; id=&amp;quot;h3-0-2652&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   3828 <a href="#l3809" class="line" id="l3809">   3809</a> &lt;a href=&quot;#l3790&quot; class=&quot;line&quot; id=&quot;l3790&quot;&gt;   3790&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2653&amp;quot; id=&amp;quot;h3-0-2653&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   3829 <a href="#l3810" class="line" id="l3810">   3810</a> &lt;a href=&quot;#l3791&quot; class=&quot;line&quot; id=&quot;l3791&quot;&gt;   3791&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2654&amp;quot; id=&amp;quot;h3-0-2654&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   3830 <a href="#l3811" class="line" id="l3811">   3811</a> &lt;a href=&quot;#l3792&quot; class=&quot;line&quot; id=&quot;l3792&quot;&gt;   3792&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2655&amp;quot; id=&amp;quot;h3-0-2655&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   3831 <a href="#l3812" class="line" id="l3812">   3812</a> &lt;a href=&quot;#l3793&quot; class=&quot;line&quot; id=&quot;l3793&quot;&gt;   3793&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2656&amp;quot; id=&amp;quot;h3-0-2656&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_REVERSEDEPTHBUF
   3832 <a href="#l3813" class="line" id="l3813">   3813</a> &lt;a href=&quot;#l3794&quot; class=&quot;line&quot; id=&quot;l3794&quot;&gt;   3794&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2657&amp;quot; id=&amp;quot;h3-0-2657&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float fragCoordZ = vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ];
   3833 <a href="#l3814" class="line" id="l3814">   3814</a> &lt;a href=&quot;#l3795&quot; class=&quot;line&quot; id=&quot;l3795&quot;&gt;   3795&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2658&amp;quot; id=&amp;quot;h3-0-2658&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   3834 <a href="#l3815" class="line" id="l3815">   3815</a> &lt;a href=&quot;#l3796&quot; class=&quot;line&quot; id=&quot;l3796&quot;&gt;   3796&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2659&amp;quot; id=&amp;quot;h3-0-2659&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float fragCoordZ = 0.5 * vHighPrecisionZW[ 0 ] / vHighPrecisionZW[ 1 ] + 0.5;
   3835 <a href="#l3816" class="line" id="l3816">   3816</a> &lt;a href=&quot;#l3797&quot; class=&quot;line&quot; id=&quot;l3797&quot;&gt;   3797&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2660&amp;quot; id=&amp;quot;h3-0-2660&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3836 <a href="#l3817" class="line" id="l3817">   3817</a> &lt;a href=&quot;#l3798&quot; class=&quot;line&quot; id=&quot;l3798&quot;&gt;   3798&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2661&amp;quot; id=&amp;quot;h3-0-2661&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if DEPTH_PACKING == 3200
   3837 <a href="#l3818" class="line" id="l3818">   3818</a> &lt;a href=&quot;#l3799&quot; class=&quot;line&quot; id=&quot;l3799&quot;&gt;   3799&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2662&amp;quot; id=&amp;quot;h3-0-2662&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		gl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );
   3838 <a href="#l3819" class="line" id="l3819">   3819</a> &lt;a href=&quot;#l3800&quot; class=&quot;line&quot; id=&quot;l3800&quot;&gt;   3800&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2663&amp;quot; id=&amp;quot;h3-0-2663&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#elif DEPTH_PACKING == 3201
   3839 <a href="#l3820" class="line" id="l3820">   3820</a> &lt;a href=&quot;#l3801&quot; class=&quot;line&quot; id=&quot;l3801&quot;&gt;   3801&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2664&amp;quot; id=&amp;quot;h3-0-2664&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		gl_FragColor = packDepthToRGBA( fragCoordZ );
   3840 <a href="#l3821" class="line" id="l3821">   3821</a> &lt;a href=&quot;#l3802&quot; class=&quot;line&quot; id=&quot;l3802&quot;&gt;   3802&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2665&amp;quot; id=&amp;quot;h3-0-2665&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#elif DEPTH_PACKING == 3202
   3841 <a href="#l3822" class="line" id="l3822">   3822</a> &lt;a href=&quot;#l3803&quot; class=&quot;line&quot; id=&quot;l3803&quot;&gt;   3803&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2666&amp;quot; id=&amp;quot;h3-0-2666&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		gl_FragColor = vec4( packDepthToRGB( fragCoordZ ), 1.0 );
   3842 <a href="#l3823" class="line" id="l3823">   3823</a> &lt;a href=&quot;#l3804&quot; class=&quot;line&quot; id=&quot;l3804&quot;&gt;   3804&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2667&amp;quot; id=&amp;quot;h3-0-2667&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#elif DEPTH_PACKING == 3203
   3843 <a href="#l3824" class="line" id="l3824">   3824</a> &lt;a href=&quot;#l3805&quot; class=&quot;line&quot; id=&quot;l3805&quot;&gt;   3805&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2668&amp;quot; id=&amp;quot;h3-0-2668&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		gl_FragColor = vec4( packDepthToRG( fragCoordZ ), 0.0, 1.0 );
   3844 <a href="#l3825" class="line" id="l3825">   3825</a> &lt;a href=&quot;#l3806&quot; class=&quot;line&quot; id=&quot;l3806&quot;&gt;   3806&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2669&amp;quot; id=&amp;quot;h3-0-2669&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3845 <a href="#l3826" class="line" id="l3826">   3826</a> &lt;a href=&quot;#l3807&quot; class=&quot;line&quot; id=&quot;l3807&quot;&gt;   3807&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2670&amp;quot; id=&amp;quot;h3-0-2670&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,p6=`#define DISTANCE
   3846 <a href="#l3827" class="line" id="l3827">   3827</a> &lt;a href=&quot;#l3808&quot; class=&quot;line&quot; id=&quot;l3808&quot;&gt;   3808&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2671&amp;quot; id=&amp;quot;h3-0-2671&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vWorldPosition;
   3847 <a href="#l3828" class="line" id="l3828">   3828</a> &lt;a href=&quot;#l3809&quot; class=&quot;line&quot; id=&quot;l3809&quot;&gt;   3809&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2672&amp;quot; id=&amp;quot;h3-0-2672&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3848 <a href="#l3829" class="line" id="l3829">   3829</a> &lt;a href=&quot;#l3810&quot; class=&quot;line&quot; id=&quot;l3810&quot;&gt;   3810&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2673&amp;quot; id=&amp;quot;h3-0-2673&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   3849 <a href="#l3830" class="line" id="l3830">   3830</a> &lt;a href=&quot;#l3811&quot; class=&quot;line&quot; id=&quot;l3811&quot;&gt;   3811&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2674&amp;quot; id=&amp;quot;h3-0-2674&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   3850 <a href="#l3831" class="line" id="l3831">   3831</a> &lt;a href=&quot;#l3812&quot; class=&quot;line&quot; id=&quot;l3812&quot;&gt;   3812&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2675&amp;quot; id=&amp;quot;h3-0-2675&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;displacementmap_pars_vertex&amp;amp;gt;
   3851 <a href="#l3832" class="line" id="l3832">   3832</a> &lt;a href=&quot;#l3813&quot; class=&quot;line&quot; id=&quot;l3813&quot;&gt;   3813&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2676&amp;quot; id=&amp;quot;h3-0-2676&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   3852 <a href="#l3833" class="line" id="l3833">   3833</a> &lt;a href=&quot;#l3814&quot; class=&quot;line&quot; id=&quot;l3814&quot;&gt;   3814&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2677&amp;quot; id=&amp;quot;h3-0-2677&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   3853 <a href="#l3834" class="line" id="l3834">   3834</a> &lt;a href=&quot;#l3815&quot; class=&quot;line&quot; id=&quot;l3815&quot;&gt;   3815&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2678&amp;quot; id=&amp;quot;h3-0-2678&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   3854 <a href="#l3835" class="line" id="l3835">   3835</a> &lt;a href=&quot;#l3816&quot; class=&quot;line&quot; id=&quot;l3816&quot;&gt;   3816&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2679&amp;quot; id=&amp;quot;h3-0-2679&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3855 <a href="#l3836" class="line" id="l3836">   3836</a> &lt;a href=&quot;#l3817&quot; class=&quot;line&quot; id=&quot;l3817&quot;&gt;   3817&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2680&amp;quot; id=&amp;quot;h3-0-2680&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   3856 <a href="#l3837" class="line" id="l3837">   3837</a> &lt;a href=&quot;#l3818&quot; class=&quot;line&quot; id=&quot;l3818&quot;&gt;   3818&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2681&amp;quot; id=&amp;quot;h3-0-2681&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   3857 <a href="#l3838" class="line" id="l3838">   3838</a> &lt;a href=&quot;#l3819&quot; class=&quot;line&quot; id=&quot;l3819&quot;&gt;   3819&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2682&amp;quot; id=&amp;quot;h3-0-2682&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   3858 <a href="#l3839" class="line" id="l3839">   3839</a> &lt;a href=&quot;#l3820&quot; class=&quot;line&quot; id=&quot;l3820&quot;&gt;   3820&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2683&amp;quot; id=&amp;quot;h3-0-2683&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   3859 <a href="#l3840" class="line" id="l3840">   3840</a> &lt;a href=&quot;#l3821&quot; class=&quot;line&quot; id=&quot;l3821&quot;&gt;   3821&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2684&amp;quot; id=&amp;quot;h3-0-2684&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_DISPLACEMENTMAP
   3860 <a href="#l3841" class="line" id="l3841">   3841</a> &lt;a href=&quot;#l3822&quot; class=&quot;line&quot; id=&quot;l3822&quot;&gt;   3822&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2685&amp;quot; id=&amp;quot;h3-0-2685&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   3861 <a href="#l3842" class="line" id="l3842">   3842</a> &lt;a href=&quot;#l3823&quot; class=&quot;line&quot; id=&quot;l3823&quot;&gt;   3823&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2686&amp;quot; id=&amp;quot;h3-0-2686&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   3862 <a href="#l3843" class="line" id="l3843">   3843</a> &lt;a href=&quot;#l3824&quot; class=&quot;line&quot; id=&quot;l3824&quot;&gt;   3824&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2687&amp;quot; id=&amp;quot;h3-0-2687&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   3863 <a href="#l3844" class="line" id="l3844">   3844</a> &lt;a href=&quot;#l3825&quot; class=&quot;line&quot; id=&quot;l3825&quot;&gt;   3825&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2688&amp;quot; id=&amp;quot;h3-0-2688&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3864 <a href="#l3845" class="line" id="l3845">   3845</a> &lt;a href=&quot;#l3826&quot; class=&quot;line&quot; id=&quot;l3826&quot;&gt;   3826&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2689&amp;quot; id=&amp;quot;h3-0-2689&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   3865 <a href="#l3846" class="line" id="l3846">   3846</a> &lt;a href=&quot;#l3827&quot; class=&quot;line&quot; id=&quot;l3827&quot;&gt;   3827&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2690&amp;quot; id=&amp;quot;h3-0-2690&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   3866 <a href="#l3847" class="line" id="l3847">   3847</a> &lt;a href=&quot;#l3828&quot; class=&quot;line&quot; id=&quot;l3828&quot;&gt;   3828&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2691&amp;quot; id=&amp;quot;h3-0-2691&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   3867 <a href="#l3848" class="line" id="l3848">   3848</a> &lt;a href=&quot;#l3829&quot; class=&quot;line&quot; id=&quot;l3829&quot;&gt;   3829&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2692&amp;quot; id=&amp;quot;h3-0-2692&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;displacementmap_vertex&amp;amp;gt;
   3868 <a href="#l3849" class="line" id="l3849">   3849</a> &lt;a href=&quot;#l3830&quot; class=&quot;line&quot; id=&quot;l3830&quot;&gt;   3830&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2693&amp;quot; id=&amp;quot;h3-0-2693&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   3869 <a href="#l3850" class="line" id="l3850">   3850</a> &lt;a href=&quot;#l3831&quot; class=&quot;line&quot; id=&quot;l3831&quot;&gt;   3831&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2694&amp;quot; id=&amp;quot;h3-0-2694&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;worldpos_vertex&amp;amp;gt;
   3870 <a href="#l3851" class="line" id="l3851">   3851</a> &lt;a href=&quot;#l3832&quot; class=&quot;line&quot; id=&quot;l3832&quot;&gt;   3832&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2695&amp;quot; id=&amp;quot;h3-0-2695&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   3871 <a href="#l3852" class="line" id="l3852">   3852</a> &lt;a href=&quot;#l3833&quot; class=&quot;line&quot; id=&quot;l3833&quot;&gt;   3833&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2696&amp;quot; id=&amp;quot;h3-0-2696&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vWorldPosition = worldPosition.xyz;
   3872 <a href="#l3853" class="line" id="l3853">   3853</a> &lt;a href=&quot;#l3834&quot; class=&quot;line&quot; id=&quot;l3834&quot;&gt;   3834&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2697&amp;quot; id=&amp;quot;h3-0-2697&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,m6=`#define DISTANCE
   3873 <a href="#l3854" class="line" id="l3854">   3854</a> &lt;a href=&quot;#l3835&quot; class=&quot;line&quot; id=&quot;l3835&quot;&gt;   3835&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2698&amp;quot; id=&amp;quot;h3-0-2698&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 referencePosition;
   3874 <a href="#l3855" class="line" id="l3855">   3855</a> &lt;a href=&quot;#l3836&quot; class=&quot;line&quot; id=&quot;l3836&quot;&gt;   3836&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2699&amp;quot; id=&amp;quot;h3-0-2699&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float nearDistance;
   3875 <a href="#l3856" class="line" id="l3856">   3856</a> &lt;a href=&quot;#l3837&quot; class=&quot;line&quot; id=&quot;l3837&quot;&gt;   3837&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2700&amp;quot; id=&amp;quot;h3-0-2700&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float farDistance;
   3876 <a href="#l3857" class="line" id="l3857">   3857</a> &lt;a href=&quot;#l3838&quot; class=&quot;line&quot; id=&quot;l3838&quot;&gt;   3838&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2701&amp;quot; id=&amp;quot;h3-0-2701&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vWorldPosition;
   3877 <a href="#l3858" class="line" id="l3858">   3858</a> &lt;a href=&quot;#l3839&quot; class=&quot;line&quot; id=&quot;l3839&quot;&gt;   3839&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2702&amp;quot; id=&amp;quot;h3-0-2702&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3878 <a href="#l3859" class="line" id="l3859">   3859</a> &lt;a href=&quot;#l3840&quot; class=&quot;line&quot; id=&quot;l3840&quot;&gt;   3840&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2703&amp;quot; id=&amp;quot;h3-0-2703&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   3879 <a href="#l3860" class="line" id="l3860">   3860</a> &lt;a href=&quot;#l3841&quot; class=&quot;line&quot; id=&quot;l3841&quot;&gt;   3841&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2704&amp;quot; id=&amp;quot;h3-0-2704&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   3880 <a href="#l3861" class="line" id="l3861">   3861</a> &lt;a href=&quot;#l3842&quot; class=&quot;line&quot; id=&quot;l3842&quot;&gt;   3842&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2705&amp;quot; id=&amp;quot;h3-0-2705&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   3881 <a href="#l3862" class="line" id="l3862">   3862</a> &lt;a href=&quot;#l3843&quot; class=&quot;line&quot; id=&quot;l3843&quot;&gt;   3843&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2706&amp;quot; id=&amp;quot;h3-0-2706&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   3882 <a href="#l3863" class="line" id="l3863">   3863</a> &lt;a href=&quot;#l3844&quot; class=&quot;line&quot; id=&quot;l3844&quot;&gt;   3844&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2707&amp;quot; id=&amp;quot;h3-0-2707&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   3883 <a href="#l3864" class="line" id="l3864">   3864</a> &lt;a href=&quot;#l3845&quot; class=&quot;line&quot; id=&quot;l3845&quot;&gt;   3845&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2708&amp;quot; id=&amp;quot;h3-0-2708&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   3884 <a href="#l3865" class="line" id="l3865">   3865</a> &lt;a href=&quot;#l3846&quot; class=&quot;line&quot; id=&quot;l3846&quot;&gt;   3846&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2709&amp;quot; id=&amp;quot;h3-0-2709&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   3885 <a href="#l3866" class="line" id="l3866">   3866</a> &lt;a href=&quot;#l3847&quot; class=&quot;line&quot; id=&quot;l3847&quot;&gt;   3847&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2710&amp;quot; id=&amp;quot;h3-0-2710&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main () {
   3886 <a href="#l3867" class="line" id="l3867">   3867</a> &lt;a href=&quot;#l3848&quot; class=&quot;line&quot; id=&quot;l3848&quot;&gt;   3848&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2711&amp;quot; id=&amp;quot;h3-0-2711&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( 1.0 );
   3887 <a href="#l3868" class="line" id="l3868">   3868</a> &lt;a href=&quot;#l3849&quot; class=&quot;line&quot; id=&quot;l3849&quot;&gt;   3849&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2712&amp;quot; id=&amp;quot;h3-0-2712&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   3888 <a href="#l3869" class="line" id="l3869">   3869</a> &lt;a href=&quot;#l3850&quot; class=&quot;line&quot; id=&quot;l3850&quot;&gt;   3850&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2713&amp;quot; id=&amp;quot;h3-0-2713&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   3889 <a href="#l3870" class="line" id="l3870">   3870</a> &lt;a href=&quot;#l3851&quot; class=&quot;line&quot; id=&quot;l3851&quot;&gt;   3851&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2714&amp;quot; id=&amp;quot;h3-0-2714&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   3890 <a href="#l3871" class="line" id="l3871">   3871</a> &lt;a href=&quot;#l3852&quot; class=&quot;line&quot; id=&quot;l3852&quot;&gt;   3852&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2715&amp;quot; id=&amp;quot;h3-0-2715&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   3891 <a href="#l3872" class="line" id="l3872">   3872</a> &lt;a href=&quot;#l3853&quot; class=&quot;line&quot; id=&quot;l3853&quot;&gt;   3853&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2716&amp;quot; id=&amp;quot;h3-0-2716&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   3892 <a href="#l3873" class="line" id="l3873">   3873</a> &lt;a href=&quot;#l3854&quot; class=&quot;line&quot; id=&quot;l3854&quot;&gt;   3854&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2717&amp;quot; id=&amp;quot;h3-0-2717&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float dist = length( vWorldPosition - referencePosition );
   3893 <a href="#l3874" class="line" id="l3874">   3874</a> &lt;a href=&quot;#l3855&quot; class=&quot;line&quot; id=&quot;l3855&quot;&gt;   3855&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2718&amp;quot; id=&amp;quot;h3-0-2718&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	dist = ( dist - nearDistance ) / ( farDistance - nearDistance );
   3894 <a href="#l3875" class="line" id="l3875">   3875</a> &lt;a href=&quot;#l3856&quot; class=&quot;line&quot; id=&quot;l3856&quot;&gt;   3856&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2719&amp;quot; id=&amp;quot;h3-0-2719&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	dist = saturate( dist );
   3895 <a href="#l3876" class="line" id="l3876">   3876</a> &lt;a href=&quot;#l3857&quot; class=&quot;line&quot; id=&quot;l3857&quot;&gt;   3857&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2720&amp;quot; id=&amp;quot;h3-0-2720&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = packDepthToRGBA( dist );
   3896 <a href="#l3877" class="line" id="l3877">   3877</a> &lt;a href=&quot;#l3858&quot; class=&quot;line&quot; id=&quot;l3858&quot;&gt;   3858&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2721&amp;quot; id=&amp;quot;h3-0-2721&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,g6=`varying vec3 vWorldDirection;
   3897 <a href="#l3878" class="line" id="l3878">   3878</a> &lt;a href=&quot;#l3859&quot; class=&quot;line&quot; id=&quot;l3859&quot;&gt;   3859&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2722&amp;quot; id=&amp;quot;h3-0-2722&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3898 <a href="#l3879" class="line" id="l3879">   3879</a> &lt;a href=&quot;#l3860&quot; class=&quot;line&quot; id=&quot;l3860&quot;&gt;   3860&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2723&amp;quot; id=&amp;quot;h3-0-2723&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3899 <a href="#l3880" class="line" id="l3880">   3880</a> &lt;a href=&quot;#l3861&quot; class=&quot;line&quot; id=&quot;l3861&quot;&gt;   3861&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2724&amp;quot; id=&amp;quot;h3-0-2724&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vWorldDirection = transformDirection( position, modelMatrix );
   3900 <a href="#l3881" class="line" id="l3881">   3881</a> &lt;a href=&quot;#l3862&quot; class=&quot;line&quot; id=&quot;l3862&quot;&gt;   3862&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2725&amp;quot; id=&amp;quot;h3-0-2725&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   3901 <a href="#l3882" class="line" id="l3882">   3882</a> &lt;a href=&quot;#l3863&quot; class=&quot;line&quot; id=&quot;l3863&quot;&gt;   3863&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2726&amp;quot; id=&amp;quot;h3-0-2726&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   3902 <a href="#l3883" class="line" id="l3883">   3883</a> &lt;a href=&quot;#l3864&quot; class=&quot;line&quot; id=&quot;l3864&quot;&gt;   3864&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2727&amp;quot; id=&amp;quot;h3-0-2727&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,v6=`uniform sampler2D tEquirect;
   3903 <a href="#l3884" class="line" id="l3884">   3884</a> &lt;a href=&quot;#l3865&quot; class=&quot;line&quot; id=&quot;l3865&quot;&gt;   3865&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2728&amp;quot; id=&amp;quot;h3-0-2728&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vWorldDirection;
   3904 <a href="#l3885" class="line" id="l3885">   3885</a> &lt;a href=&quot;#l3866&quot; class=&quot;line&quot; id=&quot;l3866&quot;&gt;   3866&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2729&amp;quot; id=&amp;quot;h3-0-2729&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3905 <a href="#l3886" class="line" id="l3886">   3886</a> &lt;a href=&quot;#l3867&quot; class=&quot;line&quot; id=&quot;l3867&quot;&gt;   3867&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2730&amp;quot; id=&amp;quot;h3-0-2730&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3906 <a href="#l3887" class="line" id="l3887">   3887</a> &lt;a href=&quot;#l3868&quot; class=&quot;line&quot; id=&quot;l3868&quot;&gt;   3868&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2731&amp;quot; id=&amp;quot;h3-0-2731&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 direction = normalize( vWorldDirection );
   3907 <a href="#l3888" class="line" id="l3888">   3888</a> &lt;a href=&quot;#l3869&quot; class=&quot;line&quot; id=&quot;l3869&quot;&gt;   3869&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2732&amp;quot; id=&amp;quot;h3-0-2732&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 sampleUV = equirectUv( direction );
   3908 <a href="#l3889" class="line" id="l3889">   3889</a> &lt;a href=&quot;#l3870&quot; class=&quot;line&quot; id=&quot;l3870&quot;&gt;   3870&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2733&amp;quot; id=&amp;quot;h3-0-2733&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = texture2D( tEquirect, sampleUV );
   3909 <a href="#l3890" class="line" id="l3890">   3890</a> &lt;a href=&quot;#l3871&quot; class=&quot;line&quot; id=&quot;l3871&quot;&gt;   3871&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2734&amp;quot; id=&amp;quot;h3-0-2734&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   3910 <a href="#l3891" class="line" id="l3891">   3891</a> &lt;a href=&quot;#l3872&quot; class=&quot;line&quot; id=&quot;l3872&quot;&gt;   3872&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2735&amp;quot; id=&amp;quot;h3-0-2735&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   3911 <a href="#l3892" class="line" id="l3892">   3892</a> &lt;a href=&quot;#l3873&quot; class=&quot;line&quot; id=&quot;l3873&quot;&gt;   3873&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2736&amp;quot; id=&amp;quot;h3-0-2736&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,y6=`uniform float scale;
   3912 <a href="#l3893" class="line" id="l3893">   3893</a> &lt;a href=&quot;#l3874&quot; class=&quot;line&quot; id=&quot;l3874&quot;&gt;   3874&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2737&amp;quot; id=&amp;quot;h3-0-2737&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+attribute float lineDistance;
   3913 <a href="#l3894" class="line" id="l3894">   3894</a> &lt;a href=&quot;#l3875&quot; class=&quot;line&quot; id=&quot;l3875&quot;&gt;   3875&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2738&amp;quot; id=&amp;quot;h3-0-2738&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying float vLineDistance;
   3914 <a href="#l3895" class="line" id="l3895">   3895</a> &lt;a href=&quot;#l3876&quot; class=&quot;line&quot; id=&quot;l3876&quot;&gt;   3876&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2739&amp;quot; id=&amp;quot;h3-0-2739&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3915 <a href="#l3896" class="line" id="l3896">   3896</a> &lt;a href=&quot;#l3877&quot; class=&quot;line&quot; id=&quot;l3877&quot;&gt;   3877&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2740&amp;quot; id=&amp;quot;h3-0-2740&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   3916 <a href="#l3897" class="line" id="l3897">   3897</a> &lt;a href=&quot;#l3878&quot; class=&quot;line&quot; id=&quot;l3878&quot;&gt;   3878&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2741&amp;quot; id=&amp;quot;h3-0-2741&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_vertex&amp;amp;gt;
   3917 <a href="#l3898" class="line" id="l3898">   3898</a> &lt;a href=&quot;#l3879&quot; class=&quot;line&quot; id=&quot;l3879&quot;&gt;   3879&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2742&amp;quot; id=&amp;quot;h3-0-2742&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   3918 <a href="#l3899" class="line" id="l3899">   3899</a> &lt;a href=&quot;#l3880&quot; class=&quot;line&quot; id=&quot;l3880&quot;&gt;   3880&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2743&amp;quot; id=&amp;quot;h3-0-2743&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   3919 <a href="#l3900" class="line" id="l3900">   3900</a> &lt;a href=&quot;#l3881&quot; class=&quot;line&quot; id=&quot;l3881&quot;&gt;   3881&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2744&amp;quot; id=&amp;quot;h3-0-2744&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   3920 <a href="#l3901" class="line" id="l3901">   3901</a> &lt;a href=&quot;#l3882&quot; class=&quot;line&quot; id=&quot;l3882&quot;&gt;   3882&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2745&amp;quot; id=&amp;quot;h3-0-2745&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   3921 <a href="#l3902" class="line" id="l3902">   3902</a> &lt;a href=&quot;#l3883&quot; class=&quot;line&quot; id=&quot;l3883&quot;&gt;   3883&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2746&amp;quot; id=&amp;quot;h3-0-2746&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3922 <a href="#l3903" class="line" id="l3903">   3903</a> &lt;a href=&quot;#l3884&quot; class=&quot;line&quot; id=&quot;l3884&quot;&gt;   3884&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2747&amp;quot; id=&amp;quot;h3-0-2747&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vLineDistance = scale * lineDistance;
   3923 <a href="#l3904" class="line" id="l3904">   3904</a> &lt;a href=&quot;#l3885&quot; class=&quot;line&quot; id=&quot;l3885&quot;&gt;   3885&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2748&amp;quot; id=&amp;quot;h3-0-2748&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   3924 <a href="#l3905" class="line" id="l3905">   3905</a> &lt;a href=&quot;#l3886&quot; class=&quot;line&quot; id=&quot;l3886&quot;&gt;   3886&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2749&amp;quot; id=&amp;quot;h3-0-2749&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_vertex&amp;amp;gt;
   3925 <a href="#l3906" class="line" id="l3906">   3906</a> &lt;a href=&quot;#l3887&quot; class=&quot;line&quot; id=&quot;l3887&quot;&gt;   3887&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2750&amp;quot; id=&amp;quot;h3-0-2750&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   3926 <a href="#l3907" class="line" id="l3907">   3907</a> &lt;a href=&quot;#l3888&quot; class=&quot;line&quot; id=&quot;l3888&quot;&gt;   3888&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2751&amp;quot; id=&amp;quot;h3-0-2751&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphcolor_vertex&amp;amp;gt;
   3927 <a href="#l3908" class="line" id="l3908">   3908</a> &lt;a href=&quot;#l3889&quot; class=&quot;line&quot; id=&quot;l3889&quot;&gt;   3889&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2752&amp;quot; id=&amp;quot;h3-0-2752&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   3928 <a href="#l3909" class="line" id="l3909">   3909</a> &lt;a href=&quot;#l3890&quot; class=&quot;line&quot; id=&quot;l3890&quot;&gt;   3890&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2753&amp;quot; id=&amp;quot;h3-0-2753&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   3929 <a href="#l3910" class="line" id="l3910">   3910</a> &lt;a href=&quot;#l3891&quot; class=&quot;line&quot; id=&quot;l3891&quot;&gt;   3891&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2754&amp;quot; id=&amp;quot;h3-0-2754&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   3930 <a href="#l3911" class="line" id="l3911">   3911</a> &lt;a href=&quot;#l3892&quot; class=&quot;line&quot; id=&quot;l3892&quot;&gt;   3892&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2755&amp;quot; id=&amp;quot;h3-0-2755&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   3931 <a href="#l3912" class="line" id="l3912">   3912</a> &lt;a href=&quot;#l3893&quot; class=&quot;line&quot; id=&quot;l3893&quot;&gt;   3893&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2756&amp;quot; id=&amp;quot;h3-0-2756&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   3932 <a href="#l3913" class="line" id="l3913">   3913</a> &lt;a href=&quot;#l3894&quot; class=&quot;line&quot; id=&quot;l3894&quot;&gt;   3894&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2757&amp;quot; id=&amp;quot;h3-0-2757&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   3933 <a href="#l3914" class="line" id="l3914">   3914</a> &lt;a href=&quot;#l3895&quot; class=&quot;line&quot; id=&quot;l3895&quot;&gt;   3895&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2758&amp;quot; id=&amp;quot;h3-0-2758&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,_6=`uniform vec3 diffuse;
   3934 <a href="#l3915" class="line" id="l3915">   3915</a> &lt;a href=&quot;#l3896&quot; class=&quot;line&quot; id=&quot;l3896&quot;&gt;   3896&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2759&amp;quot; id=&amp;quot;h3-0-2759&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   3935 <a href="#l3916" class="line" id="l3916">   3916</a> &lt;a href=&quot;#l3897&quot; class=&quot;line&quot; id=&quot;l3897&quot;&gt;   3897&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2760&amp;quot; id=&amp;quot;h3-0-2760&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float dashSize;
   3936 <a href="#l3917" class="line" id="l3917">   3917</a> &lt;a href=&quot;#l3898&quot; class=&quot;line&quot; id=&quot;l3898&quot;&gt;   3898&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2761&amp;quot; id=&amp;quot;h3-0-2761&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float totalSize;
   3937 <a href="#l3918" class="line" id="l3918">   3918</a> &lt;a href=&quot;#l3899&quot; class=&quot;line&quot; id=&quot;l3899&quot;&gt;   3899&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2762&amp;quot; id=&amp;quot;h3-0-2762&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying float vLineDistance;
   3938 <a href="#l3919" class="line" id="l3919">   3919</a> &lt;a href=&quot;#l3900&quot; class=&quot;line&quot; id=&quot;l3900&quot;&gt;   3900&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2763&amp;quot; id=&amp;quot;h3-0-2763&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3939 <a href="#l3920" class="line" id="l3920">   3920</a> &lt;a href=&quot;#l3901&quot; class=&quot;line&quot; id=&quot;l3901&quot;&gt;   3901&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2764&amp;quot; id=&amp;quot;h3-0-2764&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_fragment&amp;amp;gt;
   3940 <a href="#l3921" class="line" id="l3921">   3921</a> &lt;a href=&quot;#l3902&quot; class=&quot;line&quot; id=&quot;l3902&quot;&gt;   3902&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2765&amp;quot; id=&amp;quot;h3-0-2765&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   3941 <a href="#l3922" class="line" id="l3922">   3922</a> &lt;a href=&quot;#l3903&quot; class=&quot;line&quot; id=&quot;l3903&quot;&gt;   3903&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2766&amp;quot; id=&amp;quot;h3-0-2766&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   3942 <a href="#l3923" class="line" id="l3923">   3923</a> &lt;a href=&quot;#l3904&quot; class=&quot;line&quot; id=&quot;l3904&quot;&gt;   3904&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2767&amp;quot; id=&amp;quot;h3-0-2767&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   3943 <a href="#l3924" class="line" id="l3924">   3924</a> &lt;a href=&quot;#l3905&quot; class=&quot;line&quot; id=&quot;l3905&quot;&gt;   3905&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2768&amp;quot; id=&amp;quot;h3-0-2768&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   3944 <a href="#l3925" class="line" id="l3925">   3925</a> &lt;a href=&quot;#l3906&quot; class=&quot;line&quot; id=&quot;l3906&quot;&gt;   3906&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2769&amp;quot; id=&amp;quot;h3-0-2769&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   3945 <a href="#l3926" class="line" id="l3926">   3926</a> &lt;a href=&quot;#l3907&quot; class=&quot;line&quot; id=&quot;l3907&quot;&gt;   3907&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2770&amp;quot; id=&amp;quot;h3-0-2770&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3946 <a href="#l3927" class="line" id="l3927">   3927</a> &lt;a href=&quot;#l3908&quot; class=&quot;line&quot; id=&quot;l3908&quot;&gt;   3908&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2771&amp;quot; id=&amp;quot;h3-0-2771&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   3947 <a href="#l3928" class="line" id="l3928">   3928</a> &lt;a href=&quot;#l3909&quot; class=&quot;line&quot; id=&quot;l3909&quot;&gt;   3909&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2772&amp;quot; id=&amp;quot;h3-0-2772&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   3948 <a href="#l3929" class="line" id="l3929">   3929</a> &lt;a href=&quot;#l3910&quot; class=&quot;line&quot; id=&quot;l3910&quot;&gt;   3910&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2773&amp;quot; id=&amp;quot;h3-0-2773&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( mod( vLineDistance, totalSize ) &amp;amp;gt; dashSize ) {
   3949 <a href="#l3930" class="line" id="l3930">   3930</a> &lt;a href=&quot;#l3911&quot; class=&quot;line&quot; id=&quot;l3911&quot;&gt;   3911&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2774&amp;quot; id=&amp;quot;h3-0-2774&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		discard;
   3950 <a href="#l3931" class="line" id="l3931">   3931</a> &lt;a href=&quot;#l3912&quot; class=&quot;line&quot; id=&quot;l3912&quot;&gt;   3912&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2775&amp;quot; id=&amp;quot;h3-0-2775&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   3951 <a href="#l3932" class="line" id="l3932">   3932</a> &lt;a href=&quot;#l3913&quot; class=&quot;line&quot; id=&quot;l3913&quot;&gt;   3913&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2776&amp;quot; id=&amp;quot;h3-0-2776&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = vec3( 0.0 );
   3952 <a href="#l3933" class="line" id="l3933">   3933</a> &lt;a href=&quot;#l3914&quot; class=&quot;line&quot; id=&quot;l3914&quot;&gt;   3914&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2777&amp;quot; id=&amp;quot;h3-0-2777&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   3953 <a href="#l3934" class="line" id="l3934">   3934</a> &lt;a href=&quot;#l3915&quot; class=&quot;line&quot; id=&quot;l3915&quot;&gt;   3915&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2778&amp;quot; id=&amp;quot;h3-0-2778&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   3954 <a href="#l3935" class="line" id="l3935">   3935</a> &lt;a href=&quot;#l3916&quot; class=&quot;line&quot; id=&quot;l3916&quot;&gt;   3916&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2779&amp;quot; id=&amp;quot;h3-0-2779&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_fragment&amp;amp;gt;
   3955 <a href="#l3936" class="line" id="l3936">   3936</a> &lt;a href=&quot;#l3917&quot; class=&quot;line&quot; id=&quot;l3917&quot;&gt;   3917&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2780&amp;quot; id=&amp;quot;h3-0-2780&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	outgoingLight = diffuseColor.rgb;
   3956 <a href="#l3937" class="line" id="l3937">   3937</a> &lt;a href=&quot;#l3918&quot; class=&quot;line&quot; id=&quot;l3918&quot;&gt;   3918&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2781&amp;quot; id=&amp;quot;h3-0-2781&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   3957 <a href="#l3938" class="line" id="l3938">   3938</a> &lt;a href=&quot;#l3919&quot; class=&quot;line&quot; id=&quot;l3919&quot;&gt;   3919&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2782&amp;quot; id=&amp;quot;h3-0-2782&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   3958 <a href="#l3939" class="line" id="l3939">   3939</a> &lt;a href=&quot;#l3920&quot; class=&quot;line&quot; id=&quot;l3920&quot;&gt;   3920&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2783&amp;quot; id=&amp;quot;h3-0-2783&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   3959 <a href="#l3940" class="line" id="l3940">   3940</a> &lt;a href=&quot;#l3921&quot; class=&quot;line&quot; id=&quot;l3921&quot;&gt;   3921&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2784&amp;quot; id=&amp;quot;h3-0-2784&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   3960 <a href="#l3941" class="line" id="l3941">   3941</a> &lt;a href=&quot;#l3922&quot; class=&quot;line&quot; id=&quot;l3922&quot;&gt;   3922&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2785&amp;quot; id=&amp;quot;h3-0-2785&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;premultiplied_alpha_fragment&amp;amp;gt;
   3961 <a href="#l3942" class="line" id="l3942">   3942</a> &lt;a href=&quot;#l3923&quot; class=&quot;line&quot; id=&quot;l3923&quot;&gt;   3923&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2786&amp;quot; id=&amp;quot;h3-0-2786&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,x6=`#include &amp;amp;lt;common&amp;amp;gt;
   3962 <a href="#l3943" class="line" id="l3943">   3943</a> &lt;a href=&quot;#l3924&quot; class=&quot;line&quot; id=&quot;l3924&quot;&gt;   3924&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2787&amp;quot; id=&amp;quot;h3-0-2787&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   3963 <a href="#l3944" class="line" id="l3944">   3944</a> &lt;a href=&quot;#l3925&quot; class=&quot;line&quot; id=&quot;l3925&quot;&gt;   3925&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2788&amp;quot; id=&amp;quot;h3-0-2788&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   3964 <a href="#l3945" class="line" id="l3945">   3945</a> &lt;a href=&quot;#l3926&quot; class=&quot;line&quot; id=&quot;l3926&quot;&gt;   3926&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2789&amp;quot; id=&amp;quot;h3-0-2789&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_pars_vertex&amp;amp;gt;
   3965 <a href="#l3946" class="line" id="l3946">   3946</a> &lt;a href=&quot;#l3927&quot; class=&quot;line&quot; id=&quot;l3927&quot;&gt;   3927&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2790&amp;quot; id=&amp;quot;h3-0-2790&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_vertex&amp;amp;gt;
   3966 <a href="#l3947" class="line" id="l3947">   3947</a> &lt;a href=&quot;#l3928&quot; class=&quot;line&quot; id=&quot;l3928&quot;&gt;   3928&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2791&amp;quot; id=&amp;quot;h3-0-2791&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   3967 <a href="#l3948" class="line" id="l3948">   3948</a> &lt;a href=&quot;#l3929&quot; class=&quot;line&quot; id=&quot;l3929&quot;&gt;   3929&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2792&amp;quot; id=&amp;quot;h3-0-2792&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   3968 <a href="#l3949" class="line" id="l3949">   3949</a> &lt;a href=&quot;#l3930&quot; class=&quot;line&quot; id=&quot;l3930&quot;&gt;   3930&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2793&amp;quot; id=&amp;quot;h3-0-2793&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   3969 <a href="#l3950" class="line" id="l3950">   3950</a> &lt;a href=&quot;#l3931&quot; class=&quot;line&quot; id=&quot;l3931&quot;&gt;   3931&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2794&amp;quot; id=&amp;quot;h3-0-2794&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   3970 <a href="#l3951" class="line" id="l3951">   3951</a> &lt;a href=&quot;#l3932&quot; class=&quot;line&quot; id=&quot;l3932&quot;&gt;   3932&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2795&amp;quot; id=&amp;quot;h3-0-2795&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   3971 <a href="#l3952" class="line" id="l3952">   3952</a> &lt;a href=&quot;#l3933&quot; class=&quot;line&quot; id=&quot;l3933&quot;&gt;   3933&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2796&amp;quot; id=&amp;quot;h3-0-2796&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   3972 <a href="#l3953" class="line" id="l3953">   3953</a> &lt;a href=&quot;#l3934&quot; class=&quot;line&quot; id=&quot;l3934&quot;&gt;   3934&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2797&amp;quot; id=&amp;quot;h3-0-2797&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   3973 <a href="#l3954" class="line" id="l3954">   3954</a> &lt;a href=&quot;#l3935&quot; class=&quot;line&quot; id=&quot;l3935&quot;&gt;   3935&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2798&amp;quot; id=&amp;quot;h3-0-2798&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_vertex&amp;amp;gt;
   3974 <a href="#l3955" class="line" id="l3955">   3955</a> &lt;a href=&quot;#l3936&quot; class=&quot;line&quot; id=&quot;l3936&quot;&gt;   3936&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2799&amp;quot; id=&amp;quot;h3-0-2799&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   3975 <a href="#l3956" class="line" id="l3956">   3956</a> &lt;a href=&quot;#l3937&quot; class=&quot;line&quot; id=&quot;l3937&quot;&gt;   3937&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2800&amp;quot; id=&amp;quot;h3-0-2800&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphcolor_vertex&amp;amp;gt;
   3976 <a href="#l3957" class="line" id="l3957">   3957</a> &lt;a href=&quot;#l3938&quot; class=&quot;line&quot; id=&quot;l3938&quot;&gt;   3938&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2801&amp;quot; id=&amp;quot;h3-0-2801&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   3977 <a href="#l3958" class="line" id="l3958">   3958</a> &lt;a href=&quot;#l3939&quot; class=&quot;line&quot; id=&quot;l3939&quot;&gt;   3939&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2802&amp;quot; id=&amp;quot;h3-0-2802&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#if defined ( USE_ENVMAP ) || defined ( USE_SKINNING )
   3978 <a href="#l3959" class="line" id="l3959">   3959</a> &lt;a href=&quot;#l3940&quot; class=&quot;line&quot; id=&quot;l3940&quot;&gt;   3940&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2803&amp;quot; id=&amp;quot;h3-0-2803&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   3979 <a href="#l3960" class="line" id="l3960">   3960</a> &lt;a href=&quot;#l3941&quot; class=&quot;line&quot; id=&quot;l3941&quot;&gt;   3941&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2804&amp;quot; id=&amp;quot;h3-0-2804&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   3980 <a href="#l3961" class="line" id="l3961">   3961</a> &lt;a href=&quot;#l3942&quot; class=&quot;line&quot; id=&quot;l3942&quot;&gt;   3942&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2805&amp;quot; id=&amp;quot;h3-0-2805&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   3981 <a href="#l3962" class="line" id="l3962">   3962</a> &lt;a href=&quot;#l3943&quot; class=&quot;line&quot; id=&quot;l3943&quot;&gt;   3943&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2806&amp;quot; id=&amp;quot;h3-0-2806&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   3982 <a href="#l3963" class="line" id="l3963">   3963</a> &lt;a href=&quot;#l3944&quot; class=&quot;line&quot; id=&quot;l3944&quot;&gt;   3944&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2807&amp;quot; id=&amp;quot;h3-0-2807&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#include &amp;amp;lt;defaultnormal_vertex&amp;amp;gt;
   3983 <a href="#l3964" class="line" id="l3964">   3964</a> &lt;a href=&quot;#l3945&quot; class=&quot;line&quot; id=&quot;l3945&quot;&gt;   3945&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2808&amp;quot; id=&amp;quot;h3-0-2808&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   3984 <a href="#l3965" class="line" id="l3965">   3965</a> &lt;a href=&quot;#l3946&quot; class=&quot;line&quot; id=&quot;l3946&quot;&gt;   3946&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2809&amp;quot; id=&amp;quot;h3-0-2809&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   3985 <a href="#l3966" class="line" id="l3966">   3966</a> &lt;a href=&quot;#l3947&quot; class=&quot;line&quot; id=&quot;l3947&quot;&gt;   3947&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2810&amp;quot; id=&amp;quot;h3-0-2810&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   3986 <a href="#l3967" class="line" id="l3967">   3967</a> &lt;a href=&quot;#l3948&quot; class=&quot;line&quot; id=&quot;l3948&quot;&gt;   3948&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2811&amp;quot; id=&amp;quot;h3-0-2811&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   3987 <a href="#l3968" class="line" id="l3968">   3968</a> &lt;a href=&quot;#l3949&quot; class=&quot;line&quot; id=&quot;l3949&quot;&gt;   3949&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2812&amp;quot; id=&amp;quot;h3-0-2812&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   3988 <a href="#l3969" class="line" id="l3969">   3969</a> &lt;a href=&quot;#l3950&quot; class=&quot;line&quot; id=&quot;l3950&quot;&gt;   3950&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2813&amp;quot; id=&amp;quot;h3-0-2813&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   3989 <a href="#l3970" class="line" id="l3970">   3970</a> &lt;a href=&quot;#l3951&quot; class=&quot;line&quot; id=&quot;l3951&quot;&gt;   3951&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2814&amp;quot; id=&amp;quot;h3-0-2814&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   3990 <a href="#l3971" class="line" id="l3971">   3971</a> &lt;a href=&quot;#l3952&quot; class=&quot;line&quot; id=&quot;l3952&quot;&gt;   3952&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2815&amp;quot; id=&amp;quot;h3-0-2815&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;worldpos_vertex&amp;amp;gt;
   3991 <a href="#l3972" class="line" id="l3972">   3972</a> &lt;a href=&quot;#l3953&quot; class=&quot;line&quot; id=&quot;l3953&quot;&gt;   3953&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2816&amp;quot; id=&amp;quot;h3-0-2816&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;envmap_vertex&amp;amp;gt;
   3992 <a href="#l3973" class="line" id="l3973">   3973</a> &lt;a href=&quot;#l3954&quot; class=&quot;line&quot; id=&quot;l3954&quot;&gt;   3954&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2817&amp;quot; id=&amp;quot;h3-0-2817&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   3993 <a href="#l3974" class="line" id="l3974">   3974</a> &lt;a href=&quot;#l3955&quot; class=&quot;line&quot; id=&quot;l3955&quot;&gt;   3955&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2818&amp;quot; id=&amp;quot;h3-0-2818&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,S6=`uniform vec3 diffuse;
   3994 <a href="#l3975" class="line" id="l3975">   3975</a> &lt;a href=&quot;#l3956&quot; class=&quot;line&quot; id=&quot;l3956&quot;&gt;   3956&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2819&amp;quot; id=&amp;quot;h3-0-2819&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   3995 <a href="#l3976" class="line" id="l3976">   3976</a> &lt;a href=&quot;#l3957&quot; class=&quot;line&quot; id=&quot;l3957&quot;&gt;   3957&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2820&amp;quot; id=&amp;quot;h3-0-2820&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifndef FLAT_SHADED
   3996 <a href="#l3977" class="line" id="l3977">   3977</a> &lt;a href=&quot;#l3958&quot; class=&quot;line&quot; id=&quot;l3958&quot;&gt;   3958&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2821&amp;quot; id=&amp;quot;h3-0-2821&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vNormal;
   3997 <a href="#l3978" class="line" id="l3978">   3978</a> &lt;a href=&quot;#l3959&quot; class=&quot;line&quot; id=&quot;l3959&quot;&gt;   3959&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2822&amp;quot; id=&amp;quot;h3-0-2822&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   3998 <a href="#l3979" class="line" id="l3979">   3979</a> &lt;a href=&quot;#l3960&quot; class=&quot;line&quot; id=&quot;l3960&quot;&gt;   3960&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2823&amp;quot; id=&amp;quot;h3-0-2823&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   3999 <a href="#l3980" class="line" id="l3980">   3980</a> &lt;a href=&quot;#l3961&quot; class=&quot;line&quot; id=&quot;l3961&quot;&gt;   3961&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2824&amp;quot; id=&amp;quot;h3-0-2824&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;dithering_pars_fragment&amp;amp;gt;
   4000 <a href="#l3981" class="line" id="l3981">   3981</a> &lt;a href=&quot;#l3962&quot; class=&quot;line&quot; id=&quot;l3962&quot;&gt;   3962&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2825&amp;quot; id=&amp;quot;h3-0-2825&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_fragment&amp;amp;gt;
   4001 <a href="#l3982" class="line" id="l3982">   3982</a> &lt;a href=&quot;#l3963&quot; class=&quot;line&quot; id=&quot;l3963&quot;&gt;   3963&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2826&amp;quot; id=&amp;quot;h3-0-2826&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   4002 <a href="#l3983" class="line" id="l3983">   3983</a> &lt;a href=&quot;#l3964&quot; class=&quot;line&quot; id=&quot;l3964&quot;&gt;   3964&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2827&amp;quot; id=&amp;quot;h3-0-2827&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   4003 <a href="#l3984" class="line" id="l3984">   3984</a> &lt;a href=&quot;#l3965&quot; class=&quot;line&quot; id=&quot;l3965&quot;&gt;   3965&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2828&amp;quot; id=&amp;quot;h3-0-2828&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   4004 <a href="#l3985" class="line" id="l3985">   3985</a> &lt;a href=&quot;#l3966&quot; class=&quot;line&quot; id=&quot;l3966&quot;&gt;   3966&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2829&amp;quot; id=&amp;quot;h3-0-2829&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   4005 <a href="#l3986" class="line" id="l3986">   3986</a> &lt;a href=&quot;#l3967&quot; class=&quot;line&quot; id=&quot;l3967&quot;&gt;   3967&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2830&amp;quot; id=&amp;quot;h3-0-2830&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   4006 <a href="#l3987" class="line" id="l3987">   3987</a> &lt;a href=&quot;#l3968&quot; class=&quot;line&quot; id=&quot;l3968&quot;&gt;   3968&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2831&amp;quot; id=&amp;quot;h3-0-2831&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;aomap_pars_fragment&amp;amp;gt;
   4007 <a href="#l3988" class="line" id="l3988">   3988</a> &lt;a href=&quot;#l3969&quot; class=&quot;line&quot; id=&quot;l3969&quot;&gt;   3969&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2832&amp;quot; id=&amp;quot;h3-0-2832&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lightmap_pars_fragment&amp;amp;gt;
   4008 <a href="#l3989" class="line" id="l3989">   3989</a> &lt;a href=&quot;#l3970&quot; class=&quot;line&quot; id=&quot;l3970&quot;&gt;   3970&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2833&amp;quot; id=&amp;quot;h3-0-2833&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_common_pars_fragment&amp;amp;gt;
   4009 <a href="#l3990" class="line" id="l3990">   3990</a> &lt;a href=&quot;#l3971&quot; class=&quot;line&quot; id=&quot;l3971&quot;&gt;   3971&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2834&amp;quot; id=&amp;quot;h3-0-2834&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_pars_fragment&amp;amp;gt;
   4010 <a href="#l3991" class="line" id="l3991">   3991</a> &lt;a href=&quot;#l3972&quot; class=&quot;line&quot; id=&quot;l3972&quot;&gt;   3972&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2835&amp;quot; id=&amp;quot;h3-0-2835&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4011 <a href="#l3992" class="line" id="l3992">   3992</a> &lt;a href=&quot;#l3973&quot; class=&quot;line&quot; id=&quot;l3973&quot;&gt;   3973&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2836&amp;quot; id=&amp;quot;h3-0-2836&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;specularmap_pars_fragment&amp;amp;gt;
   4012 <a href="#l3993" class="line" id="l3993">   3993</a> &lt;a href=&quot;#l3974&quot; class=&quot;line&quot; id=&quot;l3974&quot;&gt;   3974&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2837&amp;quot; id=&amp;quot;h3-0-2837&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4013 <a href="#l3994" class="line" id="l3994">   3994</a> &lt;a href=&quot;#l3975&quot; class=&quot;line&quot; id=&quot;l3975&quot;&gt;   3975&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2838&amp;quot; id=&amp;quot;h3-0-2838&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4014 <a href="#l3995" class="line" id="l3995">   3995</a> &lt;a href=&quot;#l3976&quot; class=&quot;line&quot; id=&quot;l3976&quot;&gt;   3976&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2839&amp;quot; id=&amp;quot;h3-0-2839&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4015 <a href="#l3996" class="line" id="l3996">   3996</a> &lt;a href=&quot;#l3977&quot; class=&quot;line&quot; id=&quot;l3977&quot;&gt;   3977&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2840&amp;quot; id=&amp;quot;h3-0-2840&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   4016 <a href="#l3997" class="line" id="l3997">   3997</a> &lt;a href=&quot;#l3978&quot; class=&quot;line&quot; id=&quot;l3978&quot;&gt;   3978&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2841&amp;quot; id=&amp;quot;h3-0-2841&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4017 <a href="#l3998" class="line" id="l3998">   3998</a> &lt;a href=&quot;#l3979&quot; class=&quot;line&quot; id=&quot;l3979&quot;&gt;   3979&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2842&amp;quot; id=&amp;quot;h3-0-2842&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4018 <a href="#l3999" class="line" id="l3999">   3999</a> &lt;a href=&quot;#l3980&quot; class=&quot;line&quot; id=&quot;l3980&quot;&gt;   3980&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2843&amp;quot; id=&amp;quot;h3-0-2843&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   4019 <a href="#l4000" class="line" id="l4000">   4000</a> &lt;a href=&quot;#l3981&quot; class=&quot;line&quot; id=&quot;l3981&quot;&gt;   3981&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2844&amp;quot; id=&amp;quot;h3-0-2844&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_fragment&amp;amp;gt;
   4020 <a href="#l4001" class="line" id="l4001">   4001</a> &lt;a href=&quot;#l3982&quot; class=&quot;line&quot; id=&quot;l3982&quot;&gt;   3982&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2845&amp;quot; id=&amp;quot;h3-0-2845&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   4021 <a href="#l4002" class="line" id="l4002">   4002</a> &lt;a href=&quot;#l3983&quot; class=&quot;line&quot; id=&quot;l3983&quot;&gt;   3983&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2846&amp;quot; id=&amp;quot;h3-0-2846&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   4022 <a href="#l4003" class="line" id="l4003">   4003</a> &lt;a href=&quot;#l3984&quot; class=&quot;line&quot; id=&quot;l3984&quot;&gt;   3984&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2847&amp;quot; id=&amp;quot;h3-0-2847&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   4023 <a href="#l4004" class="line" id="l4004">   4004</a> &lt;a href=&quot;#l3985&quot; class=&quot;line&quot; id=&quot;l3985&quot;&gt;   3985&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2848&amp;quot; id=&amp;quot;h3-0-2848&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;specularmap_fragment&amp;amp;gt;
   4024 <a href="#l4005" class="line" id="l4005">   4005</a> &lt;a href=&quot;#l3986&quot; class=&quot;line&quot; id=&quot;l3986&quot;&gt;   3986&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2849&amp;quot; id=&amp;quot;h3-0-2849&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
   4025 <a href="#l4006" class="line" id="l4006">   4006</a> &lt;a href=&quot;#l3987&quot; class=&quot;line&quot; id=&quot;l3987&quot;&gt;   3987&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2850&amp;quot; id=&amp;quot;h3-0-2850&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_LIGHTMAP
   4026 <a href="#l4007" class="line" id="l4007">   4007</a> &lt;a href=&quot;#l3988&quot; class=&quot;line&quot; id=&quot;l3988&quot;&gt;   3988&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2851&amp;quot; id=&amp;quot;h3-0-2851&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 lightMapTexel = texture2D( lightMap, vLightMapUv );
   4027 <a href="#l4008" class="line" id="l4008">   4008</a> &lt;a href=&quot;#l3989&quot; class=&quot;line&quot; id=&quot;l3989&quot;&gt;   3989&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2852&amp;quot; id=&amp;quot;h3-0-2852&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		reflectedLight.indirectDiffuse += lightMapTexel.rgb * lightMapIntensity * RECIPROCAL_PI;
   4028 <a href="#l4009" class="line" id="l4009">   4009</a> &lt;a href=&quot;#l3990&quot; class=&quot;line&quot; id=&quot;l3990&quot;&gt;   3990&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2853&amp;quot; id=&amp;quot;h3-0-2853&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   4029 <a href="#l4010" class="line" id="l4010">   4010</a> &lt;a href=&quot;#l3991&quot; class=&quot;line&quot; id=&quot;l3991&quot;&gt;   3991&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2854&amp;quot; id=&amp;quot;h3-0-2854&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		reflectedLight.indirectDiffuse += vec3( 1.0 );
   4030 <a href="#l4011" class="line" id="l4011">   4011</a> &lt;a href=&quot;#l3992&quot; class=&quot;line&quot; id=&quot;l3992&quot;&gt;   3992&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2855&amp;quot; id=&amp;quot;h3-0-2855&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4031 <a href="#l4012" class="line" id="l4012">   4012</a> &lt;a href=&quot;#l3993&quot; class=&quot;line&quot; id=&quot;l3993&quot;&gt;   3993&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2856&amp;quot; id=&amp;quot;h3-0-2856&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;aomap_fragment&amp;amp;gt;
   4032 <a href="#l4013" class="line" id="l4013">   4013</a> &lt;a href=&quot;#l3994&quot; class=&quot;line&quot; id=&quot;l3994&quot;&gt;   3994&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2857&amp;quot; id=&amp;quot;h3-0-2857&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	reflectedLight.indirectDiffuse *= diffuseColor.rgb;
   4033 <a href="#l4014" class="line" id="l4014">   4014</a> &lt;a href=&quot;#l3995&quot; class=&quot;line&quot; id=&quot;l3995&quot;&gt;   3995&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2858&amp;quot; id=&amp;quot;h3-0-2858&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = reflectedLight.indirectDiffuse;
   4034 <a href="#l4015" class="line" id="l4015">   4015</a> &lt;a href=&quot;#l3996&quot; class=&quot;line&quot; id=&quot;l3996&quot;&gt;   3996&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2859&amp;quot; id=&amp;quot;h3-0-2859&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;envmap_fragment&amp;amp;gt;
   4035 <a href="#l4016" class="line" id="l4016">   4016</a> &lt;a href=&quot;#l3997&quot; class=&quot;line&quot; id=&quot;l3997&quot;&gt;   3997&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2860&amp;quot; id=&amp;quot;h3-0-2860&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   4036 <a href="#l4017" class="line" id="l4017">   4017</a> &lt;a href=&quot;#l3998&quot; class=&quot;line&quot; id=&quot;l3998&quot;&gt;   3998&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2861&amp;quot; id=&amp;quot;h3-0-2861&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4037 <a href="#l4018" class="line" id="l4018">   4018</a> &lt;a href=&quot;#l3999&quot; class=&quot;line&quot; id=&quot;l3999&quot;&gt;   3999&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2862&amp;quot; id=&amp;quot;h3-0-2862&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4038 <a href="#l4019" class="line" id="l4019">   4019</a> &lt;a href=&quot;#l4000&quot; class=&quot;line&quot; id=&quot;l4000&quot;&gt;   4000&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2863&amp;quot; id=&amp;quot;h3-0-2863&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4039 <a href="#l4020" class="line" id="l4020">   4020</a> &lt;a href=&quot;#l4001&quot; class=&quot;line&quot; id=&quot;l4001&quot;&gt;   4001&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2864&amp;quot; id=&amp;quot;h3-0-2864&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;premultiplied_alpha_fragment&amp;amp;gt;
   4040 <a href="#l4021" class="line" id="l4021">   4021</a> &lt;a href=&quot;#l4002&quot; class=&quot;line&quot; id=&quot;l4002&quot;&gt;   4002&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2865&amp;quot; id=&amp;quot;h3-0-2865&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;dithering_fragment&amp;amp;gt;
   4041 <a href="#l4022" class="line" id="l4022">   4022</a> &lt;a href=&quot;#l4003&quot; class=&quot;line&quot; id=&quot;l4003&quot;&gt;   4003&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2866&amp;quot; id=&amp;quot;h3-0-2866&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,M6=`#define LAMBERT
   4042 <a href="#l4023" class="line" id="l4023">   4023</a> &lt;a href=&quot;#l4004&quot; class=&quot;line&quot; id=&quot;l4004&quot;&gt;   4004&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2867&amp;quot; id=&amp;quot;h3-0-2867&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vViewPosition;
   4043 <a href="#l4024" class="line" id="l4024">   4024</a> &lt;a href=&quot;#l4005&quot; class=&quot;line&quot; id=&quot;l4005&quot;&gt;   4005&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2868&amp;quot; id=&amp;quot;h3-0-2868&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4044 <a href="#l4025" class="line" id="l4025">   4025</a> &lt;a href=&quot;#l4006&quot; class=&quot;line&quot; id=&quot;l4006&quot;&gt;   4006&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2869&amp;quot; id=&amp;quot;h3-0-2869&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   4045 <a href="#l4026" class="line" id="l4026">   4026</a> &lt;a href=&quot;#l4007&quot; class=&quot;line&quot; id=&quot;l4007&quot;&gt;   4007&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2870&amp;quot; id=&amp;quot;h3-0-2870&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   4046 <a href="#l4027" class="line" id="l4027">   4027</a> &lt;a href=&quot;#l4008&quot; class=&quot;line&quot; id=&quot;l4008&quot;&gt;   4008&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2871&amp;quot; id=&amp;quot;h3-0-2871&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;displacementmap_pars_vertex&amp;amp;gt;
   4047 <a href="#l4028" class="line" id="l4028">   4028</a> &lt;a href=&quot;#l4009&quot; class=&quot;line&quot; id=&quot;l4009&quot;&gt;   4009&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2872&amp;quot; id=&amp;quot;h3-0-2872&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_pars_vertex&amp;amp;gt;
   4048 <a href="#l4029" class="line" id="l4029">   4029</a> &lt;a href=&quot;#l4010&quot; class=&quot;line&quot; id=&quot;l4010&quot;&gt;   4010&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2873&amp;quot; id=&amp;quot;h3-0-2873&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_vertex&amp;amp;gt;
   4049 <a href="#l4030" class="line" id="l4030">   4030</a> &lt;a href=&quot;#l4011&quot; class=&quot;line&quot; id=&quot;l4011&quot;&gt;   4011&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2874&amp;quot; id=&amp;quot;h3-0-2874&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   4050 <a href="#l4031" class="line" id="l4031">   4031</a> &lt;a href=&quot;#l4012&quot; class=&quot;line&quot; id=&quot;l4012&quot;&gt;   4012&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2875&amp;quot; id=&amp;quot;h3-0-2875&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_vertex&amp;amp;gt;
   4051 <a href="#l4032" class="line" id="l4032">   4032</a> &lt;a href=&quot;#l4013&quot; class=&quot;line&quot; id=&quot;l4013&quot;&gt;   4013&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2876&amp;quot; id=&amp;quot;h3-0-2876&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   4052 <a href="#l4033" class="line" id="l4033">   4033</a> &lt;a href=&quot;#l4014&quot; class=&quot;line&quot; id=&quot;l4014&quot;&gt;   4014&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2877&amp;quot; id=&amp;quot;h3-0-2877&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   4053 <a href="#l4034" class="line" id="l4034">   4034</a> &lt;a href=&quot;#l4015&quot; class=&quot;line&quot; id=&quot;l4015&quot;&gt;   4015&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2878&amp;quot; id=&amp;quot;h3-0-2878&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_vertex&amp;amp;gt;
   4054 <a href="#l4035" class="line" id="l4035">   4035</a> &lt;a href=&quot;#l4016&quot; class=&quot;line&quot; id=&quot;l4016&quot;&gt;   4016&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2879&amp;quot; id=&amp;quot;h3-0-2879&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4055 <a href="#l4036" class="line" id="l4036">   4036</a> &lt;a href=&quot;#l4017&quot; class=&quot;line&quot; id=&quot;l4017&quot;&gt;   4017&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2880&amp;quot; id=&amp;quot;h3-0-2880&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   4056 <a href="#l4037" class="line" id="l4037">   4037</a> &lt;a href=&quot;#l4018&quot; class=&quot;line&quot; id=&quot;l4018&quot;&gt;   4018&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2881&amp;quot; id=&amp;quot;h3-0-2881&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4057 <a href="#l4038" class="line" id="l4038">   4038</a> &lt;a href=&quot;#l4019&quot; class=&quot;line&quot; id=&quot;l4019&quot;&gt;   4019&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2882&amp;quot; id=&amp;quot;h3-0-2882&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   4058 <a href="#l4039" class="line" id="l4039">   4039</a> &lt;a href=&quot;#l4020&quot; class=&quot;line&quot; id=&quot;l4020&quot;&gt;   4020&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2883&amp;quot; id=&amp;quot;h3-0-2883&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_vertex&amp;amp;gt;
   4059 <a href="#l4040" class="line" id="l4040">   4040</a> &lt;a href=&quot;#l4021&quot; class=&quot;line&quot; id=&quot;l4021&quot;&gt;   4021&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2884&amp;quot; id=&amp;quot;h3-0-2884&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   4060 <a href="#l4041" class="line" id="l4041">   4041</a> &lt;a href=&quot;#l4022&quot; class=&quot;line&quot; id=&quot;l4022&quot;&gt;   4022&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2885&amp;quot; id=&amp;quot;h3-0-2885&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphcolor_vertex&amp;amp;gt;
   4061 <a href="#l4042" class="line" id="l4042">   4042</a> &lt;a href=&quot;#l4023&quot; class=&quot;line&quot; id=&quot;l4023&quot;&gt;   4023&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2886&amp;quot; id=&amp;quot;h3-0-2886&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   4062 <a href="#l4043" class="line" id="l4043">   4043</a> &lt;a href=&quot;#l4024&quot; class=&quot;line&quot; id=&quot;l4024&quot;&gt;   4024&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2887&amp;quot; id=&amp;quot;h3-0-2887&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   4063 <a href="#l4044" class="line" id="l4044">   4044</a> &lt;a href=&quot;#l4025&quot; class=&quot;line&quot; id=&quot;l4025&quot;&gt;   4025&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2888&amp;quot; id=&amp;quot;h3-0-2888&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   4064 <a href="#l4045" class="line" id="l4045">   4045</a> &lt;a href=&quot;#l4026&quot; class=&quot;line&quot; id=&quot;l4026&quot;&gt;   4026&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2889&amp;quot; id=&amp;quot;h3-0-2889&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   4065 <a href="#l4046" class="line" id="l4046">   4046</a> &lt;a href=&quot;#l4027&quot; class=&quot;line&quot; id=&quot;l4027&quot;&gt;   4027&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2890&amp;quot; id=&amp;quot;h3-0-2890&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   4066 <a href="#l4047" class="line" id="l4047">   4047</a> &lt;a href=&quot;#l4028&quot; class=&quot;line&quot; id=&quot;l4028&quot;&gt;   4028&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2891&amp;quot; id=&amp;quot;h3-0-2891&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;defaultnormal_vertex&amp;amp;gt;
   4067 <a href="#l4048" class="line" id="l4048">   4048</a> &lt;a href=&quot;#l4029&quot; class=&quot;line&quot; id=&quot;l4029&quot;&gt;   4029&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2892&amp;quot; id=&amp;quot;h3-0-2892&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_vertex&amp;amp;gt;
   4068 <a href="#l4049" class="line" id="l4049">   4049</a> &lt;a href=&quot;#l4030&quot; class=&quot;line&quot; id=&quot;l4030&quot;&gt;   4030&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2893&amp;quot; id=&amp;quot;h3-0-2893&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   4069 <a href="#l4050" class="line" id="l4050">   4050</a> &lt;a href=&quot;#l4031&quot; class=&quot;line&quot; id=&quot;l4031&quot;&gt;   4031&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2894&amp;quot; id=&amp;quot;h3-0-2894&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   4070 <a href="#l4051" class="line" id="l4051">   4051</a> &lt;a href=&quot;#l4032&quot; class=&quot;line&quot; id=&quot;l4032&quot;&gt;   4032&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2895&amp;quot; id=&amp;quot;h3-0-2895&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   4071 <a href="#l4052" class="line" id="l4052">   4052</a> &lt;a href=&quot;#l4033&quot; class=&quot;line&quot; id=&quot;l4033&quot;&gt;   4033&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2896&amp;quot; id=&amp;quot;h3-0-2896&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;displacementmap_vertex&amp;amp;gt;
   4072 <a href="#l4053" class="line" id="l4053">   4053</a> &lt;a href=&quot;#l4034&quot; class=&quot;line&quot; id=&quot;l4034&quot;&gt;   4034&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2897&amp;quot; id=&amp;quot;h3-0-2897&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   4073 <a href="#l4054" class="line" id="l4054">   4054</a> &lt;a href=&quot;#l4035&quot; class=&quot;line&quot; id=&quot;l4035&quot;&gt;   4035&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2898&amp;quot; id=&amp;quot;h3-0-2898&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4074 <a href="#l4055" class="line" id="l4055">   4055</a> &lt;a href=&quot;#l4036&quot; class=&quot;line&quot; id=&quot;l4036&quot;&gt;   4036&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2899&amp;quot; id=&amp;quot;h3-0-2899&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   4075 <a href="#l4056" class="line" id="l4056">   4056</a> &lt;a href=&quot;#l4037&quot; class=&quot;line&quot; id=&quot;l4037&quot;&gt;   4037&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2900&amp;quot; id=&amp;quot;h3-0-2900&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vViewPosition = - mvPosition.xyz;
   4076 <a href="#l4057" class="line" id="l4057">   4057</a> &lt;a href=&quot;#l4038&quot; class=&quot;line&quot; id=&quot;l4038&quot;&gt;   4038&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2901&amp;quot; id=&amp;quot;h3-0-2901&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;worldpos_vertex&amp;amp;gt;
   4077 <a href="#l4058" class="line" id="l4058">   4058</a> &lt;a href=&quot;#l4039&quot; class=&quot;line&quot; id=&quot;l4039&quot;&gt;   4039&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2902&amp;quot; id=&amp;quot;h3-0-2902&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;envmap_vertex&amp;amp;gt;
   4078 <a href="#l4059" class="line" id="l4059">   4059</a> &lt;a href=&quot;#l4040&quot; class=&quot;line&quot; id=&quot;l4040&quot;&gt;   4040&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2903&amp;quot; id=&amp;quot;h3-0-2903&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;shadowmap_vertex&amp;amp;gt;
   4079 <a href="#l4060" class="line" id="l4060">   4060</a> &lt;a href=&quot;#l4041&quot; class=&quot;line&quot; id=&quot;l4041&quot;&gt;   4041&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2904&amp;quot; id=&amp;quot;h3-0-2904&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   4080 <a href="#l4061" class="line" id="l4061">   4061</a> &lt;a href=&quot;#l4042&quot; class=&quot;line&quot; id=&quot;l4042&quot;&gt;   4042&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2905&amp;quot; id=&amp;quot;h3-0-2905&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,E6=`#define LAMBERT
   4081 <a href="#l4062" class="line" id="l4062">   4062</a> &lt;a href=&quot;#l4043&quot; class=&quot;line&quot; id=&quot;l4043&quot;&gt;   4043&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2906&amp;quot; id=&amp;quot;h3-0-2906&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 diffuse;
   4082 <a href="#l4063" class="line" id="l4063">   4063</a> &lt;a href=&quot;#l4044&quot; class=&quot;line&quot; id=&quot;l4044&quot;&gt;   4044&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2907&amp;quot; id=&amp;quot;h3-0-2907&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 emissive;
   4083 <a href="#l4064" class="line" id="l4064">   4064</a> &lt;a href=&quot;#l4045&quot; class=&quot;line&quot; id=&quot;l4045&quot;&gt;   4045&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2908&amp;quot; id=&amp;quot;h3-0-2908&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4084 <a href="#l4065" class="line" id="l4065">   4065</a> &lt;a href=&quot;#l4046&quot; class=&quot;line&quot; id=&quot;l4046&quot;&gt;   4046&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2909&amp;quot; id=&amp;quot;h3-0-2909&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4085 <a href="#l4066" class="line" id="l4066">   4066</a> &lt;a href=&quot;#l4047&quot; class=&quot;line&quot; id=&quot;l4047&quot;&gt;   4047&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2910&amp;quot; id=&amp;quot;h3-0-2910&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   4086 <a href="#l4067" class="line" id="l4067">   4067</a> &lt;a href=&quot;#l4048&quot; class=&quot;line&quot; id=&quot;l4048&quot;&gt;   4048&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2911&amp;quot; id=&amp;quot;h3-0-2911&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;dithering_pars_fragment&amp;amp;gt;
   4087 <a href="#l4068" class="line" id="l4068">   4068</a> &lt;a href=&quot;#l4049&quot; class=&quot;line&quot; id=&quot;l4049&quot;&gt;   4049&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2912&amp;quot; id=&amp;quot;h3-0-2912&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_fragment&amp;amp;gt;
   4088 <a href="#l4069" class="line" id="l4069">   4069</a> &lt;a href=&quot;#l4050&quot; class=&quot;line&quot; id=&quot;l4050&quot;&gt;   4050&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2913&amp;quot; id=&amp;quot;h3-0-2913&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   4089 <a href="#l4070" class="line" id="l4070">   4070</a> &lt;a href=&quot;#l4051&quot; class=&quot;line&quot; id=&quot;l4051&quot;&gt;   4051&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2914&amp;quot; id=&amp;quot;h3-0-2914&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   4090 <a href="#l4071" class="line" id="l4071">   4071</a> &lt;a href=&quot;#l4052&quot; class=&quot;line&quot; id=&quot;l4052&quot;&gt;   4052&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2915&amp;quot; id=&amp;quot;h3-0-2915&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   4091 <a href="#l4072" class="line" id="l4072">   4072</a> &lt;a href=&quot;#l4053&quot; class=&quot;line&quot; id=&quot;l4053&quot;&gt;   4053&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2916&amp;quot; id=&amp;quot;h3-0-2916&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   4092 <a href="#l4073" class="line" id="l4073">   4073</a> &lt;a href=&quot;#l4054&quot; class=&quot;line&quot; id=&quot;l4054&quot;&gt;   4054&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2917&amp;quot; id=&amp;quot;h3-0-2917&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   4093 <a href="#l4074" class="line" id="l4074">   4074</a> &lt;a href=&quot;#l4055&quot; class=&quot;line&quot; id=&quot;l4055&quot;&gt;   4055&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2918&amp;quot; id=&amp;quot;h3-0-2918&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;aomap_pars_fragment&amp;amp;gt;
   4094 <a href="#l4075" class="line" id="l4075">   4075</a> &lt;a href=&quot;#l4056&quot; class=&quot;line&quot; id=&quot;l4056&quot;&gt;   4056&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2919&amp;quot; id=&amp;quot;h3-0-2919&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lightmap_pars_fragment&amp;amp;gt;
   4095 <a href="#l4076" class="line" id="l4076">   4076</a> &lt;a href=&quot;#l4057&quot; class=&quot;line&quot; id=&quot;l4057&quot;&gt;   4057&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2920&amp;quot; id=&amp;quot;h3-0-2920&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;emissivemap_pars_fragment&amp;amp;gt;
   4096 <a href="#l4077" class="line" id="l4077">   4077</a> &lt;a href=&quot;#l4058&quot; class=&quot;line&quot; id=&quot;l4058&quot;&gt;   4058&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2921&amp;quot; id=&amp;quot;h3-0-2921&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_common_pars_fragment&amp;amp;gt;
   4097 <a href="#l4078" class="line" id="l4078">   4078</a> &lt;a href=&quot;#l4059&quot; class=&quot;line&quot; id=&quot;l4059&quot;&gt;   4059&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2922&amp;quot; id=&amp;quot;h3-0-2922&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_pars_fragment&amp;amp;gt;
   4098 <a href="#l4079" class="line" id="l4079">   4079</a> &lt;a href=&quot;#l4060&quot; class=&quot;line&quot; id=&quot;l4060&quot;&gt;   4060&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2923&amp;quot; id=&amp;quot;h3-0-2923&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4099 <a href="#l4080" class="line" id="l4080">   4080</a> &lt;a href=&quot;#l4061&quot; class=&quot;line&quot; id=&quot;l4061&quot;&gt;   4061&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2924&amp;quot; id=&amp;quot;h3-0-2924&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bsdfs&amp;amp;gt;
   4100 <a href="#l4081" class="line" id="l4081">   4081</a> &lt;a href=&quot;#l4062&quot; class=&quot;line&quot; id=&quot;l4062&quot;&gt;   4062&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2925&amp;quot; id=&amp;quot;h3-0-2925&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_pars_begin&amp;amp;gt;
   4101 <a href="#l4082" class="line" id="l4082">   4082</a> &lt;a href=&quot;#l4063&quot; class=&quot;line&quot; id=&quot;l4063&quot;&gt;   4063&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2926&amp;quot; id=&amp;quot;h3-0-2926&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_fragment&amp;amp;gt;
   4102 <a href="#l4083" class="line" id="l4083">   4083</a> &lt;a href=&quot;#l4064&quot; class=&quot;line&quot; id=&quot;l4064&quot;&gt;   4064&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2927&amp;quot; id=&amp;quot;h3-0-2927&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_lambert_pars_fragment&amp;amp;gt;
   4103 <a href="#l4084" class="line" id="l4084">   4084</a> &lt;a href=&quot;#l4065&quot; class=&quot;line&quot; id=&quot;l4065&quot;&gt;   4065&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2928&amp;quot; id=&amp;quot;h3-0-2928&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_fragment&amp;amp;gt;
   4104 <a href="#l4085" class="line" id="l4085">   4085</a> &lt;a href=&quot;#l4066&quot; class=&quot;line&quot; id=&quot;l4066&quot;&gt;   4066&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2929&amp;quot; id=&amp;quot;h3-0-2929&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bumpmap_pars_fragment&amp;amp;gt;
   4105 <a href="#l4086" class="line" id="l4086">   4086</a> &lt;a href=&quot;#l4067&quot; class=&quot;line&quot; id=&quot;l4067&quot;&gt;   4067&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2930&amp;quot; id=&amp;quot;h3-0-2930&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normalmap_pars_fragment&amp;amp;gt;
   4106 <a href="#l4087" class="line" id="l4087">   4087</a> &lt;a href=&quot;#l4068&quot; class=&quot;line&quot; id=&quot;l4068&quot;&gt;   4068&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2931&amp;quot; id=&amp;quot;h3-0-2931&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;specularmap_pars_fragment&amp;amp;gt;
   4107 <a href="#l4088" class="line" id="l4088">   4088</a> &lt;a href=&quot;#l4069&quot; class=&quot;line&quot; id=&quot;l4069&quot;&gt;   4069&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2932&amp;quot; id=&amp;quot;h3-0-2932&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4108 <a href="#l4089" class="line" id="l4089">   4089</a> &lt;a href=&quot;#l4070&quot; class=&quot;line&quot; id=&quot;l4070&quot;&gt;   4070&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2933&amp;quot; id=&amp;quot;h3-0-2933&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4109 <a href="#l4090" class="line" id="l4090">   4090</a> &lt;a href=&quot;#l4071&quot; class=&quot;line&quot; id=&quot;l4071&quot;&gt;   4071&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2934&amp;quot; id=&amp;quot;h3-0-2934&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4110 <a href="#l4091" class="line" id="l4091">   4091</a> &lt;a href=&quot;#l4072&quot; class=&quot;line&quot; id=&quot;l4072&quot;&gt;   4072&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2935&amp;quot; id=&amp;quot;h3-0-2935&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   4111 <a href="#l4092" class="line" id="l4092">   4092</a> &lt;a href=&quot;#l4073&quot; class=&quot;line&quot; id=&quot;l4073&quot;&gt;   4073&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2936&amp;quot; id=&amp;quot;h3-0-2936&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4112 <a href="#l4093" class="line" id="l4093">   4093</a> &lt;a href=&quot;#l4074&quot; class=&quot;line&quot; id=&quot;l4074&quot;&gt;   4074&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2937&amp;quot; id=&amp;quot;h3-0-2937&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
   4113 <a href="#l4094" class="line" id="l4094">   4094</a> &lt;a href=&quot;#l4075&quot; class=&quot;line&quot; id=&quot;l4075&quot;&gt;   4075&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2938&amp;quot; id=&amp;quot;h3-0-2938&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 totalEmissiveRadiance = emissive;
   4114 <a href="#l4095" class="line" id="l4095">   4095</a> &lt;a href=&quot;#l4076&quot; class=&quot;line&quot; id=&quot;l4076&quot;&gt;   4076&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2939&amp;quot; id=&amp;quot;h3-0-2939&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4115 <a href="#l4096" class="line" id="l4096">   4096</a> &lt;a href=&quot;#l4077&quot; class=&quot;line&quot; id=&quot;l4077&quot;&gt;   4077&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2940&amp;quot; id=&amp;quot;h3-0-2940&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   4116 <a href="#l4097" class="line" id="l4097">   4097</a> &lt;a href=&quot;#l4078&quot; class=&quot;line&quot; id=&quot;l4078&quot;&gt;   4078&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2941&amp;quot; id=&amp;quot;h3-0-2941&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_fragment&amp;amp;gt;
   4117 <a href="#l4098" class="line" id="l4098">   4098</a> &lt;a href=&quot;#l4079&quot; class=&quot;line&quot; id=&quot;l4079&quot;&gt;   4079&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2942&amp;quot; id=&amp;quot;h3-0-2942&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   4118 <a href="#l4099" class="line" id="l4099">   4099</a> &lt;a href=&quot;#l4080&quot; class=&quot;line&quot; id=&quot;l4080&quot;&gt;   4080&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2943&amp;quot; id=&amp;quot;h3-0-2943&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   4119 <a href="#l4100" class="line" id="l4100">   4100</a> &lt;a href=&quot;#l4081&quot; class=&quot;line&quot; id=&quot;l4081&quot;&gt;   4081&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2944&amp;quot; id=&amp;quot;h3-0-2944&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   4120 <a href="#l4101" class="line" id="l4101">   4101</a> &lt;a href=&quot;#l4082&quot; class=&quot;line&quot; id=&quot;l4082&quot;&gt;   4082&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2945&amp;quot; id=&amp;quot;h3-0-2945&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;specularmap_fragment&amp;amp;gt;
   4121 <a href="#l4102" class="line" id="l4102">   4102</a> &lt;a href=&quot;#l4083&quot; class=&quot;line&quot; id=&quot;l4083&quot;&gt;   4083&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2946&amp;quot; id=&amp;quot;h3-0-2946&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_begin&amp;amp;gt;
   4122 <a href="#l4103" class="line" id="l4103">   4103</a> &lt;a href=&quot;#l4084&quot; class=&quot;line&quot; id=&quot;l4084&quot;&gt;   4084&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2947&amp;quot; id=&amp;quot;h3-0-2947&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_maps&amp;amp;gt;
   4123 <a href="#l4104" class="line" id="l4104">   4104</a> &lt;a href=&quot;#l4085&quot; class=&quot;line&quot; id=&quot;l4085&quot;&gt;   4085&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2948&amp;quot; id=&amp;quot;h3-0-2948&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;emissivemap_fragment&amp;amp;gt;
   4124 <a href="#l4105" class="line" id="l4105">   4105</a> &lt;a href=&quot;#l4086&quot; class=&quot;line&quot; id=&quot;l4086&quot;&gt;   4086&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2949&amp;quot; id=&amp;quot;h3-0-2949&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_lambert_fragment&amp;amp;gt;
   4125 <a href="#l4106" class="line" id="l4106">   4106</a> &lt;a href=&quot;#l4087&quot; class=&quot;line&quot; id=&quot;l4087&quot;&gt;   4087&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2950&amp;quot; id=&amp;quot;h3-0-2950&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_begin&amp;amp;gt;
   4126 <a href="#l4107" class="line" id="l4107">   4107</a> &lt;a href=&quot;#l4088&quot; class=&quot;line&quot; id=&quot;l4088&quot;&gt;   4088&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2951&amp;quot; id=&amp;quot;h3-0-2951&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_maps&amp;amp;gt;
   4127 <a href="#l4108" class="line" id="l4108">   4108</a> &lt;a href=&quot;#l4089&quot; class=&quot;line&quot; id=&quot;l4089&quot;&gt;   4089&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2952&amp;quot; id=&amp;quot;h3-0-2952&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_end&amp;amp;gt;
   4128 <a href="#l4109" class="line" id="l4109">   4109</a> &lt;a href=&quot;#l4090&quot; class=&quot;line&quot; id=&quot;l4090&quot;&gt;   4090&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2953&amp;quot; id=&amp;quot;h3-0-2953&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;aomap_fragment&amp;amp;gt;
   4129 <a href="#l4110" class="line" id="l4110">   4110</a> &lt;a href=&quot;#l4091&quot; class=&quot;line&quot; id=&quot;l4091&quot;&gt;   4091&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2954&amp;quot; id=&amp;quot;h3-0-2954&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
   4130 <a href="#l4111" class="line" id="l4111">   4111</a> &lt;a href=&quot;#l4092&quot; class=&quot;line&quot; id=&quot;l4092&quot;&gt;   4092&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2955&amp;quot; id=&amp;quot;h3-0-2955&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;envmap_fragment&amp;amp;gt;
   4131 <a href="#l4112" class="line" id="l4112">   4112</a> &lt;a href=&quot;#l4093&quot; class=&quot;line&quot; id=&quot;l4093&quot;&gt;   4093&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2956&amp;quot; id=&amp;quot;h3-0-2956&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   4132 <a href="#l4113" class="line" id="l4113">   4113</a> &lt;a href=&quot;#l4094&quot; class=&quot;line&quot; id=&quot;l4094&quot;&gt;   4094&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2957&amp;quot; id=&amp;quot;h3-0-2957&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4133 <a href="#l4114" class="line" id="l4114">   4114</a> &lt;a href=&quot;#l4095&quot; class=&quot;line&quot; id=&quot;l4095&quot;&gt;   4095&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2958&amp;quot; id=&amp;quot;h3-0-2958&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4134 <a href="#l4115" class="line" id="l4115">   4115</a> &lt;a href=&quot;#l4096&quot; class=&quot;line&quot; id=&quot;l4096&quot;&gt;   4096&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2959&amp;quot; id=&amp;quot;h3-0-2959&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4135 <a href="#l4116" class="line" id="l4116">   4116</a> &lt;a href=&quot;#l4097&quot; class=&quot;line&quot; id=&quot;l4097&quot;&gt;   4097&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2960&amp;quot; id=&amp;quot;h3-0-2960&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;premultiplied_alpha_fragment&amp;amp;gt;
   4136 <a href="#l4117" class="line" id="l4117">   4117</a> &lt;a href=&quot;#l4098&quot; class=&quot;line&quot; id=&quot;l4098&quot;&gt;   4098&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2961&amp;quot; id=&amp;quot;h3-0-2961&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;dithering_fragment&amp;amp;gt;
   4137 <a href="#l4118" class="line" id="l4118">   4118</a> &lt;a href=&quot;#l4099&quot; class=&quot;line&quot; id=&quot;l4099&quot;&gt;   4099&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2962&amp;quot; id=&amp;quot;h3-0-2962&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,b6=`#define MATCAP
   4138 <a href="#l4119" class="line" id="l4119">   4119</a> &lt;a href=&quot;#l4100&quot; class=&quot;line&quot; id=&quot;l4100&quot;&gt;   4100&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2963&amp;quot; id=&amp;quot;h3-0-2963&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vViewPosition;
   4139 <a href="#l4120" class="line" id="l4120">   4120</a> &lt;a href=&quot;#l4101&quot; class=&quot;line&quot; id=&quot;l4101&quot;&gt;   4101&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2964&amp;quot; id=&amp;quot;h3-0-2964&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4140 <a href="#l4121" class="line" id="l4121">   4121</a> &lt;a href=&quot;#l4102&quot; class=&quot;line&quot; id=&quot;l4102&quot;&gt;   4102&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2965&amp;quot; id=&amp;quot;h3-0-2965&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   4141 <a href="#l4122" class="line" id="l4122">   4122</a> &lt;a href=&quot;#l4103&quot; class=&quot;line&quot; id=&quot;l4103&quot;&gt;   4103&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2966&amp;quot; id=&amp;quot;h3-0-2966&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   4142 <a href="#l4123" class="line" id="l4123">   4123</a> &lt;a href=&quot;#l4104&quot; class=&quot;line&quot; id=&quot;l4104&quot;&gt;   4104&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2967&amp;quot; id=&amp;quot;h3-0-2967&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_vertex&amp;amp;gt;
   4143 <a href="#l4124" class="line" id="l4124">   4124</a> &lt;a href=&quot;#l4105&quot; class=&quot;line&quot; id=&quot;l4105&quot;&gt;   4105&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2968&amp;quot; id=&amp;quot;h3-0-2968&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;displacementmap_pars_vertex&amp;amp;gt;
   4144 <a href="#l4125" class="line" id="l4125">   4125</a> &lt;a href=&quot;#l4106&quot; class=&quot;line&quot; id=&quot;l4106&quot;&gt;   4106&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2969&amp;quot; id=&amp;quot;h3-0-2969&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   4145 <a href="#l4126" class="line" id="l4126">   4126</a> &lt;a href=&quot;#l4107&quot; class=&quot;line&quot; id=&quot;l4107&quot;&gt;   4107&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2970&amp;quot; id=&amp;quot;h3-0-2970&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_vertex&amp;amp;gt;
   4146 <a href="#l4127" class="line" id="l4127">   4127</a> &lt;a href=&quot;#l4108&quot; class=&quot;line&quot; id=&quot;l4108&quot;&gt;   4108&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2971&amp;quot; id=&amp;quot;h3-0-2971&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   4147 <a href="#l4128" class="line" id="l4128">   4128</a> &lt;a href=&quot;#l4109&quot; class=&quot;line&quot; id=&quot;l4109&quot;&gt;   4109&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2972&amp;quot; id=&amp;quot;h3-0-2972&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   4148 <a href="#l4129" class="line" id="l4129">   4129</a> &lt;a href=&quot;#l4110&quot; class=&quot;line&quot; id=&quot;l4110&quot;&gt;   4110&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2973&amp;quot; id=&amp;quot;h3-0-2973&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4149 <a href="#l4130" class="line" id="l4130">   4130</a> &lt;a href=&quot;#l4111&quot; class=&quot;line&quot; id=&quot;l4111&quot;&gt;   4111&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2974&amp;quot; id=&amp;quot;h3-0-2974&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   4150 <a href="#l4131" class="line" id="l4131">   4131</a> &lt;a href=&quot;#l4112&quot; class=&quot;line&quot; id=&quot;l4112&quot;&gt;   4112&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2975&amp;quot; id=&amp;quot;h3-0-2975&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4151 <a href="#l4132" class="line" id="l4132">   4132</a> &lt;a href=&quot;#l4113&quot; class=&quot;line&quot; id=&quot;l4113&quot;&gt;   4113&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2976&amp;quot; id=&amp;quot;h3-0-2976&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   4152 <a href="#l4133" class="line" id="l4133">   4133</a> &lt;a href=&quot;#l4114&quot; class=&quot;line&quot; id=&quot;l4114&quot;&gt;   4114&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2977&amp;quot; id=&amp;quot;h3-0-2977&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_vertex&amp;amp;gt;
   4153 <a href="#l4134" class="line" id="l4134">   4134</a> &lt;a href=&quot;#l4115&quot; class=&quot;line&quot; id=&quot;l4115&quot;&gt;   4115&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2978&amp;quot; id=&amp;quot;h3-0-2978&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   4154 <a href="#l4135" class="line" id="l4135">   4135</a> &lt;a href=&quot;#l4116&quot; class=&quot;line&quot; id=&quot;l4116&quot;&gt;   4116&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2979&amp;quot; id=&amp;quot;h3-0-2979&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphcolor_vertex&amp;amp;gt;
   4155 <a href="#l4136" class="line" id="l4136">   4136</a> &lt;a href=&quot;#l4117&quot; class=&quot;line&quot; id=&quot;l4117&quot;&gt;   4117&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2980&amp;quot; id=&amp;quot;h3-0-2980&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   4156 <a href="#l4137" class="line" id="l4137">   4137</a> &lt;a href=&quot;#l4118&quot; class=&quot;line&quot; id=&quot;l4118&quot;&gt;   4118&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2981&amp;quot; id=&amp;quot;h3-0-2981&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   4157 <a href="#l4138" class="line" id="l4138">   4138</a> &lt;a href=&quot;#l4119&quot; class=&quot;line&quot; id=&quot;l4119&quot;&gt;   4119&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2982&amp;quot; id=&amp;quot;h3-0-2982&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   4158 <a href="#l4139" class="line" id="l4139">   4139</a> &lt;a href=&quot;#l4120&quot; class=&quot;line&quot; id=&quot;l4120&quot;&gt;   4120&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2983&amp;quot; id=&amp;quot;h3-0-2983&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   4159 <a href="#l4140" class="line" id="l4140">   4140</a> &lt;a href=&quot;#l4121&quot; class=&quot;line&quot; id=&quot;l4121&quot;&gt;   4121&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2984&amp;quot; id=&amp;quot;h3-0-2984&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   4160 <a href="#l4141" class="line" id="l4141">   4141</a> &lt;a href=&quot;#l4122&quot; class=&quot;line&quot; id=&quot;l4122&quot;&gt;   4122&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2985&amp;quot; id=&amp;quot;h3-0-2985&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;defaultnormal_vertex&amp;amp;gt;
   4161 <a href="#l4142" class="line" id="l4142">   4142</a> &lt;a href=&quot;#l4123&quot; class=&quot;line&quot; id=&quot;l4123&quot;&gt;   4123&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2986&amp;quot; id=&amp;quot;h3-0-2986&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_vertex&amp;amp;gt;
   4162 <a href="#l4143" class="line" id="l4143">   4143</a> &lt;a href=&quot;#l4124&quot; class=&quot;line&quot; id=&quot;l4124&quot;&gt;   4124&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2987&amp;quot; id=&amp;quot;h3-0-2987&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   4163 <a href="#l4144" class="line" id="l4144">   4144</a> &lt;a href=&quot;#l4125&quot; class=&quot;line&quot; id=&quot;l4125&quot;&gt;   4125&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2988&amp;quot; id=&amp;quot;h3-0-2988&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   4164 <a href="#l4145" class="line" id="l4145">   4145</a> &lt;a href=&quot;#l4126&quot; class=&quot;line&quot; id=&quot;l4126&quot;&gt;   4126&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2989&amp;quot; id=&amp;quot;h3-0-2989&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   4165 <a href="#l4146" class="line" id="l4146">   4146</a> &lt;a href=&quot;#l4127&quot; class=&quot;line&quot; id=&quot;l4127&quot;&gt;   4127&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2990&amp;quot; id=&amp;quot;h3-0-2990&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;displacementmap_vertex&amp;amp;gt;
   4166 <a href="#l4147" class="line" id="l4147">   4147</a> &lt;a href=&quot;#l4128&quot; class=&quot;line&quot; id=&quot;l4128&quot;&gt;   4128&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2991&amp;quot; id=&amp;quot;h3-0-2991&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   4167 <a href="#l4148" class="line" id="l4148">   4148</a> &lt;a href=&quot;#l4129&quot; class=&quot;line&quot; id=&quot;l4129&quot;&gt;   4129&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2992&amp;quot; id=&amp;quot;h3-0-2992&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4168 <a href="#l4149" class="line" id="l4149">   4149</a> &lt;a href=&quot;#l4130&quot; class=&quot;line&quot; id=&quot;l4130&quot;&gt;   4130&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2993&amp;quot; id=&amp;quot;h3-0-2993&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   4169 <a href="#l4150" class="line" id="l4150">   4150</a> &lt;a href=&quot;#l4131&quot; class=&quot;line&quot; id=&quot;l4131&quot;&gt;   4131&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2994&amp;quot; id=&amp;quot;h3-0-2994&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   4170 <a href="#l4151" class="line" id="l4151">   4151</a> &lt;a href=&quot;#l4132&quot; class=&quot;line&quot; id=&quot;l4132&quot;&gt;   4132&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2995&amp;quot; id=&amp;quot;h3-0-2995&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vViewPosition = - mvPosition.xyz;
   4171 <a href="#l4152" class="line" id="l4152">   4152</a> &lt;a href=&quot;#l4133&quot; class=&quot;line&quot; id=&quot;l4133&quot;&gt;   4133&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2996&amp;quot; id=&amp;quot;h3-0-2996&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,T6=`#define MATCAP
   4172 <a href="#l4153" class="line" id="l4153">   4153</a> &lt;a href=&quot;#l4134&quot; class=&quot;line&quot; id=&quot;l4134&quot;&gt;   4134&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2997&amp;quot; id=&amp;quot;h3-0-2997&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 diffuse;
   4173 <a href="#l4154" class="line" id="l4154">   4154</a> &lt;a href=&quot;#l4135&quot; class=&quot;line&quot; id=&quot;l4135&quot;&gt;   4135&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2998&amp;quot; id=&amp;quot;h3-0-2998&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4174 <a href="#l4155" class="line" id="l4155">   4155</a> &lt;a href=&quot;#l4136&quot; class=&quot;line&quot; id=&quot;l4136&quot;&gt;   4136&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-2999&amp;quot; id=&amp;quot;h3-0-2999&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D matcap;
   4175 <a href="#l4156" class="line" id="l4156">   4156</a> &lt;a href=&quot;#l4137&quot; class=&quot;line&quot; id=&quot;l4137&quot;&gt;   4137&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3000&amp;quot; id=&amp;quot;h3-0-3000&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vViewPosition;
   4176 <a href="#l4157" class="line" id="l4157">   4157</a> &lt;a href=&quot;#l4138&quot; class=&quot;line&quot; id=&quot;l4138&quot;&gt;   4138&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3001&amp;quot; id=&amp;quot;h3-0-3001&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4177 <a href="#l4158" class="line" id="l4158">   4158</a> &lt;a href=&quot;#l4139&quot; class=&quot;line&quot; id=&quot;l4139&quot;&gt;   4139&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3002&amp;quot; id=&amp;quot;h3-0-3002&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;dithering_pars_fragment&amp;amp;gt;
   4178 <a href="#l4159" class="line" id="l4159">   4159</a> &lt;a href=&quot;#l4140&quot; class=&quot;line&quot; id=&quot;l4140&quot;&gt;   4140&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3003&amp;quot; id=&amp;quot;h3-0-3003&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_fragment&amp;amp;gt;
   4179 <a href="#l4160" class="line" id="l4160">   4160</a> &lt;a href=&quot;#l4141&quot; class=&quot;line&quot; id=&quot;l4141&quot;&gt;   4141&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3004&amp;quot; id=&amp;quot;h3-0-3004&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   4180 <a href="#l4161" class="line" id="l4161">   4161</a> &lt;a href=&quot;#l4142&quot; class=&quot;line&quot; id=&quot;l4142&quot;&gt;   4142&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3005&amp;quot; id=&amp;quot;h3-0-3005&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   4181 <a href="#l4162" class="line" id="l4162">   4162</a> &lt;a href=&quot;#l4143&quot; class=&quot;line&quot; id=&quot;l4143&quot;&gt;   4143&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3006&amp;quot; id=&amp;quot;h3-0-3006&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   4182 <a href="#l4163" class="line" id="l4163">   4163</a> &lt;a href=&quot;#l4144&quot; class=&quot;line&quot; id=&quot;l4144&quot;&gt;   4144&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3007&amp;quot; id=&amp;quot;h3-0-3007&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   4183 <a href="#l4164" class="line" id="l4164">   4164</a> &lt;a href=&quot;#l4145&quot; class=&quot;line&quot; id=&quot;l4145&quot;&gt;   4145&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3008&amp;quot; id=&amp;quot;h3-0-3008&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   4184 <a href="#l4165" class="line" id="l4165">   4165</a> &lt;a href=&quot;#l4146&quot; class=&quot;line&quot; id=&quot;l4146&quot;&gt;   4146&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3009&amp;quot; id=&amp;quot;h3-0-3009&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4185 <a href="#l4166" class="line" id="l4166">   4166</a> &lt;a href=&quot;#l4147&quot; class=&quot;line&quot; id=&quot;l4147&quot;&gt;   4147&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3010&amp;quot; id=&amp;quot;h3-0-3010&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_fragment&amp;amp;gt;
   4186 <a href="#l4167" class="line" id="l4167">   4167</a> &lt;a href=&quot;#l4148&quot; class=&quot;line&quot; id=&quot;l4148&quot;&gt;   4148&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3011&amp;quot; id=&amp;quot;h3-0-3011&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bumpmap_pars_fragment&amp;amp;gt;
   4187 <a href="#l4168" class="line" id="l4168">   4168</a> &lt;a href=&quot;#l4149&quot; class=&quot;line&quot; id=&quot;l4149&quot;&gt;   4149&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3012&amp;quot; id=&amp;quot;h3-0-3012&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normalmap_pars_fragment&amp;amp;gt;
   4188 <a href="#l4169" class="line" id="l4169">   4169</a> &lt;a href=&quot;#l4150&quot; class=&quot;line&quot; id=&quot;l4150&quot;&gt;   4150&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3013&amp;quot; id=&amp;quot;h3-0-3013&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4189 <a href="#l4170" class="line" id="l4170">   4170</a> &lt;a href=&quot;#l4151&quot; class=&quot;line&quot; id=&quot;l4151&quot;&gt;   4151&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3014&amp;quot; id=&amp;quot;h3-0-3014&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4190 <a href="#l4171" class="line" id="l4171">   4171</a> &lt;a href=&quot;#l4152&quot; class=&quot;line&quot; id=&quot;l4152&quot;&gt;   4152&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3015&amp;quot; id=&amp;quot;h3-0-3015&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4191 <a href="#l4172" class="line" id="l4172">   4172</a> &lt;a href=&quot;#l4153&quot; class=&quot;line&quot; id=&quot;l4153&quot;&gt;   4153&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3016&amp;quot; id=&amp;quot;h3-0-3016&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   4192 <a href="#l4173" class="line" id="l4173">   4173</a> &lt;a href=&quot;#l4154&quot; class=&quot;line&quot; id=&quot;l4154&quot;&gt;   4154&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3017&amp;quot; id=&amp;quot;h3-0-3017&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4193 <a href="#l4174" class="line" id="l4174">   4174</a> &lt;a href=&quot;#l4155&quot; class=&quot;line&quot; id=&quot;l4155&quot;&gt;   4155&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3018&amp;quot; id=&amp;quot;h3-0-3018&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4194 <a href="#l4175" class="line" id="l4175">   4175</a> &lt;a href=&quot;#l4156&quot; class=&quot;line&quot; id=&quot;l4156&quot;&gt;   4156&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3019&amp;quot; id=&amp;quot;h3-0-3019&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   4195 <a href="#l4176" class="line" id="l4176">   4176</a> &lt;a href=&quot;#l4157&quot; class=&quot;line&quot; id=&quot;l4157&quot;&gt;   4157&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3020&amp;quot; id=&amp;quot;h3-0-3020&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_fragment&amp;amp;gt;
   4196 <a href="#l4177" class="line" id="l4177">   4177</a> &lt;a href=&quot;#l4158&quot; class=&quot;line&quot; id=&quot;l4158&quot;&gt;   4158&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3021&amp;quot; id=&amp;quot;h3-0-3021&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   4197 <a href="#l4178" class="line" id="l4178">   4178</a> &lt;a href=&quot;#l4159&quot; class=&quot;line&quot; id=&quot;l4159&quot;&gt;   4159&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3022&amp;quot; id=&amp;quot;h3-0-3022&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   4198 <a href="#l4179" class="line" id="l4179">   4179</a> &lt;a href=&quot;#l4160&quot; class=&quot;line&quot; id=&quot;l4160&quot;&gt;   4160&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3023&amp;quot; id=&amp;quot;h3-0-3023&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   4199 <a href="#l4180" class="line" id="l4180">   4180</a> &lt;a href=&quot;#l4161&quot; class=&quot;line&quot; id=&quot;l4161&quot;&gt;   4161&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3024&amp;quot; id=&amp;quot;h3-0-3024&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_begin&amp;amp;gt;
   4200 <a href="#l4181" class="line" id="l4181">   4181</a> &lt;a href=&quot;#l4162&quot; class=&quot;line&quot; id=&quot;l4162&quot;&gt;   4162&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3025&amp;quot; id=&amp;quot;h3-0-3025&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_maps&amp;amp;gt;
   4201 <a href="#l4182" class="line" id="l4182">   4182</a> &lt;a href=&quot;#l4163&quot; class=&quot;line&quot; id=&quot;l4163&quot;&gt;   4163&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3026&amp;quot; id=&amp;quot;h3-0-3026&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 viewDir = normalize( vViewPosition );
   4202 <a href="#l4183" class="line" id="l4183">   4183</a> &lt;a href=&quot;#l4164&quot; class=&quot;line&quot; id=&quot;l4164&quot;&gt;   4164&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3027&amp;quot; id=&amp;quot;h3-0-3027&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 x = normalize( vec3( viewDir.z, 0.0, - viewDir.x ) );
   4203 <a href="#l4184" class="line" id="l4184">   4184</a> &lt;a href=&quot;#l4165&quot; class=&quot;line&quot; id=&quot;l4165&quot;&gt;   4165&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3028&amp;quot; id=&amp;quot;h3-0-3028&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 y = cross( viewDir, x );
   4204 <a href="#l4185" class="line" id="l4185">   4185</a> &lt;a href=&quot;#l4166&quot; class=&quot;line&quot; id=&quot;l4166&quot;&gt;   4166&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3029&amp;quot; id=&amp;quot;h3-0-3029&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 uv = vec2( dot( x, normal ), dot( y, normal ) ) * 0.495 + 0.5;
   4205 <a href="#l4186" class="line" id="l4186">   4186</a> &lt;a href=&quot;#l4167&quot; class=&quot;line&quot; id=&quot;l4167&quot;&gt;   4167&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3030&amp;quot; id=&amp;quot;h3-0-3030&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_MATCAP
   4206 <a href="#l4187" class="line" id="l4187">   4187</a> &lt;a href=&quot;#l4168&quot; class=&quot;line&quot; id=&quot;l4168&quot;&gt;   4168&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3031&amp;quot; id=&amp;quot;h3-0-3031&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 matcapColor = texture2D( matcap, uv );
   4207 <a href="#l4188" class="line" id="l4188">   4188</a> &lt;a href=&quot;#l4169&quot; class=&quot;line&quot; id=&quot;l4169&quot;&gt;   4169&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3032&amp;quot; id=&amp;quot;h3-0-3032&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#else
   4208 <a href="#l4189" class="line" id="l4189">   4189</a> &lt;a href=&quot;#l4170&quot; class=&quot;line&quot; id=&quot;l4170&quot;&gt;   4170&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3033&amp;quot; id=&amp;quot;h3-0-3033&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec4 matcapColor = vec4( vec3( mix( 0.2, 0.8, uv.y ) ), 1.0 );
   4209 <a href="#l4190" class="line" id="l4190">   4190</a> &lt;a href=&quot;#l4171&quot; class=&quot;line&quot; id=&quot;l4171&quot;&gt;   4171&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3034&amp;quot; id=&amp;quot;h3-0-3034&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4210 <a href="#l4191" class="line" id="l4191">   4191</a> &lt;a href=&quot;#l4172&quot; class=&quot;line&quot; id=&quot;l4172&quot;&gt;   4172&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3035&amp;quot; id=&amp;quot;h3-0-3035&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = diffuseColor.rgb * matcapColor.rgb;
   4211 <a href="#l4192" class="line" id="l4192">   4192</a> &lt;a href=&quot;#l4173&quot; class=&quot;line&quot; id=&quot;l4173&quot;&gt;   4173&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3036&amp;quot; id=&amp;quot;h3-0-3036&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   4212 <a href="#l4193" class="line" id="l4193">   4193</a> &lt;a href=&quot;#l4174&quot; class=&quot;line&quot; id=&quot;l4174&quot;&gt;   4174&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3037&amp;quot; id=&amp;quot;h3-0-3037&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4213 <a href="#l4194" class="line" id="l4194">   4194</a> &lt;a href=&quot;#l4175&quot; class=&quot;line&quot; id=&quot;l4175&quot;&gt;   4175&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3038&amp;quot; id=&amp;quot;h3-0-3038&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4214 <a href="#l4195" class="line" id="l4195">   4195</a> &lt;a href=&quot;#l4176&quot; class=&quot;line&quot; id=&quot;l4176&quot;&gt;   4176&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3039&amp;quot; id=&amp;quot;h3-0-3039&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4215 <a href="#l4196" class="line" id="l4196">   4196</a> &lt;a href=&quot;#l4177&quot; class=&quot;line&quot; id=&quot;l4177&quot;&gt;   4177&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3040&amp;quot; id=&amp;quot;h3-0-3040&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;premultiplied_alpha_fragment&amp;amp;gt;
   4216 <a href="#l4197" class="line" id="l4197">   4197</a> &lt;a href=&quot;#l4178&quot; class=&quot;line&quot; id=&quot;l4178&quot;&gt;   4178&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3041&amp;quot; id=&amp;quot;h3-0-3041&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;dithering_fragment&amp;amp;gt;
   4217 <a href="#l4198" class="line" id="l4198">   4198</a> &lt;a href=&quot;#l4179&quot; class=&quot;line&quot; id=&quot;l4179&quot;&gt;   4179&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3042&amp;quot; id=&amp;quot;h3-0-3042&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,A6=`#define NORMAL
   4218 <a href="#l4199" class="line" id="l4199">   4199</a> &lt;a href=&quot;#l4180&quot; class=&quot;line&quot; id=&quot;l4180&quot;&gt;   4180&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3043&amp;quot; id=&amp;quot;h3-0-3043&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
   4219 <a href="#l4200" class="line" id="l4200">   4200</a> &lt;a href=&quot;#l4181&quot; class=&quot;line&quot; id=&quot;l4181&quot;&gt;   4181&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3044&amp;quot; id=&amp;quot;h3-0-3044&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vViewPosition;
   4220 <a href="#l4201" class="line" id="l4201">   4201</a> &lt;a href=&quot;#l4182&quot; class=&quot;line&quot; id=&quot;l4182&quot;&gt;   4182&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3045&amp;quot; id=&amp;quot;h3-0-3045&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4221 <a href="#l4202" class="line" id="l4202">   4202</a> &lt;a href=&quot;#l4183&quot; class=&quot;line&quot; id=&quot;l4183&quot;&gt;   4183&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3046&amp;quot; id=&amp;quot;h3-0-3046&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4222 <a href="#l4203" class="line" id="l4203">   4203</a> &lt;a href=&quot;#l4184&quot; class=&quot;line&quot; id=&quot;l4184&quot;&gt;   4184&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3047&amp;quot; id=&amp;quot;h3-0-3047&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   4223 <a href="#l4204" class="line" id="l4204">   4204</a> &lt;a href=&quot;#l4185&quot; class=&quot;line&quot; id=&quot;l4185&quot;&gt;   4185&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3048&amp;quot; id=&amp;quot;h3-0-3048&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   4224 <a href="#l4205" class="line" id="l4205">   4205</a> &lt;a href=&quot;#l4186&quot; class=&quot;line&quot; id=&quot;l4186&quot;&gt;   4186&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3049&amp;quot; id=&amp;quot;h3-0-3049&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;displacementmap_pars_vertex&amp;amp;gt;
   4225 <a href="#l4206" class="line" id="l4206">   4206</a> &lt;a href=&quot;#l4187&quot; class=&quot;line&quot; id=&quot;l4187&quot;&gt;   4187&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3050&amp;quot; id=&amp;quot;h3-0-3050&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_vertex&amp;amp;gt;
   4226 <a href="#l4207" class="line" id="l4207">   4207</a> &lt;a href=&quot;#l4188&quot; class=&quot;line&quot; id=&quot;l4188&quot;&gt;   4188&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3051&amp;quot; id=&amp;quot;h3-0-3051&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   4227 <a href="#l4208" class="line" id="l4208">   4208</a> &lt;a href=&quot;#l4189&quot; class=&quot;line&quot; id=&quot;l4189&quot;&gt;   4189&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3052&amp;quot; id=&amp;quot;h3-0-3052&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   4228 <a href="#l4209" class="line" id="l4209">   4209</a> &lt;a href=&quot;#l4190&quot; class=&quot;line&quot; id=&quot;l4190&quot;&gt;   4190&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3053&amp;quot; id=&amp;quot;h3-0-3053&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4229 <a href="#l4210" class="line" id="l4210">   4210</a> &lt;a href=&quot;#l4191&quot; class=&quot;line&quot; id=&quot;l4191&quot;&gt;   4191&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3054&amp;quot; id=&amp;quot;h3-0-3054&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   4230 <a href="#l4211" class="line" id="l4211">   4211</a> &lt;a href=&quot;#l4192&quot; class=&quot;line&quot; id=&quot;l4192&quot;&gt;   4192&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3055&amp;quot; id=&amp;quot;h3-0-3055&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4231 <a href="#l4212" class="line" id="l4212">   4212</a> &lt;a href=&quot;#l4193&quot; class=&quot;line&quot; id=&quot;l4193&quot;&gt;   4193&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3056&amp;quot; id=&amp;quot;h3-0-3056&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   4232 <a href="#l4213" class="line" id="l4213">   4213</a> &lt;a href=&quot;#l4194&quot; class=&quot;line&quot; id=&quot;l4194&quot;&gt;   4194&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3057&amp;quot; id=&amp;quot;h3-0-3057&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   4233 <a href="#l4214" class="line" id="l4214">   4214</a> &lt;a href=&quot;#l4195&quot; class=&quot;line&quot; id=&quot;l4195&quot;&gt;   4195&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3058&amp;quot; id=&amp;quot;h3-0-3058&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   4234 <a href="#l4215" class="line" id="l4215">   4215</a> &lt;a href=&quot;#l4196&quot; class=&quot;line&quot; id=&quot;l4196&quot;&gt;   4196&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3059&amp;quot; id=&amp;quot;h3-0-3059&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   4235 <a href="#l4216" class="line" id="l4216">   4216</a> &lt;a href=&quot;#l4197&quot; class=&quot;line&quot; id=&quot;l4197&quot;&gt;   4197&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3060&amp;quot; id=&amp;quot;h3-0-3060&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   4236 <a href="#l4217" class="line" id="l4217">   4217</a> &lt;a href=&quot;#l4198&quot; class=&quot;line&quot; id=&quot;l4198&quot;&gt;   4198&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3061&amp;quot; id=&amp;quot;h3-0-3061&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   4237 <a href="#l4218" class="line" id="l4218">   4218</a> &lt;a href=&quot;#l4199&quot; class=&quot;line&quot; id=&quot;l4199&quot;&gt;   4199&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3062&amp;quot; id=&amp;quot;h3-0-3062&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   4238 <a href="#l4219" class="line" id="l4219">   4219</a> &lt;a href=&quot;#l4200&quot; class=&quot;line&quot; id=&quot;l4200&quot;&gt;   4200&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3063&amp;quot; id=&amp;quot;h3-0-3063&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;defaultnormal_vertex&amp;amp;gt;
   4239 <a href="#l4220" class="line" id="l4220">   4220</a> &lt;a href=&quot;#l4201&quot; class=&quot;line&quot; id=&quot;l4201&quot;&gt;   4201&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3064&amp;quot; id=&amp;quot;h3-0-3064&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_vertex&amp;amp;gt;
   4240 <a href="#l4221" class="line" id="l4221">   4221</a> &lt;a href=&quot;#l4202&quot; class=&quot;line&quot; id=&quot;l4202&quot;&gt;   4202&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3065&amp;quot; id=&amp;quot;h3-0-3065&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   4241 <a href="#l4222" class="line" id="l4222">   4222</a> &lt;a href=&quot;#l4203&quot; class=&quot;line&quot; id=&quot;l4203&quot;&gt;   4203&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3066&amp;quot; id=&amp;quot;h3-0-3066&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   4242 <a href="#l4223" class="line" id="l4223">   4223</a> &lt;a href=&quot;#l4204&quot; class=&quot;line&quot; id=&quot;l4204&quot;&gt;   4204&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3067&amp;quot; id=&amp;quot;h3-0-3067&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   4243 <a href="#l4224" class="line" id="l4224">   4224</a> &lt;a href=&quot;#l4205&quot; class=&quot;line&quot; id=&quot;l4205&quot;&gt;   4205&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3068&amp;quot; id=&amp;quot;h3-0-3068&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;displacementmap_vertex&amp;amp;gt;
   4244 <a href="#l4225" class="line" id="l4225">   4225</a> &lt;a href=&quot;#l4206&quot; class=&quot;line&quot; id=&quot;l4206&quot;&gt;   4206&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3069&amp;quot; id=&amp;quot;h3-0-3069&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   4245 <a href="#l4226" class="line" id="l4226">   4226</a> &lt;a href=&quot;#l4207&quot; class=&quot;line&quot; id=&quot;l4207&quot;&gt;   4207&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3070&amp;quot; id=&amp;quot;h3-0-3070&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4246 <a href="#l4227" class="line" id="l4227">   4227</a> &lt;a href=&quot;#l4208&quot; class=&quot;line&quot; id=&quot;l4208&quot;&gt;   4208&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3071&amp;quot; id=&amp;quot;h3-0-3071&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   4247 <a href="#l4228" class="line" id="l4228">   4228</a> &lt;a href=&quot;#l4209&quot; class=&quot;line&quot; id=&quot;l4209&quot;&gt;   4209&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3072&amp;quot; id=&amp;quot;h3-0-3072&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
   4248 <a href="#l4229" class="line" id="l4229">   4229</a> &lt;a href=&quot;#l4210&quot; class=&quot;line&quot; id=&quot;l4210&quot;&gt;   4210&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3073&amp;quot; id=&amp;quot;h3-0-3073&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vViewPosition = - mvPosition.xyz;
   4249 <a href="#l4230" class="line" id="l4230">   4230</a> &lt;a href=&quot;#l4211&quot; class=&quot;line&quot; id=&quot;l4211&quot;&gt;   4211&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3074&amp;quot; id=&amp;quot;h3-0-3074&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4250 <a href="#l4231" class="line" id="l4231">   4231</a> &lt;a href=&quot;#l4212&quot; class=&quot;line&quot; id=&quot;l4212&quot;&gt;   4212&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3075&amp;quot; id=&amp;quot;h3-0-3075&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,R6=`#define NORMAL
   4251 <a href="#l4232" class="line" id="l4232">   4232</a> &lt;a href=&quot;#l4213&quot; class=&quot;line&quot; id=&quot;l4213&quot;&gt;   4213&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3076&amp;quot; id=&amp;quot;h3-0-3076&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4252 <a href="#l4233" class="line" id="l4233">   4233</a> &lt;a href=&quot;#l4214&quot; class=&quot;line&quot; id=&quot;l4214&quot;&gt;   4214&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3077&amp;quot; id=&amp;quot;h3-0-3077&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if defined( FLAT_SHADED ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP_TANGENTSPACE )
   4253 <a href="#l4234" class="line" id="l4234">   4234</a> &lt;a href=&quot;#l4215&quot; class=&quot;line&quot; id=&quot;l4215&quot;&gt;   4215&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3078&amp;quot; id=&amp;quot;h3-0-3078&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vViewPosition;
   4254 <a href="#l4235" class="line" id="l4235">   4235</a> &lt;a href=&quot;#l4216&quot; class=&quot;line&quot; id=&quot;l4216&quot;&gt;   4216&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3079&amp;quot; id=&amp;quot;h3-0-3079&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4255 <a href="#l4236" class="line" id="l4236">   4236</a> &lt;a href=&quot;#l4217&quot; class=&quot;line&quot; id=&quot;l4217&quot;&gt;   4217&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3080&amp;quot; id=&amp;quot;h3-0-3080&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   4256 <a href="#l4237" class="line" id="l4237">   4237</a> &lt;a href=&quot;#l4218&quot; class=&quot;line&quot; id=&quot;l4218&quot;&gt;   4218&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3081&amp;quot; id=&amp;quot;h3-0-3081&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   4257 <a href="#l4238" class="line" id="l4238">   4238</a> &lt;a href=&quot;#l4219&quot; class=&quot;line&quot; id=&quot;l4219&quot;&gt;   4219&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3082&amp;quot; id=&amp;quot;h3-0-3082&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_fragment&amp;amp;gt;
   4258 <a href="#l4239" class="line" id="l4239">   4239</a> &lt;a href=&quot;#l4220&quot; class=&quot;line&quot; id=&quot;l4220&quot;&gt;   4220&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3083&amp;quot; id=&amp;quot;h3-0-3083&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bumpmap_pars_fragment&amp;amp;gt;
   4259 <a href="#l4240" class="line" id="l4240">   4240</a> &lt;a href=&quot;#l4221&quot; class=&quot;line&quot; id=&quot;l4221&quot;&gt;   4221&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3084&amp;quot; id=&amp;quot;h3-0-3084&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normalmap_pars_fragment&amp;amp;gt;
   4260 <a href="#l4241" class="line" id="l4241">   4241</a> &lt;a href=&quot;#l4222&quot; class=&quot;line&quot; id=&quot;l4222&quot;&gt;   4222&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3085&amp;quot; id=&amp;quot;h3-0-3085&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4261 <a href="#l4242" class="line" id="l4242">   4242</a> &lt;a href=&quot;#l4223&quot; class=&quot;line&quot; id=&quot;l4223&quot;&gt;   4223&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3086&amp;quot; id=&amp;quot;h3-0-3086&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4262 <a href="#l4243" class="line" id="l4243">   4243</a> &lt;a href=&quot;#l4224&quot; class=&quot;line&quot; id=&quot;l4224&quot;&gt;   4224&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3087&amp;quot; id=&amp;quot;h3-0-3087&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4263 <a href="#l4244" class="line" id="l4244">   4244</a> &lt;a href=&quot;#l4225&quot; class=&quot;line&quot; id=&quot;l4225&quot;&gt;   4225&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3088&amp;quot; id=&amp;quot;h3-0-3088&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( 0.0, 0.0, 0.0, opacity );
   4264 <a href="#l4245" class="line" id="l4245">   4245</a> &lt;a href=&quot;#l4226&quot; class=&quot;line&quot; id=&quot;l4226&quot;&gt;   4226&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3089&amp;quot; id=&amp;quot;h3-0-3089&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4265 <a href="#l4246" class="line" id="l4246">   4246</a> &lt;a href=&quot;#l4227&quot; class=&quot;line&quot; id=&quot;l4227&quot;&gt;   4227&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3090&amp;quot; id=&amp;quot;h3-0-3090&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4266 <a href="#l4247" class="line" id="l4247">   4247</a> &lt;a href=&quot;#l4228&quot; class=&quot;line&quot; id=&quot;l4228&quot;&gt;   4228&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3091&amp;quot; id=&amp;quot;h3-0-3091&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_begin&amp;amp;gt;
   4267 <a href="#l4248" class="line" id="l4248">   4248</a> &lt;a href=&quot;#l4229&quot; class=&quot;line&quot; id=&quot;l4229&quot;&gt;   4229&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3092&amp;quot; id=&amp;quot;h3-0-3092&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_maps&amp;amp;gt;
   4268 <a href="#l4249" class="line" id="l4249">   4249</a> &lt;a href=&quot;#l4230&quot; class=&quot;line&quot; id=&quot;l4230&quot;&gt;   4230&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3093&amp;quot; id=&amp;quot;h3-0-3093&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = vec4( packNormalToRGB( normal ), diffuseColor.a );
   4269 <a href="#l4250" class="line" id="l4250">   4250</a> &lt;a href=&quot;#l4231&quot; class=&quot;line&quot; id=&quot;l4231&quot;&gt;   4231&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3094&amp;quot; id=&amp;quot;h3-0-3094&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef OPAQUE
   4270 <a href="#l4251" class="line" id="l4251">   4251</a> &lt;a href=&quot;#l4232&quot; class=&quot;line&quot; id=&quot;l4232&quot;&gt;   4232&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3095&amp;quot; id=&amp;quot;h3-0-3095&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		gl_FragColor.a = 1.0;
   4271 <a href="#l4252" class="line" id="l4252">   4252</a> &lt;a href=&quot;#l4233&quot; class=&quot;line&quot; id=&quot;l4233&quot;&gt;   4233&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3096&amp;quot; id=&amp;quot;h3-0-3096&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4272 <a href="#l4253" class="line" id="l4253">   4253</a> &lt;a href=&quot;#l4234&quot; class=&quot;line&quot; id=&quot;l4234&quot;&gt;   4234&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3097&amp;quot; id=&amp;quot;h3-0-3097&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,C6=`#define PHONG
   4273 <a href="#l4254" class="line" id="l4254">   4254</a> &lt;a href=&quot;#l4235&quot; class=&quot;line&quot; id=&quot;l4235&quot;&gt;   4235&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3098&amp;quot; id=&amp;quot;h3-0-3098&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vViewPosition;
   4274 <a href="#l4255" class="line" id="l4255">   4255</a> &lt;a href=&quot;#l4236&quot; class=&quot;line&quot; id=&quot;l4236&quot;&gt;   4236&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3099&amp;quot; id=&amp;quot;h3-0-3099&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4275 <a href="#l4256" class="line" id="l4256">   4256</a> &lt;a href=&quot;#l4237&quot; class=&quot;line&quot; id=&quot;l4237&quot;&gt;   4237&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3100&amp;quot; id=&amp;quot;h3-0-3100&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   4276 <a href="#l4257" class="line" id="l4257">   4257</a> &lt;a href=&quot;#l4238&quot; class=&quot;line&quot; id=&quot;l4238&quot;&gt;   4238&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3101&amp;quot; id=&amp;quot;h3-0-3101&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   4277 <a href="#l4258" class="line" id="l4258">   4258</a> &lt;a href=&quot;#l4239&quot; class=&quot;line&quot; id=&quot;l4239&quot;&gt;   4239&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3102&amp;quot; id=&amp;quot;h3-0-3102&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;displacementmap_pars_vertex&amp;amp;gt;
   4278 <a href="#l4259" class="line" id="l4259">   4259</a> &lt;a href=&quot;#l4240&quot; class=&quot;line&quot; id=&quot;l4240&quot;&gt;   4240&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3103&amp;quot; id=&amp;quot;h3-0-3103&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_pars_vertex&amp;amp;gt;
   4279 <a href="#l4260" class="line" id="l4260">   4260</a> &lt;a href=&quot;#l4241&quot; class=&quot;line&quot; id=&quot;l4241&quot;&gt;   4241&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3104&amp;quot; id=&amp;quot;h3-0-3104&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_vertex&amp;amp;gt;
   4280 <a href="#l4261" class="line" id="l4261">   4261</a> &lt;a href=&quot;#l4242&quot; class=&quot;line&quot; id=&quot;l4242&quot;&gt;   4242&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3105&amp;quot; id=&amp;quot;h3-0-3105&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   4281 <a href="#l4262" class="line" id="l4262">   4262</a> &lt;a href=&quot;#l4243&quot; class=&quot;line&quot; id=&quot;l4243&quot;&gt;   4243&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3106&amp;quot; id=&amp;quot;h3-0-3106&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_vertex&amp;amp;gt;
   4282 <a href="#l4263" class="line" id="l4263">   4263</a> &lt;a href=&quot;#l4244&quot; class=&quot;line&quot; id=&quot;l4244&quot;&gt;   4244&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3107&amp;quot; id=&amp;quot;h3-0-3107&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   4283 <a href="#l4264" class="line" id="l4264">   4264</a> &lt;a href=&quot;#l4245&quot; class=&quot;line&quot; id=&quot;l4245&quot;&gt;   4245&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3108&amp;quot; id=&amp;quot;h3-0-3108&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   4284 <a href="#l4265" class="line" id="l4265">   4265</a> &lt;a href=&quot;#l4246&quot; class=&quot;line&quot; id=&quot;l4246&quot;&gt;   4246&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3109&amp;quot; id=&amp;quot;h3-0-3109&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_vertex&amp;amp;gt;
   4285 <a href="#l4266" class="line" id="l4266">   4266</a> &lt;a href=&quot;#l4247&quot; class=&quot;line&quot; id=&quot;l4247&quot;&gt;   4247&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3110&amp;quot; id=&amp;quot;h3-0-3110&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4286 <a href="#l4267" class="line" id="l4267">   4267</a> &lt;a href=&quot;#l4248&quot; class=&quot;line&quot; id=&quot;l4248&quot;&gt;   4248&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3111&amp;quot; id=&amp;quot;h3-0-3111&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   4287 <a href="#l4268" class="line" id="l4268">   4268</a> &lt;a href=&quot;#l4249&quot; class=&quot;line&quot; id=&quot;l4249&quot;&gt;   4249&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3112&amp;quot; id=&amp;quot;h3-0-3112&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4288 <a href="#l4269" class="line" id="l4269">   4269</a> &lt;a href=&quot;#l4250&quot; class=&quot;line&quot; id=&quot;l4250&quot;&gt;   4250&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3113&amp;quot; id=&amp;quot;h3-0-3113&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   4289 <a href="#l4270" class="line" id="l4270">   4270</a> &lt;a href=&quot;#l4251&quot; class=&quot;line&quot; id=&quot;l4251&quot;&gt;   4251&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3114&amp;quot; id=&amp;quot;h3-0-3114&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_vertex&amp;amp;gt;
   4290 <a href="#l4271" class="line" id="l4271">   4271</a> &lt;a href=&quot;#l4252&quot; class=&quot;line&quot; id=&quot;l4252&quot;&gt;   4252&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3115&amp;quot; id=&amp;quot;h3-0-3115&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphcolor_vertex&amp;amp;gt;
   4291 <a href="#l4272" class="line" id="l4272">   4272</a> &lt;a href=&quot;#l4253&quot; class=&quot;line&quot; id=&quot;l4253&quot;&gt;   4253&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3116&amp;quot; id=&amp;quot;h3-0-3116&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   4292 <a href="#l4273" class="line" id="l4273">   4273</a> &lt;a href=&quot;#l4254&quot; class=&quot;line&quot; id=&quot;l4254&quot;&gt;   4254&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3117&amp;quot; id=&amp;quot;h3-0-3117&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   4293 <a href="#l4274" class="line" id="l4274">   4274</a> &lt;a href=&quot;#l4255&quot; class=&quot;line&quot; id=&quot;l4255&quot;&gt;   4255&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3118&amp;quot; id=&amp;quot;h3-0-3118&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   4294 <a href="#l4275" class="line" id="l4275">   4275</a> &lt;a href=&quot;#l4256&quot; class=&quot;line&quot; id=&quot;l4256&quot;&gt;   4256&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3119&amp;quot; id=&amp;quot;h3-0-3119&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   4295 <a href="#l4276" class="line" id="l4276">   4276</a> &lt;a href=&quot;#l4257&quot; class=&quot;line&quot; id=&quot;l4257&quot;&gt;   4257&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3120&amp;quot; id=&amp;quot;h3-0-3120&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   4296 <a href="#l4277" class="line" id="l4277">   4277</a> &lt;a href=&quot;#l4258&quot; class=&quot;line&quot; id=&quot;l4258&quot;&gt;   4258&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3121&amp;quot; id=&amp;quot;h3-0-3121&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   4297 <a href="#l4278" class="line" id="l4278">   4278</a> &lt;a href=&quot;#l4259&quot; class=&quot;line&quot; id=&quot;l4259&quot;&gt;   4259&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3122&amp;quot; id=&amp;quot;h3-0-3122&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;defaultnormal_vertex&amp;amp;gt;
   4298 <a href="#l4279" class="line" id="l4279">   4279</a> &lt;a href=&quot;#l4260&quot; class=&quot;line&quot; id=&quot;l4260&quot;&gt;   4260&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3123&amp;quot; id=&amp;quot;h3-0-3123&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_vertex&amp;amp;gt;
   4299 <a href="#l4280" class="line" id="l4280">   4280</a> &lt;a href=&quot;#l4261&quot; class=&quot;line&quot; id=&quot;l4261&quot;&gt;   4261&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3124&amp;quot; id=&amp;quot;h3-0-3124&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   4300 <a href="#l4281" class="line" id="l4281">   4281</a> &lt;a href=&quot;#l4262&quot; class=&quot;line&quot; id=&quot;l4262&quot;&gt;   4262&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3125&amp;quot; id=&amp;quot;h3-0-3125&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   4301 <a href="#l4282" class="line" id="l4282">   4282</a> &lt;a href=&quot;#l4263&quot; class=&quot;line&quot; id=&quot;l4263&quot;&gt;   4263&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3126&amp;quot; id=&amp;quot;h3-0-3126&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   4302 <a href="#l4283" class="line" id="l4283">   4283</a> &lt;a href=&quot;#l4264&quot; class=&quot;line&quot; id=&quot;l4264&quot;&gt;   4264&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3127&amp;quot; id=&amp;quot;h3-0-3127&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;displacementmap_vertex&amp;amp;gt;
   4303 <a href="#l4284" class="line" id="l4284">   4284</a> &lt;a href=&quot;#l4265&quot; class=&quot;line&quot; id=&quot;l4265&quot;&gt;   4265&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3128&amp;quot; id=&amp;quot;h3-0-3128&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   4304 <a href="#l4285" class="line" id="l4285">   4285</a> &lt;a href=&quot;#l4266&quot; class=&quot;line&quot; id=&quot;l4266&quot;&gt;   4266&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3129&amp;quot; id=&amp;quot;h3-0-3129&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4305 <a href="#l4286" class="line" id="l4286">   4286</a> &lt;a href=&quot;#l4267&quot; class=&quot;line&quot; id=&quot;l4267&quot;&gt;   4267&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3130&amp;quot; id=&amp;quot;h3-0-3130&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   4306 <a href="#l4287" class="line" id="l4287">   4287</a> &lt;a href=&quot;#l4268&quot; class=&quot;line&quot; id=&quot;l4268&quot;&gt;   4268&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3131&amp;quot; id=&amp;quot;h3-0-3131&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vViewPosition = - mvPosition.xyz;
   4307 <a href="#l4288" class="line" id="l4288">   4288</a> &lt;a href=&quot;#l4269&quot; class=&quot;line&quot; id=&quot;l4269&quot;&gt;   4269&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3132&amp;quot; id=&amp;quot;h3-0-3132&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;worldpos_vertex&amp;amp;gt;
   4308 <a href="#l4289" class="line" id="l4289">   4289</a> &lt;a href=&quot;#l4270&quot; class=&quot;line&quot; id=&quot;l4270&quot;&gt;   4270&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3133&amp;quot; id=&amp;quot;h3-0-3133&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;envmap_vertex&amp;amp;gt;
   4309 <a href="#l4290" class="line" id="l4290">   4290</a> &lt;a href=&quot;#l4271&quot; class=&quot;line&quot; id=&quot;l4271&quot;&gt;   4271&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3134&amp;quot; id=&amp;quot;h3-0-3134&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;shadowmap_vertex&amp;amp;gt;
   4310 <a href="#l4291" class="line" id="l4291">   4291</a> &lt;a href=&quot;#l4272&quot; class=&quot;line&quot; id=&quot;l4272&quot;&gt;   4272&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3135&amp;quot; id=&amp;quot;h3-0-3135&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   4311 <a href="#l4292" class="line" id="l4292">   4292</a> &lt;a href=&quot;#l4273&quot; class=&quot;line&quot; id=&quot;l4273&quot;&gt;   4273&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3136&amp;quot; id=&amp;quot;h3-0-3136&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,w6=`#define PHONG
   4312 <a href="#l4293" class="line" id="l4293">   4293</a> &lt;a href=&quot;#l4274&quot; class=&quot;line&quot; id=&quot;l4274&quot;&gt;   4274&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3137&amp;quot; id=&amp;quot;h3-0-3137&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 diffuse;
   4313 <a href="#l4294" class="line" id="l4294">   4294</a> &lt;a href=&quot;#l4275&quot; class=&quot;line&quot; id=&quot;l4275&quot;&gt;   4275&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3138&amp;quot; id=&amp;quot;h3-0-3138&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 emissive;
   4314 <a href="#l4295" class="line" id="l4295">   4295</a> &lt;a href=&quot;#l4276&quot; class=&quot;line&quot; id=&quot;l4276&quot;&gt;   4276&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3139&amp;quot; id=&amp;quot;h3-0-3139&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 specular;
   4315 <a href="#l4296" class="line" id="l4296">   4296</a> &lt;a href=&quot;#l4277&quot; class=&quot;line&quot; id=&quot;l4277&quot;&gt;   4277&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3140&amp;quot; id=&amp;quot;h3-0-3140&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float shininess;
   4316 <a href="#l4297" class="line" id="l4297">   4297</a> &lt;a href=&quot;#l4278&quot; class=&quot;line&quot; id=&quot;l4278&quot;&gt;   4278&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3141&amp;quot; id=&amp;quot;h3-0-3141&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4317 <a href="#l4298" class="line" id="l4298">   4298</a> &lt;a href=&quot;#l4279&quot; class=&quot;line&quot; id=&quot;l4279&quot;&gt;   4279&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3142&amp;quot; id=&amp;quot;h3-0-3142&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4318 <a href="#l4299" class="line" id="l4299">   4299</a> &lt;a href=&quot;#l4280&quot; class=&quot;line&quot; id=&quot;l4280&quot;&gt;   4280&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3143&amp;quot; id=&amp;quot;h3-0-3143&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   4319 <a href="#l4300" class="line" id="l4300">   4300</a> &lt;a href=&quot;#l4281&quot; class=&quot;line&quot; id=&quot;l4281&quot;&gt;   4281&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3144&amp;quot; id=&amp;quot;h3-0-3144&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;dithering_pars_fragment&amp;amp;gt;
   4320 <a href="#l4301" class="line" id="l4301">   4301</a> &lt;a href=&quot;#l4282&quot; class=&quot;line&quot; id=&quot;l4282&quot;&gt;   4282&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3145&amp;quot; id=&amp;quot;h3-0-3145&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_fragment&amp;amp;gt;
   4321 <a href="#l4302" class="line" id="l4302">   4302</a> &lt;a href=&quot;#l4283&quot; class=&quot;line&quot; id=&quot;l4283&quot;&gt;   4283&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3146&amp;quot; id=&amp;quot;h3-0-3146&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   4322 <a href="#l4303" class="line" id="l4303">   4303</a> &lt;a href=&quot;#l4284&quot; class=&quot;line&quot; id=&quot;l4284&quot;&gt;   4284&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3147&amp;quot; id=&amp;quot;h3-0-3147&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   4323 <a href="#l4304" class="line" id="l4304">   4304</a> &lt;a href=&quot;#l4285&quot; class=&quot;line&quot; id=&quot;l4285&quot;&gt;   4285&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3148&amp;quot; id=&amp;quot;h3-0-3148&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   4324 <a href="#l4305" class="line" id="l4305">   4305</a> &lt;a href=&quot;#l4286&quot; class=&quot;line&quot; id=&quot;l4286&quot;&gt;   4286&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3149&amp;quot; id=&amp;quot;h3-0-3149&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   4325 <a href="#l4306" class="line" id="l4306">   4306</a> &lt;a href=&quot;#l4287&quot; class=&quot;line&quot; id=&quot;l4287&quot;&gt;   4287&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3150&amp;quot; id=&amp;quot;h3-0-3150&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   4326 <a href="#l4307" class="line" id="l4307">   4307</a> &lt;a href=&quot;#l4288&quot; class=&quot;line&quot; id=&quot;l4288&quot;&gt;   4288&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3151&amp;quot; id=&amp;quot;h3-0-3151&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;aomap_pars_fragment&amp;amp;gt;
   4327 <a href="#l4308" class="line" id="l4308">   4308</a> &lt;a href=&quot;#l4289&quot; class=&quot;line&quot; id=&quot;l4289&quot;&gt;   4289&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3152&amp;quot; id=&amp;quot;h3-0-3152&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lightmap_pars_fragment&amp;amp;gt;
   4328 <a href="#l4309" class="line" id="l4309">   4309</a> &lt;a href=&quot;#l4290&quot; class=&quot;line&quot; id=&quot;l4290&quot;&gt;   4290&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3153&amp;quot; id=&amp;quot;h3-0-3153&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;emissivemap_pars_fragment&amp;amp;gt;
   4329 <a href="#l4310" class="line" id="l4310">   4310</a> &lt;a href=&quot;#l4291&quot; class=&quot;line&quot; id=&quot;l4291&quot;&gt;   4291&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3154&amp;quot; id=&amp;quot;h3-0-3154&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_common_pars_fragment&amp;amp;gt;
   4330 <a href="#l4311" class="line" id="l4311">   4311</a> &lt;a href=&quot;#l4292&quot; class=&quot;line&quot; id=&quot;l4292&quot;&gt;   4292&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3155&amp;quot; id=&amp;quot;h3-0-3155&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_pars_fragment&amp;amp;gt;
   4331 <a href="#l4312" class="line" id="l4312">   4312</a> &lt;a href=&quot;#l4293&quot; class=&quot;line&quot; id=&quot;l4293&quot;&gt;   4293&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3156&amp;quot; id=&amp;quot;h3-0-3156&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4332 <a href="#l4313" class="line" id="l4313">   4313</a> &lt;a href=&quot;#l4294&quot; class=&quot;line&quot; id=&quot;l4294&quot;&gt;   4294&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3157&amp;quot; id=&amp;quot;h3-0-3157&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bsdfs&amp;amp;gt;
   4333 <a href="#l4314" class="line" id="l4314">   4314</a> &lt;a href=&quot;#l4295&quot; class=&quot;line&quot; id=&quot;l4295&quot;&gt;   4295&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3158&amp;quot; id=&amp;quot;h3-0-3158&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_pars_begin&amp;amp;gt;
   4334 <a href="#l4315" class="line" id="l4315">   4315</a> &lt;a href=&quot;#l4296&quot; class=&quot;line&quot; id=&quot;l4296&quot;&gt;   4296&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3159&amp;quot; id=&amp;quot;h3-0-3159&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_fragment&amp;amp;gt;
   4335 <a href="#l4316" class="line" id="l4316">   4316</a> &lt;a href=&quot;#l4297&quot; class=&quot;line&quot; id=&quot;l4297&quot;&gt;   4297&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3160&amp;quot; id=&amp;quot;h3-0-3160&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_phong_pars_fragment&amp;amp;gt;
   4336 <a href="#l4317" class="line" id="l4317">   4317</a> &lt;a href=&quot;#l4298&quot; class=&quot;line&quot; id=&quot;l4298&quot;&gt;   4298&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3161&amp;quot; id=&amp;quot;h3-0-3161&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_fragment&amp;amp;gt;
   4337 <a href="#l4318" class="line" id="l4318">   4318</a> &lt;a href=&quot;#l4299&quot; class=&quot;line&quot; id=&quot;l4299&quot;&gt;   4299&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3162&amp;quot; id=&amp;quot;h3-0-3162&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bumpmap_pars_fragment&amp;amp;gt;
   4338 <a href="#l4319" class="line" id="l4319">   4319</a> &lt;a href=&quot;#l4300&quot; class=&quot;line&quot; id=&quot;l4300&quot;&gt;   4300&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3163&amp;quot; id=&amp;quot;h3-0-3163&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normalmap_pars_fragment&amp;amp;gt;
   4339 <a href="#l4320" class="line" id="l4320">   4320</a> &lt;a href=&quot;#l4301&quot; class=&quot;line&quot; id=&quot;l4301&quot;&gt;   4301&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3164&amp;quot; id=&amp;quot;h3-0-3164&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;specularmap_pars_fragment&amp;amp;gt;
   4340 <a href="#l4321" class="line" id="l4321">   4321</a> &lt;a href=&quot;#l4302&quot; class=&quot;line&quot; id=&quot;l4302&quot;&gt;   4302&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3165&amp;quot; id=&amp;quot;h3-0-3165&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4341 <a href="#l4322" class="line" id="l4322">   4322</a> &lt;a href=&quot;#l4303&quot; class=&quot;line&quot; id=&quot;l4303&quot;&gt;   4303&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3166&amp;quot; id=&amp;quot;h3-0-3166&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4342 <a href="#l4323" class="line" id="l4323">   4323</a> &lt;a href=&quot;#l4304&quot; class=&quot;line&quot; id=&quot;l4304&quot;&gt;   4304&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3167&amp;quot; id=&amp;quot;h3-0-3167&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4343 <a href="#l4324" class="line" id="l4324">   4324</a> &lt;a href=&quot;#l4305&quot; class=&quot;line&quot; id=&quot;l4305&quot;&gt;   4305&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3168&amp;quot; id=&amp;quot;h3-0-3168&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   4344 <a href="#l4325" class="line" id="l4325">   4325</a> &lt;a href=&quot;#l4306&quot; class=&quot;line&quot; id=&quot;l4306&quot;&gt;   4306&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3169&amp;quot; id=&amp;quot;h3-0-3169&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4345 <a href="#l4326" class="line" id="l4326">   4326</a> &lt;a href=&quot;#l4307&quot; class=&quot;line&quot; id=&quot;l4307&quot;&gt;   4307&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3170&amp;quot; id=&amp;quot;h3-0-3170&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
   4346 <a href="#l4327" class="line" id="l4327">   4327</a> &lt;a href=&quot;#l4308&quot; class=&quot;line&quot; id=&quot;l4308&quot;&gt;   4308&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3171&amp;quot; id=&amp;quot;h3-0-3171&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 totalEmissiveRadiance = emissive;
   4347 <a href="#l4328" class="line" id="l4328">   4328</a> &lt;a href=&quot;#l4309&quot; class=&quot;line&quot; id=&quot;l4309&quot;&gt;   4309&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3172&amp;quot; id=&amp;quot;h3-0-3172&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4348 <a href="#l4329" class="line" id="l4329">   4329</a> &lt;a href=&quot;#l4310&quot; class=&quot;line&quot; id=&quot;l4310&quot;&gt;   4310&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3173&amp;quot; id=&amp;quot;h3-0-3173&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   4349 <a href="#l4330" class="line" id="l4330">   4330</a> &lt;a href=&quot;#l4311&quot; class=&quot;line&quot; id=&quot;l4311&quot;&gt;   4311&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3174&amp;quot; id=&amp;quot;h3-0-3174&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_fragment&amp;amp;gt;
   4350 <a href="#l4331" class="line" id="l4331">   4331</a> &lt;a href=&quot;#l4312&quot; class=&quot;line&quot; id=&quot;l4312&quot;&gt;   4312&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3175&amp;quot; id=&amp;quot;h3-0-3175&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   4351 <a href="#l4332" class="line" id="l4332">   4332</a> &lt;a href=&quot;#l4313&quot; class=&quot;line&quot; id=&quot;l4313&quot;&gt;   4313&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3176&amp;quot; id=&amp;quot;h3-0-3176&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   4352 <a href="#l4333" class="line" id="l4333">   4333</a> &lt;a href=&quot;#l4314&quot; class=&quot;line&quot; id=&quot;l4314&quot;&gt;   4314&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3177&amp;quot; id=&amp;quot;h3-0-3177&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   4353 <a href="#l4334" class="line" id="l4334">   4334</a> &lt;a href=&quot;#l4315&quot; class=&quot;line&quot; id=&quot;l4315&quot;&gt;   4315&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3178&amp;quot; id=&amp;quot;h3-0-3178&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;specularmap_fragment&amp;amp;gt;
   4354 <a href="#l4335" class="line" id="l4335">   4335</a> &lt;a href=&quot;#l4316&quot; class=&quot;line&quot; id=&quot;l4316&quot;&gt;   4316&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3179&amp;quot; id=&amp;quot;h3-0-3179&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_begin&amp;amp;gt;
   4355 <a href="#l4336" class="line" id="l4336">   4336</a> &lt;a href=&quot;#l4317&quot; class=&quot;line&quot; id=&quot;l4317&quot;&gt;   4317&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3180&amp;quot; id=&amp;quot;h3-0-3180&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_maps&amp;amp;gt;
   4356 <a href="#l4337" class="line" id="l4337">   4337</a> &lt;a href=&quot;#l4318&quot; class=&quot;line&quot; id=&quot;l4318&quot;&gt;   4318&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3181&amp;quot; id=&amp;quot;h3-0-3181&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;emissivemap_fragment&amp;amp;gt;
   4357 <a href="#l4338" class="line" id="l4338">   4338</a> &lt;a href=&quot;#l4319&quot; class=&quot;line&quot; id=&quot;l4319&quot;&gt;   4319&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3182&amp;quot; id=&amp;quot;h3-0-3182&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_phong_fragment&amp;amp;gt;
   4358 <a href="#l4339" class="line" id="l4339">   4339</a> &lt;a href=&quot;#l4320&quot; class=&quot;line&quot; id=&quot;l4320&quot;&gt;   4320&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3183&amp;quot; id=&amp;quot;h3-0-3183&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_begin&amp;amp;gt;
   4359 <a href="#l4340" class="line" id="l4340">   4340</a> &lt;a href=&quot;#l4321&quot; class=&quot;line&quot; id=&quot;l4321&quot;&gt;   4321&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3184&amp;quot; id=&amp;quot;h3-0-3184&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_maps&amp;amp;gt;
   4360 <a href="#l4341" class="line" id="l4341">   4341</a> &lt;a href=&quot;#l4322&quot; class=&quot;line&quot; id=&quot;l4322&quot;&gt;   4322&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3185&amp;quot; id=&amp;quot;h3-0-3185&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_end&amp;amp;gt;
   4361 <a href="#l4342" class="line" id="l4342">   4342</a> &lt;a href=&quot;#l4323&quot; class=&quot;line&quot; id=&quot;l4323&quot;&gt;   4323&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3186&amp;quot; id=&amp;quot;h3-0-3186&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;aomap_fragment&amp;amp;gt;
   4362 <a href="#l4343" class="line" id="l4343">   4343</a> &lt;a href=&quot;#l4324&quot; class=&quot;line&quot; id=&quot;l4324&quot;&gt;   4324&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3187&amp;quot; id=&amp;quot;h3-0-3187&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;
   4363 <a href="#l4344" class="line" id="l4344">   4344</a> &lt;a href=&quot;#l4325&quot; class=&quot;line&quot; id=&quot;l4325&quot;&gt;   4325&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3188&amp;quot; id=&amp;quot;h3-0-3188&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;envmap_fragment&amp;amp;gt;
   4364 <a href="#l4345" class="line" id="l4345">   4345</a> &lt;a href=&quot;#l4326&quot; class=&quot;line&quot; id=&quot;l4326&quot;&gt;   4326&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3189&amp;quot; id=&amp;quot;h3-0-3189&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   4365 <a href="#l4346" class="line" id="l4346">   4346</a> &lt;a href=&quot;#l4327&quot; class=&quot;line&quot; id=&quot;l4327&quot;&gt;   4327&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3190&amp;quot; id=&amp;quot;h3-0-3190&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4366 <a href="#l4347" class="line" id="l4347">   4347</a> &lt;a href=&quot;#l4328&quot; class=&quot;line&quot; id=&quot;l4328&quot;&gt;   4328&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3191&amp;quot; id=&amp;quot;h3-0-3191&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4367 <a href="#l4348" class="line" id="l4348">   4348</a> &lt;a href=&quot;#l4329&quot; class=&quot;line&quot; id=&quot;l4329&quot;&gt;   4329&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3192&amp;quot; id=&amp;quot;h3-0-3192&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4368 <a href="#l4349" class="line" id="l4349">   4349</a> &lt;a href=&quot;#l4330&quot; class=&quot;line&quot; id=&quot;l4330&quot;&gt;   4330&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3193&amp;quot; id=&amp;quot;h3-0-3193&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;premultiplied_alpha_fragment&amp;amp;gt;
   4369 <a href="#l4350" class="line" id="l4350">   4350</a> &lt;a href=&quot;#l4331&quot; class=&quot;line&quot; id=&quot;l4331&quot;&gt;   4331&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3194&amp;quot; id=&amp;quot;h3-0-3194&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;dithering_fragment&amp;amp;gt;
   4370 <a href="#l4351" class="line" id="l4351">   4351</a> &lt;a href=&quot;#l4332&quot; class=&quot;line&quot; id=&quot;l4332&quot;&gt;   4332&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3195&amp;quot; id=&amp;quot;h3-0-3195&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,D6=`#define STANDARD
   4371 <a href="#l4352" class="line" id="l4352">   4352</a> &lt;a href=&quot;#l4333&quot; class=&quot;line&quot; id=&quot;l4333&quot;&gt;   4333&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3196&amp;quot; id=&amp;quot;h3-0-3196&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vViewPosition;
   4372 <a href="#l4353" class="line" id="l4353">   4353</a> &lt;a href=&quot;#l4334&quot; class=&quot;line&quot; id=&quot;l4334&quot;&gt;   4334&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3197&amp;quot; id=&amp;quot;h3-0-3197&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TRANSMISSION
   4373 <a href="#l4354" class="line" id="l4354">   4354</a> &lt;a href=&quot;#l4335&quot; class=&quot;line&quot; id=&quot;l4335&quot;&gt;   4335&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3198&amp;quot; id=&amp;quot;h3-0-3198&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec3 vWorldPosition;
   4374 <a href="#l4355" class="line" id="l4355">   4355</a> &lt;a href=&quot;#l4336&quot; class=&quot;line&quot; id=&quot;l4336&quot;&gt;   4336&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3199&amp;quot; id=&amp;quot;h3-0-3199&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4375 <a href="#l4356" class="line" id="l4356">   4356</a> &lt;a href=&quot;#l4337&quot; class=&quot;line&quot; id=&quot;l4337&quot;&gt;   4337&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3200&amp;quot; id=&amp;quot;h3-0-3200&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4376 <a href="#l4357" class="line" id="l4357">   4357</a> &lt;a href=&quot;#l4338&quot; class=&quot;line&quot; id=&quot;l4338&quot;&gt;   4338&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3201&amp;quot; id=&amp;quot;h3-0-3201&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   4377 <a href="#l4358" class="line" id="l4358">   4358</a> &lt;a href=&quot;#l4339&quot; class=&quot;line&quot; id=&quot;l4339&quot;&gt;   4339&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3202&amp;quot; id=&amp;quot;h3-0-3202&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   4378 <a href="#l4359" class="line" id="l4359">   4359</a> &lt;a href=&quot;#l4340&quot; class=&quot;line&quot; id=&quot;l4340&quot;&gt;   4340&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3203&amp;quot; id=&amp;quot;h3-0-3203&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;displacementmap_pars_vertex&amp;amp;gt;
   4379 <a href="#l4360" class="line" id="l4360">   4360</a> &lt;a href=&quot;#l4341&quot; class=&quot;line&quot; id=&quot;l4341&quot;&gt;   4341&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3204&amp;quot; id=&amp;quot;h3-0-3204&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_vertex&amp;amp;gt;
   4380 <a href="#l4361" class="line" id="l4361">   4361</a> &lt;a href=&quot;#l4342&quot; class=&quot;line&quot; id=&quot;l4342&quot;&gt;   4342&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3205&amp;quot; id=&amp;quot;h3-0-3205&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   4381 <a href="#l4362" class="line" id="l4362">   4362</a> &lt;a href=&quot;#l4343&quot; class=&quot;line&quot; id=&quot;l4343&quot;&gt;   4343&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3206&amp;quot; id=&amp;quot;h3-0-3206&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_vertex&amp;amp;gt;
   4382 <a href="#l4363" class="line" id="l4363">   4363</a> &lt;a href=&quot;#l4344&quot; class=&quot;line&quot; id=&quot;l4344&quot;&gt;   4344&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3207&amp;quot; id=&amp;quot;h3-0-3207&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   4383 <a href="#l4364" class="line" id="l4364">   4364</a> &lt;a href=&quot;#l4345&quot; class=&quot;line&quot; id=&quot;l4345&quot;&gt;   4345&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3208&amp;quot; id=&amp;quot;h3-0-3208&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   4384 <a href="#l4365" class="line" id="l4365">   4365</a> &lt;a href=&quot;#l4346&quot; class=&quot;line&quot; id=&quot;l4346&quot;&gt;   4346&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3209&amp;quot; id=&amp;quot;h3-0-3209&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_vertex&amp;amp;gt;
   4385 <a href="#l4366" class="line" id="l4366">   4366</a> &lt;a href=&quot;#l4347&quot; class=&quot;line&quot; id=&quot;l4347&quot;&gt;   4347&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3210&amp;quot; id=&amp;quot;h3-0-3210&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4386 <a href="#l4367" class="line" id="l4367">   4367</a> &lt;a href=&quot;#l4348&quot; class=&quot;line&quot; id=&quot;l4348&quot;&gt;   4348&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3211&amp;quot; id=&amp;quot;h3-0-3211&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   4387 <a href="#l4368" class="line" id="l4368">   4368</a> &lt;a href=&quot;#l4349&quot; class=&quot;line&quot; id=&quot;l4349&quot;&gt;   4349&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3212&amp;quot; id=&amp;quot;h3-0-3212&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4388 <a href="#l4369" class="line" id="l4369">   4369</a> &lt;a href=&quot;#l4350&quot; class=&quot;line&quot; id=&quot;l4350&quot;&gt;   4350&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3213&amp;quot; id=&amp;quot;h3-0-3213&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   4389 <a href="#l4370" class="line" id="l4370">   4370</a> &lt;a href=&quot;#l4351&quot; class=&quot;line&quot; id=&quot;l4351&quot;&gt;   4351&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3214&amp;quot; id=&amp;quot;h3-0-3214&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_vertex&amp;amp;gt;
   4390 <a href="#l4371" class="line" id="l4371">   4371</a> &lt;a href=&quot;#l4352&quot; class=&quot;line&quot; id=&quot;l4352&quot;&gt;   4352&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3215&amp;quot; id=&amp;quot;h3-0-3215&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   4391 <a href="#l4372" class="line" id="l4372">   4372</a> &lt;a href=&quot;#l4353&quot; class=&quot;line&quot; id=&quot;l4353&quot;&gt;   4353&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3216&amp;quot; id=&amp;quot;h3-0-3216&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphcolor_vertex&amp;amp;gt;
   4392 <a href="#l4373" class="line" id="l4373">   4373</a> &lt;a href=&quot;#l4354&quot; class=&quot;line&quot; id=&quot;l4354&quot;&gt;   4354&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3217&amp;quot; id=&amp;quot;h3-0-3217&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   4393 <a href="#l4374" class="line" id="l4374">   4374</a> &lt;a href=&quot;#l4355&quot; class=&quot;line&quot; id=&quot;l4355&quot;&gt;   4355&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3218&amp;quot; id=&amp;quot;h3-0-3218&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   4394 <a href="#l4375" class="line" id="l4375">   4375</a> &lt;a href=&quot;#l4356&quot; class=&quot;line&quot; id=&quot;l4356&quot;&gt;   4356&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3219&amp;quot; id=&amp;quot;h3-0-3219&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   4395 <a href="#l4376" class="line" id="l4376">   4376</a> &lt;a href=&quot;#l4357&quot; class=&quot;line&quot; id=&quot;l4357&quot;&gt;   4357&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3220&amp;quot; id=&amp;quot;h3-0-3220&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   4396 <a href="#l4377" class="line" id="l4377">   4377</a> &lt;a href=&quot;#l4358&quot; class=&quot;line&quot; id=&quot;l4358&quot;&gt;   4358&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3221&amp;quot; id=&amp;quot;h3-0-3221&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   4397 <a href="#l4378" class="line" id="l4378">   4378</a> &lt;a href=&quot;#l4359&quot; class=&quot;line&quot; id=&quot;l4359&quot;&gt;   4359&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3222&amp;quot; id=&amp;quot;h3-0-3222&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;defaultnormal_vertex&amp;amp;gt;
   4398 <a href="#l4379" class="line" id="l4379">   4379</a> &lt;a href=&quot;#l4360&quot; class=&quot;line&quot; id=&quot;l4360&quot;&gt;   4360&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3223&amp;quot; id=&amp;quot;h3-0-3223&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_vertex&amp;amp;gt;
   4399 <a href="#l4380" class="line" id="l4380">   4380</a> &lt;a href=&quot;#l4361&quot; class=&quot;line&quot; id=&quot;l4361&quot;&gt;   4361&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3224&amp;quot; id=&amp;quot;h3-0-3224&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   4400 <a href="#l4381" class="line" id="l4381">   4381</a> &lt;a href=&quot;#l4362&quot; class=&quot;line&quot; id=&quot;l4362&quot;&gt;   4362&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3225&amp;quot; id=&amp;quot;h3-0-3225&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   4401 <a href="#l4382" class="line" id="l4382">   4382</a> &lt;a href=&quot;#l4363&quot; class=&quot;line&quot; id=&quot;l4363&quot;&gt;   4363&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3226&amp;quot; id=&amp;quot;h3-0-3226&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   4402 <a href="#l4383" class="line" id="l4383">   4383</a> &lt;a href=&quot;#l4364&quot; class=&quot;line&quot; id=&quot;l4364&quot;&gt;   4364&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3227&amp;quot; id=&amp;quot;h3-0-3227&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;displacementmap_vertex&amp;amp;gt;
   4403 <a href="#l4384" class="line" id="l4384">   4384</a> &lt;a href=&quot;#l4365&quot; class=&quot;line&quot; id=&quot;l4365&quot;&gt;   4365&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3228&amp;quot; id=&amp;quot;h3-0-3228&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   4404 <a href="#l4385" class="line" id="l4385">   4385</a> &lt;a href=&quot;#l4366&quot; class=&quot;line&quot; id=&quot;l4366&quot;&gt;   4366&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3229&amp;quot; id=&amp;quot;h3-0-3229&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4405 <a href="#l4386" class="line" id="l4386">   4386</a> &lt;a href=&quot;#l4367&quot; class=&quot;line&quot; id=&quot;l4367&quot;&gt;   4367&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3230&amp;quot; id=&amp;quot;h3-0-3230&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   4406 <a href="#l4387" class="line" id="l4387">   4387</a> &lt;a href=&quot;#l4368&quot; class=&quot;line&quot; id=&quot;l4368&quot;&gt;   4368&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3231&amp;quot; id=&amp;quot;h3-0-3231&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vViewPosition = - mvPosition.xyz;
   4407 <a href="#l4388" class="line" id="l4388">   4388</a> &lt;a href=&quot;#l4369&quot; class=&quot;line&quot; id=&quot;l4369&quot;&gt;   4369&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3232&amp;quot; id=&amp;quot;h3-0-3232&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;worldpos_vertex&amp;amp;gt;
   4408 <a href="#l4389" class="line" id="l4389">   4389</a> &lt;a href=&quot;#l4370&quot; class=&quot;line&quot; id=&quot;l4370&quot;&gt;   4370&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3233&amp;quot; id=&amp;quot;h3-0-3233&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;shadowmap_vertex&amp;amp;gt;
   4409 <a href="#l4390" class="line" id="l4390">   4390</a> &lt;a href=&quot;#l4371&quot; class=&quot;line&quot; id=&quot;l4371&quot;&gt;   4371&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3234&amp;quot; id=&amp;quot;h3-0-3234&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   4410 <a href="#l4391" class="line" id="l4391">   4391</a> &lt;a href=&quot;#l4372&quot; class=&quot;line&quot; id=&quot;l4372&quot;&gt;   4372&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3235&amp;quot; id=&amp;quot;h3-0-3235&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_TRANSMISSION
   4411 <a href="#l4392" class="line" id="l4392">   4392</a> &lt;a href=&quot;#l4373&quot; class=&quot;line&quot; id=&quot;l4373&quot;&gt;   4373&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3236&amp;quot; id=&amp;quot;h3-0-3236&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vWorldPosition = worldPosition.xyz;
   4412 <a href="#l4393" class="line" id="l4393">   4393</a> &lt;a href=&quot;#l4374&quot; class=&quot;line&quot; id=&quot;l4374&quot;&gt;   4374&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3237&amp;quot; id=&amp;quot;h3-0-3237&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4413 <a href="#l4394" class="line" id="l4394">   4394</a> &lt;a href=&quot;#l4375&quot; class=&quot;line&quot; id=&quot;l4375&quot;&gt;   4375&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3238&amp;quot; id=&amp;quot;h3-0-3238&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,U6=`#define STANDARD
   4414 <a href="#l4395" class="line" id="l4395">   4395</a> &lt;a href=&quot;#l4376&quot; class=&quot;line&quot; id=&quot;l4376&quot;&gt;   4376&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3239&amp;quot; id=&amp;quot;h3-0-3239&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef PHYSICAL
   4415 <a href="#l4396" class="line" id="l4396">   4396</a> &lt;a href=&quot;#l4377&quot; class=&quot;line&quot; id=&quot;l4377&quot;&gt;   4377&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3240&amp;quot; id=&amp;quot;h3-0-3240&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define IOR
   4416 <a href="#l4397" class="line" id="l4397">   4397</a> &lt;a href=&quot;#l4378&quot; class=&quot;line&quot; id=&quot;l4378&quot;&gt;   4378&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3241&amp;quot; id=&amp;quot;h3-0-3241&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define USE_SPECULAR
   4417 <a href="#l4398" class="line" id="l4398">   4398</a> &lt;a href=&quot;#l4379&quot; class=&quot;line&quot; id=&quot;l4379&quot;&gt;   4379&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3242&amp;quot; id=&amp;quot;h3-0-3242&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4418 <a href="#l4399" class="line" id="l4399">   4399</a> &lt;a href=&quot;#l4380&quot; class=&quot;line&quot; id=&quot;l4380&quot;&gt;   4380&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3243&amp;quot; id=&amp;quot;h3-0-3243&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 diffuse;
   4419 <a href="#l4400" class="line" id="l4400">   4400</a> &lt;a href=&quot;#l4381&quot; class=&quot;line&quot; id=&quot;l4381&quot;&gt;   4381&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3244&amp;quot; id=&amp;quot;h3-0-3244&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 emissive;
   4420 <a href="#l4401" class="line" id="l4401">   4401</a> &lt;a href=&quot;#l4382&quot; class=&quot;line&quot; id=&quot;l4382&quot;&gt;   4382&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3245&amp;quot; id=&amp;quot;h3-0-3245&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float roughness;
   4421 <a href="#l4402" class="line" id="l4402">   4402</a> &lt;a href=&quot;#l4383&quot; class=&quot;line&quot; id=&quot;l4383&quot;&gt;   4383&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3246&amp;quot; id=&amp;quot;h3-0-3246&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float metalness;
   4422 <a href="#l4403" class="line" id="l4403">   4403</a> &lt;a href=&quot;#l4384&quot; class=&quot;line&quot; id=&quot;l4384&quot;&gt;   4384&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3247&amp;quot; id=&amp;quot;h3-0-3247&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4423 <a href="#l4404" class="line" id="l4404">   4404</a> &lt;a href=&quot;#l4385&quot; class=&quot;line&quot; id=&quot;l4385&quot;&gt;   4385&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3248&amp;quot; id=&amp;quot;h3-0-3248&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef IOR
   4424 <a href="#l4405" class="line" id="l4405">   4405</a> &lt;a href=&quot;#l4386&quot; class=&quot;line&quot; id=&quot;l4386&quot;&gt;   4386&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3249&amp;quot; id=&amp;quot;h3-0-3249&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float ior;
   4425 <a href="#l4406" class="line" id="l4406">   4406</a> &lt;a href=&quot;#l4387&quot; class=&quot;line&quot; id=&quot;l4387&quot;&gt;   4387&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3250&amp;quot; id=&amp;quot;h3-0-3250&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4426 <a href="#l4407" class="line" id="l4407">   4407</a> &lt;a href=&quot;#l4388&quot; class=&quot;line&quot; id=&quot;l4388&quot;&gt;   4388&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3251&amp;quot; id=&amp;quot;h3-0-3251&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SPECULAR
   4427 <a href="#l4408" class="line" id="l4408">   4408</a> &lt;a href=&quot;#l4389&quot; class=&quot;line&quot; id=&quot;l4389&quot;&gt;   4389&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3252&amp;quot; id=&amp;quot;h3-0-3252&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float specularIntensity;
   4428 <a href="#l4409" class="line" id="l4409">   4409</a> &lt;a href=&quot;#l4390&quot; class=&quot;line&quot; id=&quot;l4390&quot;&gt;   4390&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3253&amp;quot; id=&amp;quot;h3-0-3253&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec3 specularColor;
   4429 <a href="#l4410" class="line" id="l4410">   4410</a> &lt;a href=&quot;#l4391&quot; class=&quot;line&quot; id=&quot;l4391&quot;&gt;   4391&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3254&amp;quot; id=&amp;quot;h3-0-3254&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SPECULAR_COLORMAP
   4430 <a href="#l4411" class="line" id="l4411">   4411</a> &lt;a href=&quot;#l4392&quot; class=&quot;line&quot; id=&quot;l4392&quot;&gt;   4392&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3255&amp;quot; id=&amp;quot;h3-0-3255&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D specularColorMap;
   4431 <a href="#l4412" class="line" id="l4412">   4412</a> &lt;a href=&quot;#l4393&quot; class=&quot;line&quot; id=&quot;l4393&quot;&gt;   4393&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3256&amp;quot; id=&amp;quot;h3-0-3256&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4432 <a href="#l4413" class="line" id="l4413">   4413</a> &lt;a href=&quot;#l4394&quot; class=&quot;line&quot; id=&quot;l4394&quot;&gt;   4394&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3257&amp;quot; id=&amp;quot;h3-0-3257&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SPECULAR_INTENSITYMAP
   4433 <a href="#l4414" class="line" id="l4414">   4414</a> &lt;a href=&quot;#l4395&quot; class=&quot;line&quot; id=&quot;l4395&quot;&gt;   4395&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3258&amp;quot; id=&amp;quot;h3-0-3258&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D specularIntensityMap;
   4434 <a href="#l4415" class="line" id="l4415">   4415</a> &lt;a href=&quot;#l4396&quot; class=&quot;line&quot; id=&quot;l4396&quot;&gt;   4396&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3259&amp;quot; id=&amp;quot;h3-0-3259&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4435 <a href="#l4416" class="line" id="l4416">   4416</a> &lt;a href=&quot;#l4397&quot; class=&quot;line&quot; id=&quot;l4397&quot;&gt;   4397&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3260&amp;quot; id=&amp;quot;h3-0-3260&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4436 <a href="#l4417" class="line" id="l4417">   4417</a> &lt;a href=&quot;#l4398&quot; class=&quot;line&quot; id=&quot;l4398&quot;&gt;   4398&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3261&amp;quot; id=&amp;quot;h3-0-3261&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_CLEARCOAT
   4437 <a href="#l4418" class="line" id="l4418">   4418</a> &lt;a href=&quot;#l4399&quot; class=&quot;line&quot; id=&quot;l4399&quot;&gt;   4399&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3262&amp;quot; id=&amp;quot;h3-0-3262&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float clearcoat;
   4438 <a href="#l4419" class="line" id="l4419">   4419</a> &lt;a href=&quot;#l4400&quot; class=&quot;line&quot; id=&quot;l4400&quot;&gt;   4400&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3263&amp;quot; id=&amp;quot;h3-0-3263&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float clearcoatRoughness;
   4439 <a href="#l4420" class="line" id="l4420">   4420</a> &lt;a href=&quot;#l4401&quot; class=&quot;line&quot; id=&quot;l4401&quot;&gt;   4401&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3264&amp;quot; id=&amp;quot;h3-0-3264&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4440 <a href="#l4421" class="line" id="l4421">   4421</a> &lt;a href=&quot;#l4402&quot; class=&quot;line&quot; id=&quot;l4402&quot;&gt;   4402&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3265&amp;quot; id=&amp;quot;h3-0-3265&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_DISPERSION
   4441 <a href="#l4422" class="line" id="l4422">   4422</a> &lt;a href=&quot;#l4403&quot; class=&quot;line&quot; id=&quot;l4403&quot;&gt;   4403&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3266&amp;quot; id=&amp;quot;h3-0-3266&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float dispersion;
   4442 <a href="#l4423" class="line" id="l4423">   4423</a> &lt;a href=&quot;#l4404&quot; class=&quot;line&quot; id=&quot;l4404&quot;&gt;   4404&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3267&amp;quot; id=&amp;quot;h3-0-3267&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4443 <a href="#l4424" class="line" id="l4424">   4424</a> &lt;a href=&quot;#l4405&quot; class=&quot;line&quot; id=&quot;l4405&quot;&gt;   4405&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3268&amp;quot; id=&amp;quot;h3-0-3268&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_IRIDESCENCE
   4444 <a href="#l4425" class="line" id="l4425">   4425</a> &lt;a href=&quot;#l4406&quot; class=&quot;line&quot; id=&quot;l4406&quot;&gt;   4406&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3269&amp;quot; id=&amp;quot;h3-0-3269&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float iridescence;
   4445 <a href="#l4426" class="line" id="l4426">   4426</a> &lt;a href=&quot;#l4407&quot; class=&quot;line&quot; id=&quot;l4407&quot;&gt;   4407&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3270&amp;quot; id=&amp;quot;h3-0-3270&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float iridescenceIOR;
   4446 <a href="#l4427" class="line" id="l4427">   4427</a> &lt;a href=&quot;#l4408&quot; class=&quot;line&quot; id=&quot;l4408&quot;&gt;   4408&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3271&amp;quot; id=&amp;quot;h3-0-3271&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float iridescenceThicknessMinimum;
   4447 <a href="#l4428" class="line" id="l4428">   4428</a> &lt;a href=&quot;#l4409&quot; class=&quot;line&quot; id=&quot;l4409&quot;&gt;   4409&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3272&amp;quot; id=&amp;quot;h3-0-3272&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float iridescenceThicknessMaximum;
   4448 <a href="#l4429" class="line" id="l4429">   4429</a> &lt;a href=&quot;#l4410&quot; class=&quot;line&quot; id=&quot;l4410&quot;&gt;   4410&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3273&amp;quot; id=&amp;quot;h3-0-3273&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4449 <a href="#l4430" class="line" id="l4430">   4430</a> &lt;a href=&quot;#l4411&quot; class=&quot;line&quot; id=&quot;l4411&quot;&gt;   4411&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3274&amp;quot; id=&amp;quot;h3-0-3274&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_SHEEN
   4450 <a href="#l4431" class="line" id="l4431">   4431</a> &lt;a href=&quot;#l4412&quot; class=&quot;line&quot; id=&quot;l4412&quot;&gt;   4412&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3275&amp;quot; id=&amp;quot;h3-0-3275&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec3 sheenColor;
   4451 <a href="#l4432" class="line" id="l4432">   4432</a> &lt;a href=&quot;#l4413&quot; class=&quot;line&quot; id=&quot;l4413&quot;&gt;   4413&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3276&amp;quot; id=&amp;quot;h3-0-3276&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform float sheenRoughness;
   4452 <a href="#l4433" class="line" id="l4433">   4433</a> &lt;a href=&quot;#l4414&quot; class=&quot;line&quot; id=&quot;l4414&quot;&gt;   4414&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3277&amp;quot; id=&amp;quot;h3-0-3277&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHEEN_COLORMAP
   4453 <a href="#l4434" class="line" id="l4434">   4434</a> &lt;a href=&quot;#l4415&quot; class=&quot;line&quot; id=&quot;l4415&quot;&gt;   4415&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3278&amp;quot; id=&amp;quot;h3-0-3278&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D sheenColorMap;
   4454 <a href="#l4435" class="line" id="l4435">   4435</a> &lt;a href=&quot;#l4416&quot; class=&quot;line&quot; id=&quot;l4416&quot;&gt;   4416&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3279&amp;quot; id=&amp;quot;h3-0-3279&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4455 <a href="#l4436" class="line" id="l4436">   4436</a> &lt;a href=&quot;#l4417&quot; class=&quot;line&quot; id=&quot;l4417&quot;&gt;   4417&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3280&amp;quot; id=&amp;quot;h3-0-3280&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHEEN_ROUGHNESSMAP
   4456 <a href="#l4437" class="line" id="l4437">   4437</a> &lt;a href=&quot;#l4418&quot; class=&quot;line&quot; id=&quot;l4418&quot;&gt;   4418&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3281&amp;quot; id=&amp;quot;h3-0-3281&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D sheenRoughnessMap;
   4457 <a href="#l4438" class="line" id="l4438">   4438</a> &lt;a href=&quot;#l4419&quot; class=&quot;line&quot; id=&quot;l4419&quot;&gt;   4419&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3282&amp;quot; id=&amp;quot;h3-0-3282&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4458 <a href="#l4439" class="line" id="l4439">   4439</a> &lt;a href=&quot;#l4420&quot; class=&quot;line&quot; id=&quot;l4420&quot;&gt;   4420&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3283&amp;quot; id=&amp;quot;h3-0-3283&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4459 <a href="#l4440" class="line" id="l4440">   4440</a> &lt;a href=&quot;#l4421&quot; class=&quot;line&quot; id=&quot;l4421&quot;&gt;   4421&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3284&amp;quot; id=&amp;quot;h3-0-3284&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_ANISOTROPY
   4460 <a href="#l4441" class="line" id="l4441">   4441</a> &lt;a href=&quot;#l4422&quot; class=&quot;line&quot; id=&quot;l4422&quot;&gt;   4422&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3285&amp;quot; id=&amp;quot;h3-0-3285&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform vec2 anisotropyVector;
   4461 <a href="#l4442" class="line" id="l4442">   4442</a> &lt;a href=&quot;#l4423&quot; class=&quot;line&quot; id=&quot;l4423&quot;&gt;   4423&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3286&amp;quot; id=&amp;quot;h3-0-3286&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_ANISOTROPYMAP
   4462 <a href="#l4443" class="line" id="l4443">   4443</a> &lt;a href=&quot;#l4424&quot; class=&quot;line&quot; id=&quot;l4424&quot;&gt;   4424&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3287&amp;quot; id=&amp;quot;h3-0-3287&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		uniform sampler2D anisotropyMap;
   4463 <a href="#l4444" class="line" id="l4444">   4444</a> &lt;a href=&quot;#l4425&quot; class=&quot;line&quot; id=&quot;l4425&quot;&gt;   4425&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3288&amp;quot; id=&amp;quot;h3-0-3288&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4464 <a href="#l4445" class="line" id="l4445">   4445</a> &lt;a href=&quot;#l4426&quot; class=&quot;line&quot; id=&quot;l4426&quot;&gt;   4426&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3289&amp;quot; id=&amp;quot;h3-0-3289&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4465 <a href="#l4446" class="line" id="l4446">   4446</a> &lt;a href=&quot;#l4427&quot; class=&quot;line&quot; id=&quot;l4427&quot;&gt;   4427&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3290&amp;quot; id=&amp;quot;h3-0-3290&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vViewPosition;
   4466 <a href="#l4447" class="line" id="l4447">   4447</a> &lt;a href=&quot;#l4428&quot; class=&quot;line&quot; id=&quot;l4428&quot;&gt;   4428&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3291&amp;quot; id=&amp;quot;h3-0-3291&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4467 <a href="#l4448" class="line" id="l4448">   4448</a> &lt;a href=&quot;#l4429&quot; class=&quot;line&quot; id=&quot;l4429&quot;&gt;   4429&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3292&amp;quot; id=&amp;quot;h3-0-3292&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   4468 <a href="#l4449" class="line" id="l4449">   4449</a> &lt;a href=&quot;#l4430&quot; class=&quot;line&quot; id=&quot;l4430&quot;&gt;   4430&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3293&amp;quot; id=&amp;quot;h3-0-3293&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;dithering_pars_fragment&amp;amp;gt;
   4469 <a href="#l4450" class="line" id="l4450">   4450</a> &lt;a href=&quot;#l4431&quot; class=&quot;line&quot; id=&quot;l4431&quot;&gt;   4431&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3294&amp;quot; id=&amp;quot;h3-0-3294&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_fragment&amp;amp;gt;
   4470 <a href="#l4451" class="line" id="l4451">   4451</a> &lt;a href=&quot;#l4432&quot; class=&quot;line&quot; id=&quot;l4432&quot;&gt;   4432&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3295&amp;quot; id=&amp;quot;h3-0-3295&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   4471 <a href="#l4452" class="line" id="l4452">   4452</a> &lt;a href=&quot;#l4433&quot; class=&quot;line&quot; id=&quot;l4433&quot;&gt;   4433&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3296&amp;quot; id=&amp;quot;h3-0-3296&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   4472 <a href="#l4453" class="line" id="l4453">   4453</a> &lt;a href=&quot;#l4434&quot; class=&quot;line&quot; id=&quot;l4434&quot;&gt;   4434&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3297&amp;quot; id=&amp;quot;h3-0-3297&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   4473 <a href="#l4454" class="line" id="l4454">   4454</a> &lt;a href=&quot;#l4435&quot; class=&quot;line&quot; id=&quot;l4435&quot;&gt;   4435&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3298&amp;quot; id=&amp;quot;h3-0-3298&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   4474 <a href="#l4455" class="line" id="l4455">   4455</a> &lt;a href=&quot;#l4436&quot; class=&quot;line&quot; id=&quot;l4436&quot;&gt;   4436&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3299&amp;quot; id=&amp;quot;h3-0-3299&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   4475 <a href="#l4456" class="line" id="l4456">   4456</a> &lt;a href=&quot;#l4437&quot; class=&quot;line&quot; id=&quot;l4437&quot;&gt;   4437&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3300&amp;quot; id=&amp;quot;h3-0-3300&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;aomap_pars_fragment&amp;amp;gt;
   4476 <a href="#l4457" class="line" id="l4457">   4457</a> &lt;a href=&quot;#l4438&quot; class=&quot;line&quot; id=&quot;l4438&quot;&gt;   4438&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3301&amp;quot; id=&amp;quot;h3-0-3301&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lightmap_pars_fragment&amp;amp;gt;
   4477 <a href="#l4458" class="line" id="l4458">   4458</a> &lt;a href=&quot;#l4439&quot; class=&quot;line&quot; id=&quot;l4439&quot;&gt;   4439&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3302&amp;quot; id=&amp;quot;h3-0-3302&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;emissivemap_pars_fragment&amp;amp;gt;
   4478 <a href="#l4459" class="line" id="l4459">   4459</a> &lt;a href=&quot;#l4440&quot; class=&quot;line&quot; id=&quot;l4440&quot;&gt;   4440&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3303&amp;quot; id=&amp;quot;h3-0-3303&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;iridescence_fragment&amp;amp;gt;
   4479 <a href="#l4460" class="line" id="l4460">   4460</a> &lt;a href=&quot;#l4441&quot; class=&quot;line&quot; id=&quot;l4441&quot;&gt;   4441&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3304&amp;quot; id=&amp;quot;h3-0-3304&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;cube_uv_reflection_fragment&amp;amp;gt;
   4480 <a href="#l4461" class="line" id="l4461">   4461</a> &lt;a href=&quot;#l4442&quot; class=&quot;line&quot; id=&quot;l4442&quot;&gt;   4442&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3305&amp;quot; id=&amp;quot;h3-0-3305&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_common_pars_fragment&amp;amp;gt;
   4481 <a href="#l4462" class="line" id="l4462">   4462</a> &lt;a href=&quot;#l4443&quot; class=&quot;line&quot; id=&quot;l4443&quot;&gt;   4443&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3306&amp;quot; id=&amp;quot;h3-0-3306&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;envmap_physical_pars_fragment&amp;amp;gt;
   4482 <a href="#l4463" class="line" id="l4463">   4463</a> &lt;a href=&quot;#l4444&quot; class=&quot;line&quot; id=&quot;l4444&quot;&gt;   4444&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3307&amp;quot; id=&amp;quot;h3-0-3307&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4483 <a href="#l4464" class="line" id="l4464">   4464</a> &lt;a href=&quot;#l4445&quot; class=&quot;line&quot; id=&quot;l4445&quot;&gt;   4445&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3308&amp;quot; id=&amp;quot;h3-0-3308&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_pars_begin&amp;amp;gt;
   4484 <a href="#l4465" class="line" id="l4465">   4465</a> &lt;a href=&quot;#l4446&quot; class=&quot;line&quot; id=&quot;l4446&quot;&gt;   4446&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3309&amp;quot; id=&amp;quot;h3-0-3309&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_fragment&amp;amp;gt;
   4485 <a href="#l4466" class="line" id="l4466">   4466</a> &lt;a href=&quot;#l4447&quot; class=&quot;line&quot; id=&quot;l4447&quot;&gt;   4447&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3310&amp;quot; id=&amp;quot;h3-0-3310&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_physical_pars_fragment&amp;amp;gt;
   4486 <a href="#l4467" class="line" id="l4467">   4467</a> &lt;a href=&quot;#l4448&quot; class=&quot;line&quot; id=&quot;l4448&quot;&gt;   4448&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3311&amp;quot; id=&amp;quot;h3-0-3311&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;transmission_pars_fragment&amp;amp;gt;
   4487 <a href="#l4468" class="line" id="l4468">   4468</a> &lt;a href=&quot;#l4449&quot; class=&quot;line&quot; id=&quot;l4449&quot;&gt;   4449&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3312&amp;quot; id=&amp;quot;h3-0-3312&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_fragment&amp;amp;gt;
   4488 <a href="#l4469" class="line" id="l4469">   4469</a> &lt;a href=&quot;#l4450&quot; class=&quot;line&quot; id=&quot;l4450&quot;&gt;   4450&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3313&amp;quot; id=&amp;quot;h3-0-3313&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bumpmap_pars_fragment&amp;amp;gt;
   4489 <a href="#l4470" class="line" id="l4470">   4470</a> &lt;a href=&quot;#l4451&quot; class=&quot;line&quot; id=&quot;l4451&quot;&gt;   4451&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3314&amp;quot; id=&amp;quot;h3-0-3314&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normalmap_pars_fragment&amp;amp;gt;
   4490 <a href="#l4471" class="line" id="l4471">   4471</a> &lt;a href=&quot;#l4452&quot; class=&quot;line&quot; id=&quot;l4452&quot;&gt;   4452&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3315&amp;quot; id=&amp;quot;h3-0-3315&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clearcoat_pars_fragment&amp;amp;gt;
   4491 <a href="#l4472" class="line" id="l4472">   4472</a> &lt;a href=&quot;#l4453&quot; class=&quot;line&quot; id=&quot;l4453&quot;&gt;   4453&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3316&amp;quot; id=&amp;quot;h3-0-3316&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;iridescence_pars_fragment&amp;amp;gt;
   4492 <a href="#l4473" class="line" id="l4473">   4473</a> &lt;a href=&quot;#l4454&quot; class=&quot;line&quot; id=&quot;l4454&quot;&gt;   4454&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3317&amp;quot; id=&amp;quot;h3-0-3317&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;roughnessmap_pars_fragment&amp;amp;gt;
   4493 <a href="#l4474" class="line" id="l4474">   4474</a> &lt;a href=&quot;#l4455&quot; class=&quot;line&quot; id=&quot;l4455&quot;&gt;   4455&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3318&amp;quot; id=&amp;quot;h3-0-3318&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;metalnessmap_pars_fragment&amp;amp;gt;
   4494 <a href="#l4475" class="line" id="l4475">   4475</a> &lt;a href=&quot;#l4456&quot; class=&quot;line&quot; id=&quot;l4456&quot;&gt;   4456&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3319&amp;quot; id=&amp;quot;h3-0-3319&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4495 <a href="#l4476" class="line" id="l4476">   4476</a> &lt;a href=&quot;#l4457&quot; class=&quot;line&quot; id=&quot;l4457&quot;&gt;   4457&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3320&amp;quot; id=&amp;quot;h3-0-3320&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4496 <a href="#l4477" class="line" id="l4477">   4477</a> &lt;a href=&quot;#l4458&quot; class=&quot;line&quot; id=&quot;l4458&quot;&gt;   4458&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3321&amp;quot; id=&amp;quot;h3-0-3321&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4497 <a href="#l4478" class="line" id="l4478">   4478</a> &lt;a href=&quot;#l4459&quot; class=&quot;line&quot; id=&quot;l4459&quot;&gt;   4459&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3322&amp;quot; id=&amp;quot;h3-0-3322&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   4498 <a href="#l4479" class="line" id="l4479">   4479</a> &lt;a href=&quot;#l4460&quot; class=&quot;line&quot; id=&quot;l4460&quot;&gt;   4460&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3323&amp;quot; id=&amp;quot;h3-0-3323&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4499 <a href="#l4480" class="line" id="l4480">   4480</a> &lt;a href=&quot;#l4461&quot; class=&quot;line&quot; id=&quot;l4461&quot;&gt;   4461&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3324&amp;quot; id=&amp;quot;h3-0-3324&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
   4500 <a href="#l4481" class="line" id="l4481">   4481</a> &lt;a href=&quot;#l4462&quot; class=&quot;line&quot; id=&quot;l4462&quot;&gt;   4462&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3325&amp;quot; id=&amp;quot;h3-0-3325&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 totalEmissiveRadiance = emissive;
   4501 <a href="#l4482" class="line" id="l4482">   4482</a> &lt;a href=&quot;#l4463&quot; class=&quot;line&quot; id=&quot;l4463&quot;&gt;   4463&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3326&amp;quot; id=&amp;quot;h3-0-3326&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4502 <a href="#l4483" class="line" id="l4483">   4483</a> &lt;a href=&quot;#l4464&quot; class=&quot;line&quot; id=&quot;l4464&quot;&gt;   4464&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3327&amp;quot; id=&amp;quot;h3-0-3327&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   4503 <a href="#l4484" class="line" id="l4484">   4484</a> &lt;a href=&quot;#l4465&quot; class=&quot;line&quot; id=&quot;l4465&quot;&gt;   4465&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3328&amp;quot; id=&amp;quot;h3-0-3328&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_fragment&amp;amp;gt;
   4504 <a href="#l4485" class="line" id="l4485">   4485</a> &lt;a href=&quot;#l4466&quot; class=&quot;line&quot; id=&quot;l4466&quot;&gt;   4466&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3329&amp;quot; id=&amp;quot;h3-0-3329&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   4505 <a href="#l4486" class="line" id="l4486">   4486</a> &lt;a href=&quot;#l4467&quot; class=&quot;line&quot; id=&quot;l4467&quot;&gt;   4467&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3330&amp;quot; id=&amp;quot;h3-0-3330&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   4506 <a href="#l4487" class="line" id="l4487">   4487</a> &lt;a href=&quot;#l4468&quot; class=&quot;line&quot; id=&quot;l4468&quot;&gt;   4468&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3331&amp;quot; id=&amp;quot;h3-0-3331&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   4507 <a href="#l4488" class="line" id="l4488">   4488</a> &lt;a href=&quot;#l4469&quot; class=&quot;line&quot; id=&quot;l4469&quot;&gt;   4469&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3332&amp;quot; id=&amp;quot;h3-0-3332&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;roughnessmap_fragment&amp;amp;gt;
   4508 <a href="#l4489" class="line" id="l4489">   4489</a> &lt;a href=&quot;#l4470&quot; class=&quot;line&quot; id=&quot;l4470&quot;&gt;   4470&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3333&amp;quot; id=&amp;quot;h3-0-3333&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;metalnessmap_fragment&amp;amp;gt;
   4509 <a href="#l4490" class="line" id="l4490">   4490</a> &lt;a href=&quot;#l4471&quot; class=&quot;line&quot; id=&quot;l4471&quot;&gt;   4471&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3334&amp;quot; id=&amp;quot;h3-0-3334&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_begin&amp;amp;gt;
   4510 <a href="#l4491" class="line" id="l4491">   4491</a> &lt;a href=&quot;#l4472&quot; class=&quot;line&quot; id=&quot;l4472&quot;&gt;   4472&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3335&amp;quot; id=&amp;quot;h3-0-3335&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_maps&amp;amp;gt;
   4511 <a href="#l4492" class="line" id="l4492">   4492</a> &lt;a href=&quot;#l4473&quot; class=&quot;line&quot; id=&quot;l4473&quot;&gt;   4473&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3336&amp;quot; id=&amp;quot;h3-0-3336&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clearcoat_normal_fragment_begin&amp;amp;gt;
   4512 <a href="#l4493" class="line" id="l4493">   4493</a> &lt;a href=&quot;#l4474&quot; class=&quot;line&quot; id=&quot;l4474&quot;&gt;   4474&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3337&amp;quot; id=&amp;quot;h3-0-3337&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clearcoat_normal_fragment_maps&amp;amp;gt;
   4513 <a href="#l4494" class="line" id="l4494">   4494</a> &lt;a href=&quot;#l4475&quot; class=&quot;line&quot; id=&quot;l4475&quot;&gt;   4475&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3338&amp;quot; id=&amp;quot;h3-0-3338&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;emissivemap_fragment&amp;amp;gt;
   4514 <a href="#l4495" class="line" id="l4495">   4495</a> &lt;a href=&quot;#l4476&quot; class=&quot;line&quot; id=&quot;l4476&quot;&gt;   4476&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3339&amp;quot; id=&amp;quot;h3-0-3339&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_physical_fragment&amp;amp;gt;
   4515 <a href="#l4496" class="line" id="l4496">   4496</a> &lt;a href=&quot;#l4477&quot; class=&quot;line&quot; id=&quot;l4477&quot;&gt;   4477&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3340&amp;quot; id=&amp;quot;h3-0-3340&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_begin&amp;amp;gt;
   4516 <a href="#l4497" class="line" id="l4497">   4497</a> &lt;a href=&quot;#l4478&quot; class=&quot;line&quot; id=&quot;l4478&quot;&gt;   4478&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3341&amp;quot; id=&amp;quot;h3-0-3341&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_maps&amp;amp;gt;
   4517 <a href="#l4498" class="line" id="l4498">   4498</a> &lt;a href=&quot;#l4479&quot; class=&quot;line&quot; id=&quot;l4479&quot;&gt;   4479&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3342&amp;quot; id=&amp;quot;h3-0-3342&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_end&amp;amp;gt;
   4518 <a href="#l4499" class="line" id="l4499">   4499</a> &lt;a href=&quot;#l4480&quot; class=&quot;line&quot; id=&quot;l4480&quot;&gt;   4480&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3343&amp;quot; id=&amp;quot;h3-0-3343&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;aomap_fragment&amp;amp;gt;
   4519 <a href="#l4500" class="line" id="l4500">   4500</a> &lt;a href=&quot;#l4481&quot; class=&quot;line&quot; id=&quot;l4481&quot;&gt;   4481&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3344&amp;quot; id=&amp;quot;h3-0-3344&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 totalDiffuse = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse;
   4520 <a href="#l4501" class="line" id="l4501">   4501</a> &lt;a href=&quot;#l4482&quot; class=&quot;line&quot; id=&quot;l4482&quot;&gt;   4482&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3345&amp;quot; id=&amp;quot;h3-0-3345&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 totalSpecular = reflectedLight.directSpecular + reflectedLight.indirectSpecular;
   4521 <a href="#l4502" class="line" id="l4502">   4502</a> &lt;a href=&quot;#l4483&quot; class=&quot;line&quot; id=&quot;l4483&quot;&gt;   4483&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3346&amp;quot; id=&amp;quot;h3-0-3346&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;transmission_fragment&amp;amp;gt;
   4522 <a href="#l4503" class="line" id="l4503">   4503</a> &lt;a href=&quot;#l4484&quot; class=&quot;line&quot; id=&quot;l4484&quot;&gt;   4484&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3347&amp;quot; id=&amp;quot;h3-0-3347&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = totalDiffuse + totalSpecular + totalEmissiveRadiance;
   4523 <a href="#l4504" class="line" id="l4504">   4504</a> &lt;a href=&quot;#l4485&quot; class=&quot;line&quot; id=&quot;l4485&quot;&gt;   4485&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3348&amp;quot; id=&amp;quot;h3-0-3348&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SHEEN
   4524 <a href="#l4505" class="line" id="l4505">   4505</a> &lt;a href=&quot;#l4486&quot; class=&quot;line&quot; id=&quot;l4486&quot;&gt;   4486&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3349&amp;quot; id=&amp;quot;h3-0-3349&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float sheenEnergyComp = 1.0 - 0.157 * max3( material.sheenColor );
   4525 <a href="#l4506" class="line" id="l4506">   4506</a> &lt;a href=&quot;#l4487&quot; class=&quot;line&quot; id=&quot;l4487&quot;&gt;   4487&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3350&amp;quot; id=&amp;quot;h3-0-3350&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		outgoingLight = outgoingLight * sheenEnergyComp + sheenSpecularDirect + sheenSpecularIndirect;
   4526 <a href="#l4507" class="line" id="l4507">   4507</a> &lt;a href=&quot;#l4488&quot; class=&quot;line&quot; id=&quot;l4488&quot;&gt;   4488&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3351&amp;quot; id=&amp;quot;h3-0-3351&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4527 <a href="#l4508" class="line" id="l4508">   4508</a> &lt;a href=&quot;#l4489&quot; class=&quot;line&quot; id=&quot;l4489&quot;&gt;   4489&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3352&amp;quot; id=&amp;quot;h3-0-3352&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_CLEARCOAT
   4528 <a href="#l4509" class="line" id="l4509">   4509</a> &lt;a href=&quot;#l4490&quot; class=&quot;line&quot; id=&quot;l4490&quot;&gt;   4490&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3353&amp;quot; id=&amp;quot;h3-0-3353&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float dotNVcc = saturate( dot( geometryClearcoatNormal, geometryViewDir ) );
   4529 <a href="#l4510" class="line" id="l4510">   4510</a> &lt;a href=&quot;#l4491&quot; class=&quot;line&quot; id=&quot;l4491&quot;&gt;   4491&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3354&amp;quot; id=&amp;quot;h3-0-3354&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 Fcc = F_Schlick( material.clearcoatF0, material.clearcoatF90, dotNVcc );
   4530 <a href="#l4511" class="line" id="l4511">   4511</a> &lt;a href=&quot;#l4492&quot; class=&quot;line&quot; id=&quot;l4492&quot;&gt;   4492&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3355&amp;quot; id=&amp;quot;h3-0-3355&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		outgoingLight = outgoingLight * ( 1.0 - material.clearcoat * Fcc ) + ( clearcoatSpecularDirect + clearcoatSpecularIndirect ) * material.clearcoat;
   4531 <a href="#l4512" class="line" id="l4512">   4512</a> &lt;a href=&quot;#l4493&quot; class=&quot;line&quot; id=&quot;l4493&quot;&gt;   4493&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3356&amp;quot; id=&amp;quot;h3-0-3356&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4532 <a href="#l4513" class="line" id="l4513">   4513</a> &lt;a href=&quot;#l4494&quot; class=&quot;line&quot; id=&quot;l4494&quot;&gt;   4494&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3357&amp;quot; id=&amp;quot;h3-0-3357&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   4533 <a href="#l4514" class="line" id="l4514">   4514</a> &lt;a href=&quot;#l4495&quot; class=&quot;line&quot; id=&quot;l4495&quot;&gt;   4495&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3358&amp;quot; id=&amp;quot;h3-0-3358&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4534 <a href="#l4515" class="line" id="l4515">   4515</a> &lt;a href=&quot;#l4496&quot; class=&quot;line&quot; id=&quot;l4496&quot;&gt;   4496&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3359&amp;quot; id=&amp;quot;h3-0-3359&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4535 <a href="#l4516" class="line" id="l4516">   4516</a> &lt;a href=&quot;#l4497&quot; class=&quot;line&quot; id=&quot;l4497&quot;&gt;   4497&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3360&amp;quot; id=&amp;quot;h3-0-3360&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4536 <a href="#l4517" class="line" id="l4517">   4517</a> &lt;a href=&quot;#l4498&quot; class=&quot;line&quot; id=&quot;l4498&quot;&gt;   4498&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3361&amp;quot; id=&amp;quot;h3-0-3361&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;premultiplied_alpha_fragment&amp;amp;gt;
   4537 <a href="#l4518" class="line" id="l4518">   4518</a> &lt;a href=&quot;#l4499&quot; class=&quot;line&quot; id=&quot;l4499&quot;&gt;   4499&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3362&amp;quot; id=&amp;quot;h3-0-3362&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;dithering_fragment&amp;amp;gt;
   4538 <a href="#l4519" class="line" id="l4519">   4519</a> &lt;a href=&quot;#l4500&quot; class=&quot;line&quot; id=&quot;l4500&quot;&gt;   4500&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3363&amp;quot; id=&amp;quot;h3-0-3363&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,N6=`#define TOON
   4539 <a href="#l4520" class="line" id="l4520">   4520</a> &lt;a href=&quot;#l4501&quot; class=&quot;line&quot; id=&quot;l4501&quot;&gt;   4501&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3364&amp;quot; id=&amp;quot;h3-0-3364&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vViewPosition;
   4540 <a href="#l4521" class="line" id="l4521">   4521</a> &lt;a href=&quot;#l4502&quot; class=&quot;line&quot; id=&quot;l4502&quot;&gt;   4502&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3365&amp;quot; id=&amp;quot;h3-0-3365&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4541 <a href="#l4522" class="line" id="l4522">   4522</a> &lt;a href=&quot;#l4503&quot; class=&quot;line&quot; id=&quot;l4503&quot;&gt;   4503&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3366&amp;quot; id=&amp;quot;h3-0-3366&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   4542 <a href="#l4523" class="line" id="l4523">   4523</a> &lt;a href=&quot;#l4504&quot; class=&quot;line&quot; id=&quot;l4504&quot;&gt;   4504&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3367&amp;quot; id=&amp;quot;h3-0-3367&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   4543 <a href="#l4524" class="line" id="l4524">   4524</a> &lt;a href=&quot;#l4505&quot; class=&quot;line&quot; id=&quot;l4505&quot;&gt;   4505&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3368&amp;quot; id=&amp;quot;h3-0-3368&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;displacementmap_pars_vertex&amp;amp;gt;
   4544 <a href="#l4525" class="line" id="l4525">   4525</a> &lt;a href=&quot;#l4506&quot; class=&quot;line&quot; id=&quot;l4506&quot;&gt;   4506&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3369&amp;quot; id=&amp;quot;h3-0-3369&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_vertex&amp;amp;gt;
   4545 <a href="#l4526" class="line" id="l4526">   4526</a> &lt;a href=&quot;#l4507&quot; class=&quot;line&quot; id=&quot;l4507&quot;&gt;   4507&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3370&amp;quot; id=&amp;quot;h3-0-3370&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   4546 <a href="#l4527" class="line" id="l4527">   4527</a> &lt;a href=&quot;#l4508&quot; class=&quot;line&quot; id=&quot;l4508&quot;&gt;   4508&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3371&amp;quot; id=&amp;quot;h3-0-3371&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_vertex&amp;amp;gt;
   4547 <a href="#l4528" class="line" id="l4528">   4528</a> &lt;a href=&quot;#l4509&quot; class=&quot;line&quot; id=&quot;l4509&quot;&gt;   4509&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3372&amp;quot; id=&amp;quot;h3-0-3372&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   4548 <a href="#l4529" class="line" id="l4529">   4529</a> &lt;a href=&quot;#l4510&quot; class=&quot;line&quot; id=&quot;l4510&quot;&gt;   4510&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3373&amp;quot; id=&amp;quot;h3-0-3373&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   4549 <a href="#l4530" class="line" id="l4530">   4530</a> &lt;a href=&quot;#l4511&quot; class=&quot;line&quot; id=&quot;l4511&quot;&gt;   4511&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3374&amp;quot; id=&amp;quot;h3-0-3374&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_vertex&amp;amp;gt;
   4550 <a href="#l4531" class="line" id="l4531">   4531</a> &lt;a href=&quot;#l4512&quot; class=&quot;line&quot; id=&quot;l4512&quot;&gt;   4512&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3375&amp;quot; id=&amp;quot;h3-0-3375&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4551 <a href="#l4532" class="line" id="l4532">   4532</a> &lt;a href=&quot;#l4513&quot; class=&quot;line&quot; id=&quot;l4513&quot;&gt;   4513&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3376&amp;quot; id=&amp;quot;h3-0-3376&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   4552 <a href="#l4533" class="line" id="l4533">   4533</a> &lt;a href=&quot;#l4514&quot; class=&quot;line&quot; id=&quot;l4514&quot;&gt;   4514&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3377&amp;quot; id=&amp;quot;h3-0-3377&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4553 <a href="#l4534" class="line" id="l4534">   4534</a> &lt;a href=&quot;#l4515&quot; class=&quot;line&quot; id=&quot;l4515&quot;&gt;   4515&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3378&amp;quot; id=&amp;quot;h3-0-3378&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   4554 <a href="#l4535" class="line" id="l4535">   4535</a> &lt;a href=&quot;#l4516&quot; class=&quot;line&quot; id=&quot;l4516&quot;&gt;   4516&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3379&amp;quot; id=&amp;quot;h3-0-3379&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_vertex&amp;amp;gt;
   4555 <a href="#l4536" class="line" id="l4536">   4536</a> &lt;a href=&quot;#l4517&quot; class=&quot;line&quot; id=&quot;l4517&quot;&gt;   4517&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3380&amp;quot; id=&amp;quot;h3-0-3380&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   4556 <a href="#l4537" class="line" id="l4537">   4537</a> &lt;a href=&quot;#l4518&quot; class=&quot;line&quot; id=&quot;l4518&quot;&gt;   4518&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3381&amp;quot; id=&amp;quot;h3-0-3381&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphcolor_vertex&amp;amp;gt;
   4557 <a href="#l4538" class="line" id="l4538">   4538</a> &lt;a href=&quot;#l4519&quot; class=&quot;line&quot; id=&quot;l4519&quot;&gt;   4519&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3382&amp;quot; id=&amp;quot;h3-0-3382&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   4558 <a href="#l4539" class="line" id="l4539">   4539</a> &lt;a href=&quot;#l4520&quot; class=&quot;line&quot; id=&quot;l4520&quot;&gt;   4520&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3383&amp;quot; id=&amp;quot;h3-0-3383&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   4559 <a href="#l4540" class="line" id="l4540">   4540</a> &lt;a href=&quot;#l4521&quot; class=&quot;line&quot; id=&quot;l4521&quot;&gt;   4521&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3384&amp;quot; id=&amp;quot;h3-0-3384&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   4560 <a href="#l4541" class="line" id="l4541">   4541</a> &lt;a href=&quot;#l4522&quot; class=&quot;line&quot; id=&quot;l4522&quot;&gt;   4522&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3385&amp;quot; id=&amp;quot;h3-0-3385&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   4561 <a href="#l4542" class="line" id="l4542">   4542</a> &lt;a href=&quot;#l4523&quot; class=&quot;line&quot; id=&quot;l4523&quot;&gt;   4523&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3386&amp;quot; id=&amp;quot;h3-0-3386&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   4562 <a href="#l4543" class="line" id="l4543">   4543</a> &lt;a href=&quot;#l4524&quot; class=&quot;line&quot; id=&quot;l4524&quot;&gt;   4524&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3387&amp;quot; id=&amp;quot;h3-0-3387&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;defaultnormal_vertex&amp;amp;gt;
   4563 <a href="#l4544" class="line" id="l4544">   4544</a> &lt;a href=&quot;#l4525&quot; class=&quot;line&quot; id=&quot;l4525&quot;&gt;   4525&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3388&amp;quot; id=&amp;quot;h3-0-3388&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_vertex&amp;amp;gt;
   4564 <a href="#l4545" class="line" id="l4545">   4545</a> &lt;a href=&quot;#l4526&quot; class=&quot;line&quot; id=&quot;l4526&quot;&gt;   4526&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3389&amp;quot; id=&amp;quot;h3-0-3389&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   4565 <a href="#l4546" class="line" id="l4546">   4546</a> &lt;a href=&quot;#l4527&quot; class=&quot;line&quot; id=&quot;l4527&quot;&gt;   4527&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3390&amp;quot; id=&amp;quot;h3-0-3390&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   4566 <a href="#l4547" class="line" id="l4547">   4547</a> &lt;a href=&quot;#l4528&quot; class=&quot;line&quot; id=&quot;l4528&quot;&gt;   4528&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3391&amp;quot; id=&amp;quot;h3-0-3391&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   4567 <a href="#l4548" class="line" id="l4548">   4548</a> &lt;a href=&quot;#l4529&quot; class=&quot;line&quot; id=&quot;l4529&quot;&gt;   4529&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3392&amp;quot; id=&amp;quot;h3-0-3392&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;displacementmap_vertex&amp;amp;gt;
   4568 <a href="#l4549" class="line" id="l4549">   4549</a> &lt;a href=&quot;#l4530&quot; class=&quot;line&quot; id=&quot;l4530&quot;&gt;   4530&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3393&amp;quot; id=&amp;quot;h3-0-3393&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   4569 <a href="#l4550" class="line" id="l4550">   4550</a> &lt;a href=&quot;#l4531&quot; class=&quot;line&quot; id=&quot;l4531&quot;&gt;   4531&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3394&amp;quot; id=&amp;quot;h3-0-3394&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4570 <a href="#l4551" class="line" id="l4551">   4551</a> &lt;a href=&quot;#l4532&quot; class=&quot;line&quot; id=&quot;l4532&quot;&gt;   4532&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3395&amp;quot; id=&amp;quot;h3-0-3395&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   4571 <a href="#l4552" class="line" id="l4552">   4552</a> &lt;a href=&quot;#l4533&quot; class=&quot;line&quot; id=&quot;l4533&quot;&gt;   4533&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3396&amp;quot; id=&amp;quot;h3-0-3396&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vViewPosition = - mvPosition.xyz;
   4572 <a href="#l4553" class="line" id="l4553">   4553</a> &lt;a href=&quot;#l4534&quot; class=&quot;line&quot; id=&quot;l4534&quot;&gt;   4534&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3397&amp;quot; id=&amp;quot;h3-0-3397&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;worldpos_vertex&amp;amp;gt;
   4573 <a href="#l4554" class="line" id="l4554">   4554</a> &lt;a href=&quot;#l4535&quot; class=&quot;line&quot; id=&quot;l4535&quot;&gt;   4535&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3398&amp;quot; id=&amp;quot;h3-0-3398&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;shadowmap_vertex&amp;amp;gt;
   4574 <a href="#l4555" class="line" id="l4555">   4555</a> &lt;a href=&quot;#l4536&quot; class=&quot;line&quot; id=&quot;l4536&quot;&gt;   4536&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3399&amp;quot; id=&amp;quot;h3-0-3399&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   4575 <a href="#l4556" class="line" id="l4556">   4556</a> &lt;a href=&quot;#l4537&quot; class=&quot;line&quot; id=&quot;l4537&quot;&gt;   4537&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3400&amp;quot; id=&amp;quot;h3-0-3400&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,O6=`#define TOON
   4576 <a href="#l4557" class="line" id="l4557">   4557</a> &lt;a href=&quot;#l4538&quot; class=&quot;line&quot; id=&quot;l4538&quot;&gt;   4538&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3401&amp;quot; id=&amp;quot;h3-0-3401&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 diffuse;
   4577 <a href="#l4558" class="line" id="l4558">   4558</a> &lt;a href=&quot;#l4539&quot; class=&quot;line&quot; id=&quot;l4539&quot;&gt;   4539&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3402&amp;quot; id=&amp;quot;h3-0-3402&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 emissive;
   4578 <a href="#l4559" class="line" id="l4559">   4559</a> &lt;a href=&quot;#l4540&quot; class=&quot;line&quot; id=&quot;l4540&quot;&gt;   4540&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3403&amp;quot; id=&amp;quot;h3-0-3403&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4579 <a href="#l4560" class="line" id="l4560">   4560</a> &lt;a href=&quot;#l4541&quot; class=&quot;line&quot; id=&quot;l4541&quot;&gt;   4541&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3404&amp;quot; id=&amp;quot;h3-0-3404&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4580 <a href="#l4561" class="line" id="l4561">   4561</a> &lt;a href=&quot;#l4542&quot; class=&quot;line&quot; id=&quot;l4542&quot;&gt;   4542&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3405&amp;quot; id=&amp;quot;h3-0-3405&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   4581 <a href="#l4562" class="line" id="l4562">   4562</a> &lt;a href=&quot;#l4543&quot; class=&quot;line&quot; id=&quot;l4543&quot;&gt;   4543&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3406&amp;quot; id=&amp;quot;h3-0-3406&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;dithering_pars_fragment&amp;amp;gt;
   4582 <a href="#l4563" class="line" id="l4563">   4563</a> &lt;a href=&quot;#l4544&quot; class=&quot;line&quot; id=&quot;l4544&quot;&gt;   4544&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3407&amp;quot; id=&amp;quot;h3-0-3407&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_fragment&amp;amp;gt;
   4583 <a href="#l4564" class="line" id="l4564">   4564</a> &lt;a href=&quot;#l4545&quot; class=&quot;line&quot; id=&quot;l4545&quot;&gt;   4545&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3408&amp;quot; id=&amp;quot;h3-0-3408&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   4584 <a href="#l4565" class="line" id="l4565">   4565</a> &lt;a href=&quot;#l4546&quot; class=&quot;line&quot; id=&quot;l4546&quot;&gt;   4546&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3409&amp;quot; id=&amp;quot;h3-0-3409&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   4585 <a href="#l4566" class="line" id="l4566">   4566</a> &lt;a href=&quot;#l4547&quot; class=&quot;line&quot; id=&quot;l4547&quot;&gt;   4547&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3410&amp;quot; id=&amp;quot;h3-0-3410&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   4586 <a href="#l4567" class="line" id="l4567">   4567</a> &lt;a href=&quot;#l4548&quot; class=&quot;line&quot; id=&quot;l4548&quot;&gt;   4548&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3411&amp;quot; id=&amp;quot;h3-0-3411&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   4587 <a href="#l4568" class="line" id="l4568">   4568</a> &lt;a href=&quot;#l4549&quot; class=&quot;line&quot; id=&quot;l4549&quot;&gt;   4549&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3412&amp;quot; id=&amp;quot;h3-0-3412&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   4588 <a href="#l4569" class="line" id="l4569">   4569</a> &lt;a href=&quot;#l4550&quot; class=&quot;line&quot; id=&quot;l4550&quot;&gt;   4550&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3413&amp;quot; id=&amp;quot;h3-0-3413&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;aomap_pars_fragment&amp;amp;gt;
   4589 <a href="#l4570" class="line" id="l4570">   4570</a> &lt;a href=&quot;#l4551&quot; class=&quot;line&quot; id=&quot;l4551&quot;&gt;   4551&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3414&amp;quot; id=&amp;quot;h3-0-3414&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lightmap_pars_fragment&amp;amp;gt;
   4590 <a href="#l4571" class="line" id="l4571">   4571</a> &lt;a href=&quot;#l4552&quot; class=&quot;line&quot; id=&quot;l4552&quot;&gt;   4552&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3415&amp;quot; id=&amp;quot;h3-0-3415&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;emissivemap_pars_fragment&amp;amp;gt;
   4591 <a href="#l4572" class="line" id="l4572">   4572</a> &lt;a href=&quot;#l4553&quot; class=&quot;line&quot; id=&quot;l4553&quot;&gt;   4553&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3416&amp;quot; id=&amp;quot;h3-0-3416&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;gradientmap_pars_fragment&amp;amp;gt;
   4592 <a href="#l4573" class="line" id="l4573">   4573</a> &lt;a href=&quot;#l4554&quot; class=&quot;line&quot; id=&quot;l4554&quot;&gt;   4554&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3417&amp;quot; id=&amp;quot;h3-0-3417&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4593 <a href="#l4574" class="line" id="l4574">   4574</a> &lt;a href=&quot;#l4555&quot; class=&quot;line&quot; id=&quot;l4555&quot;&gt;   4555&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3418&amp;quot; id=&amp;quot;h3-0-3418&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bsdfs&amp;amp;gt;
   4594 <a href="#l4575" class="line" id="l4575">   4575</a> &lt;a href=&quot;#l4556&quot; class=&quot;line&quot; id=&quot;l4556&quot;&gt;   4556&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3419&amp;quot; id=&amp;quot;h3-0-3419&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_pars_begin&amp;amp;gt;
   4595 <a href="#l4576" class="line" id="l4576">   4576</a> &lt;a href=&quot;#l4557&quot; class=&quot;line&quot; id=&quot;l4557&quot;&gt;   4557&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3420&amp;quot; id=&amp;quot;h3-0-3420&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normal_pars_fragment&amp;amp;gt;
   4596 <a href="#l4577" class="line" id="l4577">   4577</a> &lt;a href=&quot;#l4558&quot; class=&quot;line&quot; id=&quot;l4558&quot;&gt;   4558&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3421&amp;quot; id=&amp;quot;h3-0-3421&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_toon_pars_fragment&amp;amp;gt;
   4597 <a href="#l4578" class="line" id="l4578">   4578</a> &lt;a href=&quot;#l4559&quot; class=&quot;line&quot; id=&quot;l4559&quot;&gt;   4559&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3422&amp;quot; id=&amp;quot;h3-0-3422&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_fragment&amp;amp;gt;
   4598 <a href="#l4579" class="line" id="l4579">   4579</a> &lt;a href=&quot;#l4560&quot; class=&quot;line&quot; id=&quot;l4560&quot;&gt;   4560&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3423&amp;quot; id=&amp;quot;h3-0-3423&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bumpmap_pars_fragment&amp;amp;gt;
   4599 <a href="#l4580" class="line" id="l4580">   4580</a> &lt;a href=&quot;#l4561&quot; class=&quot;line&quot; id=&quot;l4561&quot;&gt;   4561&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3424&amp;quot; id=&amp;quot;h3-0-3424&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;normalmap_pars_fragment&amp;amp;gt;
   4600 <a href="#l4581" class="line" id="l4581">   4581</a> &lt;a href=&quot;#l4562&quot; class=&quot;line&quot; id=&quot;l4562&quot;&gt;   4562&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3425&amp;quot; id=&amp;quot;h3-0-3425&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4601 <a href="#l4582" class="line" id="l4582">   4582</a> &lt;a href=&quot;#l4563&quot; class=&quot;line&quot; id=&quot;l4563&quot;&gt;   4563&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3426&amp;quot; id=&amp;quot;h3-0-3426&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4602 <a href="#l4583" class="line" id="l4583">   4583</a> &lt;a href=&quot;#l4564&quot; class=&quot;line&quot; id=&quot;l4564&quot;&gt;   4564&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3427&amp;quot; id=&amp;quot;h3-0-3427&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4603 <a href="#l4584" class="line" id="l4584">   4584</a> &lt;a href=&quot;#l4565&quot; class=&quot;line&quot; id=&quot;l4565&quot;&gt;   4565&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3428&amp;quot; id=&amp;quot;h3-0-3428&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   4604 <a href="#l4585" class="line" id="l4585">   4585</a> &lt;a href=&quot;#l4566&quot; class=&quot;line&quot; id=&quot;l4566&quot;&gt;   4566&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3429&amp;quot; id=&amp;quot;h3-0-3429&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4605 <a href="#l4586" class="line" id="l4586">   4586</a> &lt;a href=&quot;#l4567&quot; class=&quot;line&quot; id=&quot;l4567&quot;&gt;   4567&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3430&amp;quot; id=&amp;quot;h3-0-3430&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	ReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );
   4606 <a href="#l4587" class="line" id="l4587">   4587</a> &lt;a href=&quot;#l4568&quot; class=&quot;line&quot; id=&quot;l4568&quot;&gt;   4568&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3431&amp;quot; id=&amp;quot;h3-0-3431&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 totalEmissiveRadiance = emissive;
   4607 <a href="#l4588" class="line" id="l4588">   4588</a> &lt;a href=&quot;#l4569&quot; class=&quot;line&quot; id=&quot;l4569&quot;&gt;   4569&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3432&amp;quot; id=&amp;quot;h3-0-3432&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4608 <a href="#l4589" class="line" id="l4589">   4589</a> &lt;a href=&quot;#l4570&quot; class=&quot;line&quot; id=&quot;l4570&quot;&gt;   4570&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3433&amp;quot; id=&amp;quot;h3-0-3433&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   4609 <a href="#l4590" class="line" id="l4590">   4590</a> &lt;a href=&quot;#l4571&quot; class=&quot;line&quot; id=&quot;l4571&quot;&gt;   4571&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3434&amp;quot; id=&amp;quot;h3-0-3434&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_fragment&amp;amp;gt;
   4610 <a href="#l4591" class="line" id="l4591">   4591</a> &lt;a href=&quot;#l4572&quot; class=&quot;line&quot; id=&quot;l4572&quot;&gt;   4572&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3435&amp;quot; id=&amp;quot;h3-0-3435&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   4611 <a href="#l4592" class="line" id="l4592">   4592</a> &lt;a href=&quot;#l4573&quot; class=&quot;line&quot; id=&quot;l4573&quot;&gt;   4573&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3436&amp;quot; id=&amp;quot;h3-0-3436&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   4612 <a href="#l4593" class="line" id="l4593">   4593</a> &lt;a href=&quot;#l4574&quot; class=&quot;line&quot; id=&quot;l4574&quot;&gt;   4574&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3437&amp;quot; id=&amp;quot;h3-0-3437&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   4613 <a href="#l4594" class="line" id="l4594">   4594</a> &lt;a href=&quot;#l4575&quot; class=&quot;line&quot; id=&quot;l4575&quot;&gt;   4575&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3438&amp;quot; id=&amp;quot;h3-0-3438&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_begin&amp;amp;gt;
   4614 <a href="#l4595" class="line" id="l4595">   4595</a> &lt;a href=&quot;#l4576&quot; class=&quot;line&quot; id=&quot;l4576&quot;&gt;   4576&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3439&amp;quot; id=&amp;quot;h3-0-3439&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;normal_fragment_maps&amp;amp;gt;
   4615 <a href="#l4596" class="line" id="l4596">   4596</a> &lt;a href=&quot;#l4577&quot; class=&quot;line&quot; id=&quot;l4577&quot;&gt;   4577&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3440&amp;quot; id=&amp;quot;h3-0-3440&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;emissivemap_fragment&amp;amp;gt;
   4616 <a href="#l4597" class="line" id="l4597">   4597</a> &lt;a href=&quot;#l4578&quot; class=&quot;line&quot; id=&quot;l4578&quot;&gt;   4578&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3441&amp;quot; id=&amp;quot;h3-0-3441&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_toon_fragment&amp;amp;gt;
   4617 <a href="#l4598" class="line" id="l4598">   4598</a> &lt;a href=&quot;#l4579&quot; class=&quot;line&quot; id=&quot;l4579&quot;&gt;   4579&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3442&amp;quot; id=&amp;quot;h3-0-3442&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_begin&amp;amp;gt;
   4618 <a href="#l4599" class="line" id="l4599">   4599</a> &lt;a href=&quot;#l4580&quot; class=&quot;line&quot; id=&quot;l4580&quot;&gt;   4580&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3443&amp;quot; id=&amp;quot;h3-0-3443&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_maps&amp;amp;gt;
   4619 <a href="#l4600" class="line" id="l4600">   4600</a> &lt;a href=&quot;#l4581&quot; class=&quot;line&quot; id=&quot;l4581&quot;&gt;   4581&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3444&amp;quot; id=&amp;quot;h3-0-3444&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;lights_fragment_end&amp;amp;gt;
   4620 <a href="#l4601" class="line" id="l4601">   4601</a> &lt;a href=&quot;#l4582&quot; class=&quot;line&quot; id=&quot;l4582&quot;&gt;   4582&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3445&amp;quot; id=&amp;quot;h3-0-3445&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;aomap_fragment&amp;amp;gt;
   4621 <a href="#l4602" class="line" id="l4602">   4602</a> &lt;a href=&quot;#l4583&quot; class=&quot;line&quot; id=&quot;l4583&quot;&gt;   4583&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3446&amp;quot; id=&amp;quot;h3-0-3446&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;
   4622 <a href="#l4603" class="line" id="l4603">   4603</a> &lt;a href=&quot;#l4584&quot; class=&quot;line&quot; id=&quot;l4584&quot;&gt;   4584&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3447&amp;quot; id=&amp;quot;h3-0-3447&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   4623 <a href="#l4604" class="line" id="l4604">   4604</a> &lt;a href=&quot;#l4585&quot; class=&quot;line&quot; id=&quot;l4585&quot;&gt;   4585&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3448&amp;quot; id=&amp;quot;h3-0-3448&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4624 <a href="#l4605" class="line" id="l4605">   4605</a> &lt;a href=&quot;#l4586&quot; class=&quot;line&quot; id=&quot;l4586&quot;&gt;   4586&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3449&amp;quot; id=&amp;quot;h3-0-3449&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4625 <a href="#l4606" class="line" id="l4606">   4606</a> &lt;a href=&quot;#l4587&quot; class=&quot;line&quot; id=&quot;l4587&quot;&gt;   4587&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3450&amp;quot; id=&amp;quot;h3-0-3450&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4626 <a href="#l4607" class="line" id="l4607">   4607</a> &lt;a href=&quot;#l4588&quot; class=&quot;line&quot; id=&quot;l4588&quot;&gt;   4588&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3451&amp;quot; id=&amp;quot;h3-0-3451&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;premultiplied_alpha_fragment&amp;amp;gt;
   4627 <a href="#l4608" class="line" id="l4608">   4608</a> &lt;a href=&quot;#l4589&quot; class=&quot;line&quot; id=&quot;l4589&quot;&gt;   4589&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3452&amp;quot; id=&amp;quot;h3-0-3452&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;dithering_fragment&amp;amp;gt;
   4628 <a href="#l4609" class="line" id="l4609">   4609</a> &lt;a href=&quot;#l4590&quot; class=&quot;line&quot; id=&quot;l4590&quot;&gt;   4590&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3453&amp;quot; id=&amp;quot;h3-0-3453&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,L6=`uniform float size;
   4629 <a href="#l4610" class="line" id="l4610">   4610</a> &lt;a href=&quot;#l4591&quot; class=&quot;line&quot; id=&quot;l4591&quot;&gt;   4591&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3454&amp;quot; id=&amp;quot;h3-0-3454&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float scale;
   4630 <a href="#l4611" class="line" id="l4611">   4611</a> &lt;a href=&quot;#l4592&quot; class=&quot;line&quot; id=&quot;l4592&quot;&gt;   4592&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3455&amp;quot; id=&amp;quot;h3-0-3455&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4631 <a href="#l4612" class="line" id="l4612">   4612</a> &lt;a href=&quot;#l4593&quot; class=&quot;line&quot; id=&quot;l4593&quot;&gt;   4593&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3456&amp;quot; id=&amp;quot;h3-0-3456&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_vertex&amp;amp;gt;
   4632 <a href="#l4613" class="line" id="l4613">   4613</a> &lt;a href=&quot;#l4594&quot; class=&quot;line&quot; id=&quot;l4594&quot;&gt;   4594&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3457&amp;quot; id=&amp;quot;h3-0-3457&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   4633 <a href="#l4614" class="line" id="l4614">   4614</a> &lt;a href=&quot;#l4595&quot; class=&quot;line&quot; id=&quot;l4595&quot;&gt;   4595&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3458&amp;quot; id=&amp;quot;h3-0-3458&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   4634 <a href="#l4615" class="line" id="l4615">   4615</a> &lt;a href=&quot;#l4596&quot; class=&quot;line&quot; id=&quot;l4596&quot;&gt;   4596&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3459&amp;quot; id=&amp;quot;h3-0-3459&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4635 <a href="#l4616" class="line" id="l4616">   4616</a> &lt;a href=&quot;#l4597&quot; class=&quot;line&quot; id=&quot;l4597&quot;&gt;   4597&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3460&amp;quot; id=&amp;quot;h3-0-3460&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   4636 <a href="#l4617" class="line" id="l4617">   4617</a> &lt;a href=&quot;#l4598&quot; class=&quot;line&quot; id=&quot;l4598&quot;&gt;   4598&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3461&amp;quot; id=&amp;quot;h3-0-3461&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef USE_POINTS_UV
   4637 <a href="#l4618" class="line" id="l4618">   4618</a> &lt;a href=&quot;#l4599&quot; class=&quot;line&quot; id=&quot;l4599&quot;&gt;   4599&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3462&amp;quot; id=&amp;quot;h3-0-3462&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	varying vec2 vUv;
   4638 <a href="#l4619" class="line" id="l4619">   4619</a> &lt;a href=&quot;#l4600&quot; class=&quot;line&quot; id=&quot;l4600&quot;&gt;   4600&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3463&amp;quot; id=&amp;quot;h3-0-3463&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	uniform mat3 uvTransform;
   4639 <a href="#l4620" class="line" id="l4620">   4620</a> &lt;a href=&quot;#l4601&quot; class=&quot;line&quot; id=&quot;l4601&quot;&gt;   4601&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3464&amp;quot; id=&amp;quot;h3-0-3464&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   4640 <a href="#l4621" class="line" id="l4621">   4621</a> &lt;a href=&quot;#l4602&quot; class=&quot;line&quot; id=&quot;l4602&quot;&gt;   4602&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3465&amp;quot; id=&amp;quot;h3-0-3465&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4641 <a href="#l4622" class="line" id="l4622">   4622</a> &lt;a href=&quot;#l4603&quot; class=&quot;line&quot; id=&quot;l4603&quot;&gt;   4603&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3466&amp;quot; id=&amp;quot;h3-0-3466&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_POINTS_UV
   4642 <a href="#l4623" class="line" id="l4623">   4623</a> &lt;a href=&quot;#l4604&quot; class=&quot;line&quot; id=&quot;l4604&quot;&gt;   4604&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3467&amp;quot; id=&amp;quot;h3-0-3467&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vUv = ( uvTransform * vec3( uv, 1 ) ).xy;
   4643 <a href="#l4624" class="line" id="l4624">   4624</a> &lt;a href=&quot;#l4605&quot; class=&quot;line&quot; id=&quot;l4605&quot;&gt;   4605&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3468&amp;quot; id=&amp;quot;h3-0-3468&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4644 <a href="#l4625" class="line" id="l4625">   4625</a> &lt;a href=&quot;#l4606&quot; class=&quot;line&quot; id=&quot;l4606&quot;&gt;   4606&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3469&amp;quot; id=&amp;quot;h3-0-3469&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_vertex&amp;amp;gt;
   4645 <a href="#l4626" class="line" id="l4626">   4626</a> &lt;a href=&quot;#l4607&quot; class=&quot;line&quot; id=&quot;l4607&quot;&gt;   4607&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3470&amp;quot; id=&amp;quot;h3-0-3470&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   4646 <a href="#l4627" class="line" id="l4627">   4627</a> &lt;a href=&quot;#l4608&quot; class=&quot;line&quot; id=&quot;l4608&quot;&gt;   4608&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3471&amp;quot; id=&amp;quot;h3-0-3471&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphcolor_vertex&amp;amp;gt;
   4647 <a href="#l4628" class="line" id="l4628">   4628</a> &lt;a href=&quot;#l4609&quot; class=&quot;line&quot; id=&quot;l4609&quot;&gt;   4609&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3472&amp;quot; id=&amp;quot;h3-0-3472&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   4648 <a href="#l4629" class="line" id="l4629">   4629</a> &lt;a href=&quot;#l4610&quot; class=&quot;line&quot; id=&quot;l4610&quot;&gt;   4610&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3473&amp;quot; id=&amp;quot;h3-0-3473&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   4649 <a href="#l4630" class="line" id="l4630">   4630</a> &lt;a href=&quot;#l4611&quot; class=&quot;line&quot; id=&quot;l4611&quot;&gt;   4611&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3474&amp;quot; id=&amp;quot;h3-0-3474&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   4650 <a href="#l4631" class="line" id="l4631">   4631</a> &lt;a href=&quot;#l4612&quot; class=&quot;line&quot; id=&quot;l4612&quot;&gt;   4612&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3475&amp;quot; id=&amp;quot;h3-0-3475&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_PointSize = size;
   4651 <a href="#l4632" class="line" id="l4632">   4632</a> &lt;a href=&quot;#l4613&quot; class=&quot;line&quot; id=&quot;l4613&quot;&gt;   4613&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3476&amp;quot; id=&amp;quot;h3-0-3476&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifdef USE_SIZEATTENUATION
   4652 <a href="#l4633" class="line" id="l4633">   4633</a> &lt;a href=&quot;#l4614&quot; class=&quot;line&quot; id=&quot;l4614&quot;&gt;   4614&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3477&amp;quot; id=&amp;quot;h3-0-3477&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
   4653 <a href="#l4634" class="line" id="l4634">   4634</a> &lt;a href=&quot;#l4615&quot; class=&quot;line&quot; id=&quot;l4615&quot;&gt;   4615&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3478&amp;quot; id=&amp;quot;h3-0-3478&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( isPerspective ) gl_PointSize *= ( scale / - mvPosition.z );
   4654 <a href="#l4635" class="line" id="l4635">   4635</a> &lt;a href=&quot;#l4616&quot; class=&quot;line&quot; id=&quot;l4616&quot;&gt;   4616&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3479&amp;quot; id=&amp;quot;h3-0-3479&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4655 <a href="#l4636" class="line" id="l4636">   4636</a> &lt;a href=&quot;#l4617&quot; class=&quot;line&quot; id=&quot;l4617&quot;&gt;   4617&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3480&amp;quot; id=&amp;quot;h3-0-3480&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4656 <a href="#l4637" class="line" id="l4637">   4637</a> &lt;a href=&quot;#l4618&quot; class=&quot;line&quot; id=&quot;l4618&quot;&gt;   4618&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3481&amp;quot; id=&amp;quot;h3-0-3481&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   4657 <a href="#l4638" class="line" id="l4638">   4638</a> &lt;a href=&quot;#l4619&quot; class=&quot;line&quot; id=&quot;l4619&quot;&gt;   4619&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3482&amp;quot; id=&amp;quot;h3-0-3482&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;worldpos_vertex&amp;amp;gt;
   4658 <a href="#l4639" class="line" id="l4639">   4639</a> &lt;a href=&quot;#l4620&quot; class=&quot;line&quot; id=&quot;l4620&quot;&gt;   4620&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3483&amp;quot; id=&amp;quot;h3-0-3483&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   4659 <a href="#l4640" class="line" id="l4640">   4640</a> &lt;a href=&quot;#l4621&quot; class=&quot;line&quot; id=&quot;l4621&quot;&gt;   4621&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3484&amp;quot; id=&amp;quot;h3-0-3484&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,z6=`uniform vec3 diffuse;
   4660 <a href="#l4641" class="line" id="l4641">   4641</a> &lt;a href=&quot;#l4622&quot; class=&quot;line&quot; id=&quot;l4622&quot;&gt;   4622&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3485&amp;quot; id=&amp;quot;h3-0-3485&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4661 <a href="#l4642" class="line" id="l4642">   4642</a> &lt;a href=&quot;#l4623&quot; class=&quot;line&quot; id=&quot;l4623&quot;&gt;   4623&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3486&amp;quot; id=&amp;quot;h3-0-3486&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4662 <a href="#l4643" class="line" id="l4643">   4643</a> &lt;a href=&quot;#l4624&quot; class=&quot;line&quot; id=&quot;l4624&quot;&gt;   4624&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3487&amp;quot; id=&amp;quot;h3-0-3487&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;color_pars_fragment&amp;amp;gt;
   4663 <a href="#l4644" class="line" id="l4644">   4644</a> &lt;a href=&quot;#l4625&quot; class=&quot;line&quot; id=&quot;l4625&quot;&gt;   4625&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3488&amp;quot; id=&amp;quot;h3-0-3488&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_particle_pars_fragment&amp;amp;gt;
   4664 <a href="#l4645" class="line" id="l4645">   4645</a> &lt;a href=&quot;#l4626&quot; class=&quot;line&quot; id=&quot;l4626&quot;&gt;   4626&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3489&amp;quot; id=&amp;quot;h3-0-3489&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   4665 <a href="#l4646" class="line" id="l4646">   4646</a> &lt;a href=&quot;#l4627&quot; class=&quot;line&quot; id=&quot;l4627&quot;&gt;   4627&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3490&amp;quot; id=&amp;quot;h3-0-3490&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   4666 <a href="#l4647" class="line" id="l4647">   4647</a> &lt;a href=&quot;#l4628&quot; class=&quot;line&quot; id=&quot;l4628&quot;&gt;   4628&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3491&amp;quot; id=&amp;quot;h3-0-3491&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4667 <a href="#l4648" class="line" id="l4648">   4648</a> &lt;a href=&quot;#l4629&quot; class=&quot;line&quot; id=&quot;l4629&quot;&gt;   4629&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3492&amp;quot; id=&amp;quot;h3-0-3492&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4668 <a href="#l4649" class="line" id="l4649">   4649</a> &lt;a href=&quot;#l4630&quot; class=&quot;line&quot; id=&quot;l4630&quot;&gt;   4630&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3493&amp;quot; id=&amp;quot;h3-0-3493&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4669 <a href="#l4650" class="line" id="l4650">   4650</a> &lt;a href=&quot;#l4631&quot; class=&quot;line&quot; id=&quot;l4631&quot;&gt;   4631&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3494&amp;quot; id=&amp;quot;h3-0-3494&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4670 <a href="#l4651" class="line" id="l4651">   4651</a> &lt;a href=&quot;#l4632&quot; class=&quot;line&quot; id=&quot;l4632&quot;&gt;   4632&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3495&amp;quot; id=&amp;quot;h3-0-3495&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   4671 <a href="#l4652" class="line" id="l4652">   4652</a> &lt;a href=&quot;#l4633&quot; class=&quot;line&quot; id=&quot;l4633&quot;&gt;   4633&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3496&amp;quot; id=&amp;quot;h3-0-3496&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4672 <a href="#l4653" class="line" id="l4653">   4653</a> &lt;a href=&quot;#l4634&quot; class=&quot;line&quot; id=&quot;l4634&quot;&gt;   4634&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3497&amp;quot; id=&amp;quot;h3-0-3497&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = vec3( 0.0 );
   4673 <a href="#l4654" class="line" id="l4654">   4654</a> &lt;a href=&quot;#l4635&quot; class=&quot;line&quot; id=&quot;l4635&quot;&gt;   4635&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3498&amp;quot; id=&amp;quot;h3-0-3498&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4674 <a href="#l4655" class="line" id="l4655">   4655</a> &lt;a href=&quot;#l4636&quot; class=&quot;line&quot; id=&quot;l4636&quot;&gt;   4636&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3499&amp;quot; id=&amp;quot;h3-0-3499&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_particle_fragment&amp;amp;gt;
   4675 <a href="#l4656" class="line" id="l4656">   4656</a> &lt;a href=&quot;#l4637&quot; class=&quot;line&quot; id=&quot;l4637&quot;&gt;   4637&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3500&amp;quot; id=&amp;quot;h3-0-3500&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;color_fragment&amp;amp;gt;
   4676 <a href="#l4657" class="line" id="l4657">   4657</a> &lt;a href=&quot;#l4638&quot; class=&quot;line&quot; id=&quot;l4638&quot;&gt;   4638&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3501&amp;quot; id=&amp;quot;h3-0-3501&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   4677 <a href="#l4658" class="line" id="l4658">   4658</a> &lt;a href=&quot;#l4639&quot; class=&quot;line&quot; id=&quot;l4639&quot;&gt;   4639&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3502&amp;quot; id=&amp;quot;h3-0-3502&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   4678 <a href="#l4659" class="line" id="l4659">   4659</a> &lt;a href=&quot;#l4640&quot; class=&quot;line&quot; id=&quot;l4640&quot;&gt;   4640&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3503&amp;quot; id=&amp;quot;h3-0-3503&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	outgoingLight = diffuseColor.rgb;
   4679 <a href="#l4660" class="line" id="l4660">   4660</a> &lt;a href=&quot;#l4641&quot; class=&quot;line&quot; id=&quot;l4641&quot;&gt;   4641&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3504&amp;quot; id=&amp;quot;h3-0-3504&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   4680 <a href="#l4661" class="line" id="l4661">   4661</a> &lt;a href=&quot;#l4642&quot; class=&quot;line&quot; id=&quot;l4642&quot;&gt;   4642&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3505&amp;quot; id=&amp;quot;h3-0-3505&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4681 <a href="#l4662" class="line" id="l4662">   4662</a> &lt;a href=&quot;#l4643&quot; class=&quot;line&quot; id=&quot;l4643&quot;&gt;   4643&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3506&amp;quot; id=&amp;quot;h3-0-3506&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4682 <a href="#l4663" class="line" id="l4663">   4663</a> &lt;a href=&quot;#l4644&quot; class=&quot;line&quot; id=&quot;l4644&quot;&gt;   4644&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3507&amp;quot; id=&amp;quot;h3-0-3507&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4683 <a href="#l4664" class="line" id="l4664">   4664</a> &lt;a href=&quot;#l4645&quot; class=&quot;line&quot; id=&quot;l4645&quot;&gt;   4645&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3508&amp;quot; id=&amp;quot;h3-0-3508&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;premultiplied_alpha_fragment&amp;amp;gt;
   4684 <a href="#l4665" class="line" id="l4665">   4665</a> &lt;a href=&quot;#l4646&quot; class=&quot;line&quot; id=&quot;l4646&quot;&gt;   4646&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3509&amp;quot; id=&amp;quot;h3-0-3509&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,B6=`#include &amp;amp;lt;common&amp;amp;gt;
   4685 <a href="#l4666" class="line" id="l4666">   4666</a> &lt;a href=&quot;#l4647&quot; class=&quot;line&quot; id=&quot;l4647&quot;&gt;   4647&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3510&amp;quot; id=&amp;quot;h3-0-3510&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;batching_pars_vertex&amp;amp;gt;
   4686 <a href="#l4667" class="line" id="l4667">   4667</a> &lt;a href=&quot;#l4648&quot; class=&quot;line&quot; id=&quot;l4648&quot;&gt;   4648&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3511&amp;quot; id=&amp;quot;h3-0-3511&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   4687 <a href="#l4668" class="line" id="l4668">   4668</a> &lt;a href=&quot;#l4649&quot; class=&quot;line&quot; id=&quot;l4649&quot;&gt;   4649&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3512&amp;quot; id=&amp;quot;h3-0-3512&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;morphtarget_pars_vertex&amp;amp;gt;
   4688 <a href="#l4669" class="line" id="l4669">   4669</a> &lt;a href=&quot;#l4650&quot; class=&quot;line&quot; id=&quot;l4650&quot;&gt;   4650&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3513&amp;quot; id=&amp;quot;h3-0-3513&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;skinning_pars_vertex&amp;amp;gt;
   4689 <a href="#l4670" class="line" id="l4670">   4670</a> &lt;a href=&quot;#l4651&quot; class=&quot;line&quot; id=&quot;l4651&quot;&gt;   4651&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3514&amp;quot; id=&amp;quot;h3-0-3514&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4690 <a href="#l4671" class="line" id="l4671">   4671</a> &lt;a href=&quot;#l4652&quot; class=&quot;line&quot; id=&quot;l4652&quot;&gt;   4652&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3515&amp;quot; id=&amp;quot;h3-0-3515&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_vertex&amp;amp;gt;
   4691 <a href="#l4672" class="line" id="l4672">   4672</a> &lt;a href=&quot;#l4653&quot; class=&quot;line&quot; id=&quot;l4653&quot;&gt;   4653&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3516&amp;quot; id=&amp;quot;h3-0-3516&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4692 <a href="#l4673" class="line" id="l4673">   4673</a> &lt;a href=&quot;#l4654&quot; class=&quot;line&quot; id=&quot;l4654&quot;&gt;   4654&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3517&amp;quot; id=&amp;quot;h3-0-3517&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;batching_vertex&amp;amp;gt;
   4693 <a href="#l4674" class="line" id="l4674">   4674</a> &lt;a href=&quot;#l4655&quot; class=&quot;line&quot; id=&quot;l4655&quot;&gt;   4655&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3518&amp;quot; id=&amp;quot;h3-0-3518&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;beginnormal_vertex&amp;amp;gt;
   4694 <a href="#l4675" class="line" id="l4675">   4675</a> &lt;a href=&quot;#l4656&quot; class=&quot;line&quot; id=&quot;l4656&quot;&gt;   4656&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3519&amp;quot; id=&amp;quot;h3-0-3519&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphinstance_vertex&amp;amp;gt;
   4695 <a href="#l4676" class="line" id="l4676">   4676</a> &lt;a href=&quot;#l4657&quot; class=&quot;line&quot; id=&quot;l4657&quot;&gt;   4657&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3520&amp;quot; id=&amp;quot;h3-0-3520&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphnormal_vertex&amp;amp;gt;
   4696 <a href="#l4677" class="line" id="l4677">   4677</a> &lt;a href=&quot;#l4658&quot; class=&quot;line&quot; id=&quot;l4658&quot;&gt;   4658&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3521&amp;quot; id=&amp;quot;h3-0-3521&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinbase_vertex&amp;amp;gt;
   4697 <a href="#l4678" class="line" id="l4678">   4678</a> &lt;a href=&quot;#l4659&quot; class=&quot;line&quot; id=&quot;l4659&quot;&gt;   4659&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3522&amp;quot; id=&amp;quot;h3-0-3522&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinnormal_vertex&amp;amp;gt;
   4698 <a href="#l4679" class="line" id="l4679">   4679</a> &lt;a href=&quot;#l4660&quot; class=&quot;line&quot; id=&quot;l4660&quot;&gt;   4660&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3523&amp;quot; id=&amp;quot;h3-0-3523&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;defaultnormal_vertex&amp;amp;gt;
   4699 <a href="#l4680" class="line" id="l4680">   4680</a> &lt;a href=&quot;#l4661&quot; class=&quot;line&quot; id=&quot;l4661&quot;&gt;   4661&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3524&amp;quot; id=&amp;quot;h3-0-3524&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;begin_vertex&amp;amp;gt;
   4700 <a href="#l4681" class="line" id="l4681">   4681</a> &lt;a href=&quot;#l4662&quot; class=&quot;line&quot; id=&quot;l4662&quot;&gt;   4662&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3525&amp;quot; id=&amp;quot;h3-0-3525&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;morphtarget_vertex&amp;amp;gt;
   4701 <a href="#l4682" class="line" id="l4682">   4682</a> &lt;a href=&quot;#l4663&quot; class=&quot;line&quot; id=&quot;l4663&quot;&gt;   4663&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3526&amp;quot; id=&amp;quot;h3-0-3526&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;skinning_vertex&amp;amp;gt;
   4702 <a href="#l4683" class="line" id="l4683">   4683</a> &lt;a href=&quot;#l4664&quot; class=&quot;line&quot; id=&quot;l4664&quot;&gt;   4664&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3527&amp;quot; id=&amp;quot;h3-0-3527&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;project_vertex&amp;amp;gt;
   4703 <a href="#l4684" class="line" id="l4684">   4684</a> &lt;a href=&quot;#l4665&quot; class=&quot;line&quot; id=&quot;l4665&quot;&gt;   4665&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3528&amp;quot; id=&amp;quot;h3-0-3528&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4704 <a href="#l4685" class="line" id="l4685">   4685</a> &lt;a href=&quot;#l4666&quot; class=&quot;line&quot; id=&quot;l4666&quot;&gt;   4666&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3529&amp;quot; id=&amp;quot;h3-0-3529&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;worldpos_vertex&amp;amp;gt;
   4705 <a href="#l4686" class="line" id="l4686">   4686</a> &lt;a href=&quot;#l4667&quot; class=&quot;line&quot; id=&quot;l4667&quot;&gt;   4667&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3530&amp;quot; id=&amp;quot;h3-0-3530&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;shadowmap_vertex&amp;amp;gt;
   4706 <a href="#l4687" class="line" id="l4687">   4687</a> &lt;a href=&quot;#l4668&quot; class=&quot;line&quot; id=&quot;l4668&quot;&gt;   4668&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3531&amp;quot; id=&amp;quot;h3-0-3531&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   4707 <a href="#l4688" class="line" id="l4688">   4688</a> &lt;a href=&quot;#l4669&quot; class=&quot;line&quot; id=&quot;l4669&quot;&gt;   4669&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3532&amp;quot; id=&amp;quot;h3-0-3532&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,P6=`uniform vec3 color;
   4708 <a href="#l4689" class="line" id="l4689">   4689</a> &lt;a href=&quot;#l4670&quot; class=&quot;line&quot; id=&quot;l4670&quot;&gt;   4670&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3533&amp;quot; id=&amp;quot;h3-0-3533&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4709 <a href="#l4690" class="line" id="l4690">   4690</a> &lt;a href=&quot;#l4671&quot; class=&quot;line&quot; id=&quot;l4671&quot;&gt;   4671&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3534&amp;quot; id=&amp;quot;h3-0-3534&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4710 <a href="#l4691" class="line" id="l4691">   4691</a> &lt;a href=&quot;#l4672&quot; class=&quot;line&quot; id=&quot;l4672&quot;&gt;   4672&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3535&amp;quot; id=&amp;quot;h3-0-3535&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   4711 <a href="#l4692" class="line" id="l4692">   4692</a> &lt;a href=&quot;#l4673&quot; class=&quot;line&quot; id=&quot;l4673&quot;&gt;   4673&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3536&amp;quot; id=&amp;quot;h3-0-3536&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4712 <a href="#l4693" class="line" id="l4693">   4693</a> &lt;a href=&quot;#l4674&quot; class=&quot;line&quot; id=&quot;l4674&quot;&gt;   4674&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3537&amp;quot; id=&amp;quot;h3-0-3537&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;bsdfs&amp;amp;gt;
   4713 <a href="#l4694" class="line" id="l4694">   4694</a> &lt;a href=&quot;#l4675&quot; class=&quot;line&quot; id=&quot;l4675&quot;&gt;   4675&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3538&amp;quot; id=&amp;quot;h3-0-3538&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;lights_pars_begin&amp;amp;gt;
   4714 <a href="#l4695" class="line" id="l4695">   4695</a> &lt;a href=&quot;#l4676&quot; class=&quot;line&quot; id=&quot;l4676&quot;&gt;   4676&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3539&amp;quot; id=&amp;quot;h3-0-3539&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4715 <a href="#l4696" class="line" id="l4696">   4696</a> &lt;a href=&quot;#l4677&quot; class=&quot;line&quot; id=&quot;l4677&quot;&gt;   4677&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3540&amp;quot; id=&amp;quot;h3-0-3540&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmap_pars_fragment&amp;amp;gt;
   4716 <a href="#l4697" class="line" id="l4697">   4697</a> &lt;a href=&quot;#l4678&quot; class=&quot;line&quot; id=&quot;l4678&quot;&gt;   4678&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3541&amp;quot; id=&amp;quot;h3-0-3541&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;shadowmask_pars_fragment&amp;amp;gt;
   4717 <a href="#l4698" class="line" id="l4698">   4698</a> &lt;a href=&quot;#l4679&quot; class=&quot;line&quot; id=&quot;l4679&quot;&gt;   4679&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3542&amp;quot; id=&amp;quot;h3-0-3542&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4718 <a href="#l4699" class="line" id="l4699">   4699</a> &lt;a href=&quot;#l4680&quot; class=&quot;line&quot; id=&quot;l4680&quot;&gt;   4680&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3543&amp;quot; id=&amp;quot;h3-0-3543&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4719 <a href="#l4700" class="line" id="l4700">   4700</a> &lt;a href=&quot;#l4681&quot; class=&quot;line&quot; id=&quot;l4681&quot;&gt;   4681&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3544&amp;quot; id=&amp;quot;h3-0-3544&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = vec4( color, opacity * ( 1.0 - getShadowMask() ) );
   4720 <a href="#l4701" class="line" id="l4701">   4701</a> &lt;a href=&quot;#l4682&quot; class=&quot;line&quot; id=&quot;l4682&quot;&gt;   4682&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3545&amp;quot; id=&amp;quot;h3-0-3545&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4721 <a href="#l4702" class="line" id="l4702">   4702</a> &lt;a href=&quot;#l4683&quot; class=&quot;line&quot; id=&quot;l4683&quot;&gt;   4683&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3546&amp;quot; id=&amp;quot;h3-0-3546&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4722 <a href="#l4703" class="line" id="l4703">   4703</a> &lt;a href=&quot;#l4684&quot; class=&quot;line&quot; id=&quot;l4684&quot;&gt;   4684&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3547&amp;quot; id=&amp;quot;h3-0-3547&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4723 <a href="#l4704" class="line" id="l4704">   4704</a> &lt;a href=&quot;#l4685&quot; class=&quot;line&quot; id=&quot;l4685&quot;&gt;   4685&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3548&amp;quot; id=&amp;quot;h3-0-3548&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,I6=`uniform float rotation;
   4724 <a href="#l4705" class="line" id="l4705">   4705</a> &lt;a href=&quot;#l4686&quot; class=&quot;line&quot; id=&quot;l4686&quot;&gt;   4686&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3549&amp;quot; id=&amp;quot;h3-0-3549&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec2 center;
   4725 <a href="#l4706" class="line" id="l4706">   4706</a> &lt;a href=&quot;#l4687&quot; class=&quot;line&quot; id=&quot;l4687&quot;&gt;   4687&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3550&amp;quot; id=&amp;quot;h3-0-3550&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4726 <a href="#l4707" class="line" id="l4707">   4707</a> &lt;a href=&quot;#l4688&quot; class=&quot;line&quot; id=&quot;l4688&quot;&gt;   4688&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3551&amp;quot; id=&amp;quot;h3-0-3551&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_vertex&amp;amp;gt;
   4727 <a href="#l4708" class="line" id="l4708">   4708</a> &lt;a href=&quot;#l4689&quot; class=&quot;line&quot; id=&quot;l4689&quot;&gt;   4689&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3552&amp;quot; id=&amp;quot;h3-0-3552&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_vertex&amp;amp;gt;
   4728 <a href="#l4709" class="line" id="l4709">   4709</a> &lt;a href=&quot;#l4690&quot; class=&quot;line&quot; id=&quot;l4690&quot;&gt;   4690&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3553&amp;quot; id=&amp;quot;h3-0-3553&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_vertex&amp;amp;gt;
   4729 <a href="#l4710" class="line" id="l4710">   4710</a> &lt;a href=&quot;#l4691&quot; class=&quot;line&quot; id=&quot;l4691&quot;&gt;   4691&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3554&amp;quot; id=&amp;quot;h3-0-3554&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_vertex&amp;amp;gt;
   4730 <a href="#l4711" class="line" id="l4711">   4711</a> &lt;a href=&quot;#l4692&quot; class=&quot;line&quot; id=&quot;l4692&quot;&gt;   4692&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3555&amp;quot; id=&amp;quot;h3-0-3555&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4731 <a href="#l4712" class="line" id="l4712">   4712</a> &lt;a href=&quot;#l4693&quot; class=&quot;line&quot; id=&quot;l4693&quot;&gt;   4693&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3556&amp;quot; id=&amp;quot;h3-0-3556&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;uv_vertex&amp;amp;gt;
   4732 <a href="#l4713" class="line" id="l4713">   4713</a> &lt;a href=&quot;#l4694&quot; class=&quot;line&quot; id=&quot;l4694&quot;&gt;   4694&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3557&amp;quot; id=&amp;quot;h3-0-3557&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 mvPosition = modelViewMatrix[ 3 ];
   4733 <a href="#l4714" class="line" id="l4714">   4714</a> &lt;a href=&quot;#l4695&quot; class=&quot;line&quot; id=&quot;l4695&quot;&gt;   4695&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3558&amp;quot; id=&amp;quot;h3-0-3558&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 scale = vec2( length( modelMatrix[ 0 ].xyz ), length( modelMatrix[ 1 ].xyz ) );
   4734 <a href="#l4715" class="line" id="l4715">   4715</a> &lt;a href=&quot;#l4696&quot; class=&quot;line&quot; id=&quot;l4696&quot;&gt;   4696&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3559&amp;quot; id=&amp;quot;h3-0-3559&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#ifndef USE_SIZEATTENUATION
   4735 <a href="#l4716" class="line" id="l4716">   4716</a> &lt;a href=&quot;#l4697&quot; class=&quot;line&quot; id=&quot;l4697&quot;&gt;   4697&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3560&amp;quot; id=&amp;quot;h3-0-3560&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		bool isPerspective = isPerspectiveMatrix( projectionMatrix );
   4736 <a href="#l4717" class="line" id="l4717">   4717</a> &lt;a href=&quot;#l4698&quot; class=&quot;line&quot; id=&quot;l4698&quot;&gt;   4698&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3561&amp;quot; id=&amp;quot;h3-0-3561&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		if ( isPerspective ) scale *= - mvPosition.z;
   4737 <a href="#l4718" class="line" id="l4718">   4718</a> &lt;a href=&quot;#l4699&quot; class=&quot;line&quot; id=&quot;l4699&quot;&gt;   4699&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3562&amp;quot; id=&amp;quot;h3-0-3562&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#endif
   4738 <a href="#l4719" class="line" id="l4719">   4719</a> &lt;a href=&quot;#l4700&quot; class=&quot;line&quot; id=&quot;l4700&quot;&gt;   4700&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3563&amp;quot; id=&amp;quot;h3-0-3563&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale;
   4739 <a href="#l4720" class="line" id="l4720">   4720</a> &lt;a href=&quot;#l4701&quot; class=&quot;line&quot; id=&quot;l4701&quot;&gt;   4701&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3564&amp;quot; id=&amp;quot;h3-0-3564&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 rotatedPosition;
   4740 <a href="#l4721" class="line" id="l4721">   4721</a> &lt;a href=&quot;#l4702&quot; class=&quot;line&quot; id=&quot;l4702&quot;&gt;   4702&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3565&amp;quot; id=&amp;quot;h3-0-3565&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;
   4741 <a href="#l4722" class="line" id="l4722">   4722</a> &lt;a href=&quot;#l4703&quot; class=&quot;line&quot; id=&quot;l4703&quot;&gt;   4703&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3566&amp;quot; id=&amp;quot;h3-0-3566&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;
   4742 <a href="#l4723" class="line" id="l4723">   4723</a> &lt;a href=&quot;#l4704&quot; class=&quot;line&quot; id=&quot;l4704&quot;&gt;   4704&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3567&amp;quot; id=&amp;quot;h3-0-3567&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mvPosition.xy += rotatedPosition;
   4743 <a href="#l4724" class="line" id="l4724">   4724</a> &lt;a href=&quot;#l4705&quot; class=&quot;line&quot; id=&quot;l4705&quot;&gt;   4705&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3568&amp;quot; id=&amp;quot;h3-0-3568&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_Position = projectionMatrix * mvPosition;
   4744 <a href="#l4725" class="line" id="l4725">   4725</a> &lt;a href=&quot;#l4706&quot; class=&quot;line&quot; id=&quot;l4706&quot;&gt;   4706&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3569&amp;quot; id=&amp;quot;h3-0-3569&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_vertex&amp;amp;gt;
   4745 <a href="#l4726" class="line" id="l4726">   4726</a> &lt;a href=&quot;#l4707&quot; class=&quot;line&quot; id=&quot;l4707&quot;&gt;   4707&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3570&amp;quot; id=&amp;quot;h3-0-3570&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_vertex&amp;amp;gt;
   4746 <a href="#l4727" class="line" id="l4727">   4727</a> &lt;a href=&quot;#l4708&quot; class=&quot;line&quot; id=&quot;l4708&quot;&gt;   4708&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3571&amp;quot; id=&amp;quot;h3-0-3571&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_vertex&amp;amp;gt;
   4747 <a href="#l4728" class="line" id="l4728">   4728</a> &lt;a href=&quot;#l4709&quot; class=&quot;line&quot; id=&quot;l4709&quot;&gt;   4709&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3572&amp;quot; id=&amp;quot;h3-0-3572&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,H6=`uniform vec3 diffuse;
   4748 <a href="#l4729" class="line" id="l4729">   4729</a> &lt;a href=&quot;#l4710&quot; class=&quot;line&quot; id=&quot;l4710&quot;&gt;   4710&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3573&amp;quot; id=&amp;quot;h3-0-3573&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float opacity;
   4749 <a href="#l4730" class="line" id="l4730">   4730</a> &lt;a href=&quot;#l4711&quot; class=&quot;line&quot; id=&quot;l4711&quot;&gt;   4711&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3574&amp;quot; id=&amp;quot;h3-0-3574&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;common&amp;amp;gt;
   4750 <a href="#l4731" class="line" id="l4731">   4731</a> &lt;a href=&quot;#l4712&quot; class=&quot;line&quot; id=&quot;l4712&quot;&gt;   4712&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3575&amp;quot; id=&amp;quot;h3-0-3575&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;uv_pars_fragment&amp;amp;gt;
   4751 <a href="#l4732" class="line" id="l4732">   4732</a> &lt;a href=&quot;#l4713&quot; class=&quot;line&quot; id=&quot;l4713&quot;&gt;   4713&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3576&amp;quot; id=&amp;quot;h3-0-3576&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;map_pars_fragment&amp;amp;gt;
   4752 <a href="#l4733" class="line" id="l4733">   4733</a> &lt;a href=&quot;#l4714&quot; class=&quot;line&quot; id=&quot;l4714&quot;&gt;   4714&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3577&amp;quot; id=&amp;quot;h3-0-3577&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphamap_pars_fragment&amp;amp;gt;
   4753 <a href="#l4734" class="line" id="l4734">   4734</a> &lt;a href=&quot;#l4715&quot; class=&quot;line&quot; id=&quot;l4715&quot;&gt;   4715&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3578&amp;quot; id=&amp;quot;h3-0-3578&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphatest_pars_fragment&amp;amp;gt;
   4754 <a href="#l4735" class="line" id="l4735">   4735</a> &lt;a href=&quot;#l4716&quot; class=&quot;line&quot; id=&quot;l4716&quot;&gt;   4716&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3579&amp;quot; id=&amp;quot;h3-0-3579&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;alphahash_pars_fragment&amp;amp;gt;
   4755 <a href="#l4736" class="line" id="l4736">   4736</a> &lt;a href=&quot;#l4717&quot; class=&quot;line&quot; id=&quot;l4717&quot;&gt;   4717&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3580&amp;quot; id=&amp;quot;h3-0-3580&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;fog_pars_fragment&amp;amp;gt;
   4756 <a href="#l4737" class="line" id="l4737">   4737</a> &lt;a href=&quot;#l4718&quot; class=&quot;line&quot; id=&quot;l4718&quot;&gt;   4718&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3581&amp;quot; id=&amp;quot;h3-0-3581&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;logdepthbuf_pars_fragment&amp;amp;gt;
   4757 <a href="#l4738" class="line" id="l4738">   4738</a> &lt;a href=&quot;#l4719&quot; class=&quot;line&quot; id=&quot;l4719&quot;&gt;   4719&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3582&amp;quot; id=&amp;quot;h3-0-3582&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;clipping_planes_pars_fragment&amp;amp;gt;
   4758 <a href="#l4739" class="line" id="l4739">   4739</a> &lt;a href=&quot;#l4720&quot; class=&quot;line&quot; id=&quot;l4720&quot;&gt;   4720&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3583&amp;quot; id=&amp;quot;h3-0-3583&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4759 <a href="#l4740" class="line" id="l4740">   4740</a> &lt;a href=&quot;#l4721&quot; class=&quot;line&quot; id=&quot;l4721&quot;&gt;   4721&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3584&amp;quot; id=&amp;quot;h3-0-3584&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec4 diffuseColor = vec4( diffuse, opacity );
   4760 <a href="#l4741" class="line" id="l4741">   4741</a> &lt;a href=&quot;#l4722&quot; class=&quot;line&quot; id=&quot;l4722&quot;&gt;   4722&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3585&amp;quot; id=&amp;quot;h3-0-3585&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;clipping_planes_fragment&amp;amp;gt;
   4761 <a href="#l4742" class="line" id="l4742">   4742</a> &lt;a href=&quot;#l4723&quot; class=&quot;line&quot; id=&quot;l4723&quot;&gt;   4723&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3586&amp;quot; id=&amp;quot;h3-0-3586&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 outgoingLight = vec3( 0.0 );
   4762 <a href="#l4743" class="line" id="l4743">   4743</a> &lt;a href=&quot;#l4724&quot; class=&quot;line&quot; id=&quot;l4724&quot;&gt;   4724&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3587&amp;quot; id=&amp;quot;h3-0-3587&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;logdepthbuf_fragment&amp;amp;gt;
   4763 <a href="#l4744" class="line" id="l4744">   4744</a> &lt;a href=&quot;#l4725&quot; class=&quot;line&quot; id=&quot;l4725&quot;&gt;   4725&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3588&amp;quot; id=&amp;quot;h3-0-3588&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;map_fragment&amp;amp;gt;
   4764 <a href="#l4745" class="line" id="l4745">   4745</a> &lt;a href=&quot;#l4726&quot; class=&quot;line&quot; id=&quot;l4726&quot;&gt;   4726&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3589&amp;quot; id=&amp;quot;h3-0-3589&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphamap_fragment&amp;amp;gt;
   4765 <a href="#l4746" class="line" id="l4746">   4746</a> &lt;a href=&quot;#l4727&quot; class=&quot;line&quot; id=&quot;l4727&quot;&gt;   4727&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3590&amp;quot; id=&amp;quot;h3-0-3590&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphatest_fragment&amp;amp;gt;
   4766 <a href="#l4747" class="line" id="l4747">   4747</a> &lt;a href=&quot;#l4728&quot; class=&quot;line&quot; id=&quot;l4728&quot;&gt;   4728&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3591&amp;quot; id=&amp;quot;h3-0-3591&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;alphahash_fragment&amp;amp;gt;
   4767 <a href="#l4748" class="line" id="l4748">   4748</a> &lt;a href=&quot;#l4729&quot; class=&quot;line&quot; id=&quot;l4729&quot;&gt;   4729&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3592&amp;quot; id=&amp;quot;h3-0-3592&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	outgoingLight = diffuseColor.rgb;
   4768 <a href="#l4749" class="line" id="l4749">   4749</a> &lt;a href=&quot;#l4730&quot; class=&quot;line&quot; id=&quot;l4730&quot;&gt;   4730&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3593&amp;quot; id=&amp;quot;h3-0-3593&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;opaque_fragment&amp;amp;gt;
   4769 <a href="#l4750" class="line" id="l4750">   4750</a> &lt;a href=&quot;#l4731&quot; class=&quot;line&quot; id=&quot;l4731&quot;&gt;   4731&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3594&amp;quot; id=&amp;quot;h3-0-3594&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;tonemapping_fragment&amp;amp;gt;
   4770 <a href="#l4751" class="line" id="l4751">   4751</a> &lt;a href=&quot;#l4732&quot; class=&quot;line&quot; id=&quot;l4732&quot;&gt;   4732&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3595&amp;quot; id=&amp;quot;h3-0-3595&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;colorspace_fragment&amp;amp;gt;
   4771 <a href="#l4752" class="line" id="l4752">   4752</a> &lt;a href=&quot;#l4733&quot; class=&quot;line&quot; id=&quot;l4733&quot;&gt;   4733&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3596&amp;quot; id=&amp;quot;h3-0-3596&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#include &amp;amp;lt;fog_fragment&amp;amp;gt;
   4772 <a href="#l4753" class="line" id="l4753">   4753</a> &lt;a href=&quot;#l4734&quot; class=&quot;line&quot; id=&quot;l4734&quot;&gt;   4734&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3597&amp;quot; id=&amp;quot;h3-0-3597&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,xe={alphahash_fragment:oF,alphahash_pars_fragment:lF,alphamap_fragment:uF,alphamap_pars_fragment:cF,alphatest_fragment:fF,alphatest_pars_fragment:hF,aomap_fragment:dF,aomap_pars_fragment:pF,batching_pars_vertex:mF,batching_vertex:gF,begin_vertex:vF,beginnormal_vertex:yF,bsdfs:_F,iridescence_fragment:xF,bumpmap_pars_fragment:SF,clipping_planes_fragment:MF,clipping_planes_pars_fragment:EF,clipping_planes_pars_vertex:bF,clipping_planes_vertex:TF,color_fragment:AF,color_pars_fragment:RF,color_pars_vertex:CF,color_vertex:wF,common:DF,cube_uv_reflection_fragment:UF,defaultnormal_vertex:NF,displacementmap_pars_vertex:OF,displacementmap_vertex:LF,emissivemap_fragment:zF,emissivemap_pars_fragment:BF,colorspace_fragment:PF,colorspace_pars_fragment:IF,envmap_fragment:HF,envmap_common_pars_fragment:FF,envmap_pars_fragment:VF,envmap_pars_vertex:GF,envmap_physical_pars_fragment:$F,envmap_vertex:XF,fog_vertex:qF,fog_pars_vertex:YF,fog_fragment:WF,fog_pars_fragment:kF,gradientmap_pars_fragment:ZF,lightmap_pars_fragment:jF,lights_lambert_fragment:QF,lights_lambert_pars_fragment:KF,lights_pars_begin:JF,lights_toon_fragment:tV,lights_toon_pars_fragment:eV,lights_phong_fragment:nV,lights_phong_pars_fragment:iV,lights_physical_fragment:aV,lights_physical_pars_fragment:sV,lights_fragment_begin:rV,lights_fragment_maps:oV,lights_fragment_end:lV,logdepthbuf_fragment:uV,logdepthbuf_pars_fragment:cV,logdepthbuf_pars_vertex:fV,logdepthbuf_vertex:hV,map_fragment:dV,map_pars_fragment:pV,map_particle_fragment:mV,map_particle_pars_fragment:gV,metalnessmap_fragment:vV,metalnessmap_pars_fragment:yV,morphinstance_vertex:_V,morphcolor_vertex:xV,morphnormal_vertex:SV,morphtarget_pars_vertex:MV,morphtarget_vertex:EV,normal_fragment_begin:bV,normal_fragment_maps:TV,normal_pars_fragment:AV,normal_pars_vertex:RV,normal_vertex:CV,normalmap_pars_fragment:wV,clearcoat_normal_fragment_begin:DV,clearcoat_normal_fragment_maps:UV,clearcoat_pars_fragment:NV,iridescence_pars_fragment:OV,opaque_fragment:LV,packing:zV,premultiplied_alpha_fragment:BV,project_vertex:PV,dithering_fragment:IV,dithering_pars_fragment:HV,roughnessmap_fragment:FV,roughnessmap_pars_fragment:VV,shadowmap_pars_fragment:GV,shadowmap_pars_vertex:XV,shadowmap_vertex:qV,shadowmask_pars_fragment:YV,skinbase_vertex:WV,skinning_pars_vertex:kV,skinning_vertex:ZV,skinnormal_vertex:jV,specularmap_fragment:QV,specularmap_pars_fragment:KV,tonemapping_fragment:JV,tonemapping_pars_fragment:$V,transmission_fragment:t6,transmission_pars_fragment:e6,uv_pars_fragment:n6,uv_pars_vertex:i6,uv_vertex:a6,worldpos_vertex:s6,background_vert:r6,background_frag:o6,backgroundCube_vert:l6,backgroundCube_frag:u6,cube_vert:c6,cube_frag:f6,depth_vert:h6,depth_frag:d6,distanceRGBA_vert:p6,distanceRGBA_frag:m6,equirect_vert:g6,equirect_frag:v6,linedashed_vert:y6,linedashed_frag:_6,meshbasic_vert:x6,meshbasic_frag:S6,meshlambert_vert:M6,meshlambert_frag:E6,meshmatcap_vert:b6,meshmatcap_frag:T6,meshnormal_vert:A6,meshnormal_frag:R6,meshphong_vert:C6,meshphong_frag:w6,meshphysical_vert:D6,meshphysical_frag:U6,meshtoon_vert:N6,meshtoon_frag:O6,points_vert:L6,points_frag:z6,shadow_vert:B6,shadow_frag:P6,sprite_vert:I6,sprite_frag:H6},zt={common:{diffuse:{value:new Bt(16777215)},opacity:{value:1},map:{value:null},mapTransform:{value:new ge},alphaMap:{value:null},alphaMapTransform:{value:new ge},alphaTest:{value:0}},specularmap:{specularMap:{value:null},specularMapTransform:{value:new ge}},envmap:{envMap:{value:null},envMapRotation:{value:new ge},flipEnvMap:{value:-1},reflectivity:{value:1},ior:{value:1.5},refractionRatio:{value:.98}},aomap:{aoMap:{value:null},aoMapIntensity:{value:1},aoMapTransform:{value:new ge}},lightmap:{lightMap:{value:null},lightMapIntensity:{value:1},lightMapTransform:{value:new ge}},bumpmap:{bumpMap:{value:null},bumpMapTransform:{value:new ge},bumpScale:{value:1}},normalmap:{normalMap:{value:null},normalMapTransform:{value:new ge},normalScale:{value:new ct(1,1)}},displacementmap:{displacementMap:{value:null},displacementMapTransform:{value:new ge},displacementScale:{value:1},displacementBias:{value:0}},emissivemap:{emissiveMap:{value:null},emissiveMapTransform:{value:new ge}},metalnessmap:{metalnessMap:{value:null},metalnessMapTransform:{value:new ge}},roughnessmap:{roughnessMap:{value:null},roughnessMapTransform:{value:new ge}},gradientmap:{gradientMap:{value:null}},fog:{fogDensity:{value:25e-5},fogNear:{value:1},fogFar:{value:2e3},fogColor:{value:new Bt(16777215)}},lights:{ambientLightColor:{value:[]},lightProbe:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}},directionalLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},directionalShadowMap:{value:[]},directionalShadowMatrix:{value:[]},spotLights:{value:[],properties:{color:{},position:{},direction:{},distance:{},coneCos:{},penumbraCos:{},decay:{}}},spotLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{}}},spotLightMap:{value:[]},spotShadowMap:{value:[]},spotLightMatrix:{value:[]},pointLights:{value:[],properties:{color:{},position:{},decay:{},distance:{}}},pointLightShadows:{value:[],properties:{shadowIntensity:1,shadowBias:{},shadowNormalBias:{},shadowRadius:{},shadowMapSize:{},shadowCameraNear:{},shadowCameraFar:{}}},pointShadowMap:{value:[]},pointShadowMatrix:{value:[]},hemisphereLights:{value:[],properties:{direction:{},skyColor:{},groundColor:{}}},rectAreaLights:{value:[],properties:{color:{},position:{},width:{},height:{}}},ltc_1:{value:null},ltc_2:{value:null}},points:{diffuse:{value:new Bt(16777215)},opacity:{value:1},size:{value:1},scale:{value:1},map:{value:null},alphaMap:{value:null},alphaMapTransform:{value:new ge},alphaTest:{value:0},uvTransform:{value:new ge}},sprite:{diffuse:{value:new Bt(16777215)},opacity:{value:1},center:{value:new ct(.5,.5)},rotation:{value:0},map:{value:null},mapTransform:{value:new ge},alphaMap:{value:null},alphaMapTransform:{value:new ge},alphaTest:{value:0}}},Ns={basic:{uniforms:Oi([zt.common,zt.specularmap,zt.envmap,zt.aomap,zt.lightmap,zt.fog]),vertexShader:xe.meshbasic_vert,fragmentShader:xe.meshbasic_frag},lambert:{uniforms:Oi([zt.common,zt.specularmap,zt.envmap,zt.aomap,zt.lightmap,zt.emissivemap,zt.bumpmap,zt.normalmap,zt.displacementmap,zt.fog,zt.lights,{emissive:{value:new Bt(0)}}]),vertexShader:xe.meshlambert_vert,fragmentShader:xe.meshlambert_frag},phong:{uniforms:Oi([zt.common,zt.specularmap,zt.envmap,zt.aomap,zt.lightmap,zt.emissivemap,zt.bumpmap,zt.normalmap,zt.displacementmap,zt.fog,zt.lights,{emissive:{value:new Bt(0)},specular:{value:new Bt(1118481)},shininess:{value:30}}]),vertexShader:xe.meshphong_vert,fragmentShader:xe.meshphong_frag},standard:{uniforms:Oi([zt.common,zt.envmap,zt.aomap,zt.lightmap,zt.emissivemap,zt.bumpmap,zt.normalmap,zt.displacementmap,zt.roughnessmap,zt.metalnessmap,zt.fog,zt.lights,{emissive:{value:new Bt(0)},roughness:{value:1},metalness:{value:0},envMapIntensity:{value:1}}]),vertexShader:xe.meshphysical_vert,fragmentShader:xe.meshphysical_frag},toon:{uniforms:Oi([zt.common,zt.aomap,zt.lightmap,zt.emissivemap,zt.bumpmap,zt.normalmap,zt.displacementmap,zt.gradientmap,zt.fog,zt.lights,{emissive:{value:new Bt(0)}}]),vertexShader:xe.meshtoon_vert,fragmentShader:xe.meshtoon_frag},matcap:{uniforms:Oi([zt.common,zt.bumpmap,zt.normalmap,zt.displacementmap,zt.fog,{matcap:{value:null}}]),vertexShader:xe.meshmatcap_vert,fragmentShader:xe.meshmatcap_frag},points:{uniforms:Oi([zt.points,zt.fog]),vertexShader:xe.points_vert,fragmentShader:xe.points_frag},dashed:{uniforms:Oi([zt.common,zt.fog,{scale:{value:1},dashSize:{value:1},totalSize:{value:2}}]),vertexShader:xe.linedashed_vert,fragmentShader:xe.linedashed_frag},depth:{uniforms:Oi([zt.common,zt.displacementmap]),vertexShader:xe.depth_vert,fragmentShader:xe.depth_frag},normal:{uniforms:Oi([zt.common,zt.bumpmap,zt.normalmap,zt.displacementmap,{opacity:{value:1}}]),vertexShader:xe.meshnormal_vert,fragmentShader:xe.meshnormal_frag},sprite:{uniforms:Oi([zt.sprite,zt.fog]),vertexShader:xe.sprite_vert,fragmentShader:xe.sprite_frag},background:{uniforms:{uvTransform:{value:new ge},t2D:{value:null},backgroundIntensity:{value:1}},vertexShader:xe.background_vert,fragmentShader:xe.background_frag},backgroundCube:{uniforms:{envMap:{value:null},flipEnvMap:{value:-1},backgroundBlurriness:{value:0},backgroundIntensity:{value:1},backgroundRotation:{value:new ge}},vertexShader:xe.backgroundCube_vert,fragmentShader:xe.backgroundCube_frag},cube:{uniforms:{tCube:{value:null},tFlip:{value:-1},opacity:{value:1}},vertexShader:xe.cube_vert,fragmentShader:xe.cube_frag},equirect:{uniforms:{tEquirect:{value:null}},vertexShader:xe.equirect_vert,fragmentShader:xe.equirect_frag},distanceRGBA:{uniforms:Oi([zt.common,zt.displacementmap,{referencePosition:{value:new B},nearDistance:{value:1},farDistance:{value:1e3}}]),vertexShader:xe.distanceRGBA_vert,fragmentShader:xe.distanceRGBA_frag},shadow:{uniforms:Oi([zt.lights,zt.fog,{color:{value:new Bt(0)},opacity:{value:1}}]),vertexShader:xe.shadow_vert,fragmentShader:xe.shadow_frag}};Ns.physical={uniforms:Oi([Ns.standard.uniforms,{clearcoat:{value:0},clearcoatMap:{value:null},clearcoatMapTransform:{value:new ge},clearcoatNormalMap:{value:null},clearcoatNormalMapTransform:{value:new ge},clearcoatNormalScale:{value:new ct(1,1)},clearcoatRoughness:{value:0},clearcoatRoughnessMap:{value:null},clearcoatRoughnessMapTransform:{value:new ge},dispersion:{value:0},iridescence:{value:0},iridescenceMap:{value:null},iridescenceMapTransform:{value:new ge},iridescenceIOR:{value:1.3},iridescenceThicknessMinimum:{value:100},iridescenceThicknessMaximum:{value:400},iridescenceThicknessMap:{value:null},iridescenceThicknessMapTransform:{value:new ge},sheen:{value:0},sheenColor:{value:new Bt(0)},sheenColorMap:{value:null},sheenColorMapTransform:{value:new ge},sheenRoughness:{value:1},sheenRoughnessMap:{value:null},sheenRoughnessMapTransform:{value:new ge},transmission:{value:0},transmissionMap:{value:null},transmissionMapTransform:{value:new ge},transmissionSamplerSize:{value:new ct},transmissionSamplerMap:{value:null},thickness:{value:0},thicknessMap:{value:null},thicknessMapTransform:{value:new ge},attenuationDistance:{value:0},attenuationColor:{value:new Bt(0)},specularColor:{value:new Bt(1,1,1)},specularColorMap:{value:null},specularColorMapTransform:{value:new ge},specularIntensity:{value:1},specularIntensityMap:{value:null},specularIntensityMapTransform:{value:new ge},anisotropyVector:{value:new ct},anisotropyMap:{value:null},anisotropyMapTransform:{value:new ge}}]),vertexShader:xe.meshphysical_vert,fragmentShader:xe.meshphysical_frag};var px={r:0,b:0,g:0},Fu=new sa,F6=new fe;function V6(n,t,e,i,a,s,o){let u=new Bt(0),c=s===!0?0:1,h,d,m=null,g=0,y=null;function x(E){let T=E.isScene===!0?E.background:null;return T&amp;amp;amp;&amp;amp;amp;T.isTexture&amp;amp;amp;&amp;amp;amp;(T=(E.backgroundBlurriness&amp;amp;gt;0?e:t).get(T)),T}function b(E){let T=!1,w=x(E);w===null?v(u,c):w&amp;amp;amp;&amp;amp;amp;w.isColor&amp;amp;amp;&amp;amp;amp;(v(w,1),T=!0);let U=n.xr.getEnvironmentBlendMode();U===&amp;amp;quot;additive&amp;amp;quot;?i.buffers.color.setClear(0,0,0,1,o):U===&amp;amp;quot;alpha-blend&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.buffers.color.setClear(0,0,0,0,o),(n.autoClear||T)&amp;amp;amp;&amp;amp;amp;(i.buffers.depth.setTest(!0),i.buffers.depth.setMask(!0),i.buffers.color.setMask(!0),n.clear(n.autoClearColor,n.autoClearDepth,n.autoClearStencil))}function M(E,T){let w=x(T);w&amp;amp;amp;&amp;amp;amp;(w.isCubeTexture||w.mapping===Ou)?(d===void 0&amp;amp;amp;&amp;amp;amp;(d=new En(new rl(1,1,1),new ra({name:&amp;amp;quot;BackgroundCubeMaterial&amp;amp;quot;,uniforms:Hu(Ns.backgroundCube.uniforms),vertexShader:Ns.backgroundCube.vertexShader,fragmentShader:Ns.backgroundCube.fragmentShader,side:Ni,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),d.geometry.deleteAttribute(&amp;amp;quot;normal&amp;amp;quot;),d.geometry.deleteAttribute(&amp;amp;quot;uv&amp;amp;quot;),d.onBeforeRender=function(U,O,z){this.matrixWorld.copyPosition(z.matrixWorld)},Object.defineProperty(d.material,&amp;amp;quot;envMap&amp;amp;quot;,{get:function(){return this.uniforms.envMap.value}}),a.update(d)),Fu.copy(T.backgroundRotation),Fu.x*=-1,Fu.y*=-1,Fu.z*=-1,w.isCubeTexture&amp;amp;amp;&amp;amp;amp;w.isRenderTargetTexture===!1&amp;amp;amp;&amp;amp;amp;(Fu.y*=-1,Fu.z*=-1),d.material.uniforms.envMap.value=w,d.material.uniforms.flipEnvMap.value=w.isCubeTexture&amp;amp;amp;&amp;amp;amp;w.isRenderTargetTexture===!1?-1:1,d.material.uniforms.backgroundBlurriness.value=T.backgroundBlurriness,d.material.uniforms.backgroundIntensity.value=T.backgroundIntensity,d.material.uniforms.backgroundRotation.value.setFromMatrix4(F6.makeRotationFromEuler(Fu)),d.material.toneMapped=we.getTransfer(w.colorSpace)!==We,(m!==w||g!==w.version||y!==n.toneMapping)&amp;amp;amp;&amp;amp;amp;(d.material.needsUpdate=!0,m=w,g=w.version,y=n.toneMapping),d.layers.enableAll(),E.unshift(d,d.geometry,d.material,0,0,null)):w&amp;amp;amp;&amp;amp;amp;w.isTexture&amp;amp;amp;&amp;amp;amp;(h===void 0&amp;amp;amp;&amp;amp;amp;(h=new En(new Du(2,2),new ra({name:&amp;amp;quot;BackgroundMaterial&amp;amp;quot;,uniforms:Hu(Ns.background.uniforms),vertexShader:Ns.background.vertexShader,fragmentShader:Ns.background.fragmentShader,side:tr,depthTest:!1,depthWrite:!1,fog:!1,allowOverride:!1})),h.geometry.deleteAttribute(&amp;amp;quot;normal&amp;amp;quot;),Object.defineProperty(h.material,&amp;amp;quot;map&amp;amp;quot;,{get:function(){return this.uniforms.t2D.value}}),a.update(h)),h.material.uniforms.t2D.value=w,h.material.uniforms.backgroundIntensity.value=T.backgroundIntensity,h.material.toneMapped=we.getTransfer(w.colorSpace)!==We,w.matrixAutoUpdate===!0&amp;amp;amp;&amp;amp;amp;w.updateMatrix(),h.material.uniforms.uvTransform.value.copy(w.matrix),(m!==w||g!==w.version||y!==n.toneMapping)&amp;amp;amp;&amp;amp;amp;(h.material.needsUpdate=!0,m=w,g=w.version,y=n.toneMapping),h.layers.enableAll(),E.unshift(h,h.geometry,h.material,0,0,null))}function v(E,T){E.getRGB(px,OT(n)),i.buffers.color.setClear(px.r,px.g,px.b,T,o)}function S(){d!==void 0&amp;amp;amp;&amp;amp;amp;(d.geometry.dispose(),d.material.dispose(),d=void 0),h!==void 0&amp;amp;amp;&amp;amp;amp;(h.geometry.dispose(),h.material.dispose(),h=void 0)}return{getClearColor:function(){return u},setClearColor:function(E,T=1){u.set(E),c=T,v(u,c)},getClearAlpha:function(){return c},setClearAlpha:function(E){c=E,v(u,c)},render:b,addToRenderList:M,dispose:S}}function G6(n,t){let e=n.getParameter(n.MAX_VERTEX_ATTRIBS),i={},a=g(null),s=a,o=!1;function u(R,P,j,X,Z){let st=!1,et=m(X,j,P);s!==et&amp;amp;amp;&amp;amp;amp;(s=et,h(s.object)),st=y(R,X,j,Z),st&amp;amp;amp;&amp;amp;amp;x(R,X,j,Z),Z!==null&amp;amp;amp;&amp;amp;amp;t.update(Z,n.ELEMENT_ARRAY_BUFFER),(st||o)&amp;amp;amp;&amp;amp;amp;(o=!1,T(R,P,j,X),Z!==null&amp;amp;amp;&amp;amp;amp;n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,t.get(Z).buffer))}function c(){return n.createVertexArray()}function h(R){return n.bindVertexArray(R)}function d(R){return n.deleteVertexArray(R)}function m(R,P,j){let X=j.wireframe===!0,Z=i[R.id];Z===void 0&amp;amp;amp;&amp;amp;amp;(Z={},i[R.id]=Z);let st=Z[P.id];st===void 0&amp;amp;amp;&amp;amp;amp;(st={},Z[P.id]=st);let et=st[X];return et===void 0&amp;amp;amp;&amp;amp;amp;(et=g(c()),st[X]=et),et}function g(R){let P=[],j=[],X=[];for(let Z=0;Z&amp;amp;lt;e;Z++)P[Z]=0,j[Z]=0,X[Z]=0;return{geometry:null,program:null,wireframe:!1,newAttributes:P,enabledAttributes:j,attributeDivisors:X,object:R,attributes:{},index:null}}function y(R,P,j,X){let Z=s.attributes,st=P.attributes,et=0,mt=j.getAttributes();for(let K in mt)if(mt[K].location&amp;amp;gt;=0){let Ut=Z[K],xt=st[K];if(xt===void 0&amp;amp;amp;&amp;amp;amp;(K===&amp;amp;quot;instanceMatrix&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;R.instanceMatrix&amp;amp;amp;&amp;amp;amp;(xt=R.instanceMatrix),K===&amp;amp;quot;instanceColor&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;R.instanceColor&amp;amp;amp;&amp;amp;amp;(xt=R.instanceColor)),Ut===void 0||Ut.attribute!==xt||xt&amp;amp;amp;&amp;amp;amp;Ut.data!==xt.data)return!0;et++}return s.attributesNum!==et||s.index!==X}function x(R,P,j,X){let Z={},st=P.attributes,et=0,mt=j.getAttributes();for(let K in mt)if(mt[K].location&amp;amp;gt;=0){let Ut=st[K];Ut===void 0&amp;amp;amp;&amp;amp;amp;(K===&amp;amp;quot;instanceMatrix&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;R.instanceMatrix&amp;amp;amp;&amp;amp;amp;(Ut=R.instanceMatrix),K===&amp;amp;quot;instanceColor&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;R.instanceColor&amp;amp;amp;&amp;amp;amp;(Ut=R.instanceColor));let xt={};xt.attribute=Ut,Ut&amp;amp;amp;&amp;amp;amp;Ut.data&amp;amp;amp;&amp;amp;amp;(xt.data=Ut.data),Z[K]=xt,et++}s.attributes=Z,s.attributesNum=et,s.index=X}function b(){let R=s.newAttributes;for(let P=0,j=R.length;P&amp;amp;lt;j;P++)R[P]=0}function M(R){v(R,0)}function v(R,P){let j=s.newAttributes,X=s.enabledAttributes,Z=s.attributeDivisors;j[R]=1,X[R]===0&amp;amp;amp;&amp;amp;amp;(n.enableVertexAttribArray(R),X[R]=1),Z[R]!==P&amp;amp;amp;&amp;amp;amp;(n.vertexAttribDivisor(R,P),Z[R]=P)}function S(){let R=s.newAttributes,P=s.enabledAttributes;for(let j=0,X=P.length;j&amp;amp;lt;X;j++)P[j]!==R[j]&amp;amp;amp;&amp;amp;amp;(n.disableVertexAttribArray(j),P[j]=0)}function E(R,P,j,X,Z,st,et){et===!0?n.vertexAttribIPointer(R,P,j,Z,st):n.vertexAttribPointer(R,P,j,X,Z,st)}function T(R,P,j,X){b();let Z=X.attributes,st=j.getAttributes(),et=P.defaultAttributeValues;for(let mt in st){let K=st[mt];if(K.location&amp;amp;gt;=0){let _t=Z[mt];if(_t===void 0&amp;amp;amp;&amp;amp;amp;(mt===&amp;amp;quot;instanceMatrix&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;R.instanceMatrix&amp;amp;amp;&amp;amp;amp;(_t=R.instanceMatrix),mt===&amp;amp;quot;instanceColor&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;R.instanceColor&amp;amp;amp;&amp;amp;amp;(_t=R.instanceColor)),_t!==void 0){let Ut=_t.normalized,xt=_t.itemSize,It=t.get(_t);if(It===void 0)continue;let se=It.buffer,Qt=It.type,it=It.bytesPerElement,wt=Qt===n.INT||Qt===n.UNSIGNED_INT||_t.gpuType===ag;if(_t.isInterleavedBufferAttribute){let bt=_t.data,Jt=bt.stride,Zt=_t.offset;if(bt.isInstancedInterleavedBuffer){for(let te=0;te&amp;amp;lt;K.locationSize;te++)v(K.location+te,bt.meshPerAttribute);R.isInstancedMesh!==!0&amp;amp;amp;&amp;amp;amp;X._maxInstanceCount===void 0&amp;amp;amp;&amp;amp;amp;(X._maxInstanceCount=bt.meshPerAttribute*bt.count)}else for(let te=0;te&amp;amp;lt;K.locationSize;te++)M(K.location+te);n.bindBuffer(n.ARRAY_BUFFER,se);for(let te=0;te&amp;amp;lt;K.locationSize;te++)E(K.location+te,xt/K.locationSize,Qt,Ut,Jt*it,(Zt+xt/K.locationSize*te)*it,wt)}else{if(_t.isInstancedBufferAttribute){for(let bt=0;bt&amp;amp;lt;K.locationSize;bt++)v(K.location+bt,_t.meshPerAttribute);R.isInstancedMesh!==!0&amp;amp;amp;&amp;amp;amp;X._maxInstanceCount===void 0&amp;amp;amp;&amp;amp;amp;(X._maxInstanceCount=_t.meshPerAttribute*_t.count)}else for(let bt=0;bt&amp;amp;lt;K.locationSize;bt++)M(K.location+bt);n.bindBuffer(n.ARRAY_BUFFER,se);for(let bt=0;bt&amp;amp;lt;K.locationSize;bt++)E(K.location+bt,xt/K.locationSize,Qt,Ut,xt*it,xt/K.locationSize*bt*it,wt)}}else if(et!==void 0){let Ut=et[mt];if(Ut!==void 0)switch(Ut.length){case 2:n.vertexAttrib2fv(K.location,Ut);break;case 3:n.vertexAttrib3fv(K.location,Ut);break;case 4:n.vertexAttrib4fv(K.location,Ut);break;default:n.vertexAttrib1fv(K.location,Ut)}}}}S()}function w(){z();for(let R in i){let P=i[R];for(let j in P){let X=P[j];for(let Z in X)d(X[Z].object),delete X[Z];delete P[j]}delete i[R]}}function U(R){if(i[R.id]===void 0)return;let P=i[R.id];for(let j in P){let X=P[j];for(let Z in X)d(X[Z].object),delete X[Z];delete P[j]}delete i[R.id]}function O(R){for(let P in i){let j=i[P];if(j[R.id]===void 0)continue;let X=j[R.id];for(let Z in X)d(X[Z].object),delete X[Z];delete j[R.id]}}function z(){C(),o=!0,s!==a&amp;amp;amp;&amp;amp;amp;(s=a,h(s.object))}function C(){a.geometry=null,a.program=null,a.wireframe=!1}return{setup:u,reset:z,resetDefaultState:C,dispose:w,releaseStatesOfGeometry:U,releaseStatesOfProgram:O,initAttributes:b,enableAttribute:M,disableUnusedAttributes:S}}function X6(n,t,e){let i;function a(h){i=h}function s(h,d){n.drawArrays(i,h,d),e.update(d,i,1)}function o(h,d,m){m!==0&amp;amp;amp;&amp;amp;amp;(n.drawArraysInstanced(i,h,d,m),e.update(d,i,m))}function u(h,d,m){if(m===0)return;t.get(&amp;amp;quot;WEBGL_multi_draw&amp;amp;quot;).multiDrawArraysWEBGL(i,h,0,d,0,m);let y=0;for(let x=0;x&amp;amp;lt;m;x++)y+=d[x];e.update(y,i,1)}function c(h,d,m,g){if(m===0)return;let y=t.get(&amp;amp;quot;WEBGL_multi_draw&amp;amp;quot;);if(y===null)for(let x=0;x&amp;amp;lt;h.length;x++)o(h[x],d[x],g[x]);else{y.multiDrawArraysInstancedWEBGL(i,h,0,d,0,g,0,m);let x=0;for(let b=0;b&amp;amp;lt;m;b++)x+=d[b]*g[b];e.update(x,i,1)}}this.setMode=a,this.render=s,this.renderInstances=o,this.renderMultiDraw=u,this.renderMultiDrawInstances=c}function q6(n,t,e,i){let a;function s(){if(a!==void 0)return a;if(t.has(&amp;amp;quot;EXT_texture_filter_anisotropic&amp;amp;quot;)===!0){let O=t.get(&amp;amp;quot;EXT_texture_filter_anisotropic&amp;amp;quot;);a=n.getParameter(O.MAX_TEXTURE_MAX_ANISOTROPY_EXT)}else a=0;return a}function o(O){return!(O!==li&amp;amp;amp;&amp;amp;amp;i.convert(O)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_FORMAT))}function u(O){let z=O===Bu&amp;amp;amp;&amp;amp;amp;(t.has(&amp;amp;quot;EXT_color_buffer_half_float&amp;amp;quot;)||t.has(&amp;amp;quot;EXT_color_buffer_float&amp;amp;quot;));return!(O!==la&amp;amp;amp;&amp;amp;amp;i.convert(O)!==n.getParameter(n.IMPLEMENTATION_COLOR_READ_TYPE)&amp;amp;amp;&amp;amp;amp;O!==qi&amp;amp;amp;&amp;amp;amp;!z)}function c(O){if(O===&amp;amp;quot;highp&amp;amp;quot;){if(n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.HIGH_FLOAT).precision&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.HIGH_FLOAT).precision&amp;amp;gt;0)return&amp;amp;quot;highp&amp;amp;quot;;O=&amp;amp;quot;mediump&amp;amp;quot;}return O===&amp;amp;quot;mediump&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.getShaderPrecisionFormat(n.VERTEX_SHADER,n.MEDIUM_FLOAT).precision&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;n.getShaderPrecisionFormat(n.FRAGMENT_SHADER,n.MEDIUM_FLOAT).precision&amp;amp;gt;0?&amp;amp;quot;mediump&amp;amp;quot;:&amp;amp;quot;lowp&amp;amp;quot;}let h=e.precision!==void 0?e.precision:&amp;amp;quot;highp&amp;amp;quot;,d=c(h);d!==h&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;THREE.WebGLRenderer:&amp;amp;quot;,h,&amp;amp;quot;not supported, using&amp;amp;quot;,d,&amp;amp;quot;instead.&amp;amp;quot;),h=d);let m=e.logarithmicDepthBuffer===!0,g=e.reversedDepthBuffer===!0&amp;amp;amp;&amp;amp;amp;t.has(&amp;amp;quot;EXT_clip_control&amp;amp;quot;),y=n.getParameter(n.MAX_TEXTURE_IMAGE_UNITS),x=n.getParameter(n.MAX_VERTEX_TEXTURE_IMAGE_UNITS),b=n.getParameter(n.MAX_TEXTURE_SIZE),M=n.getParameter(n.MAX_CUBE_MAP_TEXTURE_SIZE),v=n.getParameter(n.MAX_VERTEX_ATTRIBS),S=n.getParameter(n.MAX_VERTEX_UNIFORM_VECTORS),E=n.getParameter(n.MAX_VARYING_VECTORS),T=n.getParameter(n.MAX_FRAGMENT_UNIFORM_VECTORS),w=x&amp;amp;gt;0,U=n.getParameter(n.MAX_SAMPLES);return{isWebGL2:!0,getMaxAnisotropy:s,getMaxPrecision:c,textureFormatReadable:o,textureTypeReadable:u,precision:h,logarithmicDepthBuffer:m,reversedDepthBuffer:g,maxTextures:y,maxVertexTextures:x,maxTextureSize:b,maxCubemapSize:M,maxAttributes:v,maxVertexUniforms:S,maxVaryings:E,maxFragmentUniforms:T,vertexTextures:w,maxSamples:U}}function Y6(n){let t=this,e=null,i=0,a=!1,s=!1,o=new Es,u=new ge,c={value:null,needsUpdate:!1};this.uniform=c,this.numPlanes=0,this.numIntersection=0,this.init=function(m,g){let y=m.length!==0||g||i!==0||a;return a=g,i=m.length,y},this.beginShadows=function(){s=!0,d(null)},this.endShadows=function(){s=!1},this.setGlobalState=function(m,g){e=d(m,g,0)},this.setState=function(m,g,y){let x=m.clippingPlanes,b=m.clipIntersection,M=m.clipShadows,v=n.get(m);if(!a||x===null||x.length===0||s&amp;amp;amp;&amp;amp;amp;!M)s?d(null):h();else{let S=s?0:i,E=S*4,T=v.clippingState||null;c.value=T,T=d(x,g,E,y);for(let w=0;w!==E;++w)T[w]=e[w];v.clippingState=T,this.numIntersection=b?this.numPlanes:0,this.numPlanes+=S}};function h(){c.value!==e&amp;amp;amp;&amp;amp;amp;(c.value=e,c.needsUpdate=i&amp;amp;gt;0),t.numPlanes=i,t.numIntersection=0}function d(m,g,y,x){let b=m!==null?m.length:0,M=null;if(b!==0){if(M=c.value,x!==!0||M===null){let v=y+b*4,S=g.matrixWorldInverse;u.getNormalMatrix(S),(M===null||M.length&amp;amp;lt;v)&amp;amp;amp;&amp;amp;amp;(M=new Float32Array(v));for(let E=0,T=y;E!==b;++E,T+=4)o.copy(m[E]).applyMatrix4(S,u),o.normal.toArray(M,T),M[T+3]=o.constant}c.value=M,c.needsUpdate=!0}return t.numPlanes=b,t.numIntersection=0,M}}function W6(n){let t=new WeakMap;function e(o,u){return u===vh?o.mapping=rr:u===yh&amp;amp;amp;&amp;amp;amp;(o.mapping=to),o}function i(o){if(o&amp;amp;amp;&amp;amp;amp;o.isTexture){let u=o.mapping;if(u===vh||u===yh)if(t.has(o)){let c=t.get(o).texture;return e(c,o.mapping)}else{let c=o.image;if(c&amp;amp;amp;&amp;amp;amp;c.height&amp;amp;gt;0){let h=new Fp(c.height);return h.fromEquirectangularTexture(n,o),t.set(o,h),o.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,a),e(h.texture,o.mapping)}else return null}}return o}function a(o){let u=o.target;u.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,a);let c=t.get(u);c!==void 0&amp;amp;amp;&amp;amp;amp;(t.delete(u),c.dispose())}function s(){t=new WeakMap}return{get:i,dispose:s}}var Rh=4,AO=[.125,.215,.35,.446,.526,.582],Xu=20,FT=new $r,RO=new Bt,VT=null,GT=0,XT=0,qT=!1,Gu=(1+Math.sqrt(5))/2,Ah=1/Gu,CO=[new B(-Gu,Ah,0),new B(Gu,Ah,0),new B(-Ah,0,Gu),new B(Ah,0,Gu),new B(0,Gu,-Ah),new B(0,Gu,Ah),new B(-1,1,-1),new B(1,1,-1),new B(-1,1,1),new B(1,1,1)],k6=new B,Ig=class{constructor(t){this._renderer=t,this._pingPongRenderTarget=null,this._lodMax=0,this._cubeSize=0,this._lodPlanes=[],this._sizeLods=[],this._sigmas=[],this._blurMaterial=null,this._cubemapMaterial=null,this._equirectMaterial=null,this._compileMaterial(this._blurMaterial)}fromScene(t,e=0,i=.1,a=100,s={}){let{size:o=256,position:u=k6}=s;VT=this._renderer.getRenderTarget(),GT=this._renderer.getActiveCubeFace(),XT=this._renderer.getActiveMipmapLevel(),qT=this._renderer.xr.enabled,this._renderer.xr.enabled=!1,this._setSize(o);let c=this._allocateTargets();return c.depthBuffer=!0,this._sceneToCubeUV(t,i,a,c,u),e&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this._blur(c,0,0,e),this._applyPMREM(c),this._cleanup(c),c}fromEquirectangular(t,e=null){return this._fromTexture(t,e)}fromCubemap(t,e=null){return this._fromTexture(t,e)}compileCubemapShader(){this._cubemapMaterial===null&amp;amp;amp;&amp;amp;amp;(this._cubemapMaterial=UO(),this._compileMaterial(this._cubemapMaterial))}compileEquirectangularShader(){this._equirectMaterial===null&amp;amp;amp;&amp;amp;amp;(this._equirectMaterial=DO(),this._compileMaterial(this._equirectMaterial))}dispose(){this._dispose(),this._cubemapMaterial!==null&amp;amp;amp;&amp;amp;amp;this._cubemapMaterial.dispose(),this._equirectMaterial!==null&amp;amp;amp;&amp;amp;amp;this._equirectMaterial.dispose()}_setSize(t){this._lodMax=Math.floor(Math.log2(t)),this._cubeSize=Math.pow(2,this._lodMax)}_dispose(){this._blurMaterial!==null&amp;amp;amp;&amp;amp;amp;this._blurMaterial.dispose(),this._pingPongRenderTarget!==null&amp;amp;amp;&amp;amp;amp;this._pingPongRenderTarget.dispose();for(let t=0;t&amp;amp;lt;this._lodPlanes.length;t++)this._lodPlanes[t].dispose()}_cleanup(t){this._renderer.setRenderTarget(VT,GT,XT),this._renderer.xr.enabled=qT,t.scissorTest=!1,mx(t,0,0,t.width,t.height)}_fromTexture(t,e){t.mapping===rr||t.mapping===to?this._setSize(t.image.length===0?16:t.image[0].width||t.image[0].image.width):this._setSize(t.image.width/4),VT=this._renderer.getRenderTarget(),GT=this._renderer.getActiveCubeFace(),XT=this._renderer.getActiveMipmapLevel(),qT=this._renderer.xr.enabled,this._renderer.xr.enabled=!1;let i=e||this._allocateTargets();return this._textureToCubeUV(t,i),this._applyPMREM(i),this._cleanup(i),i}_allocateTargets(){let t=3*Math.max(this._cubeSize,112),e=4*this._cubeSize,i={magFilter:Gn,minFilter:Gn,generateMipmaps:!1,type:Bu,format:li,colorSpace:er,depthBuffer:!1},a=wO(t,e,i);if(this._pingPongRenderTarget===null||this._pingPongRenderTarget.width!==t||this._pingPongRenderTarget.height!==e){this._pingPongRenderTarget!==null&amp;amp;amp;&amp;amp;amp;this._dispose(),this._pingPongRenderTarget=wO(t,e,i);let{_lodMax:s}=this;({sizeLods:this._sizeLods,lodPlanes:this._lodPlanes,sigmas:this._sigmas}=Z6(s)),this._blurMaterial=j6(s,t,e)}return a}_compileMaterial(t){let e=new En(this._lodPlanes[0],t);this._renderer.compile(e,FT)}_sceneToCubeUV(t,e,i,a,s){let c=new Un(90,1,e,i),h=[1,-1,1,1,1,1],d=[1,1,1,-1,-1,-1],m=this._renderer,g=m.autoClear,y=m.toneMapping;m.getClearColor(RO),m.toneMapping=us,m.autoClear=!1,m.state.buffers.depth.getReversed()&amp;amp;amp;&amp;amp;amp;(m.setRenderTarget(a),m.clearDepth(),m.setRenderTarget(null));let b=new Rs({name:&amp;amp;quot;PMREM.Background&amp;amp;quot;,side:Ni,depthWrite:!1,depthTest:!1}),M=new En(new rl,b),v=!1,S=t.background;S?S.isColor&amp;amp;amp;&amp;amp;amp;(b.color.copy(S),t.background=null,v=!0):(b.color.copy(RO),v=!0);for(let E=0;E&amp;amp;lt;6;E++){let T=E%3;T===0?(c.up.set(0,h[E],0),c.position.set(s.x,s.y,s.z),c.lookAt(s.x+d[E],s.y,s.z)):T===1?(c.up.set(0,0,h[E]),c.position.set(s.x,s.y,s.z),c.lookAt(s.x,s.y+d[E],s.z)):(c.up.set(0,h[E],0),c.position.set(s.x,s.y,s.z),c.lookAt(s.x,s.y,s.z+d[E]));let w=this._cubeSize;mx(a,T*w,E&amp;amp;gt;2?w:0,w,w),m.setRenderTarget(a),v&amp;amp;amp;&amp;amp;amp;m.render(M,c),m.render(t,c)}M.geometry.dispose(),M.material.dispose(),m.toneMapping=y,m.autoClear=g,t.background=S}_textureToCubeUV(t,e){let i=this._renderer,a=t.mapping===rr||t.mapping===to;a?(this._cubemapMaterial===null&amp;amp;amp;&amp;amp;amp;(this._cubemapMaterial=UO()),this._cubemapMaterial.uniforms.flipEnvMap.value=t.isRenderTargetTexture===!1?-1:1):this._equirectMaterial===null&amp;amp;amp;&amp;amp;amp;(this._equirectMaterial=DO());let s=a?this._cubemapMaterial:this._equirectMaterial,o=new En(this._lodPlanes[0],s),u=s.uniforms;u.envMap.value=t;let c=this._cubeSize;mx(e,0,0,3*c,2*c),i.setRenderTarget(e),i.render(o,FT)}_applyPMREM(t){let e=this._renderer,i=e.autoClear;e.autoClear=!1;let a=this._lodPlanes.length;for(let s=1;s&amp;amp;lt;a;s++){let o=Math.sqrt(this._sigmas[s]*this._sigmas[s]-this._sigmas[s-1]*this._sigmas[s-1]),u=CO[(a-s-1)%CO.length];this._blur(t,s-1,s,o,u)}e.autoClear=i}_blur(t,e,i,a,s){let o=this._pingPongRenderTarget;this._halfBlur(t,o,e,i,a,&amp;amp;quot;latitudinal&amp;amp;quot;,s),this._halfBlur(o,t,i,i,a,&amp;amp;quot;longitudinal&amp;amp;quot;,s)}_halfBlur(t,e,i,a,s,o,u){let c=this._renderer,h=this._blurMaterial;o!==&amp;amp;quot;latitudinal&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o!==&amp;amp;quot;longitudinal&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;console.error(&amp;amp;quot;blur direction must be either latitudinal or longitudinal!&amp;amp;quot;);let d=3,m=new En(this._lodPlanes[a],h),g=h.uniforms,y=this._sizeLods[i]-1,x=isFinite(s)?Math.PI/(2*y):2*Math.PI/(2*Xu-1),b=s/x,M=isFinite(s)?1+Math.floor(d*b):Xu;M&amp;amp;gt;Xu&amp;amp;amp;&amp;amp;amp;console.warn(`sigmaRadians, ${s}, is too large and will clip, as it requested ${M} samples when the maximum is set to ${Xu}`);let v=[],S=0;for(let O=0;O&amp;amp;lt;Xu;++O){let z=O/b,C=Math.exp(-z*z/2);v.push(C),O===0?S+=C:O&amp;amp;lt;M&amp;amp;amp;&amp;amp;amp;(S+=2*C)}for(let O=0;O&amp;amp;lt;v.length;O++)v[O]=v[O]/S;g.envMap.value=t.texture,g.samples.value=M,g.weights.value=v,g.latitudinal.value=o===&amp;amp;quot;latitudinal&amp;amp;quot;,u&amp;amp;amp;&amp;amp;amp;(g.poleAxis.value=u);let{_lodMax:E}=this;g.dTheta.value=x,g.mipInt.value=E-i;let T=this._sizeLods[a],w=3*T*(a&amp;amp;gt;E-Rh?a-E+Rh:0),U=4*(this._cubeSize-T);mx(e,w,U,3*T,2*T),c.setRenderTarget(e),c.render(m,FT)}};function Z6(n){let t=[],e=[],i=[],a=n,s=n-Rh+1+AO.length;for(let o=0;o&amp;amp;lt;s;o++){let u=Math.pow(2,a);e.push(u);let c=1/u;o&amp;amp;gt;n-Rh?c=AO[o-n+Rh-1]:o===0&amp;amp;amp;&amp;amp;amp;(c=0),i.push(c);let h=1/(u-2),d=-h,m=1+h,g=[d,d,m,d,m,m,d,d,m,m,d,m],y=6,x=6,b=3,M=2,v=1,S=new Float32Array(b*x*y),E=new Float32Array(M*x*y),T=new Float32Array(v*x*y);for(let U=0;U&amp;amp;lt;y;U++){let O=U%3*2/3-1,z=U&amp;amp;gt;2?0:-1,C=[O,z,0,O+2/3,z,0,O+2/3,z+1,0,O,z,0,O+2/3,z+1,0,O,z+1,0];S.set(C,b*x*U),E.set(g,M*x*U);let R=[U,U,U,U,U,U];T.set(R,v*x*U)}let w=new ve;w.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xe(S,b)),w.setAttribute(&amp;amp;quot;uv&amp;amp;quot;,new Xe(E,M)),w.setAttribute(&amp;amp;quot;faceIndex&amp;amp;quot;,new Xe(T,v)),t.push(w),a&amp;amp;gt;Rh&amp;amp;amp;&amp;amp;amp;a--}return{lodPlanes:t,sizeLods:e,sigmas:i}}function wO(n,t,e){let i=new za(n,t,e);return i.texture.mapping=Ou,i.texture.name=&amp;amp;quot;PMREM.cubeUv&amp;amp;quot;,i.scissorTest=!0,i}function mx(n,t,e,i,a){n.viewport.set(t,e,i,a),n.scissor.set(t,e,i,a)}function j6(n,t,e){let i=new Float32Array(Xu),a=new B(0,1,0);return new ra({name:&amp;amp;quot;SphericalGaussianBlur&amp;amp;quot;,defines:{n:Xu,CUBEUV_TEXEL_WIDTH:1/t,CUBEUV_TEXEL_HEIGHT:1/e,CUBEUV_MAX_MIP:`${n}.0`},uniforms:{envMap:{value:null},samples:{value:1},weights:{value:i},latitudinal:{value:!1},dTheta:{value:0},mipInt:{value:0},poleAxis:{value:a}},vertexShader:tA(),fragmentShader:`
   4773 <a href="#l4754" class="line" id="l4754">   4754</a> &lt;a href=&quot;#l4735&quot; class=&quot;line&quot; id=&quot;l4735&quot;&gt;   4735&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3598&amp;quot; id=&amp;quot;h3-0-3598&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4774 <a href="#l4755" class="line" id="l4755">   4755</a> &lt;a href=&quot;#l4736&quot; class=&quot;line&quot; id=&quot;l4736&quot;&gt;   4736&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3599&amp;quot; id=&amp;quot;h3-0-3599&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			precision mediump float;
   4775 <a href="#l4756" class="line" id="l4756">   4756</a> &lt;a href=&quot;#l4737&quot; class=&quot;line&quot; id=&quot;l4737&quot;&gt;   4737&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3600&amp;quot; id=&amp;quot;h3-0-3600&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			precision mediump int;
   4776 <a href="#l4757" class="line" id="l4757">   4757</a> &lt;a href=&quot;#l4738&quot; class=&quot;line&quot; id=&quot;l4738&quot;&gt;   4738&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3601&amp;quot; id=&amp;quot;h3-0-3601&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4777 <a href="#l4758" class="line" id="l4758">   4758</a> &lt;a href=&quot;#l4739&quot; class=&quot;line&quot; id=&quot;l4739&quot;&gt;   4739&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3602&amp;quot; id=&amp;quot;h3-0-3602&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			varying vec3 vOutputDirection;
   4778 <a href="#l4759" class="line" id="l4759">   4759</a> &lt;a href=&quot;#l4740&quot; class=&quot;line&quot; id=&quot;l4740&quot;&gt;   4740&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3603&amp;quot; id=&amp;quot;h3-0-3603&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4779 <a href="#l4760" class="line" id="l4760">   4760</a> &lt;a href=&quot;#l4741&quot; class=&quot;line&quot; id=&quot;l4741&quot;&gt;   4741&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3604&amp;quot; id=&amp;quot;h3-0-3604&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform sampler2D envMap;
   4780 <a href="#l4761" class="line" id="l4761">   4761</a> &lt;a href=&quot;#l4742&quot; class=&quot;line&quot; id=&quot;l4742&quot;&gt;   4742&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3605&amp;quot; id=&amp;quot;h3-0-3605&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform int samples;
   4781 <a href="#l4762" class="line" id="l4762">   4762</a> &lt;a href=&quot;#l4743&quot; class=&quot;line&quot; id=&quot;l4743&quot;&gt;   4743&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3606&amp;quot; id=&amp;quot;h3-0-3606&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform float weights[ n ];
   4782 <a href="#l4763" class="line" id="l4763">   4763</a> &lt;a href=&quot;#l4744&quot; class=&quot;line&quot; id=&quot;l4744&quot;&gt;   4744&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3607&amp;quot; id=&amp;quot;h3-0-3607&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform bool latitudinal;
   4783 <a href="#l4764" class="line" id="l4764">   4764</a> &lt;a href=&quot;#l4745&quot; class=&quot;line&quot; id=&quot;l4745&quot;&gt;   4745&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3608&amp;quot; id=&amp;quot;h3-0-3608&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform float dTheta;
   4784 <a href="#l4765" class="line" id="l4765">   4765</a> &lt;a href=&quot;#l4746&quot; class=&quot;line&quot; id=&quot;l4746&quot;&gt;   4746&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3609&amp;quot; id=&amp;quot;h3-0-3609&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform float mipInt;
   4785 <a href="#l4766" class="line" id="l4766">   4766</a> &lt;a href=&quot;#l4747&quot; class=&quot;line&quot; id=&quot;l4747&quot;&gt;   4747&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3610&amp;quot; id=&amp;quot;h3-0-3610&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform vec3 poleAxis;
   4786 <a href="#l4767" class="line" id="l4767">   4767</a> &lt;a href=&quot;#l4748&quot; class=&quot;line&quot; id=&quot;l4748&quot;&gt;   4748&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3611&amp;quot; id=&amp;quot;h3-0-3611&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4787 <a href="#l4768" class="line" id="l4768">   4768</a> &lt;a href=&quot;#l4749&quot; class=&quot;line&quot; id=&quot;l4749&quot;&gt;   4749&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3612&amp;quot; id=&amp;quot;h3-0-3612&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#define ENVMAP_TYPE_CUBE_UV
   4788 <a href="#l4769" class="line" id="l4769">   4769</a> &lt;a href=&quot;#l4750&quot; class=&quot;line&quot; id=&quot;l4750&quot;&gt;   4750&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3613&amp;quot; id=&amp;quot;h3-0-3613&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#include &amp;amp;lt;cube_uv_reflection_fragment&amp;amp;gt;
   4789 <a href="#l4770" class="line" id="l4770">   4770</a> &lt;a href=&quot;#l4751&quot; class=&quot;line&quot; id=&quot;l4751&quot;&gt;   4751&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3614&amp;quot; id=&amp;quot;h3-0-3614&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4790 <a href="#l4771" class="line" id="l4771">   4771</a> &lt;a href=&quot;#l4752&quot; class=&quot;line&quot; id=&quot;l4752&quot;&gt;   4752&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3615&amp;quot; id=&amp;quot;h3-0-3615&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 getSample( float theta, vec3 axis ) {
   4791 <a href="#l4772" class="line" id="l4772">   4772</a> &lt;a href=&quot;#l4753&quot; class=&quot;line&quot; id=&quot;l4753&quot;&gt;   4753&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3616&amp;quot; id=&amp;quot;h3-0-3616&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4792 <a href="#l4773" class="line" id="l4773">   4773</a> &lt;a href=&quot;#l4754&quot; class=&quot;line&quot; id=&quot;l4754&quot;&gt;   4754&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3617&amp;quot; id=&amp;quot;h3-0-3617&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				float cosTheta = cos( theta );
   4793 <a href="#l4774" class="line" id="l4774">   4774</a> &lt;a href=&quot;#l4755&quot; class=&quot;line&quot; id=&quot;l4755&quot;&gt;   4755&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3618&amp;quot; id=&amp;quot;h3-0-3618&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				// Rodrigues&amp;amp;#39; axis-angle rotation
   4794 <a href="#l4775" class="line" id="l4775">   4775</a> &lt;a href=&quot;#l4756&quot; class=&quot;line&quot; id=&quot;l4756&quot;&gt;   4756&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3619&amp;quot; id=&amp;quot;h3-0-3619&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec3 sampleDirection = vOutputDirection * cosTheta
   4795 <a href="#l4776" class="line" id="l4776">   4776</a> &lt;a href=&quot;#l4757&quot; class=&quot;line&quot; id=&quot;l4757&quot;&gt;   4757&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3620&amp;quot; id=&amp;quot;h3-0-3620&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					+ cross( axis, vOutputDirection ) * sin( theta )
   4796 <a href="#l4777" class="line" id="l4777">   4777</a> &lt;a href=&quot;#l4758&quot; class=&quot;line&quot; id=&quot;l4758&quot;&gt;   4758&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3621&amp;quot; id=&amp;quot;h3-0-3621&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					+ axis * dot( axis, vOutputDirection ) * ( 1.0 - cosTheta );
   4797 <a href="#l4778" class="line" id="l4778">   4778</a> &lt;a href=&quot;#l4759&quot; class=&quot;line&quot; id=&quot;l4759&quot;&gt;   4759&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3622&amp;quot; id=&amp;quot;h3-0-3622&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4798 <a href="#l4779" class="line" id="l4779">   4779</a> &lt;a href=&quot;#l4760&quot; class=&quot;line&quot; id=&quot;l4760&quot;&gt;   4760&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3623&amp;quot; id=&amp;quot;h3-0-3623&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				return bilinearCubeUV( envMap, sampleDirection, mipInt );
   4799 <a href="#l4780" class="line" id="l4780">   4780</a> &lt;a href=&quot;#l4761&quot; class=&quot;line&quot; id=&quot;l4761&quot;&gt;   4761&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3624&amp;quot; id=&amp;quot;h3-0-3624&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4800 <a href="#l4781" class="line" id="l4781">   4781</a> &lt;a href=&quot;#l4762&quot; class=&quot;line&quot; id=&quot;l4762&quot;&gt;   4762&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3625&amp;quot; id=&amp;quot;h3-0-3625&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			}
   4801 <a href="#l4782" class="line" id="l4782">   4782</a> &lt;a href=&quot;#l4763&quot; class=&quot;line&quot; id=&quot;l4763&quot;&gt;   4763&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3626&amp;quot; id=&amp;quot;h3-0-3626&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4802 <a href="#l4783" class="line" id="l4783">   4783</a> &lt;a href=&quot;#l4764&quot; class=&quot;line&quot; id=&quot;l4764&quot;&gt;   4764&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3627&amp;quot; id=&amp;quot;h3-0-3627&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			void main() {
   4803 <a href="#l4784" class="line" id="l4784">   4784</a> &lt;a href=&quot;#l4765&quot; class=&quot;line&quot; id=&quot;l4765&quot;&gt;   4765&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3628&amp;quot; id=&amp;quot;h3-0-3628&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4804 <a href="#l4785" class="line" id="l4785">   4785</a> &lt;a href=&quot;#l4766&quot; class=&quot;line&quot; id=&quot;l4766&quot;&gt;   4766&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3629&amp;quot; id=&amp;quot;h3-0-3629&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec3 axis = latitudinal ? poleAxis : cross( poleAxis, vOutputDirection );
   4805 <a href="#l4786" class="line" id="l4786">   4786</a> &lt;a href=&quot;#l4767&quot; class=&quot;line&quot; id=&quot;l4767&quot;&gt;   4767&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3630&amp;quot; id=&amp;quot;h3-0-3630&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4806 <a href="#l4787" class="line" id="l4787">   4787</a> &lt;a href=&quot;#l4768&quot; class=&quot;line&quot; id=&quot;l4768&quot;&gt;   4768&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3631&amp;quot; id=&amp;quot;h3-0-3631&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				if ( all( equal( axis, vec3( 0.0 ) ) ) ) {
   4807 <a href="#l4788" class="line" id="l4788">   4788</a> &lt;a href=&quot;#l4769&quot; class=&quot;line&quot; id=&quot;l4769&quot;&gt;   4769&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3632&amp;quot; id=&amp;quot;h3-0-3632&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4808 <a href="#l4789" class="line" id="l4789">   4789</a> &lt;a href=&quot;#l4770&quot; class=&quot;line&quot; id=&quot;l4770&quot;&gt;   4770&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3633&amp;quot; id=&amp;quot;h3-0-3633&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					axis = vec3( vOutputDirection.z, 0.0, - vOutputDirection.x );
   4809 <a href="#l4790" class="line" id="l4790">   4790</a> &lt;a href=&quot;#l4771&quot; class=&quot;line&quot; id=&quot;l4771&quot;&gt;   4771&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3634&amp;quot; id=&amp;quot;h3-0-3634&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4810 <a href="#l4791" class="line" id="l4791">   4791</a> &lt;a href=&quot;#l4772&quot; class=&quot;line&quot; id=&quot;l4772&quot;&gt;   4772&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3635&amp;quot; id=&amp;quot;h3-0-3635&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				}
   4811 <a href="#l4792" class="line" id="l4792">   4792</a> &lt;a href=&quot;#l4773&quot; class=&quot;line&quot; id=&quot;l4773&quot;&gt;   4773&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3636&amp;quot; id=&amp;quot;h3-0-3636&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4812 <a href="#l4793" class="line" id="l4793">   4793</a> &lt;a href=&quot;#l4774&quot; class=&quot;line&quot; id=&quot;l4774&quot;&gt;   4774&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3637&amp;quot; id=&amp;quot;h3-0-3637&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				axis = normalize( axis );
   4813 <a href="#l4794" class="line" id="l4794">   4794</a> &lt;a href=&quot;#l4775&quot; class=&quot;line&quot; id=&quot;l4775&quot;&gt;   4775&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3638&amp;quot; id=&amp;quot;h3-0-3638&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4814 <a href="#l4795" class="line" id="l4795">   4795</a> &lt;a href=&quot;#l4776&quot; class=&quot;line&quot; id=&quot;l4776&quot;&gt;   4776&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3639&amp;quot; id=&amp;quot;h3-0-3639&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				gl_FragColor = vec4( 0.0, 0.0, 0.0, 1.0 );
   4815 <a href="#l4796" class="line" id="l4796">   4796</a> &lt;a href=&quot;#l4777&quot; class=&quot;line&quot; id=&quot;l4777&quot;&gt;   4777&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3640&amp;quot; id=&amp;quot;h3-0-3640&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				gl_FragColor.rgb += weights[ 0 ] * getSample( 0.0, axis );
   4816 <a href="#l4797" class="line" id="l4797">   4797</a> &lt;a href=&quot;#l4778&quot; class=&quot;line&quot; id=&quot;l4778&quot;&gt;   4778&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3641&amp;quot; id=&amp;quot;h3-0-3641&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4817 <a href="#l4798" class="line" id="l4798">   4798</a> &lt;a href=&quot;#l4779&quot; class=&quot;line&quot; id=&quot;l4779&quot;&gt;   4779&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3642&amp;quot; id=&amp;quot;h3-0-3642&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				for ( int i = 1; i &amp;amp;lt; n; i++ ) {
   4818 <a href="#l4799" class="line" id="l4799">   4799</a> &lt;a href=&quot;#l4780&quot; class=&quot;line&quot; id=&quot;l4780&quot;&gt;   4780&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3643&amp;quot; id=&amp;quot;h3-0-3643&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4819 <a href="#l4800" class="line" id="l4800">   4800</a> &lt;a href=&quot;#l4781&quot; class=&quot;line&quot; id=&quot;l4781&quot;&gt;   4781&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3644&amp;quot; id=&amp;quot;h3-0-3644&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					if ( i &amp;amp;gt;= samples ) {
   4820 <a href="#l4801" class="line" id="l4801">   4801</a> &lt;a href=&quot;#l4782&quot; class=&quot;line&quot; id=&quot;l4782&quot;&gt;   4782&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3645&amp;quot; id=&amp;quot;h3-0-3645&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4821 <a href="#l4802" class="line" id="l4802">   4802</a> &lt;a href=&quot;#l4783&quot; class=&quot;line&quot; id=&quot;l4783&quot;&gt;   4783&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3646&amp;quot; id=&amp;quot;h3-0-3646&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+						break;
   4822 <a href="#l4803" class="line" id="l4803">   4803</a> &lt;a href=&quot;#l4784&quot; class=&quot;line&quot; id=&quot;l4784&quot;&gt;   4784&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3647&amp;quot; id=&amp;quot;h3-0-3647&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4823 <a href="#l4804" class="line" id="l4804">   4804</a> &lt;a href=&quot;#l4785&quot; class=&quot;line&quot; id=&quot;l4785&quot;&gt;   4785&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3648&amp;quot; id=&amp;quot;h3-0-3648&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					}
   4824 <a href="#l4805" class="line" id="l4805">   4805</a> &lt;a href=&quot;#l4786&quot; class=&quot;line&quot; id=&quot;l4786&quot;&gt;   4786&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3649&amp;quot; id=&amp;quot;h3-0-3649&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4825 <a href="#l4806" class="line" id="l4806">   4806</a> &lt;a href=&quot;#l4787&quot; class=&quot;line&quot; id=&quot;l4787&quot;&gt;   4787&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3650&amp;quot; id=&amp;quot;h3-0-3650&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					float theta = dTheta * float( i );
   4826 <a href="#l4807" class="line" id="l4807">   4807</a> &lt;a href=&quot;#l4788&quot; class=&quot;line&quot; id=&quot;l4788&quot;&gt;   4788&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3651&amp;quot; id=&amp;quot;h3-0-3651&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					gl_FragColor.rgb += weights[ i ] * getSample( -1.0 * theta, axis );
   4827 <a href="#l4808" class="line" id="l4808">   4808</a> &lt;a href=&quot;#l4789&quot; class=&quot;line&quot; id=&quot;l4789&quot;&gt;   4789&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3652&amp;quot; id=&amp;quot;h3-0-3652&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+					gl_FragColor.rgb += weights[ i ] * getSample( theta, axis );
   4828 <a href="#l4809" class="line" id="l4809">   4809</a> &lt;a href=&quot;#l4790&quot; class=&quot;line&quot; id=&quot;l4790&quot;&gt;   4790&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3653&amp;quot; id=&amp;quot;h3-0-3653&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4829 <a href="#l4810" class="line" id="l4810">   4810</a> &lt;a href=&quot;#l4791&quot; class=&quot;line&quot; id=&quot;l4791&quot;&gt;   4791&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3654&amp;quot; id=&amp;quot;h3-0-3654&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				}
   4830 <a href="#l4811" class="line" id="l4811">   4811</a> &lt;a href=&quot;#l4792&quot; class=&quot;line&quot; id=&quot;l4792&quot;&gt;   4792&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3655&amp;quot; id=&amp;quot;h3-0-3655&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4831 <a href="#l4812" class="line" id="l4812">   4812</a> &lt;a href=&quot;#l4793&quot; class=&quot;line&quot; id=&quot;l4793&quot;&gt;   4793&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3656&amp;quot; id=&amp;quot;h3-0-3656&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			}
   4832 <a href="#l4813" class="line" id="l4813">   4813</a> &lt;a href=&quot;#l4794&quot; class=&quot;line&quot; id=&quot;l4794&quot;&gt;   4794&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3657&amp;quot; id=&amp;quot;h3-0-3657&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		`,blending:sr,depthTest:!1,depthWrite:!1})}function DO(){return new ra({name:&amp;amp;quot;EquirectangularToCubeUV&amp;amp;quot;,uniforms:{envMap:{value:null}},vertexShader:tA(),fragmentShader:`
   4833 <a href="#l4814" class="line" id="l4814">   4814</a> &lt;a href=&quot;#l4795&quot; class=&quot;line&quot; id=&quot;l4795&quot;&gt;   4795&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3658&amp;quot; id=&amp;quot;h3-0-3658&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4834 <a href="#l4815" class="line" id="l4815">   4815</a> &lt;a href=&quot;#l4796&quot; class=&quot;line&quot; id=&quot;l4796&quot;&gt;   4796&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3659&amp;quot; id=&amp;quot;h3-0-3659&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			precision mediump float;
   4835 <a href="#l4816" class="line" id="l4816">   4816</a> &lt;a href=&quot;#l4797&quot; class=&quot;line&quot; id=&quot;l4797&quot;&gt;   4797&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3660&amp;quot; id=&amp;quot;h3-0-3660&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			precision mediump int;
   4836 <a href="#l4817" class="line" id="l4817">   4817</a> &lt;a href=&quot;#l4798&quot; class=&quot;line&quot; id=&quot;l4798&quot;&gt;   4798&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3661&amp;quot; id=&amp;quot;h3-0-3661&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4837 <a href="#l4818" class="line" id="l4818">   4818</a> &lt;a href=&quot;#l4799&quot; class=&quot;line&quot; id=&quot;l4799&quot;&gt;   4799&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3662&amp;quot; id=&amp;quot;h3-0-3662&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			varying vec3 vOutputDirection;
   4838 <a href="#l4819" class="line" id="l4819">   4819</a> &lt;a href=&quot;#l4800&quot; class=&quot;line&quot; id=&quot;l4800&quot;&gt;   4800&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3663&amp;quot; id=&amp;quot;h3-0-3663&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4839 <a href="#l4820" class="line" id="l4820">   4820</a> &lt;a href=&quot;#l4801&quot; class=&quot;line&quot; id=&quot;l4801&quot;&gt;   4801&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3664&amp;quot; id=&amp;quot;h3-0-3664&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform sampler2D envMap;
   4840 <a href="#l4821" class="line" id="l4821">   4821</a> &lt;a href=&quot;#l4802&quot; class=&quot;line&quot; id=&quot;l4802&quot;&gt;   4802&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3665&amp;quot; id=&amp;quot;h3-0-3665&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4841 <a href="#l4822" class="line" id="l4822">   4822</a> &lt;a href=&quot;#l4803&quot; class=&quot;line&quot; id=&quot;l4803&quot;&gt;   4803&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3666&amp;quot; id=&amp;quot;h3-0-3666&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			#include &amp;amp;lt;common&amp;amp;gt;
   4842 <a href="#l4823" class="line" id="l4823">   4823</a> &lt;a href=&quot;#l4804&quot; class=&quot;line&quot; id=&quot;l4804&quot;&gt;   4804&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3667&amp;quot; id=&amp;quot;h3-0-3667&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4843 <a href="#l4824" class="line" id="l4824">   4824</a> &lt;a href=&quot;#l4805&quot; class=&quot;line&quot; id=&quot;l4805&quot;&gt;   4805&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3668&amp;quot; id=&amp;quot;h3-0-3668&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			void main() {
   4844 <a href="#l4825" class="line" id="l4825">   4825</a> &lt;a href=&quot;#l4806&quot; class=&quot;line&quot; id=&quot;l4806&quot;&gt;   4806&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3669&amp;quot; id=&amp;quot;h3-0-3669&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4845 <a href="#l4826" class="line" id="l4826">   4826</a> &lt;a href=&quot;#l4807&quot; class=&quot;line&quot; id=&quot;l4807&quot;&gt;   4807&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3670&amp;quot; id=&amp;quot;h3-0-3670&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec3 outputDirection = normalize( vOutputDirection );
   4846 <a href="#l4827" class="line" id="l4827">   4827</a> &lt;a href=&quot;#l4808&quot; class=&quot;line&quot; id=&quot;l4808&quot;&gt;   4808&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3671&amp;quot; id=&amp;quot;h3-0-3671&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				vec2 uv = equirectUv( outputDirection );
   4847 <a href="#l4828" class="line" id="l4828">   4828</a> &lt;a href=&quot;#l4809&quot; class=&quot;line&quot; id=&quot;l4809&quot;&gt;   4809&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3672&amp;quot; id=&amp;quot;h3-0-3672&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4848 <a href="#l4829" class="line" id="l4829">   4829</a> &lt;a href=&quot;#l4810&quot; class=&quot;line&quot; id=&quot;l4810&quot;&gt;   4810&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3673&amp;quot; id=&amp;quot;h3-0-3673&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				gl_FragColor = vec4( texture2D ( envMap, uv ).rgb, 1.0 );
   4849 <a href="#l4830" class="line" id="l4830">   4830</a> &lt;a href=&quot;#l4811&quot; class=&quot;line&quot; id=&quot;l4811&quot;&gt;   4811&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3674&amp;quot; id=&amp;quot;h3-0-3674&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4850 <a href="#l4831" class="line" id="l4831">   4831</a> &lt;a href=&quot;#l4812&quot; class=&quot;line&quot; id=&quot;l4812&quot;&gt;   4812&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3675&amp;quot; id=&amp;quot;h3-0-3675&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			}
   4851 <a href="#l4832" class="line" id="l4832">   4832</a> &lt;a href=&quot;#l4813&quot; class=&quot;line&quot; id=&quot;l4813&quot;&gt;   4813&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3676&amp;quot; id=&amp;quot;h3-0-3676&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		`,blending:sr,depthTest:!1,depthWrite:!1})}function UO(){return new ra({name:&amp;amp;quot;CubemapToCubeUV&amp;amp;quot;,uniforms:{envMap:{value:null},flipEnvMap:{value:-1}},vertexShader:tA(),fragmentShader:`
   4852 <a href="#l4833" class="line" id="l4833">   4833</a> &lt;a href=&quot;#l4814&quot; class=&quot;line&quot; id=&quot;l4814&quot;&gt;   4814&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3677&amp;quot; id=&amp;quot;h3-0-3677&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4853 <a href="#l4834" class="line" id="l4834">   4834</a> &lt;a href=&quot;#l4815&quot; class=&quot;line&quot; id=&quot;l4815&quot;&gt;   4815&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3678&amp;quot; id=&amp;quot;h3-0-3678&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			precision mediump float;
   4854 <a href="#l4835" class="line" id="l4835">   4835</a> &lt;a href=&quot;#l4816&quot; class=&quot;line&quot; id=&quot;l4816&quot;&gt;   4816&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3679&amp;quot; id=&amp;quot;h3-0-3679&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			precision mediump int;
   4855 <a href="#l4836" class="line" id="l4836">   4836</a> &lt;a href=&quot;#l4817&quot; class=&quot;line&quot; id=&quot;l4817&quot;&gt;   4817&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3680&amp;quot; id=&amp;quot;h3-0-3680&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4856 <a href="#l4837" class="line" id="l4837">   4837</a> &lt;a href=&quot;#l4818&quot; class=&quot;line&quot; id=&quot;l4818&quot;&gt;   4818&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3681&amp;quot; id=&amp;quot;h3-0-3681&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform float flipEnvMap;
   4857 <a href="#l4838" class="line" id="l4838">   4838</a> &lt;a href=&quot;#l4819&quot; class=&quot;line&quot; id=&quot;l4819&quot;&gt;   4819&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3682&amp;quot; id=&amp;quot;h3-0-3682&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4858 <a href="#l4839" class="line" id="l4839">   4839</a> &lt;a href=&quot;#l4820&quot; class=&quot;line&quot; id=&quot;l4820&quot;&gt;   4820&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3683&amp;quot; id=&amp;quot;h3-0-3683&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			varying vec3 vOutputDirection;
   4859 <a href="#l4840" class="line" id="l4840">   4840</a> &lt;a href=&quot;#l4821&quot; class=&quot;line&quot; id=&quot;l4821&quot;&gt;   4821&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3684&amp;quot; id=&amp;quot;h3-0-3684&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4860 <a href="#l4841" class="line" id="l4841">   4841</a> &lt;a href=&quot;#l4822&quot; class=&quot;line&quot; id=&quot;l4822&quot;&gt;   4822&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3685&amp;quot; id=&amp;quot;h3-0-3685&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uniform samplerCube envMap;
   4861 <a href="#l4842" class="line" id="l4842">   4842</a> &lt;a href=&quot;#l4823&quot; class=&quot;line&quot; id=&quot;l4823&quot;&gt;   4823&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3686&amp;quot; id=&amp;quot;h3-0-3686&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4862 <a href="#l4843" class="line" id="l4843">   4843</a> &lt;a href=&quot;#l4824&quot; class=&quot;line&quot; id=&quot;l4824&quot;&gt;   4824&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3687&amp;quot; id=&amp;quot;h3-0-3687&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			void main() {
   4863 <a href="#l4844" class="line" id="l4844">   4844</a> &lt;a href=&quot;#l4825&quot; class=&quot;line&quot; id=&quot;l4825&quot;&gt;   4825&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3688&amp;quot; id=&amp;quot;h3-0-3688&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4864 <a href="#l4845" class="line" id="l4845">   4845</a> &lt;a href=&quot;#l4826&quot; class=&quot;line&quot; id=&quot;l4826&quot;&gt;   4826&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3689&amp;quot; id=&amp;quot;h3-0-3689&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				gl_FragColor = textureCube( envMap, vec3( flipEnvMap * vOutputDirection.x, vOutputDirection.yz ) );
   4865 <a href="#l4846" class="line" id="l4846">   4846</a> &lt;a href=&quot;#l4827&quot; class=&quot;line&quot; id=&quot;l4827&quot;&gt;   4827&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3690&amp;quot; id=&amp;quot;h3-0-3690&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4866 <a href="#l4847" class="line" id="l4847">   4847</a> &lt;a href=&quot;#l4828&quot; class=&quot;line&quot; id=&quot;l4828&quot;&gt;   4828&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3691&amp;quot; id=&amp;quot;h3-0-3691&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			}
   4867 <a href="#l4848" class="line" id="l4848">   4848</a> &lt;a href=&quot;#l4829&quot; class=&quot;line&quot; id=&quot;l4829&quot;&gt;   4829&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3692&amp;quot; id=&amp;quot;h3-0-3692&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		`,blending:sr,depthTest:!1,depthWrite:!1})}function tA(){return`
   4868 <a href="#l4849" class="line" id="l4849">   4849</a> &lt;a href=&quot;#l4830&quot; class=&quot;line&quot; id=&quot;l4830&quot;&gt;   4830&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3693&amp;quot; id=&amp;quot;h3-0-3693&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4869 <a href="#l4850" class="line" id="l4850">   4850</a> &lt;a href=&quot;#l4831&quot; class=&quot;line&quot; id=&quot;l4831&quot;&gt;   4831&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3694&amp;quot; id=&amp;quot;h3-0-3694&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		precision mediump float;
   4870 <a href="#l4851" class="line" id="l4851">   4851</a> &lt;a href=&quot;#l4832&quot; class=&quot;line&quot; id=&quot;l4832&quot;&gt;   4832&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3695&amp;quot; id=&amp;quot;h3-0-3695&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		precision mediump int;
   4871 <a href="#l4852" class="line" id="l4852">   4852</a> &lt;a href=&quot;#l4833&quot; class=&quot;line&quot; id=&quot;l4833&quot;&gt;   4833&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3696&amp;quot; id=&amp;quot;h3-0-3696&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4872 <a href="#l4853" class="line" id="l4853">   4853</a> &lt;a href=&quot;#l4834&quot; class=&quot;line&quot; id=&quot;l4834&quot;&gt;   4834&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3697&amp;quot; id=&amp;quot;h3-0-3697&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		attribute float faceIndex;
   4873 <a href="#l4854" class="line" id="l4854">   4854</a> &lt;a href=&quot;#l4835&quot; class=&quot;line&quot; id=&quot;l4835&quot;&gt;   4835&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3698&amp;quot; id=&amp;quot;h3-0-3698&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4874 <a href="#l4855" class="line" id="l4855">   4855</a> &lt;a href=&quot;#l4836&quot; class=&quot;line&quot; id=&quot;l4836&quot;&gt;   4836&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3699&amp;quot; id=&amp;quot;h3-0-3699&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		varying vec3 vOutputDirection;
   4875 <a href="#l4856" class="line" id="l4856">   4856</a> &lt;a href=&quot;#l4837&quot; class=&quot;line&quot; id=&quot;l4837&quot;&gt;   4837&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3700&amp;quot; id=&amp;quot;h3-0-3700&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4876 <a href="#l4857" class="line" id="l4857">   4857</a> &lt;a href=&quot;#l4838&quot; class=&quot;line&quot; id=&quot;l4838&quot;&gt;   4838&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3701&amp;quot; id=&amp;quot;h3-0-3701&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		// RH coordinate system; PMREM face-indexing convention
   4877 <a href="#l4858" class="line" id="l4858">   4858</a> &lt;a href=&quot;#l4839&quot; class=&quot;line&quot; id=&quot;l4839&quot;&gt;   4839&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3702&amp;quot; id=&amp;quot;h3-0-3702&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		vec3 getDirection( vec2 uv, float face ) {
   4878 <a href="#l4859" class="line" id="l4859">   4859</a> &lt;a href=&quot;#l4840&quot; class=&quot;line&quot; id=&quot;l4840&quot;&gt;   4840&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3703&amp;quot; id=&amp;quot;h3-0-3703&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4879 <a href="#l4860" class="line" id="l4860">   4860</a> &lt;a href=&quot;#l4841&quot; class=&quot;line&quot; id=&quot;l4841&quot;&gt;   4841&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3704&amp;quot; id=&amp;quot;h3-0-3704&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			uv = 2.0 * uv - 1.0;
   4880 <a href="#l4861" class="line" id="l4861">   4861</a> &lt;a href=&quot;#l4842&quot; class=&quot;line&quot; id=&quot;l4842&quot;&gt;   4842&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3705&amp;quot; id=&amp;quot;h3-0-3705&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4881 <a href="#l4862" class="line" id="l4862">   4862</a> &lt;a href=&quot;#l4843&quot; class=&quot;line&quot; id=&quot;l4843&quot;&gt;   4843&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3706&amp;quot; id=&amp;quot;h3-0-3706&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec3 direction = vec3( uv, 1.0 );
   4882 <a href="#l4863" class="line" id="l4863">   4863</a> &lt;a href=&quot;#l4844&quot; class=&quot;line&quot; id=&quot;l4844&quot;&gt;   4844&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3707&amp;quot; id=&amp;quot;h3-0-3707&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4883 <a href="#l4864" class="line" id="l4864">   4864</a> &lt;a href=&quot;#l4845&quot; class=&quot;line&quot; id=&quot;l4845&quot;&gt;   4845&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3708&amp;quot; id=&amp;quot;h3-0-3708&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			if ( face == 0.0 ) {
   4884 <a href="#l4865" class="line" id="l4865">   4865</a> &lt;a href=&quot;#l4846&quot; class=&quot;line&quot; id=&quot;l4846&quot;&gt;   4846&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3709&amp;quot; id=&amp;quot;h3-0-3709&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4885 <a href="#l4866" class="line" id="l4866">   4866</a> &lt;a href=&quot;#l4847&quot; class=&quot;line&quot; id=&quot;l4847&quot;&gt;   4847&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3710&amp;quot; id=&amp;quot;h3-0-3710&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction = direction.zyx; // ( 1, v, u ) pos x
   4886 <a href="#l4867" class="line" id="l4867">   4867</a> &lt;a href=&quot;#l4848&quot; class=&quot;line&quot; id=&quot;l4848&quot;&gt;   4848&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3711&amp;quot; id=&amp;quot;h3-0-3711&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4887 <a href="#l4868" class="line" id="l4868">   4868</a> &lt;a href=&quot;#l4849&quot; class=&quot;line&quot; id=&quot;l4849&quot;&gt;   4849&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3712&amp;quot; id=&amp;quot;h3-0-3712&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			} else if ( face == 1.0 ) {
   4888 <a href="#l4869" class="line" id="l4869">   4869</a> &lt;a href=&quot;#l4850&quot; class=&quot;line&quot; id=&quot;l4850&quot;&gt;   4850&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3713&amp;quot; id=&amp;quot;h3-0-3713&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4889 <a href="#l4870" class="line" id="l4870">   4870</a> &lt;a href=&quot;#l4851&quot; class=&quot;line&quot; id=&quot;l4851&quot;&gt;   4851&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3714&amp;quot; id=&amp;quot;h3-0-3714&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction = direction.xzy;
   4890 <a href="#l4871" class="line" id="l4871">   4871</a> &lt;a href=&quot;#l4852&quot; class=&quot;line&quot; id=&quot;l4852&quot;&gt;   4852&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3715&amp;quot; id=&amp;quot;h3-0-3715&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction.xz *= -1.0; // ( -u, 1, -v ) pos y
   4891 <a href="#l4872" class="line" id="l4872">   4872</a> &lt;a href=&quot;#l4853&quot; class=&quot;line&quot; id=&quot;l4853&quot;&gt;   4853&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3716&amp;quot; id=&amp;quot;h3-0-3716&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4892 <a href="#l4873" class="line" id="l4873">   4873</a> &lt;a href=&quot;#l4854&quot; class=&quot;line&quot; id=&quot;l4854&quot;&gt;   4854&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3717&amp;quot; id=&amp;quot;h3-0-3717&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			} else if ( face == 2.0 ) {
   4893 <a href="#l4874" class="line" id="l4874">   4874</a> &lt;a href=&quot;#l4855&quot; class=&quot;line&quot; id=&quot;l4855&quot;&gt;   4855&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3718&amp;quot; id=&amp;quot;h3-0-3718&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4894 <a href="#l4875" class="line" id="l4875">   4875</a> &lt;a href=&quot;#l4856&quot; class=&quot;line&quot; id=&quot;l4856&quot;&gt;   4856&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3719&amp;quot; id=&amp;quot;h3-0-3719&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction.x *= -1.0; // ( -u, v, 1 ) pos z
   4895 <a href="#l4876" class="line" id="l4876">   4876</a> &lt;a href=&quot;#l4857&quot; class=&quot;line&quot; id=&quot;l4857&quot;&gt;   4857&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3720&amp;quot; id=&amp;quot;h3-0-3720&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4896 <a href="#l4877" class="line" id="l4877">   4877</a> &lt;a href=&quot;#l4858&quot; class=&quot;line&quot; id=&quot;l4858&quot;&gt;   4858&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3721&amp;quot; id=&amp;quot;h3-0-3721&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			} else if ( face == 3.0 ) {
   4897 <a href="#l4878" class="line" id="l4878">   4878</a> &lt;a href=&quot;#l4859&quot; class=&quot;line&quot; id=&quot;l4859&quot;&gt;   4859&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3722&amp;quot; id=&amp;quot;h3-0-3722&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4898 <a href="#l4879" class="line" id="l4879">   4879</a> &lt;a href=&quot;#l4860&quot; class=&quot;line&quot; id=&quot;l4860&quot;&gt;   4860&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3723&amp;quot; id=&amp;quot;h3-0-3723&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction = direction.zyx;
   4899 <a href="#l4880" class="line" id="l4880">   4880</a> &lt;a href=&quot;#l4861&quot; class=&quot;line&quot; id=&quot;l4861&quot;&gt;   4861&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3724&amp;quot; id=&amp;quot;h3-0-3724&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction.xz *= -1.0; // ( -1, v, -u ) neg x
   4900 <a href="#l4881" class="line" id="l4881">   4881</a> &lt;a href=&quot;#l4862&quot; class=&quot;line&quot; id=&quot;l4862&quot;&gt;   4862&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3725&amp;quot; id=&amp;quot;h3-0-3725&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4901 <a href="#l4882" class="line" id="l4882">   4882</a> &lt;a href=&quot;#l4863&quot; class=&quot;line&quot; id=&quot;l4863&quot;&gt;   4863&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3726&amp;quot; id=&amp;quot;h3-0-3726&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			} else if ( face == 4.0 ) {
   4902 <a href="#l4883" class="line" id="l4883">   4883</a> &lt;a href=&quot;#l4864&quot; class=&quot;line&quot; id=&quot;l4864&quot;&gt;   4864&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3727&amp;quot; id=&amp;quot;h3-0-3727&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4903 <a href="#l4884" class="line" id="l4884">   4884</a> &lt;a href=&quot;#l4865&quot; class=&quot;line&quot; id=&quot;l4865&quot;&gt;   4865&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3728&amp;quot; id=&amp;quot;h3-0-3728&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction = direction.xzy;
   4904 <a href="#l4885" class="line" id="l4885">   4885</a> &lt;a href=&quot;#l4866&quot; class=&quot;line&quot; id=&quot;l4866&quot;&gt;   4866&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3729&amp;quot; id=&amp;quot;h3-0-3729&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction.xy *= -1.0; // ( -u, -1, v ) neg y
   4905 <a href="#l4886" class="line" id="l4886">   4886</a> &lt;a href=&quot;#l4867&quot; class=&quot;line&quot; id=&quot;l4867&quot;&gt;   4867&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3730&amp;quot; id=&amp;quot;h3-0-3730&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4906 <a href="#l4887" class="line" id="l4887">   4887</a> &lt;a href=&quot;#l4868&quot; class=&quot;line&quot; id=&quot;l4868&quot;&gt;   4868&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3731&amp;quot; id=&amp;quot;h3-0-3731&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			} else if ( face == 5.0 ) {
   4907 <a href="#l4888" class="line" id="l4888">   4888</a> &lt;a href=&quot;#l4869&quot; class=&quot;line&quot; id=&quot;l4869&quot;&gt;   4869&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3732&amp;quot; id=&amp;quot;h3-0-3732&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4908 <a href="#l4889" class="line" id="l4889">   4889</a> &lt;a href=&quot;#l4870&quot; class=&quot;line&quot; id=&quot;l4870&quot;&gt;   4870&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3733&amp;quot; id=&amp;quot;h3-0-3733&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+				direction.z *= -1.0; // ( u, v, -1 ) neg z
   4909 <a href="#l4890" class="line" id="l4890">   4890</a> &lt;a href=&quot;#l4871&quot; class=&quot;line&quot; id=&quot;l4871&quot;&gt;   4871&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3734&amp;quot; id=&amp;quot;h3-0-3734&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4910 <a href="#l4891" class="line" id="l4891">   4891</a> &lt;a href=&quot;#l4872&quot; class=&quot;line&quot; id=&quot;l4872&quot;&gt;   4872&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3735&amp;quot; id=&amp;quot;h3-0-3735&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			}
   4911 <a href="#l4892" class="line" id="l4892">   4892</a> &lt;a href=&quot;#l4873&quot; class=&quot;line&quot; id=&quot;l4873&quot;&gt;   4873&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3736&amp;quot; id=&amp;quot;h3-0-3736&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4912 <a href="#l4893" class="line" id="l4893">   4893</a> &lt;a href=&quot;#l4874&quot; class=&quot;line&quot; id=&quot;l4874&quot;&gt;   4874&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3737&amp;quot; id=&amp;quot;h3-0-3737&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			return direction;
   4913 <a href="#l4894" class="line" id="l4894">   4894</a> &lt;a href=&quot;#l4875&quot; class=&quot;line&quot; id=&quot;l4875&quot;&gt;   4875&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3738&amp;quot; id=&amp;quot;h3-0-3738&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4914 <a href="#l4895" class="line" id="l4895">   4895</a> &lt;a href=&quot;#l4876&quot; class=&quot;line&quot; id=&quot;l4876&quot;&gt;   4876&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3739&amp;quot; id=&amp;quot;h3-0-3739&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   4915 <a href="#l4896" class="line" id="l4896">   4896</a> &lt;a href=&quot;#l4877&quot; class=&quot;line&quot; id=&quot;l4877&quot;&gt;   4877&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3740&amp;quot; id=&amp;quot;h3-0-3740&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4916 <a href="#l4897" class="line" id="l4897">   4897</a> &lt;a href=&quot;#l4878&quot; class=&quot;line&quot; id=&quot;l4878&quot;&gt;   4878&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3741&amp;quot; id=&amp;quot;h3-0-3741&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		void main() {
   4917 <a href="#l4898" class="line" id="l4898">   4898</a> &lt;a href=&quot;#l4879&quot; class=&quot;line&quot; id=&quot;l4879&quot;&gt;   4879&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3742&amp;quot; id=&amp;quot;h3-0-3742&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4918 <a href="#l4899" class="line" id="l4899">   4899</a> &lt;a href=&quot;#l4880&quot; class=&quot;line&quot; id=&quot;l4880&quot;&gt;   4880&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3743&amp;quot; id=&amp;quot;h3-0-3743&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vOutputDirection = getDirection( uv, faceIndex );
   4919 <a href="#l4900" class="line" id="l4900">   4900</a> &lt;a href=&quot;#l4881&quot; class=&quot;line&quot; id=&quot;l4881&quot;&gt;   4881&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3744&amp;quot; id=&amp;quot;h3-0-3744&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			gl_Position = vec4( position, 1.0 );
   4920 <a href="#l4901" class="line" id="l4901">   4901</a> &lt;a href=&quot;#l4882&quot; class=&quot;line&quot; id=&quot;l4882&quot;&gt;   4882&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3745&amp;quot; id=&amp;quot;h3-0-3745&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4921 <a href="#l4902" class="line" id="l4902">   4902</a> &lt;a href=&quot;#l4883&quot; class=&quot;line&quot; id=&quot;l4883&quot;&gt;   4883&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3746&amp;quot; id=&amp;quot;h3-0-3746&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		}
   4922 <a href="#l4903" class="line" id="l4903">   4903</a> &lt;a href=&quot;#l4884&quot; class=&quot;line&quot; id=&quot;l4884&quot;&gt;   4884&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3747&amp;quot; id=&amp;quot;h3-0-3747&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	`}function Q6(n){let t=new WeakMap,e=null;function i(u){if(u&amp;amp;amp;&amp;amp;amp;u.isTexture){let c=u.mapping,h=c===vh||c===yh,d=c===rr||c===to;if(h||d){let m=t.get(u),g=m!==void 0?m.texture.pmremVersion:0;if(u.isRenderTargetTexture&amp;amp;amp;&amp;amp;amp;u.pmremVersion!==g)return e===null&amp;amp;amp;&amp;amp;amp;(e=new Ig(n)),m=h?e.fromEquirectangular(u,m):e.fromCubemap(u,m),m.texture.pmremVersion=u.pmremVersion,t.set(u,m),m.texture;if(m!==void 0)return m.texture;{let y=u.image;return h&amp;amp;amp;&amp;amp;amp;y&amp;amp;amp;&amp;amp;amp;y.height&amp;amp;gt;0||d&amp;amp;amp;&amp;amp;amp;y&amp;amp;amp;&amp;amp;amp;a(y)?(e===null&amp;amp;amp;&amp;amp;amp;(e=new Ig(n)),m=h?e.fromEquirectangular(u):e.fromCubemap(u),m.texture.pmremVersion=u.pmremVersion,t.set(u,m),u.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,s),m.texture):null}}}return u}function a(u){let c=0,h=6;for(let d=0;d&amp;amp;lt;h;d++)u[d]!==void 0&amp;amp;amp;&amp;amp;amp;c++;return c===h}function s(u){let c=u.target;c.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,s);let h=t.get(c);h!==void 0&amp;amp;amp;&amp;amp;amp;(t.delete(c),h.dispose())}function o(){t=new WeakMap,e!==null&amp;amp;amp;&amp;amp;amp;(e.dispose(),e=null)}return{get:i,dispose:o}}function K6(n){let t={};function e(i){if(t[i]!==void 0)return t[i];let a;switch(i){case&amp;amp;quot;WEBGL_depth_texture&amp;amp;quot;:a=n.getExtension(&amp;amp;quot;WEBGL_depth_texture&amp;amp;quot;)||n.getExtension(&amp;amp;quot;MOZ_WEBGL_depth_texture&amp;amp;quot;)||n.getExtension(&amp;amp;quot;WEBKIT_WEBGL_depth_texture&amp;amp;quot;);break;case&amp;amp;quot;EXT_texture_filter_anisotropic&amp;amp;quot;:a=n.getExtension(&amp;amp;quot;EXT_texture_filter_anisotropic&amp;amp;quot;)||n.getExtension(&amp;amp;quot;MOZ_EXT_texture_filter_anisotropic&amp;amp;quot;)||n.getExtension(&amp;amp;quot;WEBKIT_EXT_texture_filter_anisotropic&amp;amp;quot;);break;case&amp;amp;quot;WEBGL_compressed_texture_s3tc&amp;amp;quot;:a=n.getExtension(&amp;amp;quot;WEBGL_compressed_texture_s3tc&amp;amp;quot;)||n.getExtension(&amp;amp;quot;MOZ_WEBGL_compressed_texture_s3tc&amp;amp;quot;)||n.getExtension(&amp;amp;quot;WEBKIT_WEBGL_compressed_texture_s3tc&amp;amp;quot;);break;case&amp;amp;quot;WEBGL_compressed_texture_pvrtc&amp;amp;quot;:a=n.getExtension(&amp;amp;quot;WEBGL_compressed_texture_pvrtc&amp;amp;quot;)||n.getExtension(&amp;amp;quot;WEBKIT_WEBGL_compressed_texture_pvrtc&amp;amp;quot;);break;default:a=n.getExtension(i)}return t[i]=a,a}return{has:function(i){return e(i)!==null},init:function(){e(&amp;amp;quot;EXT_color_buffer_float&amp;amp;quot;),e(&amp;amp;quot;WEBGL_clip_cull_distance&amp;amp;quot;),e(&amp;amp;quot;OES_texture_float_linear&amp;amp;quot;),e(&amp;amp;quot;EXT_color_buffer_half_float&amp;amp;quot;),e(&amp;amp;quot;WEBGL_multisampled_render_to_texture&amp;amp;quot;),e(&amp;amp;quot;WEBGL_render_shared_exponent&amp;amp;quot;)},get:function(i){let a=e(i);return a===null&amp;amp;amp;&amp;amp;amp;_u(&amp;amp;quot;THREE.WebGLRenderer: &amp;amp;quot;+i+&amp;amp;quot; extension not supported.&amp;amp;quot;),a}}}function J6(n,t,e,i){let a={},s=new WeakMap;function o(m){let g=m.target;g.index!==null&amp;amp;amp;&amp;amp;amp;t.remove(g.index);for(let x in g.attributes)t.remove(g.attributes[x]);g.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,o),delete a[g.id];let y=s.get(g);y&amp;amp;amp;&amp;amp;amp;(t.remove(y),s.delete(g)),i.releaseStatesOfGeometry(g),g.isInstancedBufferGeometry===!0&amp;amp;amp;&amp;amp;amp;delete g._maxInstanceCount,e.memory.geometries--}function u(m,g){return a[g.id]===!0||(g.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,o),a[g.id]=!0,e.memory.geometries++),g}function c(m){let g=m.attributes;for(let y in g)t.update(g[y],n.ARRAY_BUFFER)}function h(m){let g=[],y=m.index,x=m.attributes.position,b=0;if(y!==null){let S=y.array;b=y.version;for(let E=0,T=S.length;E&amp;amp;lt;T;E+=3){let w=S[E+0],U=S[E+1],O=S[E+2];g.push(w,U,U,O,O,w)}}else if(x!==void 0){let S=x.array;b=x.version;for(let E=0,T=S.length/3-1;E&amp;amp;lt;T;E+=3){let w=E+0,U=E+1,O=E+2;g.push(w,U,U,O,O,w)}}else return;let M=new(UT(g)?Yf:qf)(g,1);M.version=b;let v=s.get(m);v&amp;amp;amp;&amp;amp;amp;t.remove(v),s.set(m,M)}function d(m){let g=s.get(m);if(g){let y=m.index;y!==null&amp;amp;amp;&amp;amp;amp;g.version&amp;amp;lt;y.version&amp;amp;amp;&amp;amp;amp;h(m)}else h(m);return s.get(m)}return{get:u,update:c,getWireframeAttribute:d}}function $6(n,t,e){let i;function a(g){i=g}let s,o;function u(g){s=g.type,o=g.bytesPerElement}function c(g,y){n.drawElements(i,y,s,g*o),e.update(y,i,1)}function h(g,y,x){x!==0&amp;amp;amp;&amp;amp;amp;(n.drawElementsInstanced(i,y,s,g*o,x),e.update(y,i,x))}function d(g,y,x){if(x===0)return;t.get(&amp;amp;quot;WEBGL_multi_draw&amp;amp;quot;).multiDrawElementsWEBGL(i,y,0,s,g,0,x);let M=0;for(let v=0;v&amp;amp;lt;x;v++)M+=y[v];e.update(M,i,1)}function m(g,y,x,b){if(x===0)return;let M=t.get(&amp;amp;quot;WEBGL_multi_draw&amp;amp;quot;);if(M===null)for(let v=0;v&amp;amp;lt;g.length;v++)h(g[v]/o,y[v],b[v]);else{M.multiDrawElementsInstancedWEBGL(i,y,0,s,g,0,b,0,x);let v=0;for(let S=0;S&amp;amp;lt;x;S++)v+=y[S]*b[S];e.update(v,i,1)}}this.setMode=a,this.setIndex=u,this.render=c,this.renderInstances=h,this.renderMultiDraw=d,this.renderMultiDrawInstances=m}function tG(n){let t={geometries:0,textures:0},e={frame:0,calls:0,triangles:0,points:0,lines:0};function i(s,o,u){switch(e.calls++,o){case n.TRIANGLES:e.triangles+=u*(s/3);break;case n.LINES:e.lines+=u*(s/2);break;case n.LINE_STRIP:e.lines+=u*(s-1);break;case n.LINE_LOOP:e.lines+=u*s;break;case n.POINTS:e.points+=u*s;break;default:console.error(&amp;amp;quot;THREE.WebGLInfo: Unknown draw mode:&amp;amp;quot;,o);break}}function a(){e.calls=0,e.triangles=0,e.points=0,e.lines=0}return{memory:t,render:e,programs:null,autoReset:!0,reset:a,update:i}}function eG(n,t,e){let i=new WeakMap,a=new Oe;function s(o,u,c){let h=o.morphTargetInfluences,d=u.morphAttributes.position||u.morphAttributes.normal||u.morphAttributes.color,m=d!==void 0?d.length:0,g=i.get(u);if(g===void 0||g.count!==m){let C=function(){O.dispose(),i.delete(u),u.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,C)};g!==void 0&amp;amp;amp;&amp;amp;amp;g.texture.dispose();let y=u.morphAttributes.position!==void 0,x=u.morphAttributes.normal!==void 0,b=u.morphAttributes.color!==void 0,M=u.morphAttributes.position||[],v=u.morphAttributes.normal||[],S=u.morphAttributes.color||[],E=0;y===!0&amp;amp;amp;&amp;amp;amp;(E=1),x===!0&amp;amp;amp;&amp;amp;amp;(E=2),b===!0&amp;amp;amp;&amp;amp;amp;(E=3);let T=u.attributes.position.count*E,w=1;T&amp;amp;gt;t.maxTextureSize&amp;amp;amp;&amp;amp;amp;(w=Math.ceil(T/t.maxTextureSize),T=t.maxTextureSize);let U=new Float32Array(T*w*4*m),O=new xu(U,T,w,m);O.type=qi,O.needsUpdate=!0;let z=E*4;for(let R=0;R&amp;amp;lt;m;R++){let P=M[R],j=v[R],X=S[R],Z=T*w*4*R;for(let st=0;st&amp;amp;lt;P.count;st++){let et=st*z;y===!0&amp;amp;amp;&amp;amp;amp;(a.fromBufferAttribute(P,st),U[Z+et+0]=a.x,U[Z+et+1]=a.y,U[Z+et+2]=a.z,U[Z+et+3]=0),x===!0&amp;amp;amp;&amp;amp;amp;(a.fromBufferAttribute(j,st),U[Z+et+4]=a.x,U[Z+et+5]=a.y,U[Z+et+6]=a.z,U[Z+et+7]=0),b===!0&amp;amp;amp;&amp;amp;amp;(a.fromBufferAttribute(X,st),U[Z+et+8]=a.x,U[Z+et+9]=a.y,U[Z+et+10]=a.z,U[Z+et+11]=X.itemSize===4?a.w:1)}}g={count:m,texture:O,size:new ct(T,w)},i.set(u,g),u.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,C)}if(o.isInstancedMesh===!0&amp;amp;amp;&amp;amp;amp;o.morphTexture!==null)c.getUniforms().setValue(n,&amp;amp;quot;morphTexture&amp;amp;quot;,o.morphTexture,e);else{let y=0;for(let b=0;b&amp;amp;lt;h.length;b++)y+=h[b];let x=u.morphTargetsRelative?1:1-y;c.getUniforms().setValue(n,&amp;amp;quot;morphTargetBaseInfluence&amp;amp;quot;,x),c.getUniforms().setValue(n,&amp;amp;quot;morphTargetInfluences&amp;amp;quot;,h)}c.getUniforms().setValue(n,&amp;amp;quot;morphTargetsTexture&amp;amp;quot;,g.texture,e),c.getUniforms().setValue(n,&amp;amp;quot;morphTargetsTextureSize&amp;amp;quot;,g.size)}return{update:s}}function nG(n,t,e,i){let a=new WeakMap;function s(c){let h=i.render.frame,d=c.geometry,m=t.get(c,d);if(a.get(m)!==h&amp;amp;amp;&amp;amp;amp;(t.update(m),a.set(m,h)),c.isInstancedMesh&amp;amp;amp;&amp;amp;amp;(c.hasEventListener(&amp;amp;quot;dispose&amp;amp;quot;,u)===!1&amp;amp;amp;&amp;amp;amp;c.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,u),a.get(c)!==h&amp;amp;amp;&amp;amp;amp;(e.update(c.instanceMatrix,n.ARRAY_BUFFER),c.instanceColor!==null&amp;amp;amp;&amp;amp;amp;e.update(c.instanceColor,n.ARRAY_BUFFER),a.set(c,h))),c.isSkinnedMesh){let g=c.skeleton;a.get(g)!==h&amp;amp;amp;&amp;amp;amp;(g.update(),a.set(g,h))}return m}function o(){a=new WeakMap}function u(c){let h=c.target;h.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,u),e.remove(h.instanceMatrix),h.instanceColor!==null&amp;amp;amp;&amp;amp;amp;e.remove(h.instanceColor)}return{update:s,dispose:o}}var QO=new zn,NO=new jf(1,1),KO=new xu,JO=new Su,$O=new ol,OO=[],LO=[],zO=new Float32Array(16),BO=new Float32Array(9),PO=new Float32Array(4);function wh(n,t,e){let i=n[0];if(i&amp;amp;lt;=0||i&amp;amp;gt;0)return n;let a=t*e,s=OO[a];if(s===void 0&amp;amp;amp;&amp;amp;amp;(s=new Float32Array(a),OO[a]=s),t!==0){i.toArray(s,0);for(let o=1,u=0;o!==t;++o)u+=e,n[o].toArray(s,u)}return s}function Qn(n,t){if(n.length!==t.length)return!1;for(let e=0,i=n.length;e&amp;amp;lt;i;e++)if(n[e]!==t[e])return!1;return!0}function Kn(n,t){for(let e=0,i=t.length;e&amp;amp;lt;i;e++)n[e]=t[e]}function yx(n,t){let e=LO[t];e===void 0&amp;amp;amp;&amp;amp;amp;(e=new Int32Array(t),LO[t]=e);for(let i=0;i!==t;++i)e[i]=n.allocateTextureUnit();return e}function iG(n,t){let e=this.cache;e[0]!==t&amp;amp;amp;&amp;amp;amp;(n.uniform1f(this.addr,t),e[0]=t)}function aG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y)&amp;amp;amp;&amp;amp;amp;(n.uniform2f(this.addr,t.x,t.y),e[0]=t.x,e[1]=t.y);else{if(Qn(e,t))return;n.uniform2fv(this.addr,t),Kn(e,t)}}function sG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y||e[2]!==t.z)&amp;amp;amp;&amp;amp;amp;(n.uniform3f(this.addr,t.x,t.y,t.z),e[0]=t.x,e[1]=t.y,e[2]=t.z);else if(t.r!==void 0)(e[0]!==t.r||e[1]!==t.g||e[2]!==t.b)&amp;amp;amp;&amp;amp;amp;(n.uniform3f(this.addr,t.r,t.g,t.b),e[0]=t.r,e[1]=t.g,e[2]=t.b);else{if(Qn(e,t))return;n.uniform3fv(this.addr,t),Kn(e,t)}}function rG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y||e[2]!==t.z||e[3]!==t.w)&amp;amp;amp;&amp;amp;amp;(n.uniform4f(this.addr,t.x,t.y,t.z,t.w),e[0]=t.x,e[1]=t.y,e[2]=t.z,e[3]=t.w);else{if(Qn(e,t))return;n.uniform4fv(this.addr,t),Kn(e,t)}}function oG(n,t){let e=this.cache,i=t.elements;if(i===void 0){if(Qn(e,t))return;n.uniformMatrix2fv(this.addr,!1,t),Kn(e,t)}else{if(Qn(e,i))return;PO.set(i),n.uniformMatrix2fv(this.addr,!1,PO),Kn(e,i)}}function lG(n,t){let e=this.cache,i=t.elements;if(i===void 0){if(Qn(e,t))return;n.uniformMatrix3fv(this.addr,!1,t),Kn(e,t)}else{if(Qn(e,i))return;BO.set(i),n.uniformMatrix3fv(this.addr,!1,BO),Kn(e,i)}}function uG(n,t){let e=this.cache,i=t.elements;if(i===void 0){if(Qn(e,t))return;n.uniformMatrix4fv(this.addr,!1,t),Kn(e,t)}else{if(Qn(e,i))return;zO.set(i),n.uniformMatrix4fv(this.addr,!1,zO),Kn(e,i)}}function cG(n,t){let e=this.cache;e[0]!==t&amp;amp;amp;&amp;amp;amp;(n.uniform1i(this.addr,t),e[0]=t)}function fG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y)&amp;amp;amp;&amp;amp;amp;(n.uniform2i(this.addr,t.x,t.y),e[0]=t.x,e[1]=t.y);else{if(Qn(e,t))return;n.uniform2iv(this.addr,t),Kn(e,t)}}function hG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y||e[2]!==t.z)&amp;amp;amp;&amp;amp;amp;(n.uniform3i(this.addr,t.x,t.y,t.z),e[0]=t.x,e[1]=t.y,e[2]=t.z);else{if(Qn(e,t))return;n.uniform3iv(this.addr,t),Kn(e,t)}}function dG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y||e[2]!==t.z||e[3]!==t.w)&amp;amp;amp;&amp;amp;amp;(n.uniform4i(this.addr,t.x,t.y,t.z,t.w),e[0]=t.x,e[1]=t.y,e[2]=t.z,e[3]=t.w);else{if(Qn(e,t))return;n.uniform4iv(this.addr,t),Kn(e,t)}}function pG(n,t){let e=this.cache;e[0]!==t&amp;amp;amp;&amp;amp;amp;(n.uniform1ui(this.addr,t),e[0]=t)}function mG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y)&amp;amp;amp;&amp;amp;amp;(n.uniform2ui(this.addr,t.x,t.y),e[0]=t.x,e[1]=t.y);else{if(Qn(e,t))return;n.uniform2uiv(this.addr,t),Kn(e,t)}}function gG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y||e[2]!==t.z)&amp;amp;amp;&amp;amp;amp;(n.uniform3ui(this.addr,t.x,t.y,t.z),e[0]=t.x,e[1]=t.y,e[2]=t.z);else{if(Qn(e,t))return;n.uniform3uiv(this.addr,t),Kn(e,t)}}function vG(n,t){let e=this.cache;if(t.x!==void 0)(e[0]!==t.x||e[1]!==t.y||e[2]!==t.z||e[3]!==t.w)&amp;amp;amp;&amp;amp;amp;(n.uniform4ui(this.addr,t.x,t.y,t.z,t.w),e[0]=t.x,e[1]=t.y,e[2]=t.z,e[3]=t.w);else{if(Qn(e,t))return;n.uniform4uiv(this.addr,t),Kn(e,t)}}function yG(n,t,e){let i=this.cache,a=e.allocateTextureUnit();i[0]!==a&amp;amp;amp;&amp;amp;amp;(n.uniform1i(this.addr,a),i[0]=a);let s;this.type===n.SAMPLER_2D_SHADOW?(NO.compareFunction=fx,s=NO):s=QO,e.setTexture2D(t||s,a)}function _G(n,t,e){let i=this.cache,a=e.allocateTextureUnit();i[0]!==a&amp;amp;amp;&amp;amp;amp;(n.uniform1i(this.addr,a),i[0]=a),e.setTexture3D(t||JO,a)}function xG(n,t,e){let i=this.cache,a=e.allocateTextureUnit();i[0]!==a&amp;amp;amp;&amp;amp;amp;(n.uniform1i(this.addr,a),i[0]=a),e.setTextureCube(t||$O,a)}function SG(n,t,e){let i=this.cache,a=e.allocateTextureUnit();i[0]!==a&amp;amp;amp;&amp;amp;amp;(n.uniform1i(this.addr,a),i[0]=a),e.setTexture2DArray(t||KO,a)}function MG(n){switch(n){case 5126:return iG;case 35664:return aG;case 35665:return sG;case 35666:return rG;case 35674:return oG;case 35675:return lG;case 35676:return uG;case 5124:case 35670:return cG;case 35667:case 35671:return fG;case 35668:case 35672:return hG;case 35669:case 35673:return dG;case 5125:return pG;case 36294:return mG;case 36295:return gG;case 36296:return vG;case 35678:case 36198:case 36298:case 36306:case 35682:return yG;case 35679:case 36299:case 36307:return _G;case 35680:case 36300:case 36308:case 36293:return xG;case 36289:case 36303:case 36311:case 36292:return SG}}function EG(n,t){n.uniform1fv(this.addr,t)}function bG(n,t){let e=wh(t,this.size,2);n.uniform2fv(this.addr,e)}function TG(n,t){let e=wh(t,this.size,3);n.uniform3fv(this.addr,e)}function AG(n,t){let e=wh(t,this.size,4);n.uniform4fv(this.addr,e)}function RG(n,t){let e=wh(t,this.size,4);n.uniformMatrix2fv(this.addr,!1,e)}function CG(n,t){let e=wh(t,this.size,9);n.uniformMatrix3fv(this.addr,!1,e)}function wG(n,t){let e=wh(t,this.size,16);n.uniformMatrix4fv(this.addr,!1,e)}function DG(n,t){n.uniform1iv(this.addr,t)}function UG(n,t){n.uniform2iv(this.addr,t)}function NG(n,t){n.uniform3iv(this.addr,t)}function OG(n,t){n.uniform4iv(this.addr,t)}function LG(n,t){n.uniform1uiv(this.addr,t)}function zG(n,t){n.uniform2uiv(this.addr,t)}function BG(n,t){n.uniform3uiv(this.addr,t)}function PG(n,t){n.uniform4uiv(this.addr,t)}function IG(n,t,e){let i=this.cache,a=t.length,s=yx(e,a);Qn(i,s)||(n.uniform1iv(this.addr,s),Kn(i,s));for(let o=0;o!==a;++o)e.setTexture2D(t[o]||QO,s[o])}function HG(n,t,e){let i=this.cache,a=t.length,s=yx(e,a);Qn(i,s)||(n.uniform1iv(this.addr,s),Kn(i,s));for(let o=0;o!==a;++o)e.setTexture3D(t[o]||JO,s[o])}function FG(n,t,e){let i=this.cache,a=t.length,s=yx(e,a);Qn(i,s)||(n.uniform1iv(this.addr,s),Kn(i,s));for(let o=0;o!==a;++o)e.setTextureCube(t[o]||$O,s[o])}function VG(n,t,e){let i=this.cache,a=t.length,s=yx(e,a);Qn(i,s)||(n.uniform1iv(this.addr,s),Kn(i,s));for(let o=0;o!==a;++o)e.setTexture2DArray(t[o]||KO,s[o])}function GG(n){switch(n){case 5126:return EG;case 35664:return bG;case 35665:return TG;case 35666:return AG;case 35674:return RG;case 35675:return CG;case 35676:return wG;case 5124:case 35670:return DG;case 35667:case 35671:return UG;case 35668:case 35672:return NG;case 35669:case 35673:return OG;case 5125:return LG;case 36294:return zG;case 36295:return BG;case 36296:return PG;case 35678:case 36198:case 36298:case 36306:case 35682:return IG;case 35679:case 36299:case 36307:return HG;case 35680:case 36300:case 36308:case 36293:return FG;case 36289:case 36303:case 36311:case 36292:return VG}}var WT=class{constructor(t,e,i){this.id=t,this.addr=i,this.cache=[],this.type=e.type,this.setValue=MG(e.type)}},kT=class{constructor(t,e,i){this.id=t,this.addr=i,this.cache=[],this.type=e.type,this.size=e.size,this.setValue=GG(e.type)}},ZT=class{constructor(t){this.id=t,this.seq=[],this.map={}}setValue(t,e,i){let a=this.seq;for(let s=0,o=a.length;s!==o;++s){let u=a[s];u.setValue(t,e[u.id],i)}}},YT=/(\w+)(\])?(\[|\.)?/g;function IO(n,t){n.seq.push(t),n.map[t.id]=t}function XG(n,t,e){let i=n.name,a=i.length;for(YT.lastIndex=0;;){let s=YT.exec(i),o=YT.lastIndex,u=s[1],c=s[2]===&amp;amp;quot;]&amp;amp;quot;,h=s[3];if(c&amp;amp;amp;&amp;amp;amp;(u=u|0),h===void 0||h===&amp;amp;quot;[&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o+2===a){IO(e,h===void 0?new WT(u,n,t):new kT(u,n,t));break}else{let m=e.map[u];m===void 0&amp;amp;amp;&amp;amp;amp;(m=new ZT(u),IO(e,m)),e=m}}}var Ch=class{constructor(t,e){this.seq=[],this.map={};let i=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let a=0;a&amp;amp;lt;i;++a){let s=t.getActiveUniform(e,a),o=t.getUniformLocation(e,s.name);XG(s,o,this)}}setValue(t,e,i,a){let s=this.map[e];s!==void 0&amp;amp;amp;&amp;amp;amp;s.setValue(t,i,a)}setOptional(t,e,i){let a=e[i];a!==void 0&amp;amp;amp;&amp;amp;amp;this.setValue(t,i,a)}static upload(t,e,i,a){for(let s=0,o=e.length;s!==o;++s){let u=e[s],c=i[u.id];c.needsUpdate!==!1&amp;amp;amp;&amp;amp;amp;u.setValue(t,c.value,a)}}static seqWithValue(t,e){let i=[];for(let a=0,s=t.length;a!==s;++a){let o=t[a];o.id in e&amp;amp;amp;&amp;amp;amp;i.push(o)}return i}};function HO(n,t,e){let i=n.createShader(t);return n.shaderSource(i,e),n.compileShader(i),i}var qG=37297,YG=0;function WG(n,t){let e=n.split(`
   4923 <a href="#l4904" class="line" id="l4904">   4904</a> &lt;a href=&quot;#l4885&quot; class=&quot;line&quot; id=&quot;l4885&quot;&gt;   4885&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3748&amp;quot; id=&amp;quot;h3-0-3748&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),i=[],a=Math.max(t-6,0),s=Math.min(t+6,e.length);for(let o=a;o&amp;amp;lt;s;o++){let u=o+1;i.push(`${u===t?&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;:&amp;amp;quot; &amp;amp;quot;} ${u}: ${e[o]}`)}return i.join(`
   4924 <a href="#l4905" class="line" id="l4905">   4905</a> &lt;a href=&quot;#l4886&quot; class=&quot;line&quot; id=&quot;l4886&quot;&gt;   4886&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3749&amp;quot; id=&amp;quot;h3-0-3749&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)}var FO=new ge;function kG(n){we._getMatrix(FO,we.workingColorSpace,n);let t=`mat3( ${FO.elements.map(e=&amp;amp;gt;e.toFixed(4))} )`;switch(we.getTransfer(n)){case Ff:return[t,&amp;amp;quot;LinearTransferOETF&amp;amp;quot;];case We:return[t,&amp;amp;quot;sRGBTransferOETF&amp;amp;quot;];default:return console.warn(&amp;amp;quot;THREE.WebGLProgram: Unsupported color space: &amp;amp;quot;,n),[t,&amp;amp;quot;LinearTransferOETF&amp;amp;quot;]}}function VO(n,t,e){let i=n.getShaderParameter(t,n.COMPILE_STATUS),s=(n.getShaderInfoLog(t)||&amp;amp;quot;&amp;amp;quot;).trim();if(i&amp;amp;amp;&amp;amp;amp;s===&amp;amp;quot;&amp;amp;quot;)return&amp;amp;quot;&amp;amp;quot;;let o=/ERROR: 0:(\d+)/.exec(s);if(o){let u=parseInt(o[1]);return e.toUpperCase()+`
   4925 <a href="#l4906" class="line" id="l4906">   4906</a> &lt;a href=&quot;#l4887&quot; class=&quot;line&quot; id=&quot;l4887&quot;&gt;   4887&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3750&amp;quot; id=&amp;quot;h3-0-3750&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4926 <a href="#l4907" class="line" id="l4907">   4907</a> &lt;a href=&quot;#l4888&quot; class=&quot;line&quot; id=&quot;l4888&quot;&gt;   4888&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3751&amp;quot; id=&amp;quot;h3-0-3751&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+s+`
   4927 <a href="#l4908" class="line" id="l4908">   4908</a> &lt;a href=&quot;#l4889&quot; class=&quot;line&quot; id=&quot;l4889&quot;&gt;   4889&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3752&amp;quot; id=&amp;quot;h3-0-3752&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4928 <a href="#l4909" class="line" id="l4909">   4909</a> &lt;a href=&quot;#l4890&quot; class=&quot;line&quot; id=&quot;l4890&quot;&gt;   4890&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3753&amp;quot; id=&amp;quot;h3-0-3753&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+WG(n.getShaderSource(t),u)}else return s}function ZG(n,t){let e=kG(t);return[`vec4 ${n}( vec4 value ) {`,`	return ${e[1]}( vec4( value.rgb * ${e[0]}, value.a ) );`,&amp;amp;quot;}&amp;amp;quot;].join(`
   4929 <a href="#l4910" class="line" id="l4910">   4910</a> &lt;a href=&quot;#l4891&quot; class=&quot;line&quot; id=&quot;l4891&quot;&gt;   4891&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3754&amp;quot; id=&amp;quot;h3-0-3754&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)}function jG(n,t){let e;switch(t){case cT:e=&amp;amp;quot;Linear&amp;amp;quot;;break;case fT:e=&amp;amp;quot;Reinhard&amp;amp;quot;;break;case hT:e=&amp;amp;quot;Cineon&amp;amp;quot;;break;case ng:e=&amp;amp;quot;ACESFilmic&amp;amp;quot;;break;case pT:e=&amp;amp;quot;AgX&amp;amp;quot;;break;case mT:e=&amp;amp;quot;Neutral&amp;amp;quot;;break;case dT:e=&amp;amp;quot;Custom&amp;amp;quot;;break;default:console.warn(&amp;amp;quot;THREE.WebGLProgram: Unsupported toneMapping:&amp;amp;quot;,t),e=&amp;amp;quot;Linear&amp;amp;quot;}return&amp;amp;quot;vec3 &amp;amp;quot;+n+&amp;amp;quot;( vec3 color ) { return &amp;amp;quot;+e+&amp;amp;quot;ToneMapping( color ); }&amp;amp;quot;}var gx=new B;function QG(){we.getLuminanceCoefficients(gx);let n=gx.x.toFixed(4),t=gx.y.toFixed(4),e=gx.z.toFixed(4);return[&amp;amp;quot;float luminance( const in vec3 rgb ) {&amp;amp;quot;,`	const vec3 weights = vec3( ${n}, ${t}, ${e} );`,&amp;amp;quot;	return dot( weights, rgb );&amp;amp;quot;,&amp;amp;quot;}&amp;amp;quot;].join(`
   4930 <a href="#l4911" class="line" id="l4911">   4911</a> &lt;a href=&quot;#l4892&quot; class=&quot;line&quot; id=&quot;l4892&quot;&gt;   4892&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3755&amp;quot; id=&amp;quot;h3-0-3755&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)}function KG(n){return[n.extensionClipCullDistance?&amp;amp;quot;#extension GL_ANGLE_clip_cull_distance : require&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,n.extensionMultiDraw?&amp;amp;quot;#extension GL_ANGLE_multi_draw : require&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;].filter(Pg).join(`
   4931 <a href="#l4912" class="line" id="l4912">   4912</a> &lt;a href=&quot;#l4893&quot; class=&quot;line&quot; id=&quot;l4893&quot;&gt;   4893&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3756&amp;quot; id=&amp;quot;h3-0-3756&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)}function JG(n){let t=[];for(let e in n){let i=n[e];i!==!1&amp;amp;amp;&amp;amp;amp;t.push(&amp;amp;quot;#define &amp;amp;quot;+e+&amp;amp;quot; &amp;amp;quot;+i)}return t.join(`
   4932 <a href="#l4913" class="line" id="l4913">   4913</a> &lt;a href=&quot;#l4894&quot; class=&quot;line&quot; id=&quot;l4894&quot;&gt;   4894&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3757&amp;quot; id=&amp;quot;h3-0-3757&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)}function $G(n,t){let e={},i=n.getProgramParameter(t,n.ACTIVE_ATTRIBUTES);for(let a=0;a&amp;amp;lt;i;a++){let s=n.getActiveAttrib(t,a),o=s.name,u=1;s.type===n.FLOAT_MAT2&amp;amp;amp;&amp;amp;amp;(u=2),s.type===n.FLOAT_MAT3&amp;amp;amp;&amp;amp;amp;(u=3),s.type===n.FLOAT_MAT4&amp;amp;amp;&amp;amp;amp;(u=4),e[o]={type:s.type,location:n.getAttribLocation(t,o),locationSize:u}}return e}function Pg(n){return n!==&amp;amp;quot;&amp;amp;quot;}function GO(n,t){let e=t.numSpotLightShadows+t.numSpotLightMaps-t.numSpotLightShadowsWithMaps;return n.replace(/NUM_DIR_LIGHTS/g,t.numDirLights).replace(/NUM_SPOT_LIGHTS/g,t.numSpotLights).replace(/NUM_SPOT_LIGHT_MAPS/g,t.numSpotLightMaps).replace(/NUM_SPOT_LIGHT_COORDS/g,e).replace(/NUM_RECT_AREA_LIGHTS/g,t.numRectAreaLights).replace(/NUM_POINT_LIGHTS/g,t.numPointLights).replace(/NUM_HEMI_LIGHTS/g,t.numHemiLights).replace(/NUM_DIR_LIGHT_SHADOWS/g,t.numDirLightShadows).replace(/NUM_SPOT_LIGHT_SHADOWS_WITH_MAPS/g,t.numSpotLightShadowsWithMaps).replace(/NUM_SPOT_LIGHT_SHADOWS/g,t.numSpotLightShadows).replace(/NUM_POINT_LIGHT_SHADOWS/g,t.numPointLightShadows)}function XO(n,t){return n.replace(/NUM_CLIPPING_PLANES/g,t.numClippingPlanes).replace(/UNION_CLIPPING_PLANES/g,t.numClippingPlanes-t.numClipIntersection)}var t8=/^[ \t]*#include +&amp;amp;lt;([\w\d./]+)&amp;amp;gt;/gm;function jT(n){return n.replace(t8,n8)}var e8=new Map;function n8(n,t){let e=xe[t];if(e===void 0){let i=e8.get(t);if(i!==void 0)e=xe[i],console.warn(&amp;amp;#39;THREE.WebGLRenderer: Shader chunk &amp;amp;quot;%s&amp;amp;quot; has been deprecated. Use &amp;amp;quot;%s&amp;amp;quot; instead.&amp;amp;#39;,t,i);else throw new Error(&amp;amp;quot;Can not resolve #include &amp;amp;lt;&amp;amp;quot;+t+&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;)}return jT(e)}var i8=/#pragma unroll_loop_start\s+for\s*\(\s*int\s+i\s*=\s*(\d+)\s*;\s*i\s*&amp;amp;lt;\s*(\d+)\s*;\s*i\s*\+\+\s*\)\s*{([\s\S]+?)}\s+#pragma unroll_loop_end/g;function qO(n){return n.replace(i8,a8)}function a8(n,t,e,i){let a=&amp;amp;quot;&amp;amp;quot;;for(let s=parseInt(t);s&amp;amp;lt;parseInt(e);s++)a+=i.replace(/\[\s*i\s*\]/g,&amp;amp;quot;[ &amp;amp;quot;+s+&amp;amp;quot; ]&amp;amp;quot;).replace(/UNROLLED_LOOP_INDEX/g,s);return a}function YO(n){let t=`precision ${n.precision} float;
   4933 <a href="#l4914" class="line" id="l4914">   4914</a> &lt;a href=&quot;#l4895&quot; class=&quot;line&quot; id=&quot;l4895&quot;&gt;   4895&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3758&amp;quot; id=&amp;quot;h3-0-3758&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} int;
   4934 <a href="#l4915" class="line" id="l4915">   4915</a> &lt;a href=&quot;#l4896&quot; class=&quot;line&quot; id=&quot;l4896&quot;&gt;   4896&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3759&amp;quot; id=&amp;quot;h3-0-3759&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} sampler2D;
   4935 <a href="#l4916" class="line" id="l4916">   4916</a> &lt;a href=&quot;#l4897&quot; class=&quot;line&quot; id=&quot;l4897&quot;&gt;   4897&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3760&amp;quot; id=&amp;quot;h3-0-3760&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} samplerCube;
   4936 <a href="#l4917" class="line" id="l4917">   4917</a> &lt;a href=&quot;#l4898&quot; class=&quot;line&quot; id=&quot;l4898&quot;&gt;   4898&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3761&amp;quot; id=&amp;quot;h3-0-3761&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} sampler3D;
   4937 <a href="#l4918" class="line" id="l4918">   4918</a> &lt;a href=&quot;#l4899&quot; class=&quot;line&quot; id=&quot;l4899&quot;&gt;   4899&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3762&amp;quot; id=&amp;quot;h3-0-3762&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} sampler2DArray;
   4938 <a href="#l4919" class="line" id="l4919">   4919</a> &lt;a href=&quot;#l4900&quot; class=&quot;line&quot; id=&quot;l4900&quot;&gt;   4900&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3763&amp;quot; id=&amp;quot;h3-0-3763&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} sampler2DShadow;
   4939 <a href="#l4920" class="line" id="l4920">   4920</a> &lt;a href=&quot;#l4901&quot; class=&quot;line&quot; id=&quot;l4901&quot;&gt;   4901&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3764&amp;quot; id=&amp;quot;h3-0-3764&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} samplerCubeShadow;
   4940 <a href="#l4921" class="line" id="l4921">   4921</a> &lt;a href=&quot;#l4902&quot; class=&quot;line&quot; id=&quot;l4902&quot;&gt;   4902&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3765&amp;quot; id=&amp;quot;h3-0-3765&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} sampler2DArrayShadow;
   4941 <a href="#l4922" class="line" id="l4922">   4922</a> &lt;a href=&quot;#l4903&quot; class=&quot;line&quot; id=&quot;l4903&quot;&gt;   4903&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3766&amp;quot; id=&amp;quot;h3-0-3766&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} isampler2D;
   4942 <a href="#l4923" class="line" id="l4923">   4923</a> &lt;a href=&quot;#l4904&quot; class=&quot;line&quot; id=&quot;l4904&quot;&gt;   4904&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3767&amp;quot; id=&amp;quot;h3-0-3767&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} isampler3D;
   4943 <a href="#l4924" class="line" id="l4924">   4924</a> &lt;a href=&quot;#l4905&quot; class=&quot;line&quot; id=&quot;l4905&quot;&gt;   4905&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3768&amp;quot; id=&amp;quot;h3-0-3768&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} isamplerCube;
   4944 <a href="#l4925" class="line" id="l4925">   4925</a> &lt;a href=&quot;#l4906&quot; class=&quot;line&quot; id=&quot;l4906&quot;&gt;   4906&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3769&amp;quot; id=&amp;quot;h3-0-3769&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} isampler2DArray;
   4945 <a href="#l4926" class="line" id="l4926">   4926</a> &lt;a href=&quot;#l4907&quot; class=&quot;line&quot; id=&quot;l4907&quot;&gt;   4907&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3770&amp;quot; id=&amp;quot;h3-0-3770&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} usampler2D;
   4946 <a href="#l4927" class="line" id="l4927">   4927</a> &lt;a href=&quot;#l4908&quot; class=&quot;line&quot; id=&quot;l4908&quot;&gt;   4908&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3771&amp;quot; id=&amp;quot;h3-0-3771&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} usampler3D;
   4947 <a href="#l4928" class="line" id="l4928">   4928</a> &lt;a href=&quot;#l4909&quot; class=&quot;line&quot; id=&quot;l4909&quot;&gt;   4909&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3772&amp;quot; id=&amp;quot;h3-0-3772&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} usamplerCube;
   4948 <a href="#l4929" class="line" id="l4929">   4929</a> &lt;a href=&quot;#l4910&quot; class=&quot;line&quot; id=&quot;l4910&quot;&gt;   4910&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3773&amp;quot; id=&amp;quot;h3-0-3773&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision ${n.precision} usampler2DArray;
   4949 <a href="#l4930" class="line" id="l4930">   4930</a> &lt;a href=&quot;#l4911&quot; class=&quot;line&quot; id=&quot;l4911&quot;&gt;   4911&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3774&amp;quot; id=&amp;quot;h3-0-3774&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	`;return n.precision===&amp;amp;quot;highp&amp;amp;quot;?t+=`
   4950 <a href="#l4931" class="line" id="l4931">   4931</a> &lt;a href=&quot;#l4912&quot; class=&quot;line&quot; id=&quot;l4912&quot;&gt;   4912&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3775&amp;quot; id=&amp;quot;h3-0-3775&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define HIGH_PRECISION`:n.precision===&amp;amp;quot;mediump&amp;amp;quot;?t+=`
   4951 <a href="#l4932" class="line" id="l4932">   4932</a> &lt;a href=&quot;#l4913&quot; class=&quot;line&quot; id=&quot;l4913&quot;&gt;   4913&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3776&amp;quot; id=&amp;quot;h3-0-3776&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define MEDIUM_PRECISION`:n.precision===&amp;amp;quot;lowp&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t+=`
   4952 <a href="#l4933" class="line" id="l4933">   4933</a> &lt;a href=&quot;#l4914&quot; class=&quot;line&quot; id=&quot;l4914&quot;&gt;   4914&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3777&amp;quot; id=&amp;quot;h3-0-3777&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define LOW_PRECISION`),t}function s8(n){let t=&amp;amp;quot;SHADOWMAP_TYPE_BASIC&amp;amp;quot;;return n.shadowMapType===mh?t=&amp;amp;quot;SHADOWMAP_TYPE_PCF&amp;amp;quot;:n.shadowMapType===Nu?t=&amp;amp;quot;SHADOWMAP_TYPE_PCF_SOFT&amp;amp;quot;:n.shadowMapType===Pa&amp;amp;amp;&amp;amp;amp;(t=&amp;amp;quot;SHADOWMAP_TYPE_VSM&amp;amp;quot;),t}function r8(n){let t=&amp;amp;quot;ENVMAP_TYPE_CUBE&amp;amp;quot;;if(n.envMap)switch(n.envMapMode){case rr:case to:t=&amp;amp;quot;ENVMAP_TYPE_CUBE&amp;amp;quot;;break;case Ou:t=&amp;amp;quot;ENVMAP_TYPE_CUBE_UV&amp;amp;quot;;break}return t}function o8(n){let t=&amp;amp;quot;ENVMAP_MODE_REFLECTION&amp;amp;quot;;if(n.envMap)switch(n.envMapMode){case to:t=&amp;amp;quot;ENVMAP_MODE_REFRACTION&amp;amp;quot;;break}return t}function l8(n){let t=&amp;amp;quot;ENVMAP_BLENDING_NONE&amp;amp;quot;;if(n.envMap)switch(n.combine){case gh:t=&amp;amp;quot;ENVMAP_BLENDING_MULTIPLY&amp;amp;quot;;break;case lT:t=&amp;amp;quot;ENVMAP_BLENDING_MIX&amp;amp;quot;;break;case uT:t=&amp;amp;quot;ENVMAP_BLENDING_ADD&amp;amp;quot;;break}return t}function u8(n){let t=n.envMapCubeUVHeight;if(t===null)return null;let e=Math.log2(t)-2,i=1/t;return{texelWidth:1/(3*Math.max(Math.pow(2,e),112)),texelHeight:i,maxMip:e}}function c8(n,t,e,i){let a=n.getContext(),s=e.defines,o=e.vertexShader,u=e.fragmentShader,c=s8(e),h=r8(e),d=o8(e),m=l8(e),g=u8(e),y=KG(e),x=JG(s),b=a.createProgram(),M,v,S=e.glslVersion?&amp;amp;quot;#version &amp;amp;quot;+e.glslVersion+`
   4953 <a href="#l4934" class="line" id="l4934">   4934</a> &lt;a href=&quot;#l4915&quot; class=&quot;line&quot; id=&quot;l4915&quot;&gt;   4915&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3778&amp;quot; id=&amp;quot;h3-0-3778&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`:&amp;amp;quot;&amp;amp;quot;;e.isRawShaderMaterial?(M=[&amp;amp;quot;#define SHADER_TYPE &amp;amp;quot;+e.shaderType,&amp;amp;quot;#define SHADER_NAME &amp;amp;quot;+e.shaderName,x].filter(Pg).join(`
   4954 <a href="#l4935" class="line" id="l4935">   4935</a> &lt;a href=&quot;#l4916&quot; class=&quot;line&quot; id=&quot;l4916&quot;&gt;   4916&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3779&amp;quot; id=&amp;quot;h3-0-3779&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),M.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M+=`
   4955 <a href="#l4936" class="line" id="l4936">   4936</a> &lt;a href=&quot;#l4917&quot; class=&quot;line&quot; id=&quot;l4917&quot;&gt;   4917&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3780&amp;quot; id=&amp;quot;h3-0-3780&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),v=[&amp;amp;quot;#define SHADER_TYPE &amp;amp;quot;+e.shaderType,&amp;amp;quot;#define SHADER_NAME &amp;amp;quot;+e.shaderName,x].filter(Pg).join(`
   4956 <a href="#l4937" class="line" id="l4937">   4937</a> &lt;a href=&quot;#l4918&quot; class=&quot;line&quot; id=&quot;l4918&quot;&gt;   4918&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3781&amp;quot; id=&amp;quot;h3-0-3781&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),v.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(v+=`
   4957 <a href="#l4938" class="line" id="l4938">   4938</a> &lt;a href=&quot;#l4919&quot; class=&quot;line&quot; id=&quot;l4919&quot;&gt;   4919&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3782&amp;quot; id=&amp;quot;h3-0-3782&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)):(M=[YO(e),&amp;amp;quot;#define SHADER_TYPE &amp;amp;quot;+e.shaderType,&amp;amp;quot;#define SHADER_NAME &amp;amp;quot;+e.shaderName,x,e.extensionClipCullDistance?&amp;amp;quot;#define USE_CLIP_DISTANCE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.batching?&amp;amp;quot;#define USE_BATCHING&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.batchingColor?&amp;amp;quot;#define USE_BATCHING_COLOR&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.instancing?&amp;amp;quot;#define USE_INSTANCING&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.instancingColor?&amp;amp;quot;#define USE_INSTANCING_COLOR&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.instancingMorph?&amp;amp;quot;#define USE_INSTANCING_MORPH&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.useFog&amp;amp;amp;&amp;amp;amp;e.fog?&amp;amp;quot;#define USE_FOG&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.useFog&amp;amp;amp;&amp;amp;amp;e.fogExp2?&amp;amp;quot;#define FOG_EXP2&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.map?&amp;amp;quot;#define USE_MAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.envMap?&amp;amp;quot;#define USE_ENVMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.envMap?&amp;amp;quot;#define &amp;amp;quot;+d:&amp;amp;quot;&amp;amp;quot;,e.lightMap?&amp;amp;quot;#define USE_LIGHTMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.aoMap?&amp;amp;quot;#define USE_AOMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.bumpMap?&amp;amp;quot;#define USE_BUMPMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.normalMap?&amp;amp;quot;#define USE_NORMALMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.normalMapObjectSpace?&amp;amp;quot;#define USE_NORMALMAP_OBJECTSPACE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.normalMapTangentSpace?&amp;amp;quot;#define USE_NORMALMAP_TANGENTSPACE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.displacementMap?&amp;amp;quot;#define USE_DISPLACEMENTMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.emissiveMap?&amp;amp;quot;#define USE_EMISSIVEMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.anisotropy?&amp;amp;quot;#define USE_ANISOTROPY&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.anisotropyMap?&amp;amp;quot;#define USE_ANISOTROPYMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.clearcoatMap?&amp;amp;quot;#define USE_CLEARCOATMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.clearcoatRoughnessMap?&amp;amp;quot;#define USE_CLEARCOAT_ROUGHNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.clearcoatNormalMap?&amp;amp;quot;#define USE_CLEARCOAT_NORMALMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.iridescenceMap?&amp;amp;quot;#define USE_IRIDESCENCEMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.iridescenceThicknessMap?&amp;amp;quot;#define USE_IRIDESCENCE_THICKNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.specularMap?&amp;amp;quot;#define USE_SPECULARMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.specularColorMap?&amp;amp;quot;#define USE_SPECULAR_COLORMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.specularIntensityMap?&amp;amp;quot;#define USE_SPECULAR_INTENSITYMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.roughnessMap?&amp;amp;quot;#define USE_ROUGHNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.metalnessMap?&amp;amp;quot;#define USE_METALNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.alphaMap?&amp;amp;quot;#define USE_ALPHAMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.alphaHash?&amp;amp;quot;#define USE_ALPHAHASH&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.transmission?&amp;amp;quot;#define USE_TRANSMISSION&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.transmissionMap?&amp;amp;quot;#define USE_TRANSMISSIONMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.thicknessMap?&amp;amp;quot;#define USE_THICKNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.sheenColorMap?&amp;amp;quot;#define USE_SHEEN_COLORMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.sheenRoughnessMap?&amp;amp;quot;#define USE_SHEEN_ROUGHNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.mapUv?&amp;amp;quot;#define MAP_UV &amp;amp;quot;+e.mapUv:&amp;amp;quot;&amp;amp;quot;,e.alphaMapUv?&amp;amp;quot;#define ALPHAMAP_UV &amp;amp;quot;+e.alphaMapUv:&amp;amp;quot;&amp;amp;quot;,e.lightMapUv?&amp;amp;quot;#define LIGHTMAP_UV &amp;amp;quot;+e.lightMapUv:&amp;amp;quot;&amp;amp;quot;,e.aoMapUv?&amp;amp;quot;#define AOMAP_UV &amp;amp;quot;+e.aoMapUv:&amp;amp;quot;&amp;amp;quot;,e.emissiveMapUv?&amp;amp;quot;#define EMISSIVEMAP_UV &amp;amp;quot;+e.emissiveMapUv:&amp;amp;quot;&amp;amp;quot;,e.bumpMapUv?&amp;amp;quot;#define BUMPMAP_UV &amp;amp;quot;+e.bumpMapUv:&amp;amp;quot;&amp;amp;quot;,e.normalMapUv?&amp;amp;quot;#define NORMALMAP_UV &amp;amp;quot;+e.normalMapUv:&amp;amp;quot;&amp;amp;quot;,e.displacementMapUv?&amp;amp;quot;#define DISPLACEMENTMAP_UV &amp;amp;quot;+e.displacementMapUv:&amp;amp;quot;&amp;amp;quot;,e.metalnessMapUv?&amp;amp;quot;#define METALNESSMAP_UV &amp;amp;quot;+e.metalnessMapUv:&amp;amp;quot;&amp;amp;quot;,e.roughnessMapUv?&amp;amp;quot;#define ROUGHNESSMAP_UV &amp;amp;quot;+e.roughnessMapUv:&amp;amp;quot;&amp;amp;quot;,e.anisotropyMapUv?&amp;amp;quot;#define ANISOTROPYMAP_UV &amp;amp;quot;+e.anisotropyMapUv:&amp;amp;quot;&amp;amp;quot;,e.clearcoatMapUv?&amp;amp;quot;#define CLEARCOATMAP_UV &amp;amp;quot;+e.clearcoatMapUv:&amp;amp;quot;&amp;amp;quot;,e.clearcoatNormalMapUv?&amp;amp;quot;#define CLEARCOAT_NORMALMAP_UV &amp;amp;quot;+e.clearcoatNormalMapUv:&amp;amp;quot;&amp;amp;quot;,e.clearcoatRoughnessMapUv?&amp;amp;quot;#define CLEARCOAT_ROUGHNESSMAP_UV &amp;amp;quot;+e.clearcoatRoughnessMapUv:&amp;amp;quot;&amp;amp;quot;,e.iridescenceMapUv?&amp;amp;quot;#define IRIDESCENCEMAP_UV &amp;amp;quot;+e.iridescenceMapUv:&amp;amp;quot;&amp;amp;quot;,e.iridescenceThicknessMapUv?&amp;amp;quot;#define IRIDESCENCE_THICKNESSMAP_UV &amp;amp;quot;+e.iridescenceThicknessMapUv:&amp;amp;quot;&amp;amp;quot;,e.sheenColorMapUv?&amp;amp;quot;#define SHEEN_COLORMAP_UV &amp;amp;quot;+e.sheenColorMapUv:&amp;amp;quot;&amp;amp;quot;,e.sheenRoughnessMapUv?&amp;amp;quot;#define SHEEN_ROUGHNESSMAP_UV &amp;amp;quot;+e.sheenRoughnessMapUv:&amp;amp;quot;&amp;amp;quot;,e.specularMapUv?&amp;amp;quot;#define SPECULARMAP_UV &amp;amp;quot;+e.specularMapUv:&amp;amp;quot;&amp;amp;quot;,e.specularColorMapUv?&amp;amp;quot;#define SPECULAR_COLORMAP_UV &amp;amp;quot;+e.specularColorMapUv:&amp;amp;quot;&amp;amp;quot;,e.specularIntensityMapUv?&amp;amp;quot;#define SPECULAR_INTENSITYMAP_UV &amp;amp;quot;+e.specularIntensityMapUv:&amp;amp;quot;&amp;amp;quot;,e.transmissionMapUv?&amp;amp;quot;#define TRANSMISSIONMAP_UV &amp;amp;quot;+e.transmissionMapUv:&amp;amp;quot;&amp;amp;quot;,e.thicknessMapUv?&amp;amp;quot;#define THICKNESSMAP_UV &amp;amp;quot;+e.thicknessMapUv:&amp;amp;quot;&amp;amp;quot;,e.vertexTangents&amp;amp;amp;&amp;amp;amp;e.flatShading===!1?&amp;amp;quot;#define USE_TANGENT&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexColors?&amp;amp;quot;#define USE_COLOR&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexAlphas?&amp;amp;quot;#define USE_COLOR_ALPHA&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexUv1s?&amp;amp;quot;#define USE_UV1&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexUv2s?&amp;amp;quot;#define USE_UV2&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexUv3s?&amp;amp;quot;#define USE_UV3&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.pointsUvs?&amp;amp;quot;#define USE_POINTS_UV&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.flatShading?&amp;amp;quot;#define FLAT_SHADED&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.skinning?&amp;amp;quot;#define USE_SKINNING&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.morphTargets?&amp;amp;quot;#define USE_MORPHTARGETS&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.morphNormals&amp;amp;amp;&amp;amp;amp;e.flatShading===!1?&amp;amp;quot;#define USE_MORPHNORMALS&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.morphColors?&amp;amp;quot;#define USE_MORPHCOLORS&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.morphTargetsCount&amp;amp;gt;0?&amp;amp;quot;#define MORPHTARGETS_TEXTURE_STRIDE &amp;amp;quot;+e.morphTextureStride:&amp;amp;quot;&amp;amp;quot;,e.morphTargetsCount&amp;amp;gt;0?&amp;amp;quot;#define MORPHTARGETS_COUNT &amp;amp;quot;+e.morphTargetsCount:&amp;amp;quot;&amp;amp;quot;,e.doubleSided?&amp;amp;quot;#define DOUBLE_SIDED&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.flipSided?&amp;amp;quot;#define FLIP_SIDED&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.shadowMapEnabled?&amp;amp;quot;#define USE_SHADOWMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.shadowMapEnabled?&amp;amp;quot;#define &amp;amp;quot;+c:&amp;amp;quot;&amp;amp;quot;,e.sizeAttenuation?&amp;amp;quot;#define USE_SIZEATTENUATION&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.numLightProbes&amp;amp;gt;0?&amp;amp;quot;#define USE_LIGHT_PROBES&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.logarithmicDepthBuffer?&amp;amp;quot;#define USE_LOGDEPTHBUF&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.reversedDepthBuffer?&amp;amp;quot;#define USE_REVERSEDEPTHBUF&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;uniform mat4 modelMatrix;&amp;amp;quot;,&amp;amp;quot;uniform mat4 modelViewMatrix;&amp;amp;quot;,&amp;amp;quot;uniform mat4 projectionMatrix;&amp;amp;quot;,&amp;amp;quot;uniform mat4 viewMatrix;&amp;amp;quot;,&amp;amp;quot;uniform mat3 normalMatrix;&amp;amp;quot;,&amp;amp;quot;uniform vec3 cameraPosition;&amp;amp;quot;,&amp;amp;quot;uniform bool isOrthographic;&amp;amp;quot;,&amp;amp;quot;#ifdef USE_INSTANCING&amp;amp;quot;,&amp;amp;quot;	attribute mat4 instanceMatrix;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,&amp;amp;quot;#ifdef USE_INSTANCING_COLOR&amp;amp;quot;,&amp;amp;quot;	attribute vec3 instanceColor;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,&amp;amp;quot;#ifdef USE_INSTANCING_MORPH&amp;amp;quot;,&amp;amp;quot;	uniform sampler2D morphTexture;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,&amp;amp;quot;attribute vec3 position;&amp;amp;quot;,&amp;amp;quot;attribute vec3 normal;&amp;amp;quot;,&amp;amp;quot;attribute vec2 uv;&amp;amp;quot;,&amp;amp;quot;#ifdef USE_UV1&amp;amp;quot;,&amp;amp;quot;	attribute vec2 uv1;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,&amp;amp;quot;#ifdef USE_UV2&amp;amp;quot;,&amp;amp;quot;	attribute vec2 uv2;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,&amp;amp;quot;#ifdef USE_UV3&amp;amp;quot;,&amp;amp;quot;	attribute vec2 uv3;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,&amp;amp;quot;#ifdef USE_TANGENT&amp;amp;quot;,&amp;amp;quot;	attribute vec4 tangent;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,&amp;amp;quot;#if defined( USE_COLOR_ALPHA )&amp;amp;quot;,&amp;amp;quot;	attribute vec4 color;&amp;amp;quot;,&amp;amp;quot;#elif defined( USE_COLOR )&amp;amp;quot;,&amp;amp;quot;	attribute vec3 color;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,&amp;amp;quot;#ifdef USE_SKINNING&amp;amp;quot;,&amp;amp;quot;	attribute vec4 skinIndex;&amp;amp;quot;,&amp;amp;quot;	attribute vec4 skinWeight;&amp;amp;quot;,&amp;amp;quot;#endif&amp;amp;quot;,`
   4958 <a href="#l4939" class="line" id="l4939">   4939</a> &lt;a href=&quot;#l4920&quot; class=&quot;line&quot; id=&quot;l4920&quot;&gt;   4920&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3783&amp;quot; id=&amp;quot;h3-0-3783&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`].filter(Pg).join(`
   4959 <a href="#l4940" class="line" id="l4940">   4940</a> &lt;a href=&quot;#l4921&quot; class=&quot;line&quot; id=&quot;l4921&quot;&gt;   4921&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3784&amp;quot; id=&amp;quot;h3-0-3784&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),v=[YO(e),&amp;amp;quot;#define SHADER_TYPE &amp;amp;quot;+e.shaderType,&amp;amp;quot;#define SHADER_NAME &amp;amp;quot;+e.shaderName,x,e.useFog&amp;amp;amp;&amp;amp;amp;e.fog?&amp;amp;quot;#define USE_FOG&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.useFog&amp;amp;amp;&amp;amp;amp;e.fogExp2?&amp;amp;quot;#define FOG_EXP2&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.alphaToCoverage?&amp;amp;quot;#define ALPHA_TO_COVERAGE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.map?&amp;amp;quot;#define USE_MAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.matcap?&amp;amp;quot;#define USE_MATCAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.envMap?&amp;amp;quot;#define USE_ENVMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.envMap?&amp;amp;quot;#define &amp;amp;quot;+h:&amp;amp;quot;&amp;amp;quot;,e.envMap?&amp;amp;quot;#define &amp;amp;quot;+d:&amp;amp;quot;&amp;amp;quot;,e.envMap?&amp;amp;quot;#define &amp;amp;quot;+m:&amp;amp;quot;&amp;amp;quot;,g?&amp;amp;quot;#define CUBEUV_TEXEL_WIDTH &amp;amp;quot;+g.texelWidth:&amp;amp;quot;&amp;amp;quot;,g?&amp;amp;quot;#define CUBEUV_TEXEL_HEIGHT &amp;amp;quot;+g.texelHeight:&amp;amp;quot;&amp;amp;quot;,g?&amp;amp;quot;#define CUBEUV_MAX_MIP &amp;amp;quot;+g.maxMip+&amp;amp;quot;.0&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.lightMap?&amp;amp;quot;#define USE_LIGHTMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.aoMap?&amp;amp;quot;#define USE_AOMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.bumpMap?&amp;amp;quot;#define USE_BUMPMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.normalMap?&amp;amp;quot;#define USE_NORMALMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.normalMapObjectSpace?&amp;amp;quot;#define USE_NORMALMAP_OBJECTSPACE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.normalMapTangentSpace?&amp;amp;quot;#define USE_NORMALMAP_TANGENTSPACE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.emissiveMap?&amp;amp;quot;#define USE_EMISSIVEMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.anisotropy?&amp;amp;quot;#define USE_ANISOTROPY&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.anisotropyMap?&amp;amp;quot;#define USE_ANISOTROPYMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.clearcoat?&amp;amp;quot;#define USE_CLEARCOAT&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.clearcoatMap?&amp;amp;quot;#define USE_CLEARCOATMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.clearcoatRoughnessMap?&amp;amp;quot;#define USE_CLEARCOAT_ROUGHNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.clearcoatNormalMap?&amp;amp;quot;#define USE_CLEARCOAT_NORMALMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.dispersion?&amp;amp;quot;#define USE_DISPERSION&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.iridescence?&amp;amp;quot;#define USE_IRIDESCENCE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.iridescenceMap?&amp;amp;quot;#define USE_IRIDESCENCEMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.iridescenceThicknessMap?&amp;amp;quot;#define USE_IRIDESCENCE_THICKNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.specularMap?&amp;amp;quot;#define USE_SPECULARMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.specularColorMap?&amp;amp;quot;#define USE_SPECULAR_COLORMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.specularIntensityMap?&amp;amp;quot;#define USE_SPECULAR_INTENSITYMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.roughnessMap?&amp;amp;quot;#define USE_ROUGHNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.metalnessMap?&amp;amp;quot;#define USE_METALNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.alphaMap?&amp;amp;quot;#define USE_ALPHAMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.alphaTest?&amp;amp;quot;#define USE_ALPHATEST&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.alphaHash?&amp;amp;quot;#define USE_ALPHAHASH&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.sheen?&amp;amp;quot;#define USE_SHEEN&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.sheenColorMap?&amp;amp;quot;#define USE_SHEEN_COLORMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.sheenRoughnessMap?&amp;amp;quot;#define USE_SHEEN_ROUGHNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.transmission?&amp;amp;quot;#define USE_TRANSMISSION&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.transmissionMap?&amp;amp;quot;#define USE_TRANSMISSIONMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.thicknessMap?&amp;amp;quot;#define USE_THICKNESSMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexTangents&amp;amp;amp;&amp;amp;amp;e.flatShading===!1?&amp;amp;quot;#define USE_TANGENT&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexColors||e.instancingColor||e.batchingColor?&amp;amp;quot;#define USE_COLOR&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexAlphas?&amp;amp;quot;#define USE_COLOR_ALPHA&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexUv1s?&amp;amp;quot;#define USE_UV1&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexUv2s?&amp;amp;quot;#define USE_UV2&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.vertexUv3s?&amp;amp;quot;#define USE_UV3&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.pointsUvs?&amp;amp;quot;#define USE_POINTS_UV&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.gradientMap?&amp;amp;quot;#define USE_GRADIENTMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.flatShading?&amp;amp;quot;#define FLAT_SHADED&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.doubleSided?&amp;amp;quot;#define DOUBLE_SIDED&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.flipSided?&amp;amp;quot;#define FLIP_SIDED&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.shadowMapEnabled?&amp;amp;quot;#define USE_SHADOWMAP&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.shadowMapEnabled?&amp;amp;quot;#define &amp;amp;quot;+c:&amp;amp;quot;&amp;amp;quot;,e.premultipliedAlpha?&amp;amp;quot;#define PREMULTIPLIED_ALPHA&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.numLightProbes&amp;amp;gt;0?&amp;amp;quot;#define USE_LIGHT_PROBES&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.decodeVideoTexture?&amp;amp;quot;#define DECODE_VIDEO_TEXTURE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.decodeVideoTextureEmissive?&amp;amp;quot;#define DECODE_VIDEO_TEXTURE_EMISSIVE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.logarithmicDepthBuffer?&amp;amp;quot;#define USE_LOGDEPTHBUF&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.reversedDepthBuffer?&amp;amp;quot;#define USE_REVERSEDEPTHBUF&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;uniform mat4 viewMatrix;&amp;amp;quot;,&amp;amp;quot;uniform vec3 cameraPosition;&amp;amp;quot;,&amp;amp;quot;uniform bool isOrthographic;&amp;amp;quot;,e.toneMapping!==us?&amp;amp;quot;#define TONE_MAPPING&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.toneMapping!==us?xe.tonemapping_pars_fragment:&amp;amp;quot;&amp;amp;quot;,e.toneMapping!==us?jG(&amp;amp;quot;toneMapping&amp;amp;quot;,e.toneMapping):&amp;amp;quot;&amp;amp;quot;,e.dithering?&amp;amp;quot;#define DITHERING&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,e.opaque?&amp;amp;quot;#define OPAQUE&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,xe.colorspace_pars_fragment,ZG(&amp;amp;quot;linearToOutputTexel&amp;amp;quot;,e.outputColorSpace),QG(),e.useDepthPacking?&amp;amp;quot;#define DEPTH_PACKING &amp;amp;quot;+e.depthPacking:&amp;amp;quot;&amp;amp;quot;,`
   4960 <a href="#l4941" class="line" id="l4941">   4941</a> &lt;a href=&quot;#l4922&quot; class=&quot;line&quot; id=&quot;l4922&quot;&gt;   4922&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3785&amp;quot; id=&amp;quot;h3-0-3785&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`].filter(Pg).join(`
   4961 <a href="#l4942" class="line" id="l4942">   4942</a> &lt;a href=&quot;#l4923&quot; class=&quot;line&quot; id=&quot;l4923&quot;&gt;   4923&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3786&amp;quot; id=&amp;quot;h3-0-3786&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)),o=jT(o),o=GO(o,e),o=XO(o,e),u=jT(u),u=GO(u,e),u=XO(u,e),o=qO(o),u=qO(u),e.isRawShaderMaterial!==!0&amp;amp;amp;&amp;amp;amp;(S=`#version 300 es
   4962 <a href="#l4943" class="line" id="l4943">   4943</a> &lt;a href=&quot;#l4924&quot; class=&quot;line&quot; id=&quot;l4924&quot;&gt;   4924&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3787&amp;quot; id=&amp;quot;h3-0-3787&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,M=[y,&amp;amp;quot;#define attribute in&amp;amp;quot;,&amp;amp;quot;#define varying out&amp;amp;quot;,&amp;amp;quot;#define texture2D texture&amp;amp;quot;].join(`
   4963 <a href="#l4944" class="line" id="l4944">   4944</a> &lt;a href=&quot;#l4925&quot; class=&quot;line&quot; id=&quot;l4925&quot;&gt;   4925&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3788&amp;quot; id=&amp;quot;h3-0-3788&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)+`
   4964 <a href="#l4945" class="line" id="l4945">   4945</a> &lt;a href=&quot;#l4926&quot; class=&quot;line&quot; id=&quot;l4926&quot;&gt;   4926&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3789&amp;quot; id=&amp;quot;h3-0-3789&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+M,v=[&amp;amp;quot;#define varying in&amp;amp;quot;,e.glslVersion===hx?&amp;amp;quot;&amp;amp;quot;:&amp;amp;quot;layout(location = 0) out highp vec4 pc_fragColor;&amp;amp;quot;,e.glslVersion===hx?&amp;amp;quot;&amp;amp;quot;:&amp;amp;quot;#define gl_FragColor pc_fragColor&amp;amp;quot;,&amp;amp;quot;#define gl_FragDepthEXT gl_FragDepth&amp;amp;quot;,&amp;amp;quot;#define texture2D texture&amp;amp;quot;,&amp;amp;quot;#define textureCube texture&amp;amp;quot;,&amp;amp;quot;#define texture2DProj textureProj&amp;amp;quot;,&amp;amp;quot;#define texture2DLodEXT textureLod&amp;amp;quot;,&amp;amp;quot;#define texture2DProjLodEXT textureProjLod&amp;amp;quot;,&amp;amp;quot;#define textureCubeLodEXT textureLod&amp;amp;quot;,&amp;amp;quot;#define texture2DGradEXT textureGrad&amp;amp;quot;,&amp;amp;quot;#define texture2DProjGradEXT textureProjGrad&amp;amp;quot;,&amp;amp;quot;#define textureCubeGradEXT textureGrad&amp;amp;quot;].join(`
   4965 <a href="#l4946" class="line" id="l4946">   4946</a> &lt;a href=&quot;#l4927&quot; class=&quot;line&quot; id=&quot;l4927&quot;&gt;   4927&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3790&amp;quot; id=&amp;quot;h3-0-3790&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)+`
   4966 <a href="#l4947" class="line" id="l4947">   4947</a> &lt;a href=&quot;#l4928&quot; class=&quot;line&quot; id=&quot;l4928&quot;&gt;   4928&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3791&amp;quot; id=&amp;quot;h3-0-3791&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+v);let E=S+M+o,T=S+v+u,w=HO(a,a.VERTEX_SHADER,E),U=HO(a,a.FRAGMENT_SHADER,T);a.attachShader(b,w),a.attachShader(b,U),e.index0AttributeName!==void 0?a.bindAttribLocation(b,0,e.index0AttributeName):e.morphTargets===!0&amp;amp;amp;&amp;amp;amp;a.bindAttribLocation(b,0,&amp;amp;quot;position&amp;amp;quot;),a.linkProgram(b);function O(P){if(n.debug.checkShaderErrors){let j=a.getProgramInfoLog(b)||&amp;amp;quot;&amp;amp;quot;,X=a.getShaderInfoLog(w)||&amp;amp;quot;&amp;amp;quot;,Z=a.getShaderInfoLog(U)||&amp;amp;quot;&amp;amp;quot;,st=j.trim(),et=X.trim(),mt=Z.trim(),K=!0,_t=!0;if(a.getProgramParameter(b,a.LINK_STATUS)===!1)if(K=!1,typeof n.debug.onShaderError==&amp;amp;quot;function&amp;amp;quot;)n.debug.onShaderError(a,b,w,U);else{let Ut=VO(a,w,&amp;amp;quot;vertex&amp;amp;quot;),xt=VO(a,U,&amp;amp;quot;fragment&amp;amp;quot;);console.error(&amp;amp;quot;THREE.WebGLProgram: Shader Error &amp;amp;quot;+a.getError()+&amp;amp;quot; - VALIDATE_STATUS &amp;amp;quot;+a.getProgramParameter(b,a.VALIDATE_STATUS)+`
   4967 <a href="#l4948" class="line" id="l4948">   4948</a> &lt;a href=&quot;#l4929&quot; class=&quot;line&quot; id=&quot;l4929&quot;&gt;   4929&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3792&amp;quot; id=&amp;quot;h3-0-3792&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4968 <a href="#l4949" class="line" id="l4949">   4949</a> &lt;a href=&quot;#l4930&quot; class=&quot;line&quot; id=&quot;l4930&quot;&gt;   4930&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3793&amp;quot; id=&amp;quot;h3-0-3793&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Material Name: `+P.name+`
   4969 <a href="#l4950" class="line" id="l4950">   4950</a> &lt;a href=&quot;#l4931&quot; class=&quot;line&quot; id=&quot;l4931&quot;&gt;   4931&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3794&amp;quot; id=&amp;quot;h3-0-3794&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Material Type: `+P.type+`
   4970 <a href="#l4951" class="line" id="l4951">   4951</a> &lt;a href=&quot;#l4932&quot; class=&quot;line&quot; id=&quot;l4932&quot;&gt;   4932&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3795&amp;quot; id=&amp;quot;h3-0-3795&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   4971 <a href="#l4952" class="line" id="l4952">   4952</a> &lt;a href=&quot;#l4933&quot; class=&quot;line&quot; id=&quot;l4933&quot;&gt;   4933&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3796&amp;quot; id=&amp;quot;h3-0-3796&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Program Info Log: `+st+`
   4972 <a href="#l4953" class="line" id="l4953">   4953</a> &lt;a href=&quot;#l4934&quot; class=&quot;line&quot; id=&quot;l4934&quot;&gt;   4934&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3797&amp;quot; id=&amp;quot;h3-0-3797&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+Ut+`
   4973 <a href="#l4954" class="line" id="l4954">   4954</a> &lt;a href=&quot;#l4935&quot; class=&quot;line&quot; id=&quot;l4935&quot;&gt;   4935&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3798&amp;quot; id=&amp;quot;h3-0-3798&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+xt)}else st!==&amp;amp;quot;&amp;amp;quot;?console.warn(&amp;amp;quot;THREE.WebGLProgram: Program Info Log:&amp;amp;quot;,st):(et===&amp;amp;quot;&amp;amp;quot;||mt===&amp;amp;quot;&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(_t=!1);_t&amp;amp;amp;&amp;amp;amp;(P.diagnostics={runnable:K,programLog:st,vertexShader:{log:et,prefix:M},fragmentShader:{log:mt,prefix:v}})}a.deleteShader(w),a.deleteShader(U),z=new Ch(a,b),C=$G(a,b)}let z;this.getUniforms=function(){return z===void 0&amp;amp;amp;&amp;amp;amp;O(this),z};let C;this.getAttributes=function(){return C===void 0&amp;amp;amp;&amp;amp;amp;O(this),C};let R=e.rendererExtensionParallelShaderCompile===!1;return this.isReady=function(){return R===!1&amp;amp;amp;&amp;amp;amp;(R=a.getProgramParameter(b,qG)),R},this.destroy=function(){i.releaseStatesOfProgram(this),a.deleteProgram(b),this.program=void 0},this.type=e.shaderType,this.name=e.shaderName,this.id=YG++,this.cacheKey=t,this.usedTimes=1,this.program=b,this.vertexShader=w,this.fragmentShader=U,this}var f8=0,QT=class{constructor(){this.shaderCache=new Map,this.materialCache=new Map}update(t){let e=t.vertexShader,i=t.fragmentShader,a=this._getShaderStage(e),s=this._getShaderStage(i),o=this._getShaderCacheForMaterial(t);return o.has(a)===!1&amp;amp;amp;&amp;amp;amp;(o.add(a),a.usedTimes++),o.has(s)===!1&amp;amp;amp;&amp;amp;amp;(o.add(s),s.usedTimes++),this}remove(t){let e=this.materialCache.get(t);for(let i of e)i.usedTimes--,i.usedTimes===0&amp;amp;amp;&amp;amp;amp;this.shaderCache.delete(i.code);return this.materialCache.delete(t),this}getVertexShaderID(t){return this._getShaderStage(t.vertexShader).id}getFragmentShaderID(t){return this._getShaderStage(t.fragmentShader).id}dispose(){this.shaderCache.clear(),this.materialCache.clear()}_getShaderCacheForMaterial(t){let e=this.materialCache,i=e.get(t);return i===void 0&amp;amp;amp;&amp;amp;amp;(i=new Set,e.set(t,i)),i}_getShaderStage(t){let e=this.shaderCache,i=e.get(t);return i===void 0&amp;amp;amp;&amp;amp;amp;(i=new KT(t),e.set(t,i)),i}},KT=class{constructor(t){this.id=f8++,this.code=t,this.usedTimes=0}};function h8(n,t,e,i,a,s,o){let u=new nr,c=new QT,h=new Set,d=[],m=a.logarithmicDepthBuffer,g=a.vertexTextures,y=a.precision,x={MeshDepthMaterial:&amp;amp;quot;depth&amp;amp;quot;,MeshDistanceMaterial:&amp;amp;quot;distanceRGBA&amp;amp;quot;,MeshNormalMaterial:&amp;amp;quot;normal&amp;amp;quot;,MeshBasicMaterial:&amp;amp;quot;basic&amp;amp;quot;,MeshLambertMaterial:&amp;amp;quot;lambert&amp;amp;quot;,MeshPhongMaterial:&amp;amp;quot;phong&amp;amp;quot;,MeshToonMaterial:&amp;amp;quot;toon&amp;amp;quot;,MeshStandardMaterial:&amp;amp;quot;physical&amp;amp;quot;,MeshPhysicalMaterial:&amp;amp;quot;physical&amp;amp;quot;,MeshMatcapMaterial:&amp;amp;quot;matcap&amp;amp;quot;,LineBasicMaterial:&amp;amp;quot;basic&amp;amp;quot;,LineDashedMaterial:&amp;amp;quot;dashed&amp;amp;quot;,PointsMaterial:&amp;amp;quot;points&amp;amp;quot;,ShadowMaterial:&amp;amp;quot;shadow&amp;amp;quot;,SpriteMaterial:&amp;amp;quot;sprite&amp;amp;quot;};function b(C){return h.add(C),C===0?&amp;amp;quot;uv&amp;amp;quot;:`uv${C}`}function M(C,R,P,j,X){let Z=j.fog,st=X.geometry,et=C.isMeshStandardMaterial?j.environment:null,mt=(C.isMeshStandardMaterial?e:t).get(C.envMap||et),K=mt&amp;amp;amp;&amp;amp;amp;mt.mapping===Ou?mt.image.height:null,_t=x[C.type];C.precision!==null&amp;amp;amp;&amp;amp;amp;(y=a.getMaxPrecision(C.precision),y!==C.precision&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.WebGLProgram.getParameters:&amp;amp;quot;,C.precision,&amp;amp;quot;not supported, using&amp;amp;quot;,y,&amp;amp;quot;instead.&amp;amp;quot;));let Ut=st.morphAttributes.position||st.morphAttributes.normal||st.morphAttributes.color,xt=Ut!==void 0?Ut.length:0,It=0;st.morphAttributes.position!==void 0&amp;amp;amp;&amp;amp;amp;(It=1),st.morphAttributes.normal!==void 0&amp;amp;amp;&amp;amp;amp;(It=2),st.morphAttributes.color!==void 0&amp;amp;amp;&amp;amp;amp;(It=3);let se,Qt,it,wt;if(_t){let Le=Ns[_t];se=Le.vertexShader,Qt=Le.fragmentShader}else se=C.vertexShader,Qt=C.fragmentShader,c.update(C),it=c.getVertexShaderID(C),wt=c.getFragmentShaderID(C);let bt=n.getRenderTarget(),Jt=n.state.buffers.depth.getReversed(),Zt=X.isInstancedMesh===!0,te=X.isBatchedMesh===!0,ke=!!C.map,re=!!C.matcap,H=!!mt,ht=!!C.aoMap,rt=!!C.lightMap,pt=!!C.bumpMap,lt=!!C.normalMap,Ct=!!C.displacementMap,dt=!!C.emissiveMap,Rt=!!C.metalnessMap,de=!!C.roughnessMap,ue=C.anisotropy&amp;amp;gt;0,I=C.clearcoat&amp;amp;gt;0,D=C.dispersion&amp;amp;gt;0,k=C.iridescence&amp;amp;gt;0,nt=C.sheen&amp;amp;gt;0,gt=C.transmission&amp;amp;gt;0,at=ue&amp;amp;amp;&amp;amp;amp;!!C.anisotropyMap,jt=I&amp;amp;amp;&amp;amp;amp;!!C.clearcoatMap,Tt=I&amp;amp;amp;&amp;amp;amp;!!C.clearcoatNormalMap,Wt=I&amp;amp;amp;&amp;amp;amp;!!C.clearcoatRoughnessMap,Ft=k&amp;amp;amp;&amp;amp;amp;!!C.iridescenceMap,vt=k&amp;amp;amp;&amp;amp;amp;!!C.iridescenceThicknessMap,Ot=nt&amp;amp;amp;&amp;amp;amp;!!C.sheenColorMap,ne=nt&amp;amp;amp;&amp;amp;amp;!!C.sheenRoughnessMap,kt=!!C.specularMap,Nt=!!C.specularColorMap,me=!!C.specularIntensityMap,G=gt&amp;amp;amp;&amp;amp;amp;!!C.transmissionMap,Mt=gt&amp;amp;amp;&amp;amp;amp;!!C.thicknessMap,Dt=!!C.gradientMap,Gt=!!C.alphaMap,St=C.alphaTest&amp;amp;gt;0,ut=!!C.alphaHash,qt=!!C.extensions,oe=us;C.toneMapped&amp;amp;amp;&amp;amp;amp;(bt===null||bt.isXRRenderTarget===!0)&amp;amp;amp;&amp;amp;amp;(oe=n.toneMapping);let He={shaderID:_t,shaderType:C.type,shaderName:C.name,vertexShader:se,fragmentShader:Qt,defines:C.defines,customVertexShaderID:it,customFragmentShaderID:wt,isRawShaderMaterial:C.isRawShaderMaterial===!0,glslVersion:C.glslVersion,precision:y,batching:te,batchingColor:te&amp;amp;amp;&amp;amp;amp;X._colorsTexture!==null,instancing:Zt,instancingColor:Zt&amp;amp;amp;&amp;amp;amp;X.instanceColor!==null,instancingMorph:Zt&amp;amp;amp;&amp;amp;amp;X.morphTexture!==null,supportsVertexTextures:g,outputColorSpace:bt===null?n.outputColorSpace:bt.isXRRenderTarget===!0?bt.texture.colorSpace:er,alphaToCoverage:!!C.alphaToCoverage,map:ke,matcap:re,envMap:H,envMapMode:H&amp;amp;amp;&amp;amp;amp;mt.mapping,envMapCubeUVHeight:K,aoMap:ht,lightMap:rt,bumpMap:pt,normalMap:lt,displacementMap:g&amp;amp;amp;&amp;amp;amp;Ct,emissiveMap:dt,normalMapObjectSpace:lt&amp;amp;amp;&amp;amp;amp;C.normalMapType===MT,normalMapTangentSpace:lt&amp;amp;amp;&amp;amp;amp;C.normalMapType===eo,metalnessMap:Rt,roughnessMap:de,anisotropy:ue,anisotropyMap:at,clearcoat:I,clearcoatMap:jt,clearcoatNormalMap:Tt,clearcoatRoughnessMap:Wt,dispersion:D,iridescence:k,iridescenceMap:Ft,iridescenceThicknessMap:vt,sheen:nt,sheenColorMap:Ot,sheenRoughnessMap:ne,specularMap:kt,specularColorMap:Nt,specularIntensityMap:me,transmission:gt,transmissionMap:G,thicknessMap:Mt,gradientMap:Dt,opaque:C.transparent===!1&amp;amp;amp;&amp;amp;amp;C.blending===al&amp;amp;amp;&amp;amp;amp;C.alphaToCoverage===!1,alphaMap:Gt,alphaTest:St,alphaHash:ut,combine:C.combine,mapUv:ke&amp;amp;amp;&amp;amp;amp;b(C.map.channel),aoMapUv:ht&amp;amp;amp;&amp;amp;amp;b(C.aoMap.channel),lightMapUv:rt&amp;amp;amp;&amp;amp;amp;b(C.lightMap.channel),bumpMapUv:pt&amp;amp;amp;&amp;amp;amp;b(C.bumpMap.channel),normalMapUv:lt&amp;amp;amp;&amp;amp;amp;b(C.normalMap.channel),displacementMapUv:Ct&amp;amp;amp;&amp;amp;amp;b(C.displacementMap.channel),emissiveMapUv:dt&amp;amp;amp;&amp;amp;amp;b(C.emissiveMap.channel),metalnessMapUv:Rt&amp;amp;amp;&amp;amp;amp;b(C.metalnessMap.channel),roughnessMapUv:de&amp;amp;amp;&amp;amp;amp;b(C.roughnessMap.channel),anisotropyMapUv:at&amp;amp;amp;&amp;amp;amp;b(C.anisotropyMap.channel),clearcoatMapUv:jt&amp;amp;amp;&amp;amp;amp;b(C.clearcoatMap.channel),clearcoatNormalMapUv:Tt&amp;amp;amp;&amp;amp;amp;b(C.clearcoatNormalMap.channel),clearcoatRoughnessMapUv:Wt&amp;amp;amp;&amp;amp;amp;b(C.clearcoatRoughnessMap.channel),iridescenceMapUv:Ft&amp;amp;amp;&amp;amp;amp;b(C.iridescenceMap.channel),iridescenceThicknessMapUv:vt&amp;amp;amp;&amp;amp;amp;b(C.iridescenceThicknessMap.channel),sheenColorMapUv:Ot&amp;amp;amp;&amp;amp;amp;b(C.sheenColorMap.channel),sheenRoughnessMapUv:ne&amp;amp;amp;&amp;amp;amp;b(C.sheenRoughnessMap.channel),specularMapUv:kt&amp;amp;amp;&amp;amp;amp;b(C.specularMap.channel),specularColorMapUv:Nt&amp;amp;amp;&amp;amp;amp;b(C.specularColorMap.channel),specularIntensityMapUv:me&amp;amp;amp;&amp;amp;amp;b(C.specularIntensityMap.channel),transmissionMapUv:G&amp;amp;amp;&amp;amp;amp;b(C.transmissionMap.channel),thicknessMapUv:Mt&amp;amp;amp;&amp;amp;amp;b(C.thicknessMap.channel),alphaMapUv:Gt&amp;amp;amp;&amp;amp;amp;b(C.alphaMap.channel),vertexTangents:!!st.attributes.tangent&amp;amp;amp;&amp;amp;amp;(lt||ue),vertexColors:C.vertexColors,vertexAlphas:C.vertexColors===!0&amp;amp;amp;&amp;amp;amp;!!st.attributes.color&amp;amp;amp;&amp;amp;amp;st.attributes.color.itemSize===4,pointsUvs:X.isPoints===!0&amp;amp;amp;&amp;amp;amp;!!st.attributes.uv&amp;amp;amp;&amp;amp;amp;(ke||Gt),fog:!!Z,useFog:C.fog===!0,fogExp2:!!Z&amp;amp;amp;&amp;amp;amp;Z.isFogExp2,flatShading:C.flatShading===!0&amp;amp;amp;&amp;amp;amp;C.wireframe===!1,sizeAttenuation:C.sizeAttenuation===!0,logarithmicDepthBuffer:m,reversedDepthBuffer:Jt,skinning:X.isSkinnedMesh===!0,morphTargets:st.morphAttributes.position!==void 0,morphNormals:st.morphAttributes.normal!==void 0,morphColors:st.morphAttributes.color!==void 0,morphTargetsCount:xt,morphTextureStride:It,numDirLights:R.directional.length,numPointLights:R.point.length,numSpotLights:R.spot.length,numSpotLightMaps:R.spotLightMap.length,numRectAreaLights:R.rectArea.length,numHemiLights:R.hemi.length,numDirLightShadows:R.directionalShadowMap.length,numPointLightShadows:R.pointShadowMap.length,numSpotLightShadows:R.spotShadowMap.length,numSpotLightShadowsWithMaps:R.numSpotLightShadowsWithMaps,numLightProbes:R.numLightProbes,numClippingPlanes:o.numPlanes,numClipIntersection:o.numIntersection,dithering:C.dithering,shadowMapEnabled:n.shadowMap.enabled&amp;amp;amp;&amp;amp;amp;P.length&amp;amp;gt;0,shadowMapType:n.shadowMap.type,toneMapping:oe,decodeVideoTexture:ke&amp;amp;amp;&amp;amp;amp;C.map.isVideoTexture===!0&amp;amp;amp;&amp;amp;amp;we.getTransfer(C.map.colorSpace)===We,decodeVideoTextureEmissive:dt&amp;amp;amp;&amp;amp;amp;C.emissiveMap.isVideoTexture===!0&amp;amp;amp;&amp;amp;amp;we.getTransfer(C.emissiveMap.colorSpace)===We,premultipliedAlpha:C.premultipliedAlpha,doubleSided:C.side===Ds,flipSided:C.side===Ni,useDepthPacking:C.depthPacking&amp;amp;gt;=0,depthPacking:C.depthPacking||0,index0AttributeName:C.index0AttributeName,extensionClipCullDistance:qt&amp;amp;amp;&amp;amp;amp;C.extensions.clipCullDistance===!0&amp;amp;amp;&amp;amp;amp;i.has(&amp;amp;quot;WEBGL_clip_cull_distance&amp;amp;quot;),extensionMultiDraw:(qt&amp;amp;amp;&amp;amp;amp;C.extensions.multiDraw===!0||te)&amp;amp;amp;&amp;amp;amp;i.has(&amp;amp;quot;WEBGL_multi_draw&amp;amp;quot;),rendererExtensionParallelShaderCompile:i.has(&amp;amp;quot;KHR_parallel_shader_compile&amp;amp;quot;),customProgramCacheKey:C.customProgramCacheKey()};return He.vertexUv1s=h.has(1),He.vertexUv2s=h.has(2),He.vertexUv3s=h.has(3),h.clear(),He}function v(C){let R=[];if(C.shaderID?R.push(C.shaderID):(R.push(C.customVertexShaderID),R.push(C.customFragmentShaderID)),C.defines!==void 0)for(let P in C.defines)R.push(P),R.push(C.defines[P]);return C.isRawShaderMaterial===!1&amp;amp;amp;&amp;amp;amp;(S(R,C),E(R,C),R.push(n.outputColorSpace)),R.push(C.customProgramCacheKey),R.join()}function S(C,R){C.push(R.precision),C.push(R.outputColorSpace),C.push(R.envMapMode),C.push(R.envMapCubeUVHeight),C.push(R.mapUv),C.push(R.alphaMapUv),C.push(R.lightMapUv),C.push(R.aoMapUv),C.push(R.bumpMapUv),C.push(R.normalMapUv),C.push(R.displacementMapUv),C.push(R.emissiveMapUv),C.push(R.metalnessMapUv),C.push(R.roughnessMapUv),C.push(R.anisotropyMapUv),C.push(R.clearcoatMapUv),C.push(R.clearcoatNormalMapUv),C.push(R.clearcoatRoughnessMapUv),C.push(R.iridescenceMapUv),C.push(R.iridescenceThicknessMapUv),C.push(R.sheenColorMapUv),C.push(R.sheenRoughnessMapUv),C.push(R.specularMapUv),C.push(R.specularColorMapUv),C.push(R.specularIntensityMapUv),C.push(R.transmissionMapUv),C.push(R.thicknessMapUv),C.push(R.combine),C.push(R.fogExp2),C.push(R.sizeAttenuation),C.push(R.morphTargetsCount),C.push(R.morphAttributeCount),C.push(R.numDirLights),C.push(R.numPointLights),C.push(R.numSpotLights),C.push(R.numSpotLightMaps),C.push(R.numHemiLights),C.push(R.numRectAreaLights),C.push(R.numDirLightShadows),C.push(R.numPointLightShadows),C.push(R.numSpotLightShadows),C.push(R.numSpotLightShadowsWithMaps),C.push(R.numLightProbes),C.push(R.shadowMapType),C.push(R.toneMapping),C.push(R.numClippingPlanes),C.push(R.numClipIntersection),C.push(R.depthPacking)}function E(C,R){u.disableAll(),R.supportsVertexTextures&amp;amp;amp;&amp;amp;amp;u.enable(0),R.instancing&amp;amp;amp;&amp;amp;amp;u.enable(1),R.instancingColor&amp;amp;amp;&amp;amp;amp;u.enable(2),R.instancingMorph&amp;amp;amp;&amp;amp;amp;u.enable(3),R.matcap&amp;amp;amp;&amp;amp;amp;u.enable(4),R.envMap&amp;amp;amp;&amp;amp;amp;u.enable(5),R.normalMapObjectSpace&amp;amp;amp;&amp;amp;amp;u.enable(6),R.normalMapTangentSpace&amp;amp;amp;&amp;amp;amp;u.enable(7),R.clearcoat&amp;amp;amp;&amp;amp;amp;u.enable(8),R.iridescence&amp;amp;amp;&amp;amp;amp;u.enable(9),R.alphaTest&amp;amp;amp;&amp;amp;amp;u.enable(10),R.vertexColors&amp;amp;amp;&amp;amp;amp;u.enable(11),R.vertexAlphas&amp;amp;amp;&amp;amp;amp;u.enable(12),R.vertexUv1s&amp;amp;amp;&amp;amp;amp;u.enable(13),R.vertexUv2s&amp;amp;amp;&amp;amp;amp;u.enable(14),R.vertexUv3s&amp;amp;amp;&amp;amp;amp;u.enable(15),R.vertexTangents&amp;amp;amp;&amp;amp;amp;u.enable(16),R.anisotropy&amp;amp;amp;&amp;amp;amp;u.enable(17),R.alphaHash&amp;amp;amp;&amp;amp;amp;u.enable(18),R.batching&amp;amp;amp;&amp;amp;amp;u.enable(19),R.dispersion&amp;amp;amp;&amp;amp;amp;u.enable(20),R.batchingColor&amp;amp;amp;&amp;amp;amp;u.enable(21),R.gradientMap&amp;amp;amp;&amp;amp;amp;u.enable(22),C.push(u.mask),u.disableAll(),R.fog&amp;amp;amp;&amp;amp;amp;u.enable(0),R.useFog&amp;amp;amp;&amp;amp;amp;u.enable(1),R.flatShading&amp;amp;amp;&amp;amp;amp;u.enable(2),R.logarithmicDepthBuffer&amp;amp;amp;&amp;amp;amp;u.enable(3),R.reversedDepthBuffer&amp;amp;amp;&amp;amp;amp;u.enable(4),R.skinning&amp;amp;amp;&amp;amp;amp;u.enable(5),R.morphTargets&amp;amp;amp;&amp;amp;amp;u.enable(6),R.morphNormals&amp;amp;amp;&amp;amp;amp;u.enable(7),R.morphColors&amp;amp;amp;&amp;amp;amp;u.enable(8),R.premultipliedAlpha&amp;amp;amp;&amp;amp;amp;u.enable(9),R.shadowMapEnabled&amp;amp;amp;&amp;amp;amp;u.enable(10),R.doubleSided&amp;amp;amp;&amp;amp;amp;u.enable(11),R.flipSided&amp;amp;amp;&amp;amp;amp;u.enable(12),R.useDepthPacking&amp;amp;amp;&amp;amp;amp;u.enable(13),R.dithering&amp;amp;amp;&amp;amp;amp;u.enable(14),R.transmission&amp;amp;amp;&amp;amp;amp;u.enable(15),R.sheen&amp;amp;amp;&amp;amp;amp;u.enable(16),R.opaque&amp;amp;amp;&amp;amp;amp;u.enable(17),R.pointsUvs&amp;amp;amp;&amp;amp;amp;u.enable(18),R.decodeVideoTexture&amp;amp;amp;&amp;amp;amp;u.enable(19),R.decodeVideoTextureEmissive&amp;amp;amp;&amp;amp;amp;u.enable(20),R.alphaToCoverage&amp;amp;amp;&amp;amp;amp;u.enable(21),C.push(u.mask)}function T(C){let R=x[C.type],P;if(R){let j=Ns[R];P=LT.clone(j.uniforms)}else P=C.uniforms;return P}function w(C,R){let P;for(let j=0,X=d.length;j&amp;amp;lt;X;j++){let Z=d[j];if(Z.cacheKey===R){P=Z,++P.usedTimes;break}}return P===void 0&amp;amp;amp;&amp;amp;amp;(P=new c8(n,R,C,s),d.push(P)),P}function U(C){if(--C.usedTimes===0){let R=d.indexOf(C);d[R]=d[d.length-1],d.pop(),C.destroy()}}function O(C){c.remove(C)}function z(){c.dispose()}return{getParameters:M,getProgramCacheKey:v,getUniforms:T,acquireProgram:w,releaseProgram:U,releaseShaderCache:O,programs:d,dispose:z}}function d8(){let n=new WeakMap;function t(o){return n.has(o)}function e(o){let u=n.get(o);return u===void 0&amp;amp;amp;&amp;amp;amp;(u={},n.set(o,u)),u}function i(o){n.delete(o)}function a(o,u,c){n.get(o)[u]=c}function s(){n=new WeakMap}return{has:t,get:e,remove:i,update:a,dispose:s}}function p8(n,t){return n.groupOrder!==t.groupOrder?n.groupOrder-t.groupOrder:n.renderOrder!==t.renderOrder?n.renderOrder-t.renderOrder:n.material.id!==t.material.id?n.material.id-t.material.id:n.z!==t.z?n.z-t.z:n.id-t.id}function WO(n,t){return n.groupOrder!==t.groupOrder?n.groupOrder-t.groupOrder:n.renderOrder!==t.renderOrder?n.renderOrder-t.renderOrder:n.z!==t.z?t.z-n.z:n.id-t.id}function kO(){let n=[],t=0,e=[],i=[],a=[];function s(){t=0,e.length=0,i.length=0,a.length=0}function o(m,g,y,x,b,M){let v=n[t];return v===void 0?(v={id:m.id,object:m,geometry:g,material:y,groupOrder:x,renderOrder:m.renderOrder,z:b,group:M},n[t]=v):(v.id=m.id,v.object=m,v.geometry=g,v.material=y,v.groupOrder=x,v.renderOrder=m.renderOrder,v.z=b,v.group=M),t++,v}function u(m,g,y,x,b,M){let v=o(m,g,y,x,b,M);y.transmission&amp;amp;gt;0?i.push(v):y.transparent===!0?a.push(v):e.push(v)}function c(m,g,y,x,b,M){let v=o(m,g,y,x,b,M);y.transmission&amp;amp;gt;0?i.unshift(v):y.transparent===!0?a.unshift(v):e.unshift(v)}function h(m,g){e.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;e.sort(m||p8),i.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;i.sort(g||WO),a.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;a.sort(g||WO)}function d(){for(let m=t,g=n.length;m&amp;amp;lt;g;m++){let y=n[m];if(y.id===null)break;y.id=null,y.object=null,y.geometry=null,y.material=null,y.group=null}}return{opaque:e,transmissive:i,transparent:a,init:s,push:u,unshift:c,finish:d,sort:h}}function m8(){let n=new WeakMap;function t(i,a){let s=n.get(i),o;return s===void 0?(o=new kO,n.set(i,[o])):a&amp;amp;gt;=s.length?(o=new kO,s.push(o)):o=s[a],o}function e(){n=new WeakMap}return{get:t,dispose:e}}function g8(){let n={};return{get:function(t){if(n[t.id]!==void 0)return n[t.id];let e;switch(t.type){case&amp;amp;quot;DirectionalLight&amp;amp;quot;:e={direction:new B,color:new Bt};break;case&amp;amp;quot;SpotLight&amp;amp;quot;:e={position:new B,direction:new B,color:new Bt,distance:0,coneCos:0,penumbraCos:0,decay:0};break;case&amp;amp;quot;PointLight&amp;amp;quot;:e={position:new B,color:new Bt,distance:0,decay:0};break;case&amp;amp;quot;HemisphereLight&amp;amp;quot;:e={direction:new B,skyColor:new Bt,groundColor:new Bt};break;case&amp;amp;quot;RectAreaLight&amp;amp;quot;:e={color:new Bt,position:new B,halfWidth:new B,halfHeight:new B};break}return n[t.id]=e,e}}}function v8(){let n={};return{get:function(t){if(n[t.id]!==void 0)return n[t.id];let e;switch(t.type){case&amp;amp;quot;DirectionalLight&amp;amp;quot;:e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ct};break;case&amp;amp;quot;SpotLight&amp;amp;quot;:e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ct};break;case&amp;amp;quot;PointLight&amp;amp;quot;:e={shadowIntensity:1,shadowBias:0,shadowNormalBias:0,shadowRadius:1,shadowMapSize:new ct,shadowCameraNear:1,shadowCameraFar:1e3};break}return n[t.id]=e,e}}}var y8=0;function _8(n,t){return(t.castShadow?2:0)-(n.castShadow?2:0)+(t.map?1:0)-(n.map?1:0)}function x8(n){let t=new g8,e=v8(),i={version:0,hash:{directionalLength:-1,pointLength:-1,spotLength:-1,rectAreaLength:-1,hemiLength:-1,numDirectionalShadows:-1,numPointShadows:-1,numSpotShadows:-1,numSpotMaps:-1,numLightProbes:-1},ambient:[0,0,0],probe:[],directional:[],directionalShadow:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotLightMap:[],spotShadow:[],spotShadowMap:[],spotLightMatrix:[],rectArea:[],rectAreaLTC1:null,rectAreaLTC2:null,point:[],pointShadow:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],numSpotLightShadowsWithMaps:0,numLightProbes:0};for(let h=0;h&amp;amp;lt;9;h++)i.probe.push(new B);let a=new B,s=new fe,o=new fe;function u(h){let d=0,m=0,g=0;for(let C=0;C&amp;amp;lt;9;C++)i.probe[C].set(0,0,0);let y=0,x=0,b=0,M=0,v=0,S=0,E=0,T=0,w=0,U=0,O=0;h.sort(_8);for(let C=0,R=h.length;C&amp;amp;lt;R;C++){let P=h[C],j=P.color,X=P.intensity,Z=P.distance,st=P.shadow&amp;amp;amp;&amp;amp;amp;P.shadow.map?P.shadow.map.texture:null;if(P.isAmbientLight)d+=j.r*X,m+=j.g*X,g+=j.b*X;else if(P.isLightProbe){for(let et=0;et&amp;amp;lt;9;et++)i.probe[et].addScaledVector(P.sh.coefficients[et],X);O++}else if(P.isDirectionalLight){let et=t.get(P);if(et.color.copy(P.color).multiplyScalar(P.intensity),P.castShadow){let mt=P.shadow,K=e.get(P);K.shadowIntensity=mt.intensity,K.shadowBias=mt.bias,K.shadowNormalBias=mt.normalBias,K.shadowRadius=mt.radius,K.shadowMapSize=mt.mapSize,i.directionalShadow[y]=K,i.directionalShadowMap[y]=st,i.directionalShadowMatrix[y]=P.shadow.matrix,S++}i.directional[y]=et,y++}else if(P.isSpotLight){let et=t.get(P);et.position.setFromMatrixPosition(P.matrixWorld),et.color.copy(j).multiplyScalar(X),et.distance=Z,et.coneCos=Math.cos(P.angle),et.penumbraCos=Math.cos(P.angle*(1-P.penumbra)),et.decay=P.decay,i.spot[b]=et;let mt=P.shadow;if(P.map&amp;amp;amp;&amp;amp;amp;(i.spotLightMap[w]=P.map,w++,mt.updateMatrices(P),P.castShadow&amp;amp;amp;&amp;amp;amp;U++),i.spotLightMatrix[b]=mt.matrix,P.castShadow){let K=e.get(P);K.shadowIntensity=mt.intensity,K.shadowBias=mt.bias,K.shadowNormalBias=mt.normalBias,K.shadowRadius=mt.radius,K.shadowMapSize=mt.mapSize,i.spotShadow[b]=K,i.spotShadowMap[b]=st,T++}b++}else if(P.isRectAreaLight){let et=t.get(P);et.color.copy(j).multiplyScalar(X),et.halfWidth.set(P.width*.5,0,0),et.halfHeight.set(0,P.height*.5,0),i.rectArea[M]=et,M++}else if(P.isPointLight){let et=t.get(P);if(et.color.copy(P.color).multiplyScalar(P.intensity),et.distance=P.distance,et.decay=P.decay,P.castShadow){let mt=P.shadow,K=e.get(P);K.shadowIntensity=mt.intensity,K.shadowBias=mt.bias,K.shadowNormalBias=mt.normalBias,K.shadowRadius=mt.radius,K.shadowMapSize=mt.mapSize,K.shadowCameraNear=mt.camera.near,K.shadowCameraFar=mt.camera.far,i.pointShadow[x]=K,i.pointShadowMap[x]=st,i.pointShadowMatrix[x]=P.shadow.matrix,E++}i.point[x]=et,x++}else if(P.isHemisphereLight){let et=t.get(P);et.skyColor.copy(P.color).multiplyScalar(X),et.groundColor.copy(P.groundColor).multiplyScalar(X),i.hemi[v]=et,v++}}M&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(n.has(&amp;amp;quot;OES_texture_float_linear&amp;amp;quot;)===!0?(i.rectAreaLTC1=zt.LTC_FLOAT_1,i.rectAreaLTC2=zt.LTC_FLOAT_2):(i.rectAreaLTC1=zt.LTC_HALF_1,i.rectAreaLTC2=zt.LTC_HALF_2)),i.ambient[0]=d,i.ambient[1]=m,i.ambient[2]=g;let z=i.hash;(z.directionalLength!==y||z.pointLength!==x||z.spotLength!==b||z.rectAreaLength!==M||z.hemiLength!==v||z.numDirectionalShadows!==S||z.numPointShadows!==E||z.numSpotShadows!==T||z.numSpotMaps!==w||z.numLightProbes!==O)&amp;amp;amp;&amp;amp;amp;(i.directional.length=y,i.spot.length=b,i.rectArea.length=M,i.point.length=x,i.hemi.length=v,i.directionalShadow.length=S,i.directionalShadowMap.length=S,i.pointShadow.length=E,i.pointShadowMap.length=E,i.spotShadow.length=T,i.spotShadowMap.length=T,i.directionalShadowMatrix.length=S,i.pointShadowMatrix.length=E,i.spotLightMatrix.length=T+w-U,i.spotLightMap.length=w,i.numSpotLightShadowsWithMaps=U,i.numLightProbes=O,z.directionalLength=y,z.pointLength=x,z.spotLength=b,z.rectAreaLength=M,z.hemiLength=v,z.numDirectionalShadows=S,z.numPointShadows=E,z.numSpotShadows=T,z.numSpotMaps=w,z.numLightProbes=O,i.version=y8++)}function c(h,d){let m=0,g=0,y=0,x=0,b=0,M=d.matrixWorldInverse;for(let v=0,S=h.length;v&amp;amp;lt;S;v++){let E=h[v];if(E.isDirectionalLight){let T=i.directional[m];T.direction.setFromMatrixPosition(E.matrixWorld),a.setFromMatrixPosition(E.target.matrixWorld),T.direction.sub(a),T.direction.transformDirection(M),m++}else if(E.isSpotLight){let T=i.spot[y];T.position.setFromMatrixPosition(E.matrixWorld),T.position.applyMatrix4(M),T.direction.setFromMatrixPosition(E.matrixWorld),a.setFromMatrixPosition(E.target.matrixWorld),T.direction.sub(a),T.direction.transformDirection(M),y++}else if(E.isRectAreaLight){let T=i.rectArea[x];T.position.setFromMatrixPosition(E.matrixWorld),T.position.applyMatrix4(M),o.identity(),s.copy(E.matrixWorld),s.premultiply(M),o.extractRotation(s),T.halfWidth.set(E.width*.5,0,0),T.halfHeight.set(0,E.height*.5,0),T.halfWidth.applyMatrix4(o),T.halfHeight.applyMatrix4(o),x++}else if(E.isPointLight){let T=i.point[g];T.position.setFromMatrixPosition(E.matrixWorld),T.position.applyMatrix4(M),g++}else if(E.isHemisphereLight){let T=i.hemi[b];T.direction.setFromMatrixPosition(E.matrixWorld),T.direction.transformDirection(M),b++}}}return{setup:u,setupView:c,state:i}}function ZO(n){let t=new x8(n),e=[],i=[];function a(d){h.camera=d,e.length=0,i.length=0}function s(d){e.push(d)}function o(d){i.push(d)}function u(){t.setup(e)}function c(d){t.setupView(e,d)}let h={lightsArray:e,shadowsArray:i,camera:null,lights:t,transmissionRenderTarget:{}};return{init:a,state:h,setupLights:u,setupLightsView:c,pushLight:s,pushShadow:o}}function S8(n){let t=new WeakMap;function e(a,s=0){let o=t.get(a),u;return o===void 0?(u=new ZO(n),t.set(a,[u])):s&amp;amp;gt;=o.length?(u=new ZO(n),o.push(u)):u=o[s],u}function i(){t=new WeakMap}return{get:e,dispose:i}}var M8=`void main() {
   4974 <a href="#l4955" class="line" id="l4955">   4955</a> &lt;a href=&quot;#l4936&quot; class=&quot;line&quot; id=&quot;l4936&quot;&gt;   4936&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3799&amp;quot; id=&amp;quot;h3-0-3799&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_Position = vec4( position, 1.0 );
   4975 <a href="#l4956" class="line" id="l4956">   4956</a> &lt;a href=&quot;#l4937&quot; class=&quot;line&quot; id=&quot;l4937&quot;&gt;   4937&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3800&amp;quot; id=&amp;quot;h3-0-3800&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,E8=`uniform sampler2D shadow_pass;
   4976 <a href="#l4957" class="line" id="l4957">   4957</a> &lt;a href=&quot;#l4938&quot; class=&quot;line&quot; id=&quot;l4938&quot;&gt;   4938&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3801&amp;quot; id=&amp;quot;h3-0-3801&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec2 resolution;
   4977 <a href="#l4958" class="line" id="l4958">   4958</a> &lt;a href=&quot;#l4939&quot; class=&quot;line&quot; id=&quot;l4939&quot;&gt;   4939&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3802&amp;quot; id=&amp;quot;h3-0-3802&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float radius;
   4978 <a href="#l4959" class="line" id="l4959">   4959</a> &lt;a href=&quot;#l4940&quot; class=&quot;line&quot; id=&quot;l4940&quot;&gt;   4940&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3803&amp;quot; id=&amp;quot;h3-0-3803&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#include &amp;amp;lt;packing&amp;amp;gt;
   4979 <a href="#l4960" class="line" id="l4960">   4960</a> &lt;a href=&quot;#l4941&quot; class=&quot;line&quot; id=&quot;l4941&quot;&gt;   4941&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3804&amp;quot; id=&amp;quot;h3-0-3804&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   4980 <a href="#l4961" class="line" id="l4961">   4961</a> &lt;a href=&quot;#l4942&quot; class=&quot;line&quot; id=&quot;l4942&quot;&gt;   4942&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3805&amp;quot; id=&amp;quot;h3-0-3805&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float samples = float( VSM_SAMPLES );
   4981 <a href="#l4962" class="line" id="l4962">   4962</a> &lt;a href=&quot;#l4943&quot; class=&quot;line&quot; id=&quot;l4943&quot;&gt;   4943&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3806&amp;quot; id=&amp;quot;h3-0-3806&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float mean = 0.0;
   4982 <a href="#l4963" class="line" id="l4963">   4963</a> &lt;a href=&quot;#l4944&quot; class=&quot;line&quot; id=&quot;l4944&quot;&gt;   4944&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3807&amp;quot; id=&amp;quot;h3-0-3807&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float squared_mean = 0.0;
   4983 <a href="#l4964" class="line" id="l4964">   4964</a> &lt;a href=&quot;#l4945&quot; class=&quot;line&quot; id=&quot;l4945&quot;&gt;   4945&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3808&amp;quot; id=&amp;quot;h3-0-3808&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float uvStride = samples &amp;amp;lt;= 1.0 ? 0.0 : 2.0 / ( samples - 1.0 );
   4984 <a href="#l4965" class="line" id="l4965">   4965</a> &lt;a href=&quot;#l4946&quot; class=&quot;line&quot; id=&quot;l4946&quot;&gt;   4946&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3809&amp;quot; id=&amp;quot;h3-0-3809&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float uvStart = samples &amp;amp;lt;= 1.0 ? 0.0 : - 1.0;
   4985 <a href="#l4966" class="line" id="l4966">   4966</a> &lt;a href=&quot;#l4947&quot; class=&quot;line&quot; id=&quot;l4947&quot;&gt;   4947&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3810&amp;quot; id=&amp;quot;h3-0-3810&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for ( float i = 0.0; i &amp;amp;lt; samples; i ++ ) {
   4986 <a href="#l4967" class="line" id="l4967">   4967</a> &lt;a href=&quot;#l4948&quot; class=&quot;line&quot; id=&quot;l4948&quot;&gt;   4948&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3811&amp;quot; id=&amp;quot;h3-0-3811&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		float uvOffset = uvStart + i * uvStride;
   4987 <a href="#l4968" class="line" id="l4968">   4968</a> &lt;a href=&quot;#l4949&quot; class=&quot;line&quot; id=&quot;l4949&quot;&gt;   4949&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3812&amp;quot; id=&amp;quot;h3-0-3812&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#ifdef HORIZONTAL_PASS
   4988 <a href="#l4969" class="line" id="l4969">   4969</a> &lt;a href=&quot;#l4950&quot; class=&quot;line&quot; id=&quot;l4950&quot;&gt;   4950&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3813&amp;quot; id=&amp;quot;h3-0-3813&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			vec2 distribution = unpackRGBATo2Half( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( uvOffset, 0.0 ) * radius ) / resolution ) );
   4989 <a href="#l4970" class="line" id="l4970">   4970</a> &lt;a href=&quot;#l4951&quot; class=&quot;line&quot; id=&quot;l4951&quot;&gt;   4951&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3814&amp;quot; id=&amp;quot;h3-0-3814&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			mean += distribution.x;
   4990 <a href="#l4971" class="line" id="l4971">   4971</a> &lt;a href=&quot;#l4952&quot; class=&quot;line&quot; id=&quot;l4952&quot;&gt;   4952&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3815&amp;quot; id=&amp;quot;h3-0-3815&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			squared_mean += distribution.y * distribution.y + distribution.x * distribution.x;
   4991 <a href="#l4972" class="line" id="l4972">   4972</a> &lt;a href=&quot;#l4953&quot; class=&quot;line&quot; id=&quot;l4953&quot;&gt;   4953&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3816&amp;quot; id=&amp;quot;h3-0-3816&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#else
   4992 <a href="#l4973" class="line" id="l4973">   4973</a> &lt;a href=&quot;#l4954&quot; class=&quot;line&quot; id=&quot;l4954&quot;&gt;   4954&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3817&amp;quot; id=&amp;quot;h3-0-3817&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			float depth = unpackRGBAToDepth( texture2D( shadow_pass, ( gl_FragCoord.xy + vec2( 0.0, uvOffset ) * radius ) / resolution ) );
   4993 <a href="#l4974" class="line" id="l4974">   4974</a> &lt;a href=&quot;#l4955&quot; class=&quot;line&quot; id=&quot;l4955&quot;&gt;   4955&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3818&amp;quot; id=&amp;quot;h3-0-3818&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			mean += depth;
   4994 <a href="#l4975" class="line" id="l4975">   4975</a> &lt;a href=&quot;#l4956&quot; class=&quot;line&quot; id=&quot;l4956&quot;&gt;   4956&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3819&amp;quot; id=&amp;quot;h3-0-3819&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+			squared_mean += depth * depth;
   4995 <a href="#l4976" class="line" id="l4976">   4976</a> &lt;a href=&quot;#l4957&quot; class=&quot;line&quot; id=&quot;l4957&quot;&gt;   4957&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3820&amp;quot; id=&amp;quot;h3-0-3820&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		#endif
   4996 <a href="#l4977" class="line" id="l4977">   4977</a> &lt;a href=&quot;#l4958&quot; class=&quot;line&quot; id=&quot;l4958&quot;&gt;   4958&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3821&amp;quot; id=&amp;quot;h3-0-3821&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   4997 <a href="#l4978" class="line" id="l4978">   4978</a> &lt;a href=&quot;#l4959&quot; class=&quot;line&quot; id=&quot;l4959&quot;&gt;   4959&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3822&amp;quot; id=&amp;quot;h3-0-3822&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	mean = mean / samples;
   4998 <a href="#l4979" class="line" id="l4979">   4979</a> &lt;a href=&quot;#l4960&quot; class=&quot;line&quot; id=&quot;l4960&quot;&gt;   4960&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3823&amp;quot; id=&amp;quot;h3-0-3823&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	squared_mean = squared_mean / samples;
   4999 <a href="#l4980" class="line" id="l4980">   4980</a> &lt;a href=&quot;#l4961&quot; class=&quot;line&quot; id=&quot;l4961&quot;&gt;   4961&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3824&amp;quot; id=&amp;quot;h3-0-3824&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float std_dev = sqrt( squared_mean - mean * mean );
   5000 <a href="#l4981" class="line" id="l4981">   4981</a> &lt;a href=&quot;#l4962&quot; class=&quot;line&quot; id=&quot;l4962&quot;&gt;   4962&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3825&amp;quot; id=&amp;quot;h3-0-3825&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = pack2HalfToRGBA( vec2( mean, std_dev ) );
   5001 <a href="#l4982" class="line" id="l4982">   4982</a> &lt;a href=&quot;#l4963&quot; class=&quot;line&quot; id=&quot;l4963&quot;&gt;   4963&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3826&amp;quot; id=&amp;quot;h3-0-3826&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`;function b8(n,t,e){let i=new Kr,a=new ct,s=new ct,o=new Oe,u=new oh({depthPacking:ST}),c=new lh,h={},d=e.maxTextureSize,m={[tr]:Ni,[Ni]:tr,[Ds]:Ds},g=new ra({defines:{VSM_SAMPLES:8},uniforms:{shadow_pass:{value:null},resolution:{value:new ct},radius:{value:4}},vertexShader:M8,fragmentShader:E8}),y=g.clone();y.defines.HORIZONTAL_PASS=1;let x=new ve;x.setAttribute(&amp;amp;quot;position&amp;amp;quot;,new Xe(new Float32Array([-1,-1,.5,3,-1,.5,-1,3,.5]),3));let b=new En(x,g),M=this;this.enabled=!1,this.autoUpdate=!0,this.needsUpdate=!1,this.type=mh;let v=this.type;this.render=function(U,O,z){if(M.enabled===!1||M.autoUpdate===!1&amp;amp;amp;&amp;amp;amp;M.needsUpdate===!1||U.length===0)return;let C=n.getRenderTarget(),R=n.getActiveCubeFace(),P=n.getActiveMipmapLevel(),j=n.state;j.setBlending(sr),j.buffers.depth.getReversed()?j.buffers.color.setClear(0,0,0,0):j.buffers.color.setClear(1,1,1,1),j.buffers.depth.setTest(!0),j.setScissorTest(!1);let X=v!==Pa&amp;amp;amp;&amp;amp;amp;this.type===Pa,Z=v===Pa&amp;amp;amp;&amp;amp;amp;this.type!==Pa;for(let st=0,et=U.length;st&amp;amp;lt;et;st++){let mt=U[st],K=mt.shadow;if(K===void 0){console.warn(&amp;amp;quot;THREE.WebGLShadowMap:&amp;amp;quot;,mt,&amp;amp;quot;has no shadow.&amp;amp;quot;);continue}if(K.autoUpdate===!1&amp;amp;amp;&amp;amp;amp;K.needsUpdate===!1)continue;a.copy(K.mapSize);let _t=K.getFrameExtents();if(a.multiply(_t),s.copy(K.mapSize),(a.x&amp;amp;gt;d||a.y&amp;amp;gt;d)&amp;amp;amp;&amp;amp;amp;(a.x&amp;amp;gt;d&amp;amp;amp;&amp;amp;amp;(s.x=Math.floor(d/_t.x),a.x=s.x*_t.x,K.mapSize.x=s.x),a.y&amp;amp;gt;d&amp;amp;amp;&amp;amp;amp;(s.y=Math.floor(d/_t.y),a.y=s.y*_t.y,K.mapSize.y=s.y)),K.map===null||X===!0||Z===!0){let xt=this.type!==Pa?{minFilter:oi,magFilter:oi}:{};K.map!==null&amp;amp;amp;&amp;amp;amp;K.map.dispose(),K.map=new za(a.x,a.y,xt),K.map.texture.name=mt.name+&amp;amp;quot;.shadowMap&amp;amp;quot;,K.camera.updateProjectionMatrix()}n.setRenderTarget(K.map),n.clear();let Ut=K.getViewportCount();for(let xt=0;xt&amp;amp;lt;Ut;xt++){let It=K.getViewport(xt);o.set(s.x*It.x,s.y*It.y,s.x*It.z,s.y*It.w),j.viewport(o),K.updateMatrices(mt,xt),i=K.getFrustum(),T(O,z,K.camera,mt,this.type)}K.isPointLightShadow!==!0&amp;amp;amp;&amp;amp;amp;this.type===Pa&amp;amp;amp;&amp;amp;amp;S(K,z),K.needsUpdate=!1}v=this.type,M.needsUpdate=!1,n.setRenderTarget(C,R,P)};function S(U,O){let z=t.update(b);g.defines.VSM_SAMPLES!==U.blurSamples&amp;amp;amp;&amp;amp;amp;(g.defines.VSM_SAMPLES=U.blurSamples,y.defines.VSM_SAMPLES=U.blurSamples,g.needsUpdate=!0,y.needsUpdate=!0),U.mapPass===null&amp;amp;amp;&amp;amp;amp;(U.mapPass=new za(a.x,a.y)),g.uniforms.shadow_pass.value=U.map.texture,g.uniforms.resolution.value=U.mapSize,g.uniforms.radius.value=U.radius,n.setRenderTarget(U.mapPass),n.clear(),n.renderBufferDirect(O,null,z,g,b,null),y.uniforms.shadow_pass.value=U.mapPass.texture,y.uniforms.resolution.value=U.mapSize,y.uniforms.radius.value=U.radius,n.setRenderTarget(U.map),n.clear(),n.renderBufferDirect(O,null,z,y,b,null)}function E(U,O,z,C){let R=null,P=z.isPointLight===!0?U.customDistanceMaterial:U.customDepthMaterial;if(P!==void 0)R=P;else if(R=z.isPointLight===!0?c:u,n.localClippingEnabled&amp;amp;amp;&amp;amp;amp;O.clipShadows===!0&amp;amp;amp;&amp;amp;amp;Array.isArray(O.clippingPlanes)&amp;amp;amp;&amp;amp;amp;O.clippingPlanes.length!==0||O.displacementMap&amp;amp;amp;&amp;amp;amp;O.displacementScale!==0||O.alphaMap&amp;amp;amp;&amp;amp;amp;O.alphaTest&amp;amp;gt;0||O.map&amp;amp;amp;&amp;amp;amp;O.alphaTest&amp;amp;gt;0||O.alphaToCoverage===!0){let j=R.uuid,X=O.uuid,Z=h[j];Z===void 0&amp;amp;amp;&amp;amp;amp;(Z={},h[j]=Z);let st=Z[X];st===void 0&amp;amp;amp;&amp;amp;amp;(st=R.clone(),Z[X]=st,O.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,w)),R=st}if(R.visible=O.visible,R.wireframe=O.wireframe,C===Pa?R.side=O.shadowSide!==null?O.shadowSide:O.side:R.side=O.shadowSide!==null?O.shadowSide:m[O.side],R.alphaMap=O.alphaMap,R.alphaTest=O.alphaToCoverage===!0?.5:O.alphaTest,R.map=O.map,R.clipShadows=O.clipShadows,R.clippingPlanes=O.clippingPlanes,R.clipIntersection=O.clipIntersection,R.displacementMap=O.displacementMap,R.displacementScale=O.displacementScale,R.displacementBias=O.displacementBias,R.wireframeLinewidth=O.wireframeLinewidth,R.linewidth=O.linewidth,z.isPointLight===!0&amp;amp;amp;&amp;amp;amp;R.isMeshDistanceMaterial===!0){let j=n.properties.get(R);j.light=z}return R}function T(U,O,z,C,R){if(U.visible===!1)return;if(U.layers.test(O.layers)&amp;amp;amp;&amp;amp;amp;(U.isMesh||U.isLine||U.isPoints)&amp;amp;amp;&amp;amp;amp;(U.castShadow||U.receiveShadow&amp;amp;amp;&amp;amp;amp;R===Pa)&amp;amp;amp;&amp;amp;amp;(!U.frustumCulled||i.intersectsObject(U))){U.modelViewMatrix.multiplyMatrices(z.matrixWorldInverse,U.matrixWorld);let X=t.update(U),Z=U.material;if(Array.isArray(Z)){let st=X.groups;for(let et=0,mt=st.length;et&amp;amp;lt;mt;et++){let K=st[et],_t=Z[K.materialIndex];if(_t&amp;amp;amp;&amp;amp;amp;_t.visible){let Ut=E(U,_t,C,R);U.onBeforeShadow(n,U,O,z,X,Ut,K),n.renderBufferDirect(z,null,X,Ut,U,K),U.onAfterShadow(n,U,O,z,X,Ut,K)}}}else if(Z.visible){let st=E(U,Z,C,R);U.onBeforeShadow(n,U,O,z,X,st,null),n.renderBufferDirect(z,null,X,st,U,null),U.onAfterShadow(n,U,O,z,X,st,null)}}let j=U.children;for(let X=0,Z=j.length;X&amp;amp;lt;Z;X++)T(j[X],O,z,C,R)}function w(U){U.target.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,w);for(let z in h){let C=h[z],R=U.target.uuid;R in C&amp;amp;amp;&amp;amp;amp;(C[R].dispose(),delete C[R])}}}var T8={[jm]:Qm,[Km]:tg,[Jm]:eg,[sl]:$m,[Qm]:jm,[tg]:Km,[eg]:Jm,[$m]:sl};function A8(n,t){function e(){let G=!1,Mt=new Oe,Dt=null,Gt=new Oe(0,0,0,0);return{setMask:function(St){Dt!==St&amp;amp;amp;&amp;amp;amp;!G&amp;amp;amp;&amp;amp;amp;(n.colorMask(St,St,St,St),Dt=St)},setLocked:function(St){G=St},setClear:function(St,ut,qt,oe,He){He===!0&amp;amp;amp;&amp;amp;amp;(St*=oe,ut*=oe,qt*=oe),Mt.set(St,ut,qt,oe),Gt.equals(Mt)===!1&amp;amp;amp;&amp;amp;amp;(n.clearColor(St,ut,qt,oe),Gt.copy(Mt))},reset:function(){G=!1,Dt=null,Gt.set(-1,0,0,0)}}}function i(){let G=!1,Mt=!1,Dt=null,Gt=null,St=null;return{setReversed:function(ut){if(Mt!==ut){let qt=t.get(&amp;amp;quot;EXT_clip_control&amp;amp;quot;);ut?qt.clipControlEXT(qt.LOWER_LEFT_EXT,qt.ZERO_TO_ONE_EXT):qt.clipControlEXT(qt.LOWER_LEFT_EXT,qt.NEGATIVE_ONE_TO_ONE_EXT),Mt=ut;let oe=St;St=null,this.setClear(oe)}},getReversed:function(){return Mt},setTest:function(ut){ut?bt(n.DEPTH_TEST):Jt(n.DEPTH_TEST)},setMask:function(ut){Dt!==ut&amp;amp;amp;&amp;amp;amp;!G&amp;amp;amp;&amp;amp;amp;(n.depthMask(ut),Dt=ut)},setFunc:function(ut){if(Mt&amp;amp;amp;&amp;amp;amp;(ut=T8[ut]),Gt!==ut){switch(ut){case jm:n.depthFunc(n.NEVER);break;case Qm:n.depthFunc(n.ALWAYS);break;case Km:n.depthFunc(n.LESS);break;case sl:n.depthFunc(n.LEQUAL);break;case Jm:n.depthFunc(n.EQUAL);break;case $m:n.depthFunc(n.GEQUAL);break;case tg:n.depthFunc(n.GREATER);break;case eg:n.depthFunc(n.NOTEQUAL);break;default:n.depthFunc(n.LEQUAL)}Gt=ut}},setLocked:function(ut){G=ut},setClear:function(ut){St!==ut&amp;amp;amp;&amp;amp;amp;(Mt&amp;amp;amp;&amp;amp;amp;(ut=1-ut),n.clearDepth(ut),St=ut)},reset:function(){G=!1,Dt=null,Gt=null,St=null,Mt=!1}}}function a(){let G=!1,Mt=null,Dt=null,Gt=null,St=null,ut=null,qt=null,oe=null,He=null;return{setTest:function(Le){G||(Le?bt(n.STENCIL_TEST):Jt(n.STENCIL_TEST))},setMask:function(Le){Mt!==Le&amp;amp;amp;&amp;amp;amp;!G&amp;amp;amp;&amp;amp;amp;(n.stencilMask(Le),Mt=Le)},setFunc:function(Le,Ha,ua){(Dt!==Le||Gt!==Ha||St!==ua)&amp;amp;amp;&amp;amp;amp;(n.stencilFunc(Le,Ha,ua),Dt=Le,Gt=Ha,St=ua)},setOp:function(Le,Ha,ua){(ut!==Le||qt!==Ha||oe!==ua)&amp;amp;amp;&amp;amp;amp;(n.stencilOp(Le,Ha,ua),ut=Le,qt=Ha,oe=ua)},setLocked:function(Le){G=Le},setClear:function(Le){He!==Le&amp;amp;amp;&amp;amp;amp;(n.clearStencil(Le),He=Le)},reset:function(){G=!1,Mt=null,Dt=null,Gt=null,St=null,ut=null,qt=null,oe=null,He=null}}}let s=new e,o=new i,u=new a,c=new WeakMap,h=new WeakMap,d={},m={},g=new WeakMap,y=[],x=null,b=!1,M=null,v=null,S=null,E=null,T=null,w=null,U=null,O=new Bt(0,0,0),z=0,C=!1,R=null,P=null,j=null,X=null,Z=null,st=n.getParameter(n.MAX_COMBINED_TEXTURE_IMAGE_UNITS),et=!1,mt=0,K=n.getParameter(n.VERSION);K.indexOf(&amp;amp;quot;WebGL&amp;amp;quot;)!==-1?(mt=parseFloat(/^WebGL (\d)/.exec(K)[1]),et=mt&amp;amp;gt;=1):K.indexOf(&amp;amp;quot;OpenGL ES&amp;amp;quot;)!==-1&amp;amp;amp;&amp;amp;amp;(mt=parseFloat(/^OpenGL ES (\d)/.exec(K)[1]),et=mt&amp;amp;gt;=2);let _t=null,Ut={},xt=n.getParameter(n.SCISSOR_BOX),It=n.getParameter(n.VIEWPORT),se=new Oe().fromArray(xt),Qt=new Oe().fromArray(It);function it(G,Mt,Dt,Gt){let St=new Uint8Array(4),ut=n.createTexture();n.bindTexture(G,ut),n.texParameteri(G,n.TEXTURE_MIN_FILTER,n.NEAREST),n.texParameteri(G,n.TEXTURE_MAG_FILTER,n.NEAREST);for(let qt=0;qt&amp;amp;lt;Dt;qt++)G===n.TEXTURE_3D||G===n.TEXTURE_2D_ARRAY?n.texImage3D(Mt,0,n.RGBA,1,1,Gt,0,n.RGBA,n.UNSIGNED_BYTE,St):n.texImage2D(Mt+qt,0,n.RGBA,1,1,0,n.RGBA,n.UNSIGNED_BYTE,St);return ut}let wt={};wt[n.TEXTURE_2D]=it(n.TEXTURE_2D,n.TEXTURE_2D,1),wt[n.TEXTURE_CUBE_MAP]=it(n.TEXTURE_CUBE_MAP,n.TEXTURE_CUBE_MAP_POSITIVE_X,6),wt[n.TEXTURE_2D_ARRAY]=it(n.TEXTURE_2D_ARRAY,n.TEXTURE_2D_ARRAY,1,1),wt[n.TEXTURE_3D]=it(n.TEXTURE_3D,n.TEXTURE_3D,1,1),s.setClear(0,0,0,1),o.setClear(1),u.setClear(0),bt(n.DEPTH_TEST),o.setFunc(sl),pt(!1),lt(K_),bt(n.CULL_FACE),ht(sr);function bt(G){d[G]!==!0&amp;amp;amp;&amp;amp;amp;(n.enable(G),d[G]=!0)}function Jt(G){d[G]!==!1&amp;amp;amp;&amp;amp;amp;(n.disable(G),d[G]=!1)}function Zt(G,Mt){return m[G]!==Mt?(n.bindFramebuffer(G,Mt),m[G]=Mt,G===n.DRAW_FRAMEBUFFER&amp;amp;amp;&amp;amp;amp;(m[n.FRAMEBUFFER]=Mt),G===n.FRAMEBUFFER&amp;amp;amp;&amp;amp;amp;(m[n.DRAW_FRAMEBUFFER]=Mt),!0):!1}function te(G,Mt){let Dt=y,Gt=!1;if(G){Dt=g.get(Mt),Dt===void 0&amp;amp;amp;&amp;amp;amp;(Dt=[],g.set(Mt,Dt));let St=G.textures;if(Dt.length!==St.length||Dt[0]!==n.COLOR_ATTACHMENT0){for(let ut=0,qt=St.length;ut&amp;amp;lt;qt;ut++)Dt[ut]=n.COLOR_ATTACHMENT0+ut;Dt.length=St.length,Gt=!0}}else Dt[0]!==n.BACK&amp;amp;amp;&amp;amp;amp;(Dt[0]=n.BACK,Gt=!0);Gt&amp;amp;amp;&amp;amp;amp;n.drawBuffers(Dt)}function ke(G){return x!==G?(n.useProgram(G),x=G,!0):!1}let re={[Zr]:n.FUNC_ADD,[Yb]:n.FUNC_SUBTRACT,[Wb]:n.FUNC_REVERSE_SUBTRACT};re[kb]=n.MIN,re[Zb]=n.MAX;let H={[jb]:n.ZERO,[Qb]:n.ONE,[Kb]:n.SRC_COLOR,[zp]:n.SRC_ALPHA,[iT]:n.SRC_ALPHA_SATURATE,[eT]:n.DST_COLOR,[$b]:n.DST_ALPHA,[Jb]:n.ONE_MINUS_SRC_COLOR,[Bp]:n.ONE_MINUS_SRC_ALPHA,[nT]:n.ONE_MINUS_DST_COLOR,[tT]:n.ONE_MINUS_DST_ALPHA,[aT]:n.CONSTANT_COLOR,[sT]:n.ONE_MINUS_CONSTANT_COLOR,[rT]:n.CONSTANT_ALPHA,[oT]:n.ONE_MINUS_CONSTANT_ALPHA};function ht(G,Mt,Dt,Gt,St,ut,qt,oe,He,Le){if(G===sr){b===!0&amp;amp;amp;&amp;amp;amp;(Jt(n.BLEND),b=!1);return}if(b===!1&amp;amp;amp;&amp;amp;amp;(bt(n.BLEND),b=!0),G!==qb){if(G!==M||Le!==C){if((v!==Zr||T!==Zr)&amp;amp;amp;&amp;amp;amp;(n.blendEquation(n.FUNC_ADD),v=Zr,T=Zr),Le)switch(G){case al:n.blendFuncSeparate(n.ONE,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case $_:n.blendFunc(n.ONE,n.ONE);break;case tx:n.blendFuncSeparate(n.ZERO,n.ONE_MINUS_SRC_COLOR,n.ZERO,n.ONE);break;case ex:n.blendFuncSeparate(n.DST_COLOR,n.ONE_MINUS_SRC_ALPHA,n.ZERO,n.ONE);break;default:console.error(&amp;amp;quot;THREE.WebGLState: Invalid blending: &amp;amp;quot;,G);break}else switch(G){case al:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.ONE,n.ONE_MINUS_SRC_ALPHA);break;case $_:n.blendFuncSeparate(n.SRC_ALPHA,n.ONE,n.ONE,n.ONE);break;case tx:console.error(&amp;amp;quot;THREE.WebGLState: SubtractiveBlending requires material.premultipliedAlpha = true&amp;amp;quot;);break;case ex:console.error(&amp;amp;quot;THREE.WebGLState: MultiplyBlending requires material.premultipliedAlpha = true&amp;amp;quot;);break;default:console.error(&amp;amp;quot;THREE.WebGLState: Invalid blending: &amp;amp;quot;,G);break}S=null,E=null,w=null,U=null,O.set(0,0,0),z=0,M=G,C=Le}return}St=St||Mt,ut=ut||Dt,qt=qt||Gt,(Mt!==v||St!==T)&amp;amp;amp;&amp;amp;amp;(n.blendEquationSeparate(re[Mt],re[St]),v=Mt,T=St),(Dt!==S||Gt!==E||ut!==w||qt!==U)&amp;amp;amp;&amp;amp;amp;(n.blendFuncSeparate(H[Dt],H[Gt],H[ut],H[qt]),S=Dt,E=Gt,w=ut,U=qt),(oe.equals(O)===!1||He!==z)&amp;amp;amp;&amp;amp;amp;(n.blendColor(oe.r,oe.g,oe.b,He),O.copy(oe),z=He),M=G,C=!1}function rt(G,Mt){G.side===Ds?Jt(n.CULL_FACE):bt(n.CULL_FACE);let Dt=G.side===Ni;Mt&amp;amp;amp;&amp;amp;amp;(Dt=!Dt),pt(Dt),G.blending===al&amp;amp;amp;&amp;amp;amp;G.transparent===!1?ht(sr):ht(G.blending,G.blendEquation,G.blendSrc,G.blendDst,G.blendEquationAlpha,G.blendSrcAlpha,G.blendDstAlpha,G.blendColor,G.blendAlpha,G.premultipliedAlpha),o.setFunc(G.depthFunc),o.setTest(G.depthTest),o.setMask(G.depthWrite),s.setMask(G.colorWrite);let Gt=G.stencilWrite;u.setTest(Gt),Gt&amp;amp;amp;&amp;amp;amp;(u.setMask(G.stencilWriteMask),u.setFunc(G.stencilFunc,G.stencilRef,G.stencilFuncMask),u.setOp(G.stencilFail,G.stencilZFail,G.stencilZPass)),dt(G.polygonOffset,G.polygonOffsetFactor,G.polygonOffsetUnits),G.alphaToCoverage===!0?bt(n.SAMPLE_ALPHA_TO_COVERAGE):Jt(n.SAMPLE_ALPHA_TO_COVERAGE)}function pt(G){R!==G&amp;amp;amp;&amp;amp;amp;(G?n.frontFace(n.CW):n.frontFace(n.CCW),R=G)}function lt(G){G!==Gb?(bt(n.CULL_FACE),G!==P&amp;amp;amp;&amp;amp;amp;(G===K_?n.cullFace(n.BACK):G===Xb?n.cullFace(n.FRONT):n.cullFace(n.FRONT_AND_BACK))):Jt(n.CULL_FACE),P=G}function Ct(G){G!==j&amp;amp;amp;&amp;amp;amp;(et&amp;amp;amp;&amp;amp;amp;n.lineWidth(G),j=G)}function dt(G,Mt,Dt){G?(bt(n.POLYGON_OFFSET_FILL),(X!==Mt||Z!==Dt)&amp;amp;amp;&amp;amp;amp;(n.polygonOffset(Mt,Dt),X=Mt,Z=Dt)):Jt(n.POLYGON_OFFSET_FILL)}function Rt(G){G?bt(n.SCISSOR_TEST):Jt(n.SCISSOR_TEST)}function de(G){G===void 0&amp;amp;amp;&amp;amp;amp;(G=n.TEXTURE0+st-1),_t!==G&amp;amp;amp;&amp;amp;amp;(n.activeTexture(G),_t=G)}function ue(G,Mt,Dt){Dt===void 0&amp;amp;amp;&amp;amp;amp;(_t===null?Dt=n.TEXTURE0+st-1:Dt=_t);let Gt=Ut[Dt];Gt===void 0&amp;amp;amp;&amp;amp;amp;(Gt={type:void 0,texture:void 0},Ut[Dt]=Gt),(Gt.type!==G||Gt.texture!==Mt)&amp;amp;amp;&amp;amp;amp;(_t!==Dt&amp;amp;amp;&amp;amp;amp;(n.activeTexture(Dt),_t=Dt),n.bindTexture(G,Mt||wt[G]),Gt.type=G,Gt.texture=Mt)}function I(){let G=Ut[_t];G!==void 0&amp;amp;amp;&amp;amp;amp;G.type!==void 0&amp;amp;amp;&amp;amp;amp;(n.bindTexture(G.type,null),G.type=void 0,G.texture=void 0)}function D(){try{n.compressedTexImage2D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function k(){try{n.compressedTexImage3D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function nt(){try{n.texSubImage2D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function gt(){try{n.texSubImage3D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function at(){try{n.compressedTexSubImage2D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function jt(){try{n.compressedTexSubImage3D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function Tt(){try{n.texStorage2D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function Wt(){try{n.texStorage3D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function Ft(){try{n.texImage2D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function vt(){try{n.texImage3D(...arguments)}catch(G){console.error(&amp;amp;quot;THREE.WebGLState:&amp;amp;quot;,G)}}function Ot(G){se.equals(G)===!1&amp;amp;amp;&amp;amp;amp;(n.scissor(G.x,G.y,G.z,G.w),se.copy(G))}function ne(G){Qt.equals(G)===!1&amp;amp;amp;&amp;amp;amp;(n.viewport(G.x,G.y,G.z,G.w),Qt.copy(G))}function kt(G,Mt){let Dt=h.get(Mt);Dt===void 0&amp;amp;amp;&amp;amp;amp;(Dt=new WeakMap,h.set(Mt,Dt));let Gt=Dt.get(G);Gt===void 0&amp;amp;amp;&amp;amp;amp;(Gt=n.getUniformBlockIndex(Mt,G.name),Dt.set(G,Gt))}function Nt(G,Mt){let Gt=h.get(Mt).get(G);c.get(Mt)!==Gt&amp;amp;amp;&amp;amp;amp;(n.uniformBlockBinding(Mt,Gt,G.__bindingPointIndex),c.set(Mt,Gt))}function me(){n.disable(n.BLEND),n.disable(n.CULL_FACE),n.disable(n.DEPTH_TEST),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SCISSOR_TEST),n.disable(n.STENCIL_TEST),n.disable(n.SAMPLE_ALPHA_TO_COVERAGE),n.blendEquation(n.FUNC_ADD),n.blendFunc(n.ONE,n.ZERO),n.blendFuncSeparate(n.ONE,n.ZERO,n.ONE,n.ZERO),n.blendColor(0,0,0,0),n.colorMask(!0,!0,!0,!0),n.clearColor(0,0,0,0),n.depthMask(!0),n.depthFunc(n.LESS),o.setReversed(!1),n.clearDepth(1),n.stencilMask(4294967295),n.stencilFunc(n.ALWAYS,0,4294967295),n.stencilOp(n.KEEP,n.KEEP,n.KEEP),n.clearStencil(0),n.cullFace(n.BACK),n.frontFace(n.CCW),n.polygonOffset(0,0),n.activeTexture(n.TEXTURE0),n.bindFramebuffer(n.FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.useProgram(null),n.lineWidth(1),n.scissor(0,0,n.canvas.width,n.canvas.height),n.viewport(0,0,n.canvas.width,n.canvas.height),d={},_t=null,Ut={},m={},g=new WeakMap,y=[],x=null,b=!1,M=null,v=null,S=null,E=null,T=null,w=null,U=null,O=new Bt(0,0,0),z=0,C=!1,R=null,P=null,j=null,X=null,Z=null,se.set(0,0,n.canvas.width,n.canvas.height),Qt.set(0,0,n.canvas.width,n.canvas.height),s.reset(),o.reset(),u.reset()}return{buffers:{color:s,depth:o,stencil:u},enable:bt,disable:Jt,bindFramebuffer:Zt,drawBuffers:te,useProgram:ke,setBlending:ht,setMaterial:rt,setFlipSided:pt,setCullFace:lt,setLineWidth:Ct,setPolygonOffset:dt,setScissorTest:Rt,activeTexture:de,bindTexture:ue,unbindTexture:I,compressedTexImage2D:D,compressedTexImage3D:k,texImage2D:Ft,texImage3D:vt,updateUBOMapping:kt,uniformBlockBinding:Nt,texStorage2D:Tt,texStorage3D:Wt,texSubImage2D:nt,texSubImage3D:gt,compressedTexSubImage2D:at,compressedTexSubImage3D:jt,scissor:Ot,viewport:ne,reset:me}}function R8(n,t,e,i,a,s,o){let u=t.has(&amp;amp;quot;WEBGL_multisampled_render_to_texture&amp;amp;quot;)?t.get(&amp;amp;quot;WEBGL_multisampled_render_to_texture&amp;amp;quot;):null,c=typeof navigator&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?!1:/OculusBrowser/g.test(navigator.userAgent),h=new ct,d=new WeakMap,m,g=new WeakMap,y=!1;try{y=typeof OffscreenCanvas&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;new OffscreenCanvas(1,1).getContext(&amp;amp;quot;2d&amp;amp;quot;)!==null}catch{}function x(I,D){return y?new OffscreenCanvas(I,D):Gf(&amp;amp;quot;canvas&amp;amp;quot;)}function b(I,D,k){let nt=1,gt=ue(I);if((gt.width&amp;amp;gt;k||gt.height&amp;amp;gt;k)&amp;amp;amp;&amp;amp;amp;(nt=k/Math.max(gt.width,gt.height)),nt&amp;amp;lt;1)if(typeof HTMLImageElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;I instanceof HTMLImageElement||typeof HTMLCanvasElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;I instanceof HTMLCanvasElement||typeof ImageBitmap&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;I instanceof ImageBitmap||typeof VideoFrame&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;I instanceof VideoFrame){let at=Math.floor(nt*gt.width),jt=Math.floor(nt*gt.height);m===void 0&amp;amp;amp;&amp;amp;amp;(m=x(at,jt));let Tt=D?x(at,jt):m;return Tt.width=at,Tt.height=jt,Tt.getContext(&amp;amp;quot;2d&amp;amp;quot;).drawImage(I,0,0,at,jt),console.warn(&amp;amp;quot;THREE.WebGLRenderer: Texture has been resized from (&amp;amp;quot;+gt.width+&amp;amp;quot;x&amp;amp;quot;+gt.height+&amp;amp;quot;) to (&amp;amp;quot;+at+&amp;amp;quot;x&amp;amp;quot;+jt+&amp;amp;quot;).&amp;amp;quot;),Tt}else return&amp;amp;quot;data&amp;amp;quot;in I&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.WebGLRenderer: Image in DataTexture is too big (&amp;amp;quot;+gt.width+&amp;amp;quot;x&amp;amp;quot;+gt.height+&amp;amp;quot;).&amp;amp;quot;),I;return I}function M(I){return I.generateMipmaps}function v(I){n.generateMipmap(I)}function S(I){return I.isWebGLCubeRenderTarget?n.TEXTURE_CUBE_MAP:I.isWebGL3DRenderTarget?n.TEXTURE_3D:I.isWebGLArrayRenderTarget||I.isCompressedArrayTexture?n.TEXTURE_2D_ARRAY:n.TEXTURE_2D}function E(I,D,k,nt,gt=!1){if(I!==null){if(n[I]!==void 0)return n[I];console.warn(&amp;amp;quot;THREE.WebGLRenderer: Attempt to use non-existing WebGL internal format &amp;amp;#39;&amp;amp;quot;+I+&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;)}let at=D;if(D===n.RED&amp;amp;amp;&amp;amp;amp;(k===n.FLOAT&amp;amp;amp;&amp;amp;amp;(at=n.R32F),k===n.HALF_FLOAT&amp;amp;amp;&amp;amp;amp;(at=n.R16F),k===n.UNSIGNED_BYTE&amp;amp;amp;&amp;amp;amp;(at=n.R8)),D===n.RED_INTEGER&amp;amp;amp;&amp;amp;amp;(k===n.UNSIGNED_BYTE&amp;amp;amp;&amp;amp;amp;(at=n.R8UI),k===n.UNSIGNED_SHORT&amp;amp;amp;&amp;amp;amp;(at=n.R16UI),k===n.UNSIGNED_INT&amp;amp;amp;&amp;amp;amp;(at=n.R32UI),k===n.BYTE&amp;amp;amp;&amp;amp;amp;(at=n.R8I),k===n.SHORT&amp;amp;amp;&amp;amp;amp;(at=n.R16I),k===n.INT&amp;amp;amp;&amp;amp;amp;(at=n.R32I)),D===n.RG&amp;amp;amp;&amp;amp;amp;(k===n.FLOAT&amp;amp;amp;&amp;amp;amp;(at=n.RG32F),k===n.HALF_FLOAT&amp;amp;amp;&amp;amp;amp;(at=n.RG16F),k===n.UNSIGNED_BYTE&amp;amp;amp;&amp;amp;amp;(at=n.RG8)),D===n.RG_INTEGER&amp;amp;amp;&amp;amp;amp;(k===n.UNSIGNED_BYTE&amp;amp;amp;&amp;amp;amp;(at=n.RG8UI),k===n.UNSIGNED_SHORT&amp;amp;amp;&amp;amp;amp;(at=n.RG16UI),k===n.UNSIGNED_INT&amp;amp;amp;&amp;amp;amp;(at=n.RG32UI),k===n.BYTE&amp;amp;amp;&amp;amp;amp;(at=n.RG8I),k===n.SHORT&amp;amp;amp;&amp;amp;amp;(at=n.RG16I),k===n.INT&amp;amp;amp;&amp;amp;amp;(at=n.RG32I)),D===n.RGB_INTEGER&amp;amp;amp;&amp;amp;amp;(k===n.UNSIGNED_BYTE&amp;amp;amp;&amp;amp;amp;(at=n.RGB8UI),k===n.UNSIGNED_SHORT&amp;amp;amp;&amp;amp;amp;(at=n.RGB16UI),k===n.UNSIGNED_INT&amp;amp;amp;&amp;amp;amp;(at=n.RGB32UI),k===n.BYTE&amp;amp;amp;&amp;amp;amp;(at=n.RGB8I),k===n.SHORT&amp;amp;amp;&amp;amp;amp;(at=n.RGB16I),k===n.INT&amp;amp;amp;&amp;amp;amp;(at=n.RGB32I)),D===n.RGBA_INTEGER&amp;amp;amp;&amp;amp;amp;(k===n.UNSIGNED_BYTE&amp;amp;amp;&amp;amp;amp;(at=n.RGBA8UI),k===n.UNSIGNED_SHORT&amp;amp;amp;&amp;amp;amp;(at=n.RGBA16UI),k===n.UNSIGNED_INT&amp;amp;amp;&amp;amp;amp;(at=n.RGBA32UI),k===n.BYTE&amp;amp;amp;&amp;amp;amp;(at=n.RGBA8I),k===n.SHORT&amp;amp;amp;&amp;amp;amp;(at=n.RGBA16I),k===n.INT&amp;amp;amp;&amp;amp;amp;(at=n.RGBA32I)),D===n.RGB&amp;amp;amp;&amp;amp;amp;k===n.UNSIGNED_INT_5_9_9_9_REV&amp;amp;amp;&amp;amp;amp;(at=n.RGB9_E5),D===n.RGBA){let jt=gt?Ff:we.getTransfer(nt);k===n.FLOAT&amp;amp;amp;&amp;amp;amp;(at=n.RGBA32F),k===n.HALF_FLOAT&amp;amp;amp;&amp;amp;amp;(at=n.RGBA16F),k===n.UNSIGNED_BYTE&amp;amp;amp;&amp;amp;amp;(at=jt===We?n.SRGB8_ALPHA8:n.RGBA8),k===n.UNSIGNED_SHORT_4_4_4_4&amp;amp;amp;&amp;amp;amp;(at=n.RGBA4),k===n.UNSIGNED_SHORT_5_5_5_1&amp;amp;amp;&amp;amp;amp;(at=n.RGB5_A1)}return(at===n.R16F||at===n.R32F||at===n.RG16F||at===n.RG32F||at===n.RGBA16F||at===n.RGBA32F)&amp;amp;amp;&amp;amp;amp;t.get(&amp;amp;quot;EXT_color_buffer_float&amp;amp;quot;),at}function T(I,D){let k;return I?D===null||D===or||D===Pu?k=n.DEPTH24_STENCIL8:D===qi?k=n.DEPTH32F_STENCIL8:D===zu&amp;amp;amp;&amp;amp;amp;(k=n.DEPTH24_STENCIL8,console.warn(&amp;amp;quot;DepthTexture: 16 bit depth attachment is not supported with stencil. Using 24-bit attachment.&amp;amp;quot;)):D===null||D===or||D===Pu?k=n.DEPTH_COMPONENT24:D===qi?k=n.DEPTH_COMPONENT32F:D===zu&amp;amp;amp;&amp;amp;amp;(k=n.DEPTH_COMPONENT16),k}function w(I,D){return M(I)===!0||I.isFramebufferTexture&amp;amp;amp;&amp;amp;amp;I.minFilter!==oi&amp;amp;amp;&amp;amp;amp;I.minFilter!==Gn?Math.log2(Math.max(D.width,D.height))+1:I.mipmaps!==void 0&amp;amp;amp;&amp;amp;amp;I.mipmaps.length&amp;amp;gt;0?I.mipmaps.length:I.isCompressedTexture&amp;amp;amp;&amp;amp;amp;Array.isArray(I.image)?D.mipmaps.length:1}function U(I){let D=I.target;D.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,U),z(D),D.isVideoTexture&amp;amp;amp;&amp;amp;amp;d.delete(D)}function O(I){let D=I.target;D.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,O),R(D)}function z(I){let D=i.get(I);if(D.__webglInit===void 0)return;let k=I.source,nt=g.get(k);if(nt){let gt=nt[D.__cacheKey];gt.usedTimes--,gt.usedTimes===0&amp;amp;amp;&amp;amp;amp;C(I),Object.keys(nt).length===0&amp;amp;amp;&amp;amp;amp;g.delete(k)}i.remove(I)}function C(I){let D=i.get(I);n.deleteTexture(D.__webglTexture);let k=I.source,nt=g.get(k);delete nt[D.__cacheKey],o.memory.textures--}function R(I){let D=i.get(I);if(I.depthTexture&amp;amp;amp;&amp;amp;amp;(I.depthTexture.dispose(),i.remove(I.depthTexture)),I.isWebGLCubeRenderTarget)for(let nt=0;nt&amp;amp;lt;6;nt++){if(Array.isArray(D.__webglFramebuffer[nt]))for(let gt=0;gt&amp;amp;lt;D.__webglFramebuffer[nt].length;gt++)n.deleteFramebuffer(D.__webglFramebuffer[nt][gt]);else n.deleteFramebuffer(D.__webglFramebuffer[nt]);D.__webglDepthbuffer&amp;amp;amp;&amp;amp;amp;n.deleteRenderbuffer(D.__webglDepthbuffer[nt])}else{if(Array.isArray(D.__webglFramebuffer))for(let nt=0;nt&amp;amp;lt;D.__webglFramebuffer.length;nt++)n.deleteFramebuffer(D.__webglFramebuffer[nt]);else n.deleteFramebuffer(D.__webglFramebuffer);if(D.__webglDepthbuffer&amp;amp;amp;&amp;amp;amp;n.deleteRenderbuffer(D.__webglDepthbuffer),D.__webglMultisampledFramebuffer&amp;amp;amp;&amp;amp;amp;n.deleteFramebuffer(D.__webglMultisampledFramebuffer),D.__webglColorRenderbuffer)for(let nt=0;nt&amp;amp;lt;D.__webglColorRenderbuffer.length;nt++)D.__webglColorRenderbuffer[nt]&amp;amp;amp;&amp;amp;amp;n.deleteRenderbuffer(D.__webglColorRenderbuffer[nt]);D.__webglDepthRenderbuffer&amp;amp;amp;&amp;amp;amp;n.deleteRenderbuffer(D.__webglDepthRenderbuffer)}let k=I.textures;for(let nt=0,gt=k.length;nt&amp;amp;lt;gt;nt++){let at=i.get(k[nt]);at.__webglTexture&amp;amp;amp;&amp;amp;amp;(n.deleteTexture(at.__webglTexture),o.memory.textures--),i.remove(k[nt])}i.remove(I)}let P=0;function j(){P=0}function X(){let I=P;return I&amp;amp;gt;=a.maxTextures&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.WebGLTextures: Trying to use &amp;amp;quot;+I+&amp;amp;quot; texture units while this GPU supports only &amp;amp;quot;+a.maxTextures),P+=1,I}function Z(I){let D=[];return D.push(I.wrapS),D.push(I.wrapT),D.push(I.wrapR||0),D.push(I.magFilter),D.push(I.minFilter),D.push(I.anisotropy),D.push(I.internalFormat),D.push(I.format),D.push(I.type),D.push(I.generateMipmaps),D.push(I.premultiplyAlpha),D.push(I.flipY),D.push(I.unpackAlignment),D.push(I.colorSpace),D.join()}function st(I,D){let k=i.get(I);if(I.isVideoTexture&amp;amp;amp;&amp;amp;amp;Rt(I),I.isRenderTargetTexture===!1&amp;amp;amp;&amp;amp;amp;I.isExternalTexture!==!0&amp;amp;amp;&amp;amp;amp;I.version&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;k.__version!==I.version){let nt=I.image;if(nt===null)console.warn(&amp;amp;quot;THREE.WebGLRenderer: Texture marked for update but no image data found.&amp;amp;quot;);else if(nt.complete===!1)console.warn(&amp;amp;quot;THREE.WebGLRenderer: Texture marked for update but image is incomplete&amp;amp;quot;);else{wt(k,I,D);return}}else I.isExternalTexture&amp;amp;amp;&amp;amp;amp;(k.__webglTexture=I.sourceTexture?I.sourceTexture:null);e.bindTexture(n.TEXTURE_2D,k.__webglTexture,n.TEXTURE0+D)}function et(I,D){let k=i.get(I);if(I.isRenderTargetTexture===!1&amp;amp;amp;&amp;amp;amp;I.version&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;k.__version!==I.version){wt(k,I,D);return}e.bindTexture(n.TEXTURE_2D_ARRAY,k.__webglTexture,n.TEXTURE0+D)}function mt(I,D){let k=i.get(I);if(I.isRenderTargetTexture===!1&amp;amp;amp;&amp;amp;amp;I.version&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;k.__version!==I.version){wt(k,I,D);return}e.bindTexture(n.TEXTURE_3D,k.__webglTexture,n.TEXTURE0+D)}function K(I,D){let k=i.get(I);if(I.version&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;k.__version!==I.version){bt(k,I,D);return}e.bindTexture(n.TEXTURE_CUBE_MAP,k.__webglTexture,n.TEXTURE0+D)}let _t={[Bf]:n.REPEAT,[Ua]:n.CLAMP_TO_EDGE,[Pf]:n.MIRRORED_REPEAT},Ut={[oi]:n.NEAREST,[nx]:n.NEAREST_MIPMAP_NEAREST,[Lu]:n.NEAREST_MIPMAP_LINEAR,[Gn]:n.LINEAR,[_h]:n.LINEAR_MIPMAP_NEAREST,[Us]:n.LINEAR_MIPMAP_LINEAR},xt={[ET]:n.NEVER,[wT]:n.ALWAYS,[bT]:n.LESS,[fx]:n.LEQUAL,[TT]:n.EQUAL,[CT]:n.GEQUAL,[AT]:n.GREATER,[RT]:n.NOTEQUAL};function It(I,D){if(D.type===qi&amp;amp;amp;&amp;amp;amp;t.has(&amp;amp;quot;OES_texture_float_linear&amp;amp;quot;)===!1&amp;amp;amp;&amp;amp;amp;(D.magFilter===Gn||D.magFilter===_h||D.magFilter===Lu||D.magFilter===Us||D.minFilter===Gn||D.minFilter===_h||D.minFilter===Lu||D.minFilter===Us)&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.WebGLRenderer: Unable to use linear filtering with floating point textures. OES_texture_float_linear not supported on this device.&amp;amp;quot;),n.texParameteri(I,n.TEXTURE_WRAP_S,_t[D.wrapS]),n.texParameteri(I,n.TEXTURE_WRAP_T,_t[D.wrapT]),(I===n.TEXTURE_3D||I===n.TEXTURE_2D_ARRAY)&amp;amp;amp;&amp;amp;amp;n.texParameteri(I,n.TEXTURE_WRAP_R,_t[D.wrapR]),n.texParameteri(I,n.TEXTURE_MAG_FILTER,Ut[D.magFilter]),n.texParameteri(I,n.TEXTURE_MIN_FILTER,Ut[D.minFilter]),D.compareFunction&amp;amp;amp;&amp;amp;amp;(n.texParameteri(I,n.TEXTURE_COMPARE_MODE,n.COMPARE_REF_TO_TEXTURE),n.texParameteri(I,n.TEXTURE_COMPARE_FUNC,xt[D.compareFunction])),t.has(&amp;amp;quot;EXT_texture_filter_anisotropic&amp;amp;quot;)===!0){if(D.magFilter===oi||D.minFilter!==Lu&amp;amp;amp;&amp;amp;amp;D.minFilter!==Us||D.type===qi&amp;amp;amp;&amp;amp;amp;t.has(&amp;amp;quot;OES_texture_float_linear&amp;amp;quot;)===!1)return;if(D.anisotropy&amp;amp;gt;1||i.get(D).__currentAnisotropy){let k=t.get(&amp;amp;quot;EXT_texture_filter_anisotropic&amp;amp;quot;);n.texParameterf(I,k.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(D.anisotropy,a.getMaxAnisotropy())),i.get(D).__currentAnisotropy=D.anisotropy}}}function se(I,D){let k=!1;I.__webglInit===void 0&amp;amp;amp;&amp;amp;amp;(I.__webglInit=!0,D.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,U));let nt=D.source,gt=g.get(nt);gt===void 0&amp;amp;amp;&amp;amp;amp;(gt={},g.set(nt,gt));let at=Z(D);if(at!==I.__cacheKey){gt[at]===void 0&amp;amp;amp;&amp;amp;amp;(gt[at]={texture:n.createTexture(),usedTimes:0},o.memory.textures++,k=!0),gt[at].usedTimes++;let jt=gt[I.__cacheKey];jt!==void 0&amp;amp;amp;&amp;amp;amp;(gt[I.__cacheKey].usedTimes--,jt.usedTimes===0&amp;amp;amp;&amp;amp;amp;C(D)),I.__cacheKey=at,I.__webglTexture=gt[at].texture}return k}function Qt(I,D,k){return Math.floor(Math.floor(I/k)/D)}function it(I,D,k,nt){let at=I.updateRanges;if(at.length===0)e.texSubImage2D(n.TEXTURE_2D,0,0,0,D.width,D.height,k,nt,D.data);else{at.sort((vt,Ot)=&amp;amp;gt;vt.start-Ot.start);let jt=0;for(let vt=1;vt&amp;amp;lt;at.length;vt++){let Ot=at[jt],ne=at[vt],kt=Ot.start+Ot.count,Nt=Qt(ne.start,D.width,4),me=Qt(Ot.start,D.width,4);ne.start&amp;amp;lt;=kt+1&amp;amp;amp;&amp;amp;amp;Nt===me&amp;amp;amp;&amp;amp;amp;Qt(ne.start+ne.count-1,D.width,4)===Nt?Ot.count=Math.max(Ot.count,ne.start+ne.count-Ot.start):(++jt,at[jt]=ne)}at.length=jt+1;let Tt=n.getParameter(n.UNPACK_ROW_LENGTH),Wt=n.getParameter(n.UNPACK_SKIP_PIXELS),Ft=n.getParameter(n.UNPACK_SKIP_ROWS);n.pixelStorei(n.UNPACK_ROW_LENGTH,D.width);for(let vt=0,Ot=at.length;vt&amp;amp;lt;Ot;vt++){let ne=at[vt],kt=Math.floor(ne.start/4),Nt=Math.ceil(ne.count/4),me=kt%D.width,G=Math.floor(kt/D.width),Mt=Nt,Dt=1;n.pixelStorei(n.UNPACK_SKIP_PIXELS,me),n.pixelStorei(n.UNPACK_SKIP_ROWS,G),e.texSubImage2D(n.TEXTURE_2D,0,me,G,Mt,Dt,k,nt,D.data)}I.clearUpdateRanges(),n.pixelStorei(n.UNPACK_ROW_LENGTH,Tt),n.pixelStorei(n.UNPACK_SKIP_PIXELS,Wt),n.pixelStorei(n.UNPACK_SKIP_ROWS,Ft)}}function wt(I,D,k){let nt=n.TEXTURE_2D;(D.isDataArrayTexture||D.isCompressedArrayTexture)&amp;amp;amp;&amp;amp;amp;(nt=n.TEXTURE_2D_ARRAY),D.isData3DTexture&amp;amp;amp;&amp;amp;amp;(nt=n.TEXTURE_3D);let gt=se(I,D),at=D.source;e.bindTexture(nt,I.__webglTexture,n.TEXTURE0+k);let jt=i.get(at);if(at.version!==jt.__version||gt===!0){e.activeTexture(n.TEXTURE0+k);let Tt=we.getPrimaries(we.workingColorSpace),Wt=D.colorSpace===lr?null:we.getPrimaries(D.colorSpace),Ft=D.colorSpace===lr||Tt===Wt?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Ft);let vt=b(D.image,!1,a.maxTextureSize);vt=de(D,vt);let Ot=s.convert(D.format,D.colorSpace),ne=s.convert(D.type),kt=E(D.internalFormat,Ot,ne,D.colorSpace,D.isVideoTexture);It(nt,D);let Nt,me=D.mipmaps,G=D.isVideoTexture!==!0,Mt=jt.__version===void 0||gt===!0,Dt=at.dataReady,Gt=w(D,vt);if(D.isDepthTexture)kt=T(D.format===Iu,D.type),Mt&amp;amp;amp;&amp;amp;amp;(G?e.texStorage2D(n.TEXTURE_2D,1,kt,vt.width,vt.height):e.texImage2D(n.TEXTURE_2D,0,kt,vt.width,vt.height,0,Ot,ne,null));else if(D.isDataTexture)if(me.length&amp;amp;gt;0){G&amp;amp;amp;&amp;amp;amp;Mt&amp;amp;amp;&amp;amp;amp;e.texStorage2D(n.TEXTURE_2D,Gt,kt,me[0].width,me[0].height);for(let St=0,ut=me.length;St&amp;amp;lt;ut;St++)Nt=me[St],G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_2D,St,0,0,Nt.width,Nt.height,Ot,ne,Nt.data):e.texImage2D(n.TEXTURE_2D,St,kt,Nt.width,Nt.height,0,Ot,ne,Nt.data);D.generateMipmaps=!1}else G?(Mt&amp;amp;amp;&amp;amp;amp;e.texStorage2D(n.TEXTURE_2D,Gt,kt,vt.width,vt.height),Dt&amp;amp;amp;&amp;amp;amp;it(D,vt,Ot,ne)):e.texImage2D(n.TEXTURE_2D,0,kt,vt.width,vt.height,0,Ot,ne,vt.data);else if(D.isCompressedTexture)if(D.isCompressedArrayTexture){G&amp;amp;amp;&amp;amp;amp;Mt&amp;amp;amp;&amp;amp;amp;e.texStorage3D(n.TEXTURE_2D_ARRAY,Gt,kt,me[0].width,me[0].height,vt.depth);for(let St=0,ut=me.length;St&amp;amp;lt;ut;St++)if(Nt=me[St],D.format!==li)if(Ot!==null)if(G){if(Dt)if(D.layerUpdates.size&amp;amp;gt;0){let qt=dx(Nt.width,Nt.height,D.format,D.type);for(let oe of D.layerUpdates){let He=Nt.data.subarray(oe*qt/Nt.data.BYTES_PER_ELEMENT,(oe+1)*qt/Nt.data.BYTES_PER_ELEMENT);e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,St,0,0,oe,Nt.width,Nt.height,1,Ot,He)}D.clearLayerUpdates()}else e.compressedTexSubImage3D(n.TEXTURE_2D_ARRAY,St,0,0,0,Nt.width,Nt.height,vt.depth,Ot,Nt.data)}else e.compressedTexImage3D(n.TEXTURE_2D_ARRAY,St,kt,Nt.width,Nt.height,vt.depth,0,Nt.data,0,0);else console.warn(&amp;amp;quot;THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()&amp;amp;quot;);else G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage3D(n.TEXTURE_2D_ARRAY,St,0,0,0,Nt.width,Nt.height,vt.depth,Ot,ne,Nt.data):e.texImage3D(n.TEXTURE_2D_ARRAY,St,kt,Nt.width,Nt.height,vt.depth,0,Ot,ne,Nt.data)}else{G&amp;amp;amp;&amp;amp;amp;Mt&amp;amp;amp;&amp;amp;amp;e.texStorage2D(n.TEXTURE_2D,Gt,kt,me[0].width,me[0].height);for(let St=0,ut=me.length;St&amp;amp;lt;ut;St++)Nt=me[St],D.format!==li?Ot!==null?G?Dt&amp;amp;amp;&amp;amp;amp;e.compressedTexSubImage2D(n.TEXTURE_2D,St,0,0,Nt.width,Nt.height,Ot,Nt.data):e.compressedTexImage2D(n.TEXTURE_2D,St,kt,Nt.width,Nt.height,0,Nt.data):console.warn(&amp;amp;quot;THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()&amp;amp;quot;):G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_2D,St,0,0,Nt.width,Nt.height,Ot,ne,Nt.data):e.texImage2D(n.TEXTURE_2D,St,kt,Nt.width,Nt.height,0,Ot,ne,Nt.data)}else if(D.isDataArrayTexture)if(G){if(Mt&amp;amp;amp;&amp;amp;amp;e.texStorage3D(n.TEXTURE_2D_ARRAY,Gt,kt,vt.width,vt.height,vt.depth),Dt)if(D.layerUpdates.size&amp;amp;gt;0){let St=dx(vt.width,vt.height,D.format,D.type);for(let ut of D.layerUpdates){let qt=vt.data.subarray(ut*St/vt.data.BYTES_PER_ELEMENT,(ut+1)*St/vt.data.BYTES_PER_ELEMENT);e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,ut,vt.width,vt.height,1,Ot,ne,qt)}D.clearLayerUpdates()}else e.texSubImage3D(n.TEXTURE_2D_ARRAY,0,0,0,0,vt.width,vt.height,vt.depth,Ot,ne,vt.data)}else e.texImage3D(n.TEXTURE_2D_ARRAY,0,kt,vt.width,vt.height,vt.depth,0,Ot,ne,vt.data);else if(D.isData3DTexture)G?(Mt&amp;amp;amp;&amp;amp;amp;e.texStorage3D(n.TEXTURE_3D,Gt,kt,vt.width,vt.height,vt.depth),Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage3D(n.TEXTURE_3D,0,0,0,0,vt.width,vt.height,vt.depth,Ot,ne,vt.data)):e.texImage3D(n.TEXTURE_3D,0,kt,vt.width,vt.height,vt.depth,0,Ot,ne,vt.data);else if(D.isFramebufferTexture){if(Mt)if(G)e.texStorage2D(n.TEXTURE_2D,Gt,kt,vt.width,vt.height);else{let St=vt.width,ut=vt.height;for(let qt=0;qt&amp;amp;lt;Gt;qt++)e.texImage2D(n.TEXTURE_2D,qt,kt,St,ut,0,Ot,ne,null),St&amp;amp;gt;&amp;amp;gt;=1,ut&amp;amp;gt;&amp;amp;gt;=1}}else if(me.length&amp;amp;gt;0){if(G&amp;amp;amp;&amp;amp;amp;Mt){let St=ue(me[0]);e.texStorage2D(n.TEXTURE_2D,Gt,kt,St.width,St.height)}for(let St=0,ut=me.length;St&amp;amp;lt;ut;St++)Nt=me[St],G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_2D,St,0,0,Ot,ne,Nt):e.texImage2D(n.TEXTURE_2D,St,kt,Ot,ne,Nt);D.generateMipmaps=!1}else if(G){if(Mt){let St=ue(vt);e.texStorage2D(n.TEXTURE_2D,Gt,kt,St.width,St.height)}Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_2D,0,0,0,Ot,ne,vt)}else e.texImage2D(n.TEXTURE_2D,0,kt,Ot,ne,vt);M(D)&amp;amp;amp;&amp;amp;amp;v(nt),jt.__version=at.version,D.onUpdate&amp;amp;amp;&amp;amp;amp;D.onUpdate(D)}I.__version=D.version}function bt(I,D,k){if(D.image.length!==6)return;let nt=se(I,D),gt=D.source;e.bindTexture(n.TEXTURE_CUBE_MAP,I.__webglTexture,n.TEXTURE0+k);let at=i.get(gt);if(gt.version!==at.__version||nt===!0){e.activeTexture(n.TEXTURE0+k);let jt=we.getPrimaries(we.workingColorSpace),Tt=D.colorSpace===lr?null:we.getPrimaries(D.colorSpace),Wt=D.colorSpace===lr||jt===Tt?n.NONE:n.BROWSER_DEFAULT_WEBGL;n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,D.flipY),n.pixelStorei(n.UNPACK_PREMULTIPLY_ALPHA_WEBGL,D.premultiplyAlpha),n.pixelStorei(n.UNPACK_ALIGNMENT,D.unpackAlignment),n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,Wt);let Ft=D.isCompressedTexture||D.image[0].isCompressedTexture,vt=D.image[0]&amp;amp;amp;&amp;amp;amp;D.image[0].isDataTexture,Ot=[];for(let ut=0;ut&amp;amp;lt;6;ut++)!Ft&amp;amp;amp;&amp;amp;amp;!vt?Ot[ut]=b(D.image[ut],!0,a.maxCubemapSize):Ot[ut]=vt?D.image[ut].image:D.image[ut],Ot[ut]=de(D,Ot[ut]);let ne=Ot[0],kt=s.convert(D.format,D.colorSpace),Nt=s.convert(D.type),me=E(D.internalFormat,kt,Nt,D.colorSpace),G=D.isVideoTexture!==!0,Mt=at.__version===void 0||nt===!0,Dt=gt.dataReady,Gt=w(D,ne);It(n.TEXTURE_CUBE_MAP,D);let St;if(Ft){G&amp;amp;amp;&amp;amp;amp;Mt&amp;amp;amp;&amp;amp;amp;e.texStorage2D(n.TEXTURE_CUBE_MAP,Gt,me,ne.width,ne.height);for(let ut=0;ut&amp;amp;lt;6;ut++){St=Ot[ut].mipmaps;for(let qt=0;qt&amp;amp;lt;St.length;qt++){let oe=St[qt];D.format!==li?kt!==null?G?Dt&amp;amp;amp;&amp;amp;amp;e.compressedTexSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,qt,0,0,oe.width,oe.height,kt,oe.data):e.compressedTexImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,qt,me,oe.width,oe.height,0,oe.data):console.warn(&amp;amp;quot;THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()&amp;amp;quot;):G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,qt,0,0,oe.width,oe.height,kt,Nt,oe.data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,qt,me,oe.width,oe.height,0,kt,Nt,oe.data)}}}else{if(St=D.mipmaps,G&amp;amp;amp;&amp;amp;amp;Mt){St.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;Gt++;let ut=ue(Ot[0]);e.texStorage2D(n.TEXTURE_CUBE_MAP,Gt,me,ut.width,ut.height)}for(let ut=0;ut&amp;amp;lt;6;ut++)if(vt){G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,0,0,0,Ot[ut].width,Ot[ut].height,kt,Nt,Ot[ut].data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,0,me,Ot[ut].width,Ot[ut].height,0,kt,Nt,Ot[ut].data);for(let qt=0;qt&amp;amp;lt;St.length;qt++){let He=St[qt].image[ut].image;G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,qt+1,0,0,He.width,He.height,kt,Nt,He.data):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,qt+1,me,He.width,He.height,0,kt,Nt,He.data)}}else{G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,0,0,0,kt,Nt,Ot[ut]):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,0,me,kt,Nt,Ot[ut]);for(let qt=0;qt&amp;amp;lt;St.length;qt++){let oe=St[qt];G?Dt&amp;amp;amp;&amp;amp;amp;e.texSubImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,qt+1,0,0,kt,Nt,oe.image[ut]):e.texImage2D(n.TEXTURE_CUBE_MAP_POSITIVE_X+ut,qt+1,me,kt,Nt,oe.image[ut])}}}M(D)&amp;amp;amp;&amp;amp;amp;v(n.TEXTURE_CUBE_MAP),at.__version=gt.version,D.onUpdate&amp;amp;amp;&amp;amp;amp;D.onUpdate(D)}I.__version=D.version}function Jt(I,D,k,nt,gt,at){let jt=s.convert(k.format,k.colorSpace),Tt=s.convert(k.type),Wt=E(k.internalFormat,jt,Tt,k.colorSpace),Ft=i.get(D),vt=i.get(k);if(vt.__renderTarget=D,!Ft.__hasExternalTextures){let Ot=Math.max(1,D.width&amp;amp;gt;&amp;amp;gt;at),ne=Math.max(1,D.height&amp;amp;gt;&amp;amp;gt;at);gt===n.TEXTURE_3D||gt===n.TEXTURE_2D_ARRAY?e.texImage3D(gt,at,Wt,Ot,ne,D.depth,0,jt,Tt,null):e.texImage2D(gt,at,Wt,Ot,ne,0,jt,Tt,null)}e.bindFramebuffer(n.FRAMEBUFFER,I),dt(D)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,nt,gt,vt.__webglTexture,0,Ct(D)):(gt===n.TEXTURE_2D||gt&amp;amp;gt;=n.TEXTURE_CUBE_MAP_POSITIVE_X&amp;amp;amp;&amp;amp;amp;gt&amp;amp;lt;=n.TEXTURE_CUBE_MAP_NEGATIVE_Z)&amp;amp;amp;&amp;amp;amp;n.framebufferTexture2D(n.FRAMEBUFFER,nt,gt,vt.__webglTexture,at),e.bindFramebuffer(n.FRAMEBUFFER,null)}function Zt(I,D,k){if(n.bindRenderbuffer(n.RENDERBUFFER,I),D.depthBuffer){let nt=D.depthTexture,gt=nt&amp;amp;amp;&amp;amp;amp;nt.isDepthTexture?nt.type:null,at=T(D.stencilBuffer,gt),jt=D.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,Tt=Ct(D);dt(D)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Tt,at,D.width,D.height):k?n.renderbufferStorageMultisample(n.RENDERBUFFER,Tt,at,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,at,D.width,D.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,jt,n.RENDERBUFFER,I)}else{let nt=D.textures;for(let gt=0;gt&amp;amp;lt;nt.length;gt++){let at=nt[gt],jt=s.convert(at.format,at.colorSpace),Tt=s.convert(at.type),Wt=E(at.internalFormat,jt,Tt,at.colorSpace),Ft=Ct(D);k&amp;amp;amp;&amp;amp;amp;dt(D)===!1?n.renderbufferStorageMultisample(n.RENDERBUFFER,Ft,Wt,D.width,D.height):dt(D)?u.renderbufferStorageMultisampleEXT(n.RENDERBUFFER,Ft,Wt,D.width,D.height):n.renderbufferStorage(n.RENDERBUFFER,Wt,D.width,D.height)}}n.bindRenderbuffer(n.RENDERBUFFER,null)}function te(I,D){if(D&amp;amp;amp;&amp;amp;amp;D.isWebGLCubeRenderTarget)throw new Error(&amp;amp;quot;Depth Texture with cube render targets is not supported&amp;amp;quot;);if(e.bindFramebuffer(n.FRAMEBUFFER,I),!(D.depthTexture&amp;amp;amp;&amp;amp;amp;D.depthTexture.isDepthTexture))throw new Error(&amp;amp;quot;renderTarget.depthTexture must be an instance of THREE.DepthTexture&amp;amp;quot;);let nt=i.get(D.depthTexture);nt.__renderTarget=D,(!nt.__webglTexture||D.depthTexture.image.width!==D.width||D.depthTexture.image.height!==D.height)&amp;amp;amp;&amp;amp;amp;(D.depthTexture.image.width=D.width,D.depthTexture.image.height=D.height,D.depthTexture.needsUpdate=!0),st(D.depthTexture,0);let gt=nt.__webglTexture,at=Ct(D);if(D.depthTexture.format===gu)dt(D)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,gt,0,at):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_ATTACHMENT,n.TEXTURE_2D,gt,0);else if(D.depthTexture.format===Iu)dt(D)?u.framebufferTexture2DMultisampleEXT(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,gt,0,at):n.framebufferTexture2D(n.FRAMEBUFFER,n.DEPTH_STENCIL_ATTACHMENT,n.TEXTURE_2D,gt,0);else throw new Error(&amp;amp;quot;Unknown depthTexture format&amp;amp;quot;)}function ke(I){let D=i.get(I),k=I.isWebGLCubeRenderTarget===!0;if(D.__boundDepthTexture!==I.depthTexture){let nt=I.depthTexture;if(D.__depthDisposeCallback&amp;amp;amp;&amp;amp;amp;D.__depthDisposeCallback(),nt){let gt=()=&amp;amp;gt;{delete D.__boundDepthTexture,delete D.__depthDisposeCallback,nt.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,gt)};nt.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,gt),D.__depthDisposeCallback=gt}D.__boundDepthTexture=nt}if(I.depthTexture&amp;amp;amp;&amp;amp;amp;!D.__autoAllocateDepthBuffer){if(k)throw new Error(&amp;amp;quot;target.depthTexture not supported in Cube render targets&amp;amp;quot;);let nt=I.texture.mipmaps;nt&amp;amp;amp;&amp;amp;amp;nt.length&amp;amp;gt;0?te(D.__webglFramebuffer[0],I):te(D.__webglFramebuffer,I)}else if(k){D.__webglDepthbuffer=[];for(let nt=0;nt&amp;amp;lt;6;nt++)if(e.bindFramebuffer(n.FRAMEBUFFER,D.__webglFramebuffer[nt]),D.__webglDepthbuffer[nt]===void 0)D.__webglDepthbuffer[nt]=n.createRenderbuffer(),Zt(D.__webglDepthbuffer[nt],I,!1);else{let gt=I.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,at=D.__webglDepthbuffer[nt];n.bindRenderbuffer(n.RENDERBUFFER,at),n.framebufferRenderbuffer(n.FRAMEBUFFER,gt,n.RENDERBUFFER,at)}}else{let nt=I.texture.mipmaps;if(nt&amp;amp;amp;&amp;amp;amp;nt.length&amp;amp;gt;0?e.bindFramebuffer(n.FRAMEBUFFER,D.__webglFramebuffer[0]):e.bindFramebuffer(n.FRAMEBUFFER,D.__webglFramebuffer),D.__webglDepthbuffer===void 0)D.__webglDepthbuffer=n.createRenderbuffer(),Zt(D.__webglDepthbuffer,I,!1);else{let gt=I.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,at=D.__webglDepthbuffer;n.bindRenderbuffer(n.RENDERBUFFER,at),n.framebufferRenderbuffer(n.FRAMEBUFFER,gt,n.RENDERBUFFER,at)}}e.bindFramebuffer(n.FRAMEBUFFER,null)}function re(I,D,k){let nt=i.get(I);D!==void 0&amp;amp;amp;&amp;amp;amp;Jt(nt.__webglFramebuffer,I,I.texture,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,0),k!==void 0&amp;amp;amp;&amp;amp;amp;ke(I)}function H(I){let D=I.texture,k=i.get(I),nt=i.get(D);I.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,O);let gt=I.textures,at=I.isWebGLCubeRenderTarget===!0,jt=gt.length&amp;amp;gt;1;if(jt||(nt.__webglTexture===void 0&amp;amp;amp;&amp;amp;amp;(nt.__webglTexture=n.createTexture()),nt.__version=D.version,o.memory.textures++),at){k.__webglFramebuffer=[];for(let Tt=0;Tt&amp;amp;lt;6;Tt++)if(D.mipmaps&amp;amp;amp;&amp;amp;amp;D.mipmaps.length&amp;amp;gt;0){k.__webglFramebuffer[Tt]=[];for(let Wt=0;Wt&amp;amp;lt;D.mipmaps.length;Wt++)k.__webglFramebuffer[Tt][Wt]=n.createFramebuffer()}else k.__webglFramebuffer[Tt]=n.createFramebuffer()}else{if(D.mipmaps&amp;amp;amp;&amp;amp;amp;D.mipmaps.length&amp;amp;gt;0){k.__webglFramebuffer=[];for(let Tt=0;Tt&amp;amp;lt;D.mipmaps.length;Tt++)k.__webglFramebuffer[Tt]=n.createFramebuffer()}else k.__webglFramebuffer=n.createFramebuffer();if(jt)for(let Tt=0,Wt=gt.length;Tt&amp;amp;lt;Wt;Tt++){let Ft=i.get(gt[Tt]);Ft.__webglTexture===void 0&amp;amp;amp;&amp;amp;amp;(Ft.__webglTexture=n.createTexture(),o.memory.textures++)}if(I.samples&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;dt(I)===!1){k.__webglMultisampledFramebuffer=n.createFramebuffer(),k.__webglColorRenderbuffer=[],e.bindFramebuffer(n.FRAMEBUFFER,k.__webglMultisampledFramebuffer);for(let Tt=0;Tt&amp;amp;lt;gt.length;Tt++){let Wt=gt[Tt];k.__webglColorRenderbuffer[Tt]=n.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,k.__webglColorRenderbuffer[Tt]);let Ft=s.convert(Wt.format,Wt.colorSpace),vt=s.convert(Wt.type),Ot=E(Wt.internalFormat,Ft,vt,Wt.colorSpace,I.isXRRenderTarget===!0),ne=Ct(I);n.renderbufferStorageMultisample(n.RENDERBUFFER,ne,Ot,I.width,I.height),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+Tt,n.RENDERBUFFER,k.__webglColorRenderbuffer[Tt])}n.bindRenderbuffer(n.RENDERBUFFER,null),I.depthBuffer&amp;amp;amp;&amp;amp;amp;(k.__webglDepthRenderbuffer=n.createRenderbuffer(),Zt(k.__webglDepthRenderbuffer,I,!0)),e.bindFramebuffer(n.FRAMEBUFFER,null)}}if(at){e.bindTexture(n.TEXTURE_CUBE_MAP,nt.__webglTexture),It(n.TEXTURE_CUBE_MAP,D);for(let Tt=0;Tt&amp;amp;lt;6;Tt++)if(D.mipmaps&amp;amp;amp;&amp;amp;amp;D.mipmaps.length&amp;amp;gt;0)for(let Wt=0;Wt&amp;amp;lt;D.mipmaps.length;Wt++)Jt(k.__webglFramebuffer[Tt][Wt],I,D,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+Tt,Wt);else Jt(k.__webglFramebuffer[Tt],I,D,n.COLOR_ATTACHMENT0,n.TEXTURE_CUBE_MAP_POSITIVE_X+Tt,0);M(D)&amp;amp;amp;&amp;amp;amp;v(n.TEXTURE_CUBE_MAP),e.unbindTexture()}else if(jt){for(let Tt=0,Wt=gt.length;Tt&amp;amp;lt;Wt;Tt++){let Ft=gt[Tt],vt=i.get(Ft),Ot=n.TEXTURE_2D;(I.isWebGL3DRenderTarget||I.isWebGLArrayRenderTarget)&amp;amp;amp;&amp;amp;amp;(Ot=I.isWebGL3DRenderTarget?n.TEXTURE_3D:n.TEXTURE_2D_ARRAY),e.bindTexture(Ot,vt.__webglTexture),It(Ot,Ft),Jt(k.__webglFramebuffer,I,Ft,n.COLOR_ATTACHMENT0+Tt,Ot,0),M(Ft)&amp;amp;amp;&amp;amp;amp;v(Ot)}e.unbindTexture()}else{let Tt=n.TEXTURE_2D;if((I.isWebGL3DRenderTarget||I.isWebGLArrayRenderTarget)&amp;amp;amp;&amp;amp;amp;(Tt=I.isWebGL3DRenderTarget?n.TEXTURE_3D:n.TEXTURE_2D_ARRAY),e.bindTexture(Tt,nt.__webglTexture),It(Tt,D),D.mipmaps&amp;amp;amp;&amp;amp;amp;D.mipmaps.length&amp;amp;gt;0)for(let Wt=0;Wt&amp;amp;lt;D.mipmaps.length;Wt++)Jt(k.__webglFramebuffer[Wt],I,D,n.COLOR_ATTACHMENT0,Tt,Wt);else Jt(k.__webglFramebuffer,I,D,n.COLOR_ATTACHMENT0,Tt,0);M(D)&amp;amp;amp;&amp;amp;amp;v(Tt),e.unbindTexture()}I.depthBuffer&amp;amp;amp;&amp;amp;amp;ke(I)}function ht(I){let D=I.textures;for(let k=0,nt=D.length;k&amp;amp;lt;nt;k++){let gt=D[k];if(M(gt)){let at=S(I),jt=i.get(gt).__webglTexture;e.bindTexture(at,jt),v(at),e.unbindTexture()}}}let rt=[],pt=[];function lt(I){if(I.samples&amp;amp;gt;0){if(dt(I)===!1){let D=I.textures,k=I.width,nt=I.height,gt=n.COLOR_BUFFER_BIT,at=I.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT,jt=i.get(I),Tt=D.length&amp;amp;gt;1;if(Tt)for(let Ft=0;Ft&amp;amp;lt;D.length;Ft++)e.bindFramebuffer(n.FRAMEBUFFER,jt.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+Ft,n.RENDERBUFFER,null),e.bindFramebuffer(n.FRAMEBUFFER,jt.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+Ft,n.TEXTURE_2D,null,0);e.bindFramebuffer(n.READ_FRAMEBUFFER,jt.__webglMultisampledFramebuffer);let Wt=I.texture.mipmaps;Wt&amp;amp;amp;&amp;amp;amp;Wt.length&amp;amp;gt;0?e.bindFramebuffer(n.DRAW_FRAMEBUFFER,jt.__webglFramebuffer[0]):e.bindFramebuffer(n.DRAW_FRAMEBUFFER,jt.__webglFramebuffer);for(let Ft=0;Ft&amp;amp;lt;D.length;Ft++){if(I.resolveDepthBuffer&amp;amp;amp;&amp;amp;amp;(I.depthBuffer&amp;amp;amp;&amp;amp;amp;(gt|=n.DEPTH_BUFFER_BIT),I.stencilBuffer&amp;amp;amp;&amp;amp;amp;I.resolveStencilBuffer&amp;amp;amp;&amp;amp;amp;(gt|=n.STENCIL_BUFFER_BIT)),Tt){n.framebufferRenderbuffer(n.READ_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.RENDERBUFFER,jt.__webglColorRenderbuffer[Ft]);let vt=i.get(D[Ft]).__webglTexture;n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,vt,0)}n.blitFramebuffer(0,0,k,nt,0,0,k,nt,gt,n.NEAREST),c===!0&amp;amp;amp;&amp;amp;amp;(rt.length=0,pt.length=0,rt.push(n.COLOR_ATTACHMENT0+Ft),I.depthBuffer&amp;amp;amp;&amp;amp;amp;I.resolveDepthBuffer===!1&amp;amp;amp;&amp;amp;amp;(rt.push(at),pt.push(at),n.invalidateFramebuffer(n.DRAW_FRAMEBUFFER,pt)),n.invalidateFramebuffer(n.READ_FRAMEBUFFER,rt))}if(e.bindFramebuffer(n.READ_FRAMEBUFFER,null),e.bindFramebuffer(n.DRAW_FRAMEBUFFER,null),Tt)for(let Ft=0;Ft&amp;amp;lt;D.length;Ft++){e.bindFramebuffer(n.FRAMEBUFFER,jt.__webglMultisampledFramebuffer),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+Ft,n.RENDERBUFFER,jt.__webglColorRenderbuffer[Ft]);let vt=i.get(D[Ft]).__webglTexture;e.bindFramebuffer(n.FRAMEBUFFER,jt.__webglFramebuffer),n.framebufferTexture2D(n.DRAW_FRAMEBUFFER,n.COLOR_ATTACHMENT0+Ft,n.TEXTURE_2D,vt,0)}e.bindFramebuffer(n.DRAW_FRAMEBUFFER,jt.__webglMultisampledFramebuffer)}else if(I.depthBuffer&amp;amp;amp;&amp;amp;amp;I.resolveDepthBuffer===!1&amp;amp;amp;&amp;amp;amp;c){let D=I.stencilBuffer?n.DEPTH_STENCIL_ATTACHMENT:n.DEPTH_ATTACHMENT;n.invalidateFramebuffer(n.DRAW_FRAMEBUFFER,[D])}}}function Ct(I){return Math.min(a.maxSamples,I.samples)}function dt(I){let D=i.get(I);return I.samples&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;t.has(&amp;amp;quot;WEBGL_multisampled_render_to_texture&amp;amp;quot;)===!0&amp;amp;amp;&amp;amp;amp;D.__useRenderToTexture!==!1}function Rt(I){let D=o.render.frame;d.get(I)!==D&amp;amp;amp;&amp;amp;amp;(d.set(I,D),I.update())}function de(I,D){let k=I.colorSpace,nt=I.format,gt=I.type;return I.isCompressedTexture===!0||I.isVideoTexture===!0||k!==er&amp;amp;amp;&amp;amp;amp;k!==lr&amp;amp;amp;&amp;amp;amp;(we.getTransfer(k)===We?(nt!==li||gt!==la)&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.WebGLTextures: sRGB encoded textures have to use RGBAFormat and UnsignedByteType.&amp;amp;quot;):console.error(&amp;amp;quot;THREE.WebGLTextures: Unsupported texture color space:&amp;amp;quot;,k)),D}function ue(I){return typeof HTMLImageElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;I instanceof HTMLImageElement?(h.width=I.naturalWidth||I.width,h.height=I.naturalHeight||I.height):typeof VideoFrame&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;I instanceof VideoFrame?(h.width=I.displayWidth,h.height=I.displayHeight):(h.width=I.width,h.height=I.height),h}this.allocateTextureUnit=X,this.resetTextureUnits=j,this.setTexture2D=st,this.setTexture2DArray=et,this.setTexture3D=mt,this.setTextureCube=K,this.rebindTextures=re,this.setupRenderTarget=H,this.updateRenderTargetMipmap=ht,this.updateMultisampleRenderTarget=lt,this.setupDepthRenderbuffer=ke,this.setupFrameBufferTexture=Jt,this.useMultisampledRTT=dt}function tL(n,t){function e(i,a=lr){let s,o=we.getTransfer(a);if(i===la)return n.UNSIGNED_BYTE;if(i===sg)return n.UNSIGNED_SHORT_4_4_4_4;if(i===rg)return n.UNSIGNED_SHORT_5_5_5_1;if(i===sx)return n.UNSIGNED_INT_5_9_9_9_REV;if(i===ix)return n.BYTE;if(i===ax)return n.SHORT;if(i===zu)return n.UNSIGNED_SHORT;if(i===ag)return n.INT;if(i===or)return n.UNSIGNED_INT;if(i===qi)return n.FLOAT;if(i===Bu)return n.HALF_FLOAT;if(i===rx)return n.ALPHA;if(i===ox)return n.RGB;if(i===li)return n.RGBA;if(i===gu)return n.DEPTH_COMPONENT;if(i===Iu)return n.DEPTH_STENCIL;if(i===og)return n.RED;if(i===xh)return n.RED_INTEGER;if(i===lx)return n.RG;if(i===lg)return n.RG_INTEGER;if(i===ug)return n.RGBA_INTEGER;if(i===Sh||i===Mh||i===Eh||i===bh)if(o===We)if(s=t.get(&amp;amp;quot;WEBGL_compressed_texture_s3tc_srgb&amp;amp;quot;),s!==null){if(i===Sh)return s.COMPRESSED_SRGB_S3TC_DXT1_EXT;if(i===Mh)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT;if(i===Eh)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT;if(i===bh)return s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}else return null;else if(s=t.get(&amp;amp;quot;WEBGL_compressed_texture_s3tc&amp;amp;quot;),s!==null){if(i===Sh)return s.COMPRESSED_RGB_S3TC_DXT1_EXT;if(i===Mh)return s.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(i===Eh)return s.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(i===bh)return s.COMPRESSED_RGBA_S3TC_DXT5_EXT}else return null;if(i===cg||i===fg||i===hg||i===dg)if(s=t.get(&amp;amp;quot;WEBGL_compressed_texture_pvrtc&amp;amp;quot;),s!==null){if(i===cg)return s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(i===fg)return s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(i===hg)return s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(i===dg)return s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}else return null;if(i===pg||i===mg||i===gg)if(s=t.get(&amp;amp;quot;WEBGL_compressed_texture_etc&amp;amp;quot;),s!==null){if(i===pg||i===mg)return o===We?s.COMPRESSED_SRGB8_ETC2:s.COMPRESSED_RGB8_ETC2;if(i===gg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:s.COMPRESSED_RGBA8_ETC2_EAC}else return null;if(i===vg||i===yg||i===_g||i===xg||i===Sg||i===Mg||i===Eg||i===bg||i===Tg||i===Ag||i===Rg||i===Cg||i===wg||i===Dg)if(s=t.get(&amp;amp;quot;WEBGL_compressed_texture_astc&amp;amp;quot;),s!==null){if(i===vg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:s.COMPRESSED_RGBA_ASTC_4x4_KHR;if(i===yg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:s.COMPRESSED_RGBA_ASTC_5x4_KHR;if(i===_g)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:s.COMPRESSED_RGBA_ASTC_5x5_KHR;if(i===xg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:s.COMPRESSED_RGBA_ASTC_6x5_KHR;if(i===Sg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:s.COMPRESSED_RGBA_ASTC_6x6_KHR;if(i===Mg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:s.COMPRESSED_RGBA_ASTC_8x5_KHR;if(i===Eg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:s.COMPRESSED_RGBA_ASTC_8x6_KHR;if(i===bg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:s.COMPRESSED_RGBA_ASTC_8x8_KHR;if(i===Tg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:s.COMPRESSED_RGBA_ASTC_10x5_KHR;if(i===Ag)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:s.COMPRESSED_RGBA_ASTC_10x6_KHR;if(i===Rg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:s.COMPRESSED_RGBA_ASTC_10x8_KHR;if(i===Cg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:s.COMPRESSED_RGBA_ASTC_10x10_KHR;if(i===wg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:s.COMPRESSED_RGBA_ASTC_12x10_KHR;if(i===Dg)return o===We?s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:s.COMPRESSED_RGBA_ASTC_12x12_KHR}else return null;if(i===Th||i===Ug||i===Ng)if(s=t.get(&amp;amp;quot;EXT_texture_compression_bptc&amp;amp;quot;),s!==null){if(i===Th)return o===We?s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:s.COMPRESSED_RGBA_BPTC_UNORM_EXT;if(i===Ug)return s.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT;if(i===Ng)return s.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT}else return null;if(i===ux||i===Og||i===Lg||i===zg)if(s=t.get(&amp;amp;quot;EXT_texture_compression_rgtc&amp;amp;quot;),s!==null){if(i===Th)return s.COMPRESSED_RED_RGTC1_EXT;if(i===Og)return s.COMPRESSED_SIGNED_RED_RGTC1_EXT;if(i===Lg)return s.COMPRESSED_RED_GREEN_RGTC2_EXT;if(i===zg)return s.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}else return null;return i===Pu?n.UNSIGNED_INT_24_8:n[i]!==void 0?n[i]:null}return{convert:e}}var vx=class extends zn{constructor(t=null){super(),this.sourceTexture=t,this.isExternalTexture=!0}},C8=`
   5002 <a href="#l4983" class="line" id="l4983">   4983</a> &lt;a href=&quot;#l4964&quot; class=&quot;line&quot; id=&quot;l4964&quot;&gt;   4964&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3827&amp;quot; id=&amp;quot;h3-0-3827&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   5003 <a href="#l4984" class="line" id="l4984">   4984</a> &lt;a href=&quot;#l4965&quot; class=&quot;line&quot; id=&quot;l4965&quot;&gt;   4965&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3828&amp;quot; id=&amp;quot;h3-0-3828&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5004 <a href="#l4985" class="line" id="l4985">   4985</a> &lt;a href=&quot;#l4966&quot; class=&quot;line&quot; id=&quot;l4966&quot;&gt;   4966&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3829&amp;quot; id=&amp;quot;h3-0-3829&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_Position = vec4( position, 1.0 );
   5005 <a href="#l4986" class="line" id="l4986">   4986</a> &lt;a href=&quot;#l4967&quot; class=&quot;line&quot; id=&quot;l4967&quot;&gt;   4967&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3830&amp;quot; id=&amp;quot;h3-0-3830&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5006 <a href="#l4987" class="line" id="l4987">   4987</a> &lt;a href=&quot;#l4968&quot; class=&quot;line&quot; id=&quot;l4968&quot;&gt;   4968&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3831&amp;quot; id=&amp;quot;h3-0-3831&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,w8=`
   5007 <a href="#l4988" class="line" id="l4988">   4988</a> &lt;a href=&quot;#l4969&quot; class=&quot;line&quot; id=&quot;l4969&quot;&gt;   4969&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3832&amp;quot; id=&amp;quot;h3-0-3832&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2DArray depthColor;
   5008 <a href="#l4989" class="line" id="l4989">   4989</a> &lt;a href=&quot;#l4970&quot; class=&quot;line&quot; id=&quot;l4970&quot;&gt;   4970&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3833&amp;quot; id=&amp;quot;h3-0-3833&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float depthWidth;
   5009 <a href="#l4990" class="line" id="l4990">   4990</a> &lt;a href=&quot;#l4971&quot; class=&quot;line&quot; id=&quot;l4971&quot;&gt;   4971&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3834&amp;quot; id=&amp;quot;h3-0-3834&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float depthHeight;
   5010 <a href="#l4991" class="line" id="l4991">   4991</a> &lt;a href=&quot;#l4972&quot; class=&quot;line&quot; id=&quot;l4972&quot;&gt;   4972&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3835&amp;quot; id=&amp;quot;h3-0-3835&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5011 <a href="#l4992" class="line" id="l4992">   4992</a> &lt;a href=&quot;#l4973&quot; class=&quot;line&quot; id=&quot;l4973&quot;&gt;   4973&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3836&amp;quot; id=&amp;quot;h3-0-3836&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   5012 <a href="#l4993" class="line" id="l4993">   4993</a> &lt;a href=&quot;#l4974&quot; class=&quot;line&quot; id=&quot;l4974&quot;&gt;   4974&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3837&amp;quot; id=&amp;quot;h3-0-3837&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5013 <a href="#l4994" class="line" id="l4994">   4994</a> &lt;a href=&quot;#l4975&quot; class=&quot;line&quot; id=&quot;l4975&quot;&gt;   4975&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3838&amp;quot; id=&amp;quot;h3-0-3838&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec2 coord = vec2( gl_FragCoord.x / depthWidth, gl_FragCoord.y / depthHeight );
   5014 <a href="#l4995" class="line" id="l4995">   4995</a> &lt;a href=&quot;#l4976&quot; class=&quot;line&quot; id=&quot;l4976&quot;&gt;   4976&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3839&amp;quot; id=&amp;quot;h3-0-3839&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5015 <a href="#l4996" class="line" id="l4996">   4996</a> &lt;a href=&quot;#l4977&quot; class=&quot;line&quot; id=&quot;l4977&quot;&gt;   4977&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3840&amp;quot; id=&amp;quot;h3-0-3840&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	if ( coord.x &amp;amp;gt;= 1.0 ) {
   5016 <a href="#l4997" class="line" id="l4997">   4997</a> &lt;a href=&quot;#l4978&quot; class=&quot;line&quot; id=&quot;l4978&quot;&gt;   4978&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3841&amp;quot; id=&amp;quot;h3-0-3841&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5017 <a href="#l4998" class="line" id="l4998">   4998</a> &lt;a href=&quot;#l4979&quot; class=&quot;line&quot; id=&quot;l4979&quot;&gt;   4979&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3842&amp;quot; id=&amp;quot;h3-0-3842&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		gl_FragDepth = texture( depthColor, vec3( coord.x - 1.0, coord.y, 1 ) ).r;
   5018 <a href="#l4999" class="line" id="l4999">   4999</a> &lt;a href=&quot;#l4980&quot; class=&quot;line&quot; id=&quot;l4980&quot;&gt;   4980&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3843&amp;quot; id=&amp;quot;h3-0-3843&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5019 <a href="#l5000" class="line" id="l5000">   5000</a> &lt;a href=&quot;#l4981&quot; class=&quot;line&quot; id=&quot;l4981&quot;&gt;   4981&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3844&amp;quot; id=&amp;quot;h3-0-3844&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	} else {
   5020 <a href="#l5001" class="line" id="l5001">   5001</a> &lt;a href=&quot;#l4982&quot; class=&quot;line&quot; id=&quot;l4982&quot;&gt;   4982&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3845&amp;quot; id=&amp;quot;h3-0-3845&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5021 <a href="#l5002" class="line" id="l5002">   5002</a> &lt;a href=&quot;#l4983&quot; class=&quot;line&quot; id=&quot;l4983&quot;&gt;   4983&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3846&amp;quot; id=&amp;quot;h3-0-3846&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+		gl_FragDepth = texture( depthColor, vec3( coord.x, coord.y, 0 ) ).r;
   5022 <a href="#l5003" class="line" id="l5003">   5003</a> &lt;a href=&quot;#l4984&quot; class=&quot;line&quot; id=&quot;l4984&quot;&gt;   4984&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3847&amp;quot; id=&amp;quot;h3-0-3847&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5023 <a href="#l5004" class="line" id="l5004">   5004</a> &lt;a href=&quot;#l4985&quot; class=&quot;line&quot; id=&quot;l4985&quot;&gt;   4985&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3848&amp;quot; id=&amp;quot;h3-0-3848&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   5024 <a href="#l5005" class="line" id="l5005">   5005</a> &lt;a href=&quot;#l4986&quot; class=&quot;line&quot; id=&quot;l4986&quot;&gt;   4986&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3849&amp;quot; id=&amp;quot;h3-0-3849&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5025 <a href="#l5006" class="line" id="l5006">   5006</a> &lt;a href=&quot;#l4987&quot; class=&quot;line&quot; id=&quot;l4987&quot;&gt;   4987&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3850&amp;quot; id=&amp;quot;h3-0-3850&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,JT=class{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e){if(this.texture===null){let i=new vx(t.texture);(t.depthNear!==e.depthNear||t.depthFar!==e.depthFar)&amp;amp;amp;&amp;amp;amp;(this.depthNear=t.depthNear,this.depthFar=t.depthFar),this.texture=i}}getMesh(t){if(this.texture!==null&amp;amp;amp;&amp;amp;amp;this.mesh===null){let e=t.cameras[0].viewport,i=new ra({vertexShader:C8,fragmentShader:w8,uniforms:{depthColor:{value:this.texture},depthWidth:{value:e.z},depthHeight:{value:e.w}}});this.mesh=new En(new Du(20,20),i)}return this.mesh}reset(){this.texture=null,this.mesh=null}getDepthTexture(){return this.texture}},$T=class extends La{constructor(t,e){super();let i=this,a=null,s=1,o=null,u=&amp;amp;quot;local-floor&amp;amp;quot;,c=1,h=null,d=null,m=null,g=null,y=null,x=null,b=new JT,M={},v=e.getContextAttributes(),S=null,E=null,T=[],w=[],U=new ct,O=null,z=new Un;z.viewport=new Oe;let C=new Un;C.viewport=new Oe;let R=[z,C],P=new Ym,j=null,X=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(it){let wt=T[it];return wt===void 0&amp;amp;amp;&amp;amp;amp;(wt=new Eu,T[it]=wt),wt.getTargetRaySpace()},this.getControllerGrip=function(it){let wt=T[it];return wt===void 0&amp;amp;amp;&amp;amp;amp;(wt=new Eu,T[it]=wt),wt.getGripSpace()},this.getHand=function(it){let wt=T[it];return wt===void 0&amp;amp;amp;&amp;amp;amp;(wt=new Eu,T[it]=wt),wt.getHandSpace()};function Z(it){let wt=w.indexOf(it.inputSource);if(wt===-1)return;let bt=T[wt];bt!==void 0&amp;amp;amp;&amp;amp;amp;(bt.update(it.inputSource,it.frame,h||o),bt.dispatchEvent({type:it.type,data:it.inputSource}))}function st(){a.removeEventListener(&amp;amp;quot;select&amp;amp;quot;,Z),a.removeEventListener(&amp;amp;quot;selectstart&amp;amp;quot;,Z),a.removeEventListener(&amp;amp;quot;selectend&amp;amp;quot;,Z),a.removeEventListener(&amp;amp;quot;squeeze&amp;amp;quot;,Z),a.removeEventListener(&amp;amp;quot;squeezestart&amp;amp;quot;,Z),a.removeEventListener(&amp;amp;quot;squeezeend&amp;amp;quot;,Z),a.removeEventListener(&amp;amp;quot;end&amp;amp;quot;,st),a.removeEventListener(&amp;amp;quot;inputsourceschange&amp;amp;quot;,et);for(let it=0;it&amp;amp;lt;T.length;it++){let wt=w[it];wt!==null&amp;amp;amp;&amp;amp;amp;(w[it]=null,T[it].disconnect(wt))}j=null,X=null,b.reset();for(let it in M)delete M[it];t.setRenderTarget(S),y=null,g=null,m=null,a=null,E=null,Qt.stop(),i.isPresenting=!1,t.setPixelRatio(O),t.setSize(U.width,U.height,!1),i.dispatchEvent({type:&amp;amp;quot;sessionend&amp;amp;quot;})}this.setFramebufferScaleFactor=function(it){s=it,i.isPresenting===!0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.WebXRManager: Cannot change framebuffer scale while presenting.&amp;amp;quot;)},this.setReferenceSpaceType=function(it){u=it,i.isPresenting===!0&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;THREE.WebXRManager: Cannot change reference space type while presenting.&amp;amp;quot;)},this.getReferenceSpace=function(){return h||o},this.setReferenceSpace=function(it){h=it},this.getBaseLayer=function(){return g!==null?g:y},this.getBinding=function(){return m},this.getFrame=function(){return x},this.getSession=function(){return a},this.setSession=async function(it){if(a=it,a!==null){if(S=t.getRenderTarget(),a.addEventListener(&amp;amp;quot;select&amp;amp;quot;,Z),a.addEventListener(&amp;amp;quot;selectstart&amp;amp;quot;,Z),a.addEventListener(&amp;amp;quot;selectend&amp;amp;quot;,Z),a.addEventListener(&amp;amp;quot;squeeze&amp;amp;quot;,Z),a.addEventListener(&amp;amp;quot;squeezestart&amp;amp;quot;,Z),a.addEventListener(&amp;amp;quot;squeezeend&amp;amp;quot;,Z),a.addEventListener(&amp;amp;quot;end&amp;amp;quot;,st),a.addEventListener(&amp;amp;quot;inputsourceschange&amp;amp;quot;,et),v.xrCompatible!==!0&amp;amp;amp;&amp;amp;amp;await e.makeXRCompatible(),O=t.getPixelRatio(),t.getSize(U),typeof XRWebGLBinding&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(m=new XRWebGLBinding(a,e)),m!==null&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;createProjectionLayer&amp;amp;quot;in XRWebGLBinding.prototype){let bt=null,Jt=null,Zt=null;v.depth&amp;amp;amp;&amp;amp;amp;(Zt=v.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,bt=v.stencil?Iu:gu,Jt=v.stencil?Pu:or);let te={colorFormat:e.RGBA8,depthFormat:Zt,scaleFactor:s};g=m.createProjectionLayer(te),a.updateRenderState({layers:[g]}),t.setPixelRatio(1),t.setSize(g.textureWidth,g.textureHeight,!1),E=new za(g.textureWidth,g.textureHeight,{format:li,type:la,depthTexture:new jf(g.textureWidth,g.textureHeight,Jt,void 0,void 0,void 0,void 0,void 0,void 0,bt),stencilBuffer:v.stencil,colorSpace:t.outputColorSpace,samples:v.antialias?4:0,resolveDepthBuffer:g.ignoreDepthValues===!1,resolveStencilBuffer:g.ignoreDepthValues===!1})}else{let bt={antialias:v.antialias,alpha:!0,depth:v.depth,stencil:v.stencil,framebufferScaleFactor:s};y=new XRWebGLLayer(a,e,bt),a.updateRenderState({baseLayer:y}),t.setPixelRatio(1),t.setSize(y.framebufferWidth,y.framebufferHeight,!1),E=new za(y.framebufferWidth,y.framebufferHeight,{format:li,type:la,colorSpace:t.outputColorSpace,stencilBuffer:v.stencil,resolveDepthBuffer:y.ignoreDepthValues===!1,resolveStencilBuffer:y.ignoreDepthValues===!1})}E.isXRRenderTarget=!0,this.setFoveation(c),h=null,o=await a.requestReferenceSpace(u),Qt.setContext(a),Qt.start(),i.isPresenting=!0,i.dispatchEvent({type:&amp;amp;quot;sessionstart&amp;amp;quot;})}},this.getEnvironmentBlendMode=function(){if(a!==null)return a.environmentBlendMode},this.getDepthTexture=function(){return b.getDepthTexture()};function et(it){for(let wt=0;wt&amp;amp;lt;it.removed.length;wt++){let bt=it.removed[wt],Jt=w.indexOf(bt);Jt&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;(w[Jt]=null,T[Jt].disconnect(bt))}for(let wt=0;wt&amp;amp;lt;it.added.length;wt++){let bt=it.added[wt],Jt=w.indexOf(bt);if(Jt===-1){for(let te=0;te&amp;amp;lt;T.length;te++)if(te&amp;amp;gt;=w.length){w.push(bt),Jt=te;break}else if(w[te]===null){w[te]=bt,Jt=te;break}if(Jt===-1)break}let Zt=T[Jt];Zt&amp;amp;amp;&amp;amp;amp;Zt.connect(bt)}}let mt=new B,K=new B;function _t(it,wt,bt){mt.setFromMatrixPosition(wt.matrixWorld),K.setFromMatrixPosition(bt.matrixWorld);let Jt=mt.distanceTo(K),Zt=wt.projectionMatrix.elements,te=bt.projectionMatrix.elements,ke=Zt[14]/(Zt[10]-1),re=Zt[14]/(Zt[10]+1),H=(Zt[9]+1)/Zt[5],ht=(Zt[9]-1)/Zt[5],rt=(Zt[8]-1)/Zt[0],pt=(te[8]+1)/te[0],lt=ke*rt,Ct=ke*pt,dt=Jt/(-rt+pt),Rt=dt*-rt;if(wt.matrixWorld.decompose(it.position,it.quaternion,it.scale),it.translateX(Rt),it.translateZ(dt),it.matrixWorld.compose(it.position,it.quaternion,it.scale),it.matrixWorldInverse.copy(it.matrixWorld).invert(),Zt[10]===-1)it.projectionMatrix.copy(wt.projectionMatrix),it.projectionMatrixInverse.copy(wt.projectionMatrixInverse);else{let de=ke+dt,ue=re+dt,I=lt-Rt,D=Ct+(Jt-Rt),k=H*re/ue*de,nt=ht*re/ue*de;it.projectionMatrix.makePerspective(I,D,k,nt,de,ue),it.projectionMatrixInverse.copy(it.projectionMatrix).invert()}}function Ut(it,wt){wt===null?it.matrixWorld.copy(it.matrix):it.matrixWorld.multiplyMatrices(wt.matrixWorld,it.matrix),it.matrixWorldInverse.copy(it.matrixWorld).invert()}this.updateCamera=function(it){if(a===null)return;let wt=it.near,bt=it.far;b.texture!==null&amp;amp;amp;&amp;amp;amp;(b.depthNear&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(wt=b.depthNear),b.depthFar&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(bt=b.depthFar)),P.near=C.near=z.near=wt,P.far=C.far=z.far=bt,(j!==P.near||X!==P.far)&amp;amp;amp;&amp;amp;amp;(a.updateRenderState({depthNear:P.near,depthFar:P.far}),j=P.near,X=P.far),P.layers.mask=it.layers.mask|6,z.layers.mask=P.layers.mask&amp;amp;amp;3,C.layers.mask=P.layers.mask&amp;amp;amp;5;let Jt=it.parent,Zt=P.cameras;Ut(P,Jt);for(let te=0;te&amp;amp;lt;Zt.length;te++)Ut(Zt[te],Jt);Zt.length===2?_t(P,z,C):P.projectionMatrix.copy(z.projectionMatrix),xt(it,P,Jt)};function xt(it,wt,bt){bt===null?it.matrix.copy(wt.matrixWorld):(it.matrix.copy(bt.matrixWorld),it.matrix.invert(),it.matrix.multiply(wt.matrixWorld)),it.matrix.decompose(it.position,it.quaternion,it.scale),it.updateMatrixWorld(!0),it.projectionMatrix.copy(wt.projectionMatrix),it.projectionMatrixInverse.copy(wt.projectionMatrixInverse),it.isPerspectiveCamera&amp;amp;amp;&amp;amp;amp;(it.fov=yu*2*Math.atan(1/it.projectionMatrix.elements[5]),it.zoom=1)}this.getCamera=function(){return P},this.getFoveation=function(){if(!(g===null&amp;amp;amp;&amp;amp;amp;y===null))return c},this.setFoveation=function(it){c=it,g!==null&amp;amp;amp;&amp;amp;amp;(g.fixedFoveation=it),y!==null&amp;amp;amp;&amp;amp;amp;y.fixedFoveation!==void 0&amp;amp;amp;&amp;amp;amp;(y.fixedFoveation=it)},this.hasDepthSensing=function(){return b.texture!==null},this.getDepthSensingMesh=function(){return b.getMesh(P)},this.getCameraTexture=function(it){return M[it]};let It=null;function se(it,wt){if(d=wt.getViewerPose(h||o),x=wt,d!==null){let bt=d.views;y!==null&amp;amp;amp;&amp;amp;amp;(t.setRenderTargetFramebuffer(E,y.framebuffer),t.setRenderTarget(E));let Jt=!1;bt.length!==P.cameras.length&amp;amp;amp;&amp;amp;amp;(P.cameras.length=0,Jt=!0);for(let re=0;re&amp;amp;lt;bt.length;re++){let H=bt[re],ht=null;if(y!==null)ht=y.getViewport(H);else{let pt=m.getViewSubImage(g,H);ht=pt.viewport,re===0&amp;amp;amp;&amp;amp;amp;(t.setRenderTargetTextures(E,pt.colorTexture,pt.depthStencilTexture),t.setRenderTarget(E))}let rt=R[re];rt===void 0&amp;amp;amp;&amp;amp;amp;(rt=new Un,rt.layers.enable(re),rt.viewport=new Oe,R[re]=rt),rt.matrix.fromArray(H.transform.matrix),rt.matrix.decompose(rt.position,rt.quaternion,rt.scale),rt.projectionMatrix.fromArray(H.projectionMatrix),rt.projectionMatrixInverse.copy(rt.projectionMatrix).invert(),rt.viewport.set(ht.x,ht.y,ht.width,ht.height),re===0&amp;amp;amp;&amp;amp;amp;(P.matrix.copy(rt.matrix),P.matrix.decompose(P.position,P.quaternion,P.scale)),Jt===!0&amp;amp;amp;&amp;amp;amp;P.cameras.push(rt)}let Zt=a.enabledFeatures;if(Zt&amp;amp;amp;&amp;amp;amp;Zt.includes(&amp;amp;quot;depth-sensing&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;a.depthUsage==&amp;amp;quot;gpu-optimized&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;m){let re=m.getDepthInformation(bt[0]);re&amp;amp;amp;&amp;amp;amp;re.isValid&amp;amp;amp;&amp;amp;amp;re.texture&amp;amp;amp;&amp;amp;amp;b.init(re,a.renderState)}if(Zt&amp;amp;amp;&amp;amp;amp;Zt.includes(&amp;amp;quot;camera-access&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(t.state.unbindTexture(),m))for(let re=0;re&amp;amp;lt;bt.length;re++){let H=bt[re].camera;if(H){let ht=M[H];ht||(ht=new vx,M[H]=ht);let rt=m.getCameraImage(H);ht.sourceTexture=rt}}}for(let bt=0;bt&amp;amp;lt;T.length;bt++){let Jt=w[bt],Zt=T[bt];Jt!==null&amp;amp;amp;&amp;amp;amp;Zt!==void 0&amp;amp;amp;&amp;amp;amp;Zt.update(Jt,wt,h||o)}It&amp;amp;amp;&amp;amp;amp;It(it,wt),wt.detectedPlanes&amp;amp;amp;&amp;amp;amp;i.dispatchEvent({type:&amp;amp;quot;planesdetected&amp;amp;quot;,data:wt}),x=null}let Qt=new jO;Qt.setAnimationLoop(se),this.setAnimationLoop=function(it){It=it},this.dispose=function(){}}},Vu=new sa,D8=new fe;function U8(n,t){function e(M,v){M.matrixAutoUpdate===!0&amp;amp;amp;&amp;amp;amp;M.updateMatrix(),v.value.copy(M.matrix)}function i(M,v){v.color.getRGB(M.fogColor.value,OT(n)),v.isFog?(M.fogNear.value=v.near,M.fogFar.value=v.far):v.isFogExp2&amp;amp;amp;&amp;amp;amp;(M.fogDensity.value=v.density)}function a(M,v,S,E,T){v.isMeshBasicMaterial||v.isMeshLambertMaterial?s(M,v):v.isMeshToonMaterial?(s(M,v),m(M,v)):v.isMeshPhongMaterial?(s(M,v),d(M,v)):v.isMeshStandardMaterial?(s(M,v),g(M,v),v.isMeshPhysicalMaterial&amp;amp;amp;&amp;amp;amp;y(M,v,T)):v.isMeshMatcapMaterial?(s(M,v),x(M,v)):v.isMeshDepthMaterial?s(M,v):v.isMeshDistanceMaterial?(s(M,v),b(M,v)):v.isMeshNormalMaterial?s(M,v):v.isLineBasicMaterial?(o(M,v),v.isLineDashedMaterial&amp;amp;amp;&amp;amp;amp;u(M,v)):v.isPointsMaterial?c(M,v,S,E):v.isSpriteMaterial?h(M,v):v.isShadowMaterial?(M.color.value.copy(v.color),M.opacity.value=v.opacity):v.isShaderMaterial&amp;amp;amp;&amp;amp;amp;(v.uniformsNeedUpdate=!1)}function s(M,v){M.opacity.value=v.opacity,v.color&amp;amp;amp;&amp;amp;amp;M.diffuse.value.copy(v.color),v.emissive&amp;amp;amp;&amp;amp;amp;M.emissive.value.copy(v.emissive).multiplyScalar(v.emissiveIntensity),v.map&amp;amp;amp;&amp;amp;amp;(M.map.value=v.map,e(v.map,M.mapTransform)),v.alphaMap&amp;amp;amp;&amp;amp;amp;(M.alphaMap.value=v.alphaMap,e(v.alphaMap,M.alphaMapTransform)),v.bumpMap&amp;amp;amp;&amp;amp;amp;(M.bumpMap.value=v.bumpMap,e(v.bumpMap,M.bumpMapTransform),M.bumpScale.value=v.bumpScale,v.side===Ni&amp;amp;amp;&amp;amp;amp;(M.bumpScale.value*=-1)),v.normalMap&amp;amp;amp;&amp;amp;amp;(M.normalMap.value=v.normalMap,e(v.normalMap,M.normalMapTransform),M.normalScale.value.copy(v.normalScale),v.side===Ni&amp;amp;amp;&amp;amp;amp;M.normalScale.value.negate()),v.displacementMap&amp;amp;amp;&amp;amp;amp;(M.displacementMap.value=v.displacementMap,e(v.displacementMap,M.displacementMapTransform),M.displacementScale.value=v.displacementScale,M.displacementBias.value=v.displacementBias),v.emissiveMap&amp;amp;amp;&amp;amp;amp;(M.emissiveMap.value=v.emissiveMap,e(v.emissiveMap,M.emissiveMapTransform)),v.specularMap&amp;amp;amp;&amp;amp;amp;(M.specularMap.value=v.specularMap,e(v.specularMap,M.specularMapTransform)),v.alphaTest&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.alphaTest.value=v.alphaTest);let S=t.get(v),E=S.envMap,T=S.envMapRotation;E&amp;amp;amp;&amp;amp;amp;(M.envMap.value=E,Vu.copy(T),Vu.x*=-1,Vu.y*=-1,Vu.z*=-1,E.isCubeTexture&amp;amp;amp;&amp;amp;amp;E.isRenderTargetTexture===!1&amp;amp;amp;&amp;amp;amp;(Vu.y*=-1,Vu.z*=-1),M.envMapRotation.value.setFromMatrix4(D8.makeRotationFromEuler(Vu)),M.flipEnvMap.value=E.isCubeTexture&amp;amp;amp;&amp;amp;amp;E.isRenderTargetTexture===!1?-1:1,M.reflectivity.value=v.reflectivity,M.ior.value=v.ior,M.refractionRatio.value=v.refractionRatio),v.lightMap&amp;amp;amp;&amp;amp;amp;(M.lightMap.value=v.lightMap,M.lightMapIntensity.value=v.lightMapIntensity,e(v.lightMap,M.lightMapTransform)),v.aoMap&amp;amp;amp;&amp;amp;amp;(M.aoMap.value=v.aoMap,M.aoMapIntensity.value=v.aoMapIntensity,e(v.aoMap,M.aoMapTransform))}function o(M,v){M.diffuse.value.copy(v.color),M.opacity.value=v.opacity,v.map&amp;amp;amp;&amp;amp;amp;(M.map.value=v.map,e(v.map,M.mapTransform))}function u(M,v){M.dashSize.value=v.dashSize,M.totalSize.value=v.dashSize+v.gapSize,M.scale.value=v.scale}function c(M,v,S,E){M.diffuse.value.copy(v.color),M.opacity.value=v.opacity,M.size.value=v.size*S,M.scale.value=E*.5,v.map&amp;amp;amp;&amp;amp;amp;(M.map.value=v.map,e(v.map,M.uvTransform)),v.alphaMap&amp;amp;amp;&amp;amp;amp;(M.alphaMap.value=v.alphaMap,e(v.alphaMap,M.alphaMapTransform)),v.alphaTest&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.alphaTest.value=v.alphaTest)}function h(M,v){M.diffuse.value.copy(v.color),M.opacity.value=v.opacity,M.rotation.value=v.rotation,v.map&amp;amp;amp;&amp;amp;amp;(M.map.value=v.map,e(v.map,M.mapTransform)),v.alphaMap&amp;amp;amp;&amp;amp;amp;(M.alphaMap.value=v.alphaMap,e(v.alphaMap,M.alphaMapTransform)),v.alphaTest&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.alphaTest.value=v.alphaTest)}function d(M,v){M.specular.value.copy(v.specular),M.shininess.value=Math.max(v.shininess,1e-4)}function m(M,v){v.gradientMap&amp;amp;amp;&amp;amp;amp;(M.gradientMap.value=v.gradientMap)}function g(M,v){M.metalness.value=v.metalness,v.metalnessMap&amp;amp;amp;&amp;amp;amp;(M.metalnessMap.value=v.metalnessMap,e(v.metalnessMap,M.metalnessMapTransform)),M.roughness.value=v.roughness,v.roughnessMap&amp;amp;amp;&amp;amp;amp;(M.roughnessMap.value=v.roughnessMap,e(v.roughnessMap,M.roughnessMapTransform)),v.envMap&amp;amp;amp;&amp;amp;amp;(M.envMapIntensity.value=v.envMapIntensity)}function y(M,v,S){M.ior.value=v.ior,v.sheen&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.sheenColor.value.copy(v.sheenColor).multiplyScalar(v.sheen),M.sheenRoughness.value=v.sheenRoughness,v.sheenColorMap&amp;amp;amp;&amp;amp;amp;(M.sheenColorMap.value=v.sheenColorMap,e(v.sheenColorMap,M.sheenColorMapTransform)),v.sheenRoughnessMap&amp;amp;amp;&amp;amp;amp;(M.sheenRoughnessMap.value=v.sheenRoughnessMap,e(v.sheenRoughnessMap,M.sheenRoughnessMapTransform))),v.clearcoat&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.clearcoat.value=v.clearcoat,M.clearcoatRoughness.value=v.clearcoatRoughness,v.clearcoatMap&amp;amp;amp;&amp;amp;amp;(M.clearcoatMap.value=v.clearcoatMap,e(v.clearcoatMap,M.clearcoatMapTransform)),v.clearcoatRoughnessMap&amp;amp;amp;&amp;amp;amp;(M.clearcoatRoughnessMap.value=v.clearcoatRoughnessMap,e(v.clearcoatRoughnessMap,M.clearcoatRoughnessMapTransform)),v.clearcoatNormalMap&amp;amp;amp;&amp;amp;amp;(M.clearcoatNormalMap.value=v.clearcoatNormalMap,e(v.clearcoatNormalMap,M.clearcoatNormalMapTransform),M.clearcoatNormalScale.value.copy(v.clearcoatNormalScale),v.side===Ni&amp;amp;amp;&amp;amp;amp;M.clearcoatNormalScale.value.negate())),v.dispersion&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.dispersion.value=v.dispersion),v.iridescence&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.iridescence.value=v.iridescence,M.iridescenceIOR.value=v.iridescenceIOR,M.iridescenceThicknessMinimum.value=v.iridescenceThicknessRange[0],M.iridescenceThicknessMaximum.value=v.iridescenceThicknessRange[1],v.iridescenceMap&amp;amp;amp;&amp;amp;amp;(M.iridescenceMap.value=v.iridescenceMap,e(v.iridescenceMap,M.iridescenceMapTransform)),v.iridescenceThicknessMap&amp;amp;amp;&amp;amp;amp;(M.iridescenceThicknessMap.value=v.iridescenceThicknessMap,e(v.iridescenceThicknessMap,M.iridescenceThicknessMapTransform))),v.transmission&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.transmission.value=v.transmission,M.transmissionSamplerMap.value=S.texture,M.transmissionSamplerSize.value.set(S.width,S.height),v.transmissionMap&amp;amp;amp;&amp;amp;amp;(M.transmissionMap.value=v.transmissionMap,e(v.transmissionMap,M.transmissionMapTransform)),M.thickness.value=v.thickness,v.thicknessMap&amp;amp;amp;&amp;amp;amp;(M.thicknessMap.value=v.thicknessMap,e(v.thicknessMap,M.thicknessMapTransform)),M.attenuationDistance.value=v.attenuationDistance,M.attenuationColor.value.copy(v.attenuationColor)),v.anisotropy&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(M.anisotropyVector.value.set(v.anisotropy*Math.cos(v.anisotropyRotation),v.anisotropy*Math.sin(v.anisotropyRotation)),v.anisotropyMap&amp;amp;amp;&amp;amp;amp;(M.anisotropyMap.value=v.anisotropyMap,e(v.anisotropyMap,M.anisotropyMapTransform))),M.specularIntensity.value=v.specularIntensity,M.specularColor.value.copy(v.specularColor),v.specularColorMap&amp;amp;amp;&amp;amp;amp;(M.specularColorMap.value=v.specularColorMap,e(v.specularColorMap,M.specularColorMapTransform)),v.specularIntensityMap&amp;amp;amp;&amp;amp;amp;(M.specularIntensityMap.value=v.specularIntensityMap,e(v.specularIntensityMap,M.specularIntensityMapTransform))}function x(M,v){v.matcap&amp;amp;amp;&amp;amp;amp;(M.matcap.value=v.matcap)}function b(M,v){let S=t.get(v).light;M.referencePosition.value.setFromMatrixPosition(S.matrixWorld),M.nearDistance.value=S.shadow.camera.near,M.farDistance.value=S.shadow.camera.far}return{refreshFogUniforms:i,refreshMaterialUniforms:a}}function N8(n,t,e,i){let a={},s={},o=[],u=n.getParameter(n.MAX_UNIFORM_BUFFER_BINDINGS);function c(S,E){let T=E.program;i.uniformBlockBinding(S,T)}function h(S,E){let T=a[S.id];T===void 0&amp;amp;amp;&amp;amp;amp;(x(S),T=d(S),a[S.id]=T,S.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,M));let w=E.program;i.updateUBOMapping(S,w);let U=t.render.frame;s[S.id]!==U&amp;amp;amp;&amp;amp;amp;(g(S),s[S.id]=U)}function d(S){let E=m();S.__bindingPointIndex=E;let T=n.createBuffer(),w=S.__size,U=S.usage;return n.bindBuffer(n.UNIFORM_BUFFER,T),n.bufferData(n.UNIFORM_BUFFER,w,U),n.bindBuffer(n.UNIFORM_BUFFER,null),n.bindBufferBase(n.UNIFORM_BUFFER,E,T),T}function m(){for(let S=0;S&amp;amp;lt;u;S++)if(o.indexOf(S)===-1)return o.push(S),S;return console.error(&amp;amp;quot;THREE.WebGLRenderer: Maximum number of simultaneously usable uniforms groups reached.&amp;amp;quot;),0}function g(S){let E=a[S.id],T=S.uniforms,w=S.__cache;n.bindBuffer(n.UNIFORM_BUFFER,E);for(let U=0,O=T.length;U&amp;amp;lt;O;U++){let z=Array.isArray(T[U])?T[U]:[T[U]];for(let C=0,R=z.length;C&amp;amp;lt;R;C++){let P=z[C];if(y(P,U,C,w)===!0){let j=P.__offset,X=Array.isArray(P.value)?P.value:[P.value],Z=0;for(let st=0;st&amp;amp;lt;X.length;st++){let et=X[st],mt=b(et);typeof et==&amp;amp;quot;number&amp;amp;quot;||typeof et==&amp;amp;quot;boolean&amp;amp;quot;?(P.__data[0]=et,n.bufferSubData(n.UNIFORM_BUFFER,j+Z,P.__data)):et.isMatrix3?(P.__data[0]=et.elements[0],P.__data[1]=et.elements[1],P.__data[2]=et.elements[2],P.__data[3]=0,P.__data[4]=et.elements[3],P.__data[5]=et.elements[4],P.__data[6]=et.elements[5],P.__data[7]=0,P.__data[8]=et.elements[6],P.__data[9]=et.elements[7],P.__data[10]=et.elements[8],P.__data[11]=0):(et.toArray(P.__data,Z),Z+=mt.storage/Float32Array.BYTES_PER_ELEMENT)}n.bufferSubData(n.UNIFORM_BUFFER,j,P.__data)}}}n.bindBuffer(n.UNIFORM_BUFFER,null)}function y(S,E,T,w){let U=S.value,O=E+&amp;amp;quot;_&amp;amp;quot;+T;if(w[O]===void 0)return typeof U==&amp;amp;quot;number&amp;amp;quot;||typeof U==&amp;amp;quot;boolean&amp;amp;quot;?w[O]=U:w[O]=U.clone(),!0;{let z=w[O];if(typeof U==&amp;amp;quot;number&amp;amp;quot;||typeof U==&amp;amp;quot;boolean&amp;amp;quot;){if(z!==U)return w[O]=U,!0}else if(z.equals(U)===!1)return z.copy(U),!0}return!1}function x(S){let E=S.uniforms,T=0,w=16;for(let O=0,z=E.length;O&amp;amp;lt;z;O++){let C=Array.isArray(E[O])?E[O]:[E[O]];for(let R=0,P=C.length;R&amp;amp;lt;P;R++){let j=C[R],X=Array.isArray(j.value)?j.value:[j.value];for(let Z=0,st=X.length;Z&amp;amp;lt;st;Z++){let et=X[Z],mt=b(et),K=T%w,_t=K%mt.boundary,Ut=K+_t;T+=_t,Ut!==0&amp;amp;amp;&amp;amp;amp;w-Ut&amp;amp;lt;mt.storage&amp;amp;amp;&amp;amp;amp;(T+=w-Ut),j.__data=new Float32Array(mt.storage/Float32Array.BYTES_PER_ELEMENT),j.__offset=T,T+=mt.storage}}}let U=T%w;return U&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(T+=w-U),S.__size=T,S.__cache={},this}function b(S){let E={boundary:0,storage:0};return typeof S==&amp;amp;quot;number&amp;amp;quot;||typeof S==&amp;amp;quot;boolean&amp;amp;quot;?(E.boundary=4,E.storage=4):S.isVector2?(E.boundary=8,E.storage=8):S.isVector3||S.isColor?(E.boundary=16,E.storage=12):S.isVector4?(E.boundary=16,E.storage=16):S.isMatrix3?(E.boundary=48,E.storage=48):S.isMatrix4?(E.boundary=64,E.storage=64):S.isTexture?console.warn(&amp;amp;quot;THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group.&amp;amp;quot;):console.warn(&amp;amp;quot;THREE.WebGLRenderer: Unsupported uniform value type.&amp;amp;quot;,S),E}function M(S){let E=S.target;E.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,M);let T=o.indexOf(E.__bindingPointIndex);o.splice(T,1),n.deleteBuffer(a[E.id]),delete a[E.id],delete s[E.id]}function v(){for(let S in a)n.deleteBuffer(a[S]);o=[],a={},s={}}return{bind:c,update:h,dispose:v}}var Hg=class{constructor(t={}){let{canvas:e=NT(),context:i=null,depth:a=!0,stencil:s=!1,alpha:o=!1,antialias:u=!1,premultipliedAlpha:c=!0,preserveDrawingBuffer:h=!1,powerPreference:d=&amp;amp;quot;default&amp;amp;quot;,failIfMajorPerformanceCaveat:m=!1,reversedDepthBuffer:g=!1}=t;this.isWebGLRenderer=!0;let y;if(i!==null){if(typeof WebGLRenderingContext&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i instanceof WebGLRenderingContext)throw new Error(&amp;amp;quot;THREE.WebGLRenderer: WebGL 1 is not supported since r163.&amp;amp;quot;);y=i.getContextAttributes().alpha}else y=o;let x=new Uint32Array(4),b=new Int32Array(4),M=null,v=null,S=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.toneMapping=us,this.toneMappingExposure=1,this.transmissionResolutionScale=1;let T=this,w=!1;this._outputColorSpace=ri;let U=0,O=0,z=null,C=-1,R=null,P=new Oe,j=new Oe,X=null,Z=new Bt(0),st=0,et=e.width,mt=e.height,K=1,_t=null,Ut=null,xt=new Oe(0,0,et,mt),It=new Oe(0,0,et,mt),se=!1,Qt=new Kr,it=!1,wt=!1,bt=new fe,Jt=new B,Zt=new Oe,te={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0},ke=!1;function re(){return z===null?K:1}let H=i;function ht(N,V){return e.getContext(N,V)}try{let N={alpha:!0,depth:a,stencil:s,antialias:u,premultipliedAlpha:c,preserveDrawingBuffer:h,powerPreference:d,failIfMajorPerformanceCaveat:m};if(&amp;amp;quot;setAttribute&amp;amp;quot;in e&amp;amp;amp;&amp;amp;amp;e.setAttribute(&amp;amp;quot;data-engine&amp;amp;quot;,`three.js r${&amp;amp;quot;179&amp;amp;quot;}`),e.addEventListener(&amp;amp;quot;webglcontextlost&amp;amp;quot;,Dt,!1),e.addEventListener(&amp;amp;quot;webglcontextrestored&amp;amp;quot;,Gt,!1),e.addEventListener(&amp;amp;quot;webglcontextcreationerror&amp;amp;quot;,St,!1),H===null){let V=&amp;amp;quot;webgl2&amp;amp;quot;;if(H=ht(V,N),H===null)throw ht(V)?new Error(&amp;amp;quot;Error creating WebGL context with your selected attributes.&amp;amp;quot;):new Error(&amp;amp;quot;Error creating WebGL context.&amp;amp;quot;)}}catch(N){throw console.error(&amp;amp;quot;THREE.WebGLRenderer: &amp;amp;quot;+N.message),N}let rt,pt,lt,Ct,dt,Rt,de,ue,I,D,k,nt,gt,at,jt,Tt,Wt,Ft,vt,Ot,ne,kt,Nt,me;function G(){rt=new K6(H),rt.init(),kt=new tL(H,rt),pt=new q6(H,rt,t,kt),lt=new A8(H,rt),pt.reversedDepthBuffer&amp;amp;amp;&amp;amp;amp;g&amp;amp;amp;&amp;amp;amp;lt.buffers.depth.setReversed(!0),Ct=new tG(H),dt=new d8,Rt=new R8(H,rt,lt,dt,pt,kt,Ct),de=new W6(T),ue=new Q6(T),I=new rF(H),Nt=new G6(H,I),D=new J6(H,I,Ct,Nt),k=new nG(H,D,I,Ct),vt=new eG(H,pt,Rt),Tt=new Y6(dt),nt=new h8(T,de,ue,rt,pt,Nt,Tt),gt=new U8(T,dt),at=new m8,jt=new S8(rt),Ft=new V6(T,de,ue,lt,k,y,c),Wt=new b8(T,k,pt),me=new N8(H,Ct,pt,lt),Ot=new X6(H,rt,Ct),ne=new $6(H,rt,Ct),Ct.programs=nt.programs,T.capabilities=pt,T.extensions=rt,T.properties=dt,T.renderLists=at,T.shadowMap=Wt,T.state=lt,T.info=Ct}G();let Mt=new $T(T,H);this.xr=Mt,this.getContext=function(){return H},this.getContextAttributes=function(){return H.getContextAttributes()},this.forceContextLoss=function(){let N=rt.get(&amp;amp;quot;WEBGL_lose_context&amp;amp;quot;);N&amp;amp;amp;&amp;amp;amp;N.loseContext()},this.forceContextRestore=function(){let N=rt.get(&amp;amp;quot;WEBGL_lose_context&amp;amp;quot;);N&amp;amp;amp;&amp;amp;amp;N.restoreContext()},this.getPixelRatio=function(){return K},this.setPixelRatio=function(N){N!==void 0&amp;amp;amp;&amp;amp;amp;(K=N,this.setSize(et,mt,!1))},this.getSize=function(N){return N.set(et,mt)},this.setSize=function(N,V,J=!0){if(Mt.isPresenting){console.warn(&amp;amp;quot;THREE.WebGLRenderer: Can&amp;amp;#39;t change size while VR device is presenting.&amp;amp;quot;);return}et=N,mt=V,e.width=Math.floor(N*K),e.height=Math.floor(V*K),J===!0&amp;amp;amp;&amp;amp;amp;(e.style.width=N+&amp;amp;quot;px&amp;amp;quot;,e.style.height=V+&amp;amp;quot;px&amp;amp;quot;),this.setViewport(0,0,N,V)},this.getDrawingBufferSize=function(N){return N.set(et*K,mt*K).floor()},this.setDrawingBufferSize=function(N,V,J){et=N,mt=V,K=J,e.width=Math.floor(N*J),e.height=Math.floor(V*J),this.setViewport(0,0,N,V)},this.getCurrentViewport=function(N){return N.copy(P)},this.getViewport=function(N){return N.copy(xt)},this.setViewport=function(N,V,J,$){N.isVector4?xt.set(N.x,N.y,N.z,N.w):xt.set(N,V,J,$),lt.viewport(P.copy(xt).multiplyScalar(K).round())},this.getScissor=function(N){return N.copy(It)},this.setScissor=function(N,V,J,$){N.isVector4?It.set(N.x,N.y,N.z,N.w):It.set(N,V,J,$),lt.scissor(j.copy(It).multiplyScalar(K).round())},this.getScissorTest=function(){return se},this.setScissorTest=function(N){lt.setScissorTest(se=N)},this.setOpaqueSort=function(N){_t=N},this.setTransparentSort=function(N){Ut=N},this.getClearColor=function(N){return N.copy(Ft.getClearColor())},this.setClearColor=function(){Ft.setClearColor(...arguments)},this.getClearAlpha=function(){return Ft.getClearAlpha()},this.setClearAlpha=function(){Ft.setClearAlpha(...arguments)},this.clear=function(N=!0,V=!0,J=!0){let $=0;if(N){let q=!1;if(z!==null){let yt=z.texture.format;q=yt===ug||yt===lg||yt===xh}if(q){let yt=z.texture.type,Lt=yt===la||yt===or||yt===zu||yt===Pu||yt===sg||yt===rg,Yt=Ft.getClearColor(),Vt=Ft.getClearAlpha(),ie=Yt.r,ae=Yt.g,Kt=Yt.b;Lt?(x[0]=ie,x[1]=ae,x[2]=Kt,x[3]=Vt,H.clearBufferuiv(H.COLOR,0,x)):(b[0]=ie,b[1]=ae,b[2]=Kt,b[3]=Vt,H.clearBufferiv(H.COLOR,0,b))}else $|=H.COLOR_BUFFER_BIT}V&amp;amp;amp;&amp;amp;amp;($|=H.DEPTH_BUFFER_BIT),J&amp;amp;amp;&amp;amp;amp;($|=H.STENCIL_BUFFER_BIT,this.state.buffers.stencil.setMask(4294967295)),H.clear($)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.dispose=function(){e.removeEventListener(&amp;amp;quot;webglcontextlost&amp;amp;quot;,Dt,!1),e.removeEventListener(&amp;amp;quot;webglcontextrestored&amp;amp;quot;,Gt,!1),e.removeEventListener(&amp;amp;quot;webglcontextcreationerror&amp;amp;quot;,St,!1),Ft.dispose(),at.dispose(),jt.dispose(),dt.dispose(),de.dispose(),ue.dispose(),k.dispose(),Nt.dispose(),me.dispose(),nt.dispose(),Mt.dispose(),Mt.removeEventListener(&amp;amp;quot;sessionstart&amp;amp;quot;,ua),Mt.removeEventListener(&amp;amp;quot;sessionend&amp;amp;quot;,ku),fs.stop()};function Dt(N){N.preventDefault(),console.log(&amp;amp;quot;THREE.WebGLRenderer: Context Lost.&amp;amp;quot;),w=!0}function Gt(){console.log(&amp;amp;quot;THREE.WebGLRenderer: Context Restored.&amp;amp;quot;),w=!1;let N=Ct.autoReset,V=Wt.enabled,J=Wt.autoUpdate,$=Wt.needsUpdate,q=Wt.type;G(),Ct.autoReset=N,Wt.enabled=V,Wt.autoUpdate=J,Wt.needsUpdate=$,Wt.type=q}function St(N){console.error(&amp;amp;quot;THREE.WebGLRenderer: A WebGL context could not be created. Reason: &amp;amp;quot;,N.statusMessage)}function ut(N){let V=N.target;V.removeEventListener(&amp;amp;quot;dispose&amp;amp;quot;,ut),qt(V)}function qt(N){oe(N),dt.remove(N)}function oe(N){let V=dt.get(N).programs;V!==void 0&amp;amp;amp;&amp;amp;amp;(V.forEach(function(J){nt.releaseProgram(J)}),N.isShaderMaterial&amp;amp;amp;&amp;amp;amp;nt.releaseShaderCache(N))}this.renderBufferDirect=function(N,V,J,$,q,yt){V===null&amp;amp;amp;&amp;amp;amp;(V=te);let Lt=q.isMesh&amp;amp;amp;&amp;amp;amp;q.matrixWorld.determinant()&amp;amp;lt;0,Yt=Wg(N,V,J,$,q);lt.setMaterial($,Lt);let Vt=J.index,ie=1;if($.wireframe===!0){if(Vt=D.getWireframeAttribute(J),Vt===void 0)return;ie=2}let ae=J.drawRange,Kt=J.attributes.position,Me=ae.start*ie,Fe=(ae.start+ae.count)*ie;yt!==null&amp;amp;amp;&amp;amp;amp;(Me=Math.max(Me,yt.start*ie),Fe=Math.min(Fe,(yt.start+yt.count)*ie)),Vt!==null?(Me=Math.max(Me,0),Fe=Math.min(Fe,Vt.count)):Kt!=null&amp;amp;amp;&amp;amp;amp;(Me=Math.max(Me,0),Fe=Math.min(Fe,Kt.count));let hn=Fe-Me;if(hn&amp;amp;lt;0||hn===1/0)return;Nt.setup(q,$,Yt,J,Vt);let Ze,qe=Ot;if(Vt!==null&amp;amp;amp;&amp;amp;amp;(Ze=I.get(Vt),qe=ne,qe.setIndex(Ze)),q.isMesh)$.wireframe===!0?(lt.setLineWidth($.wireframeLinewidth*re()),qe.setMode(H.LINES)):qe.setMode(H.TRIANGLES);else if(q.isLine){let ee=$.linewidth;ee===void 0&amp;amp;amp;&amp;amp;amp;(ee=1),lt.setLineWidth(ee*re()),q.isLineSegments?qe.setMode(H.LINES):q.isLineLoop?qe.setMode(H.LINE_LOOP):qe.setMode(H.LINE_STRIP)}else q.isPoints?qe.setMode(H.POINTS):q.isSprite&amp;amp;amp;&amp;amp;amp;qe.setMode(H.TRIANGLES);if(q.isBatchedMesh)if(q._multiDrawInstances!==null)_u(&amp;amp;quot;THREE.WebGLRenderer: renderMultiDrawInstances has been deprecated and will be removed in r184. Append to renderMultiDraw arguments and use indirection.&amp;amp;quot;),qe.renderMultiDrawInstances(q._multiDrawStarts,q._multiDrawCounts,q._multiDrawCount,q._multiDrawInstances);else if(rt.get(&amp;amp;quot;WEBGL_multi_draw&amp;amp;quot;))qe.renderMultiDraw(q._multiDrawStarts,q._multiDrawCounts,q._multiDrawCount);else{let ee=q._multiDrawStarts,on=q._multiDrawCounts,De=q._multiDrawCount,_i=Vt?I.get(Vt).bytesPerElement:1,zs=dt.get($).currentProgram.getUniforms();for(let xi=0;xi&amp;amp;lt;De;xi++)zs.setValue(H,&amp;amp;quot;_gl_DrawID&amp;amp;quot;,xi),qe.render(ee[xi]/_i,on[xi])}else if(q.isInstancedMesh)qe.renderInstances(Me,hn,q.count);else if(J.isInstancedBufferGeometry){let ee=J._maxInstanceCount!==void 0?J._maxInstanceCount:1/0,on=Math.min(J.instanceCount,ee);qe.renderInstances(Me,hn,on)}else qe.render(Me,hn)};function He(N,V,J){N.transparent===!0&amp;amp;amp;&amp;amp;amp;N.side===Ds&amp;amp;amp;&amp;amp;amp;N.forceSinglePass===!1?(N.side=Ni,N.needsUpdate=!0,rn(N,V,J),N.side=tr,N.needsUpdate=!0,rn(N,V,J),N.side=Ds):rn(N,V,J)}this.compile=function(N,V,J=null){J===null&amp;amp;amp;&amp;amp;amp;(J=N),v=jt.get(J),v.init(V),E.push(v),J.traverseVisible(function(q){q.isLight&amp;amp;amp;&amp;amp;amp;q.layers.test(V.layers)&amp;amp;amp;&amp;amp;amp;(v.pushLight(q),q.castShadow&amp;amp;amp;&amp;amp;amp;v.pushShadow(q))}),N!==J&amp;amp;amp;&amp;amp;amp;N.traverseVisible(function(q){q.isLight&amp;amp;amp;&amp;amp;amp;q.layers.test(V.layers)&amp;amp;amp;&amp;amp;amp;(v.pushLight(q),q.castShadow&amp;amp;amp;&amp;amp;amp;v.pushShadow(q))}),v.setupLights();let $=new Set;return N.traverse(function(q){if(!(q.isMesh||q.isPoints||q.isLine||q.isSprite))return;let yt=q.material;if(yt)if(Array.isArray(yt))for(let Lt=0;Lt&amp;amp;lt;yt.length;Lt++){let Yt=yt[Lt];He(Yt,J,q),$.add(Yt)}else He(yt,J,q),$.add(yt)}),v=E.pop(),$},this.compileAsync=function(N,V,J=null){let $=this.compile(N,V,J);return new Promise(q=&amp;amp;gt;{function yt(){if($.forEach(function(Lt){dt.get(Lt).currentProgram.isReady()&amp;amp;amp;&amp;amp;amp;$.delete(Lt)}),$.size===0){q(N);return}setTimeout(yt,10)}rt.get(&amp;amp;quot;KHR_parallel_shader_compile&amp;amp;quot;)!==null?yt():setTimeout(yt,10)})};let Le=null;function Ha(N){Le&amp;amp;amp;&amp;amp;amp;Le(N)}function ua(){fs.stop()}function ku(){fs.start()}let fs=new jO;fs.setAnimationLoop(Ha),typeof self&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;fs.setContext(self),this.setAnimationLoop=function(N){Le=N,Mt.setAnimationLoop(N),N===null?fs.stop():fs.start()},Mt.addEventListener(&amp;amp;quot;sessionstart&amp;amp;quot;,ua),Mt.addEventListener(&amp;amp;quot;sessionend&amp;amp;quot;,ku),this.render=function(N,V){if(V!==void 0&amp;amp;amp;&amp;amp;amp;V.isCamera!==!0){console.error(&amp;amp;quot;THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.&amp;amp;quot;);return}if(w===!0)return;if(N.matrixWorldAutoUpdate===!0&amp;amp;amp;&amp;amp;amp;N.updateMatrixWorld(),V.parent===null&amp;amp;amp;&amp;amp;amp;V.matrixWorldAutoUpdate===!0&amp;amp;amp;&amp;amp;amp;V.updateMatrixWorld(),Mt.enabled===!0&amp;amp;amp;&amp;amp;amp;Mt.isPresenting===!0&amp;amp;amp;&amp;amp;amp;(Mt.cameraAutoUpdate===!0&amp;amp;amp;&amp;amp;amp;Mt.updateCamera(V),V=Mt.getCamera()),N.isScene===!0&amp;amp;amp;&amp;amp;amp;N.onBeforeRender(T,N,V,z),v=jt.get(N,E.length),v.init(V),E.push(v),bt.multiplyMatrices(V.projectionMatrix,V.matrixWorldInverse),Qt.setFromProjectionMatrix(bt,aa,V.reversedDepth),wt=this.localClippingEnabled,it=Tt.init(this.clippingPlanes,wt),M=at.get(N,S.length),M.init(),S.push(M),Mt.enabled===!0&amp;amp;amp;&amp;amp;amp;Mt.isPresenting===!0){let yt=T.xr.getDepthSensingMesh();yt!==null&amp;amp;amp;&amp;amp;amp;Fa(yt,V,-1/0,T.sortObjects)}Fa(N,V,0,T.sortObjects),M.finish(),T.sortObjects===!0&amp;amp;amp;&amp;amp;amp;M.sort(_t,Ut),ke=Mt.enabled===!1||Mt.isPresenting===!1||Mt.hasDepthSensing()===!1,ke&amp;amp;amp;&amp;amp;amp;Ft.addToRenderList(M,N),this.info.render.frame++,it===!0&amp;amp;amp;&amp;amp;amp;Tt.beginShadows();let J=v.state.shadowsArray;Wt.render(J,N,V),it===!0&amp;amp;amp;&amp;amp;amp;Tt.endShadows(),this.info.autoReset===!0&amp;amp;amp;&amp;amp;amp;this.info.reset();let $=M.opaque,q=M.transmissive;if(v.setupLights(),V.isArrayCamera){let yt=V.cameras;if(q.length&amp;amp;gt;0)for(let Lt=0,Yt=yt.length;Lt&amp;amp;lt;Yt;Lt++){let Vt=yt[Lt];hs($,q,N,Vt)}ke&amp;amp;amp;&amp;amp;amp;Ft.render(N);for(let Lt=0,Yt=yt.length;Lt&amp;amp;lt;Yt;Lt++){let Vt=yt[Lt];Ih(M,N,Vt,Vt.viewport)}}else q.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;hs($,q,N,V),ke&amp;amp;amp;&amp;amp;amp;Ft.render(N),Ih(M,N,V);z!==null&amp;amp;amp;&amp;amp;amp;O===0&amp;amp;amp;&amp;amp;amp;(Rt.updateMultisampleRenderTarget(z),Rt.updateRenderTargetMipmap(z)),N.isScene===!0&amp;amp;amp;&amp;amp;amp;N.onAfterRender(T,N,V),Nt.resetDefaultState(),C=-1,R=null,E.pop(),E.length&amp;amp;gt;0?(v=E[E.length-1],it===!0&amp;amp;amp;&amp;amp;amp;Tt.setGlobalState(T.clippingPlanes,v.state.camera)):v=null,S.pop(),S.length&amp;amp;gt;0?M=S[S.length-1]:M=null};function Fa(N,V,J,$){if(N.visible===!1)return;if(N.layers.test(V.layers)){if(N.isGroup)J=N.renderOrder;else if(N.isLOD)N.autoUpdate===!0&amp;amp;amp;&amp;amp;amp;N.update(V);else if(N.isLight)v.pushLight(N),N.castShadow&amp;amp;amp;&amp;amp;amp;v.pushShadow(N);else if(N.isSprite){if(!N.frustumCulled||Qt.intersectsSprite(N)){$&amp;amp;amp;&amp;amp;amp;Zt.setFromMatrixPosition(N.matrixWorld).applyMatrix4(bt);let Lt=k.update(N),Yt=N.material;Yt.visible&amp;amp;amp;&amp;amp;amp;M.push(N,Lt,Yt,J,Zt.z,null)}}else if((N.isMesh||N.isLine||N.isPoints)&amp;amp;amp;&amp;amp;amp;(!N.frustumCulled||Qt.intersectsObject(N))){let Lt=k.update(N),Yt=N.material;if($&amp;amp;amp;&amp;amp;amp;(N.boundingSphere!==void 0?(N.boundingSphere===null&amp;amp;amp;&amp;amp;amp;N.computeBoundingSphere(),Zt.copy(N.boundingSphere.center)):(Lt.boundingSphere===null&amp;amp;amp;&amp;amp;amp;Lt.computeBoundingSphere(),Zt.copy(Lt.boundingSphere.center)),Zt.applyMatrix4(N.matrixWorld).applyMatrix4(bt)),Array.isArray(Yt)){let Vt=Lt.groups;for(let ie=0,ae=Vt.length;ie&amp;amp;lt;ae;ie++){let Kt=Vt[ie],Me=Yt[Kt.materialIndex];Me&amp;amp;amp;&amp;amp;amp;Me.visible&amp;amp;amp;&amp;amp;amp;M.push(N,Lt,Me,J,Zt.z,Kt)}}else Yt.visible&amp;amp;amp;&amp;amp;amp;M.push(N,Lt,Yt,J,Zt.z,null)}}let yt=N.children;for(let Lt=0,Yt=yt.length;Lt&amp;amp;lt;Yt;Lt++)Fa(yt[Lt],V,J,$)}function Ih(N,V,J,$){let q=N.opaque,yt=N.transmissive,Lt=N.transparent;v.setupLightsView(J),it===!0&amp;amp;amp;&amp;amp;amp;Tt.setGlobalState(T.clippingPlanes,J),$&amp;amp;amp;&amp;amp;amp;lt.viewport(P.copy($)),q.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;Zi(q,V,J),yt.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;Zi(yt,V,J),Lt.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;Zi(Lt,V,J),lt.buffers.depth.setTest(!0),lt.buffers.depth.setMask(!0),lt.buffers.color.setMask(!0),lt.setPolygonOffset(!1)}function hs(N,V,J,$){if((J.isScene===!0?J.overrideMaterial:null)!==null)return;v.state.transmissionRenderTarget[$.id]===void 0&amp;amp;amp;&amp;amp;amp;(v.state.transmissionRenderTarget[$.id]=new za(1,1,{generateMipmaps:!0,type:rt.has(&amp;amp;quot;EXT_color_buffer_half_float&amp;amp;quot;)||rt.has(&amp;amp;quot;EXT_color_buffer_float&amp;amp;quot;)?Bu:la,minFilter:Us,samples:4,stencilBuffer:s,resolveDepthBuffer:!1,resolveStencilBuffer:!1,colorSpace:we.workingColorSpace}));let yt=v.state.transmissionRenderTarget[$.id],Lt=$.viewport||P;yt.setSize(Lt.z*T.transmissionResolutionScale,Lt.w*T.transmissionResolutionScale);let Yt=T.getRenderTarget(),Vt=T.getActiveCubeFace(),ie=T.getActiveMipmapLevel();T.setRenderTarget(yt),T.getClearColor(Z),st=T.getClearAlpha(),st&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;T.setClearColor(16777215,.5),T.clear(),ke&amp;amp;amp;&amp;amp;amp;Ft.render(J);let ae=T.toneMapping;T.toneMapping=us;let Kt=$.viewport;if($.viewport!==void 0&amp;amp;amp;&amp;amp;amp;($.viewport=void 0),v.setupLightsView($),it===!0&amp;amp;amp;&amp;amp;amp;Tt.setGlobalState(T.clippingPlanes,$),Zi(N,J,$),Rt.updateMultisampleRenderTarget(yt),Rt.updateRenderTargetMipmap(yt),rt.has(&amp;amp;quot;WEBGL_multisampled_render_to_texture&amp;amp;quot;)===!1){let Me=!1;for(let Fe=0,hn=V.length;Fe&amp;amp;lt;hn;Fe++){let Ze=V[Fe],qe=Ze.object,ee=Ze.geometry,on=Ze.material,De=Ze.group;if(on.side===Ds&amp;amp;amp;&amp;amp;amp;qe.layers.test($.layers)){let _i=on.side;on.side=Ni,on.needsUpdate=!0,yl(qe,J,$,ee,on,De),on.side=_i,on.needsUpdate=!0,Me=!0}}Me===!0&amp;amp;amp;&amp;amp;amp;(Rt.updateMultisampleRenderTarget(yt),Rt.updateRenderTargetMipmap(yt))}T.setRenderTarget(Yt,Vt,ie),T.setClearColor(Z,st),Kt!==void 0&amp;amp;amp;&amp;amp;amp;($.viewport=Kt),T.toneMapping=ae}function Zi(N,V,J){let $=V.isScene===!0?V.overrideMaterial:null;for(let q=0,yt=N.length;q&amp;amp;lt;yt;q++){let Lt=N[q],Yt=Lt.object,Vt=Lt.geometry,ie=Lt.group,ae=Lt.material;ae.allowOverride===!0&amp;amp;amp;&amp;amp;amp;$!==null&amp;amp;amp;&amp;amp;amp;(ae=$),Yt.layers.test(J.layers)&amp;amp;amp;&amp;amp;amp;yl(Yt,V,J,Vt,ae,ie)}}function yl(N,V,J,$,q,yt){N.onBeforeRender(T,V,J,$,q,yt),N.modelViewMatrix.multiplyMatrices(J.matrixWorldInverse,N.matrixWorld),N.normalMatrix.getNormalMatrix(N.modelViewMatrix),q.onBeforeRender(T,V,J,$,N,yt),q.transparent===!0&amp;amp;amp;&amp;amp;amp;q.side===Ds&amp;amp;amp;&amp;amp;amp;q.forceSinglePass===!1?(q.side=Ni,q.needsUpdate=!0,T.renderBufferDirect(J,V,$,q,N,yt),q.side=tr,q.needsUpdate=!0,T.renderBufferDirect(J,V,$,q,N,yt),q.side=Ds):T.renderBufferDirect(J,V,$,q,N,yt),N.onAfterRender(T,V,J,$,q,yt)}function rn(N,V,J){V.isScene!==!0&amp;amp;amp;&amp;amp;amp;(V=te);let $=dt.get(N),q=v.state.lights,yt=v.state.shadowsArray,Lt=q.state.version,Yt=nt.getParameters(N,q.state,yt,V,J),Vt=nt.getProgramCacheKey(Yt),ie=$.programs;$.environment=N.isMeshStandardMaterial?V.environment:null,$.fog=V.fog,$.envMap=(N.isMeshStandardMaterial?ue:de).get(N.envMap||$.environment),$.envMapRotation=$.environment!==null&amp;amp;amp;&amp;amp;amp;N.envMap===null?V.environmentRotation:N.envMapRotation,ie===void 0&amp;amp;amp;&amp;amp;amp;(N.addEventListener(&amp;amp;quot;dispose&amp;amp;quot;,ut),ie=new Map,$.programs=ie);let ae=ie.get(Vt);if(ae!==void 0){if($.currentProgram===ae&amp;amp;amp;&amp;amp;amp;$.lightsStateVersion===Lt)return ju(N,Yt),ae}else Yt.uniforms=nt.getUniforms(N),N.onBeforeCompile(Yt,T),ae=nt.acquireProgram(Yt,Vt),ie.set(Vt,ae),$.uniforms=Yt.uniforms;let Kt=$.uniforms;return(!N.isShaderMaterial&amp;amp;amp;&amp;amp;amp;!N.isRawShaderMaterial||N.clipping===!0)&amp;amp;amp;&amp;amp;amp;(Kt.clippingPlanes=Tt.uniform),ju(N,Yt),$.needsLights=Vx(N),$.lightsStateVersion=Lt,$.needsLights&amp;amp;amp;&amp;amp;amp;(Kt.ambientLightColor.value=q.state.ambient,Kt.lightProbe.value=q.state.probe,Kt.directionalLights.value=q.state.directional,Kt.directionalLightShadows.value=q.state.directionalShadow,Kt.spotLights.value=q.state.spot,Kt.spotLightShadows.value=q.state.spotShadow,Kt.rectAreaLights.value=q.state.rectArea,Kt.ltc_1.value=q.state.rectAreaLTC1,Kt.ltc_2.value=q.state.rectAreaLTC2,Kt.pointLights.value=q.state.point,Kt.pointLightShadows.value=q.state.pointShadow,Kt.hemisphereLights.value=q.state.hemi,Kt.directionalShadowMap.value=q.state.directionalShadowMap,Kt.directionalShadowMatrix.value=q.state.directionalShadowMatrix,Kt.spotShadowMap.value=q.state.spotShadowMap,Kt.spotLightMatrix.value=q.state.spotLightMatrix,Kt.spotLightMap.value=q.state.spotLightMap,Kt.pointShadowMap.value=q.state.pointShadowMap,Kt.pointShadowMatrix.value=q.state.pointShadowMatrix),$.currentProgram=ae,$.uniformsList=null,ae}function Zu(N){if(N.uniformsList===null){let V=N.currentProgram.getUniforms();N.uniformsList=Ch.seqWithValue(V.seq,N.uniforms)}return N.uniformsList}function ju(N,V){let J=dt.get(N);J.outputColorSpace=V.outputColorSpace,J.batching=V.batching,J.batchingColor=V.batchingColor,J.instancing=V.instancing,J.instancingColor=V.instancingColor,J.instancingMorph=V.instancingMorph,J.skinning=V.skinning,J.morphTargets=V.morphTargets,J.morphNormals=V.morphNormals,J.morphColors=V.morphColors,J.morphTargetsCount=V.morphTargetsCount,J.numClippingPlanes=V.numClippingPlanes,J.numIntersection=V.numClipIntersection,J.vertexAlphas=V.vertexAlphas,J.vertexTangents=V.vertexTangents,J.toneMapping=V.toneMapping}function Wg(N,V,J,$,q){V.isScene!==!0&amp;amp;amp;&amp;amp;amp;(V=te),Rt.resetTextureUnits();let yt=V.fog,Lt=$.isMeshStandardMaterial?V.environment:null,Yt=z===null?T.outputColorSpace:z.isXRRenderTarget===!0?z.texture.colorSpace:er,Vt=($.isMeshStandardMaterial?ue:de).get($.envMap||Lt),ie=$.vertexColors===!0&amp;amp;amp;&amp;amp;amp;!!J.attributes.color&amp;amp;amp;&amp;amp;amp;J.attributes.color.itemSize===4,ae=!!J.attributes.tangent&amp;amp;amp;&amp;amp;amp;(!!$.normalMap||$.anisotropy&amp;amp;gt;0),Kt=!!J.morphAttributes.position,Me=!!J.morphAttributes.normal,Fe=!!J.morphAttributes.color,hn=us;$.toneMapped&amp;amp;amp;&amp;amp;amp;(z===null||z.isXRRenderTarget===!0)&amp;amp;amp;&amp;amp;amp;(hn=T.toneMapping);let Ze=J.morphAttributes.position||J.morphAttributes.normal||J.morphAttributes.color,qe=Ze!==void 0?Ze.length:0,ee=dt.get($),on=v.state.lights;if(it===!0&amp;amp;amp;&amp;amp;amp;(wt===!0||N!==R)){let ci=N===R&amp;amp;amp;&amp;amp;amp;$.id===C;Tt.setState($,N,ci)}let De=!1;$.version===ee.__version?(ee.needsLights&amp;amp;amp;&amp;amp;amp;ee.lightsStateVersion!==on.state.version||ee.outputColorSpace!==Yt||q.isBatchedMesh&amp;amp;amp;&amp;amp;amp;ee.batching===!1||!q.isBatchedMesh&amp;amp;amp;&amp;amp;amp;ee.batching===!0||q.isBatchedMesh&amp;amp;amp;&amp;amp;amp;ee.batchingColor===!0&amp;amp;amp;&amp;amp;amp;q.colorTexture===null||q.isBatchedMesh&amp;amp;amp;&amp;amp;amp;ee.batchingColor===!1&amp;amp;amp;&amp;amp;amp;q.colorTexture!==null||q.isInstancedMesh&amp;amp;amp;&amp;amp;amp;ee.instancing===!1||!q.isInstancedMesh&amp;amp;amp;&amp;amp;amp;ee.instancing===!0||q.isSkinnedMesh&amp;amp;amp;&amp;amp;amp;ee.skinning===!1||!q.isSkinnedMesh&amp;amp;amp;&amp;amp;amp;ee.skinning===!0||q.isInstancedMesh&amp;amp;amp;&amp;amp;amp;ee.instancingColor===!0&amp;amp;amp;&amp;amp;amp;q.instanceColor===null||q.isInstancedMesh&amp;amp;amp;&amp;amp;amp;ee.instancingColor===!1&amp;amp;amp;&amp;amp;amp;q.instanceColor!==null||q.isInstancedMesh&amp;amp;amp;&amp;amp;amp;ee.instancingMorph===!0&amp;amp;amp;&amp;amp;amp;q.morphTexture===null||q.isInstancedMesh&amp;amp;amp;&amp;amp;amp;ee.instancingMorph===!1&amp;amp;amp;&amp;amp;amp;q.morphTexture!==null||ee.envMap!==Vt||$.fog===!0&amp;amp;amp;&amp;amp;amp;ee.fog!==yt||ee.numClippingPlanes!==void 0&amp;amp;amp;&amp;amp;amp;(ee.numClippingPlanes!==Tt.numPlanes||ee.numIntersection!==Tt.numIntersection)||ee.vertexAlphas!==ie||ee.vertexTangents!==ae||ee.morphTargets!==Kt||ee.morphNormals!==Me||ee.morphColors!==Fe||ee.toneMapping!==hn||ee.morphTargetsCount!==qe)&amp;amp;amp;&amp;amp;amp;(De=!0):(De=!0,ee.__version=$.version);let _i=ee.currentProgram;De===!0&amp;amp;amp;&amp;amp;amp;(_i=rn($,V,q));let zs=!1,xi=!1,io=!1,ln=_i.getUniforms(),zi=ee.uniforms;if(lt.useProgram(_i.program)&amp;amp;amp;&amp;amp;amp;(zs=!0,xi=!0,io=!0),$.id!==C&amp;amp;amp;&amp;amp;amp;(C=$.id,xi=!0),zs||R!==N){lt.buffers.depth.getReversed()&amp;amp;amp;&amp;amp;amp;N.reversedDepth!==!0&amp;amp;amp;&amp;amp;amp;(N._reversedDepth=!0,N.updateProjectionMatrix()),ln.setValue(H,&amp;amp;quot;projectionMatrix&amp;amp;quot;,N.projectionMatrix),ln.setValue(H,&amp;amp;quot;viewMatrix&amp;amp;quot;,N.matrixWorldInverse);let fi=ln.map.cameraPosition;fi!==void 0&amp;amp;amp;&amp;amp;amp;fi.setValue(H,Jt.setFromMatrixPosition(N.matrixWorld)),pt.logarithmicDepthBuffer&amp;amp;amp;&amp;amp;amp;ln.setValue(H,&amp;amp;quot;logDepthBufFC&amp;amp;quot;,2/(Math.log(N.far+1)/Math.LN2)),($.isMeshPhongMaterial||$.isMeshToonMaterial||$.isMeshLambertMaterial||$.isMeshBasicMaterial||$.isMeshStandardMaterial||$.isShaderMaterial)&amp;amp;amp;&amp;amp;amp;ln.setValue(H,&amp;amp;quot;isOrthographic&amp;amp;quot;,N.isOrthographicCamera===!0),R!==N&amp;amp;amp;&amp;amp;amp;(R=N,xi=!0,io=!0)}if(q.isSkinnedMesh){ln.setOptional(H,q,&amp;amp;quot;bindMatrix&amp;amp;quot;),ln.setOptional(H,q,&amp;amp;quot;bindMatrixInverse&amp;amp;quot;);let ci=q.skeleton;ci&amp;amp;amp;&amp;amp;amp;(ci.boneTexture===null&amp;amp;amp;&amp;amp;amp;ci.computeBoneTexture(),ln.setValue(H,&amp;amp;quot;boneTexture&amp;amp;quot;,ci.boneTexture,Rt))}q.isBatchedMesh&amp;amp;amp;&amp;amp;amp;(ln.setOptional(H,q,&amp;amp;quot;batchingTexture&amp;amp;quot;),ln.setValue(H,&amp;amp;quot;batchingTexture&amp;amp;quot;,q._matricesTexture,Rt),ln.setOptional(H,q,&amp;amp;quot;batchingIdTexture&amp;amp;quot;),ln.setValue(H,&amp;amp;quot;batchingIdTexture&amp;amp;quot;,q._indirectTexture,Rt),ln.setOptional(H,q,&amp;amp;quot;batchingColorTexture&amp;amp;quot;),q._colorsTexture!==null&amp;amp;amp;&amp;amp;amp;ln.setValue(H,&amp;amp;quot;batchingColorTexture&amp;amp;quot;,q._colorsTexture,Rt));let Bi=J.morphAttributes;if((Bi.position!==void 0||Bi.normal!==void 0||Bi.color!==void 0)&amp;amp;amp;&amp;amp;amp;vt.update(q,J,_i),(xi||ee.receiveShadow!==q.receiveShadow)&amp;amp;amp;&amp;amp;amp;(ee.receiveShadow=q.receiveShadow,ln.setValue(H,&amp;amp;quot;receiveShadow&amp;amp;quot;,q.receiveShadow)),$.isMeshGouraudMaterial&amp;amp;amp;&amp;amp;amp;$.envMap!==null&amp;amp;amp;&amp;amp;amp;(zi.envMap.value=Vt,zi.flipEnvMap.value=Vt.isCubeTexture&amp;amp;amp;&amp;amp;amp;Vt.isRenderTargetTexture===!1?-1:1),$.isMeshStandardMaterial&amp;amp;amp;&amp;amp;amp;$.envMap===null&amp;amp;amp;&amp;amp;amp;V.environment!==null&amp;amp;amp;&amp;amp;amp;(zi.envMapIntensity.value=V.environmentIntensity),xi&amp;amp;amp;&amp;amp;amp;(ln.setValue(H,&amp;amp;quot;toneMappingExposure&amp;amp;quot;,T.toneMappingExposure),ee.needsLights&amp;amp;amp;&amp;amp;amp;kg(zi,io),yt&amp;amp;amp;&amp;amp;amp;$.fog===!0&amp;amp;amp;&amp;amp;amp;gt.refreshFogUniforms(zi,yt),gt.refreshMaterialUniforms(zi,$,K,mt,v.state.transmissionRenderTarget[N.id]),Ch.upload(H,Zu(ee),zi,Rt)),$.isShaderMaterial&amp;amp;amp;&amp;amp;amp;$.uniformsNeedUpdate===!0&amp;amp;amp;&amp;amp;amp;(Ch.upload(H,Zu(ee),zi,Rt),$.uniformsNeedUpdate=!1),$.isSpriteMaterial&amp;amp;amp;&amp;amp;amp;ln.setValue(H,&amp;amp;quot;center&amp;amp;quot;,q.center),ln.setValue(H,&amp;amp;quot;modelViewMatrix&amp;amp;quot;,q.modelViewMatrix),ln.setValue(H,&amp;amp;quot;normalMatrix&amp;amp;quot;,q.normalMatrix),ln.setValue(H,&amp;amp;quot;modelMatrix&amp;amp;quot;,q.matrixWorld),$.isShaderMaterial||$.isRawShaderMaterial){let ci=$.uniformsGroups;for(let fi=0,Bs=ci.length;fi&amp;amp;lt;Bs;fi++){let Ps=ci[fi];me.update(Ps,_i),me.bind(Ps,_i)}}return _i}function kg(N,V){N.ambientLightColor.needsUpdate=V,N.lightProbe.needsUpdate=V,N.directionalLights.needsUpdate=V,N.directionalLightShadows.needsUpdate=V,N.pointLights.needsUpdate=V,N.pointLightShadows.needsUpdate=V,N.spotLights.needsUpdate=V,N.spotLightShadows.needsUpdate=V,N.rectAreaLights.needsUpdate=V,N.hemisphereLights.needsUpdate=V}function Vx(N){return N.isMeshLambertMaterial||N.isMeshToonMaterial||N.isMeshPhongMaterial||N.isMeshStandardMaterial||N.isShadowMaterial||N.isShaderMaterial&amp;amp;amp;&amp;amp;amp;N.lights===!0}this.getActiveCubeFace=function(){return U},this.getActiveMipmapLevel=function(){return O},this.getRenderTarget=function(){return z},this.setRenderTargetTextures=function(N,V,J){let $=dt.get(N);$.__autoAllocateDepthBuffer=N.resolveDepthBuffer===!1,$.__autoAllocateDepthBuffer===!1&amp;amp;amp;&amp;amp;amp;($.__useRenderToTexture=!1),dt.get(N.texture).__webglTexture=V,dt.get(N.depthTexture).__webglTexture=$.__autoAllocateDepthBuffer?void 0:J,$.__hasExternalTextures=!0},this.setRenderTargetFramebuffer=function(N,V){let J=dt.get(N);J.__webglFramebuffer=V,J.__useDefaultFramebuffer=V===void 0};let Hh=H.createFramebuffer();this.setRenderTarget=function(N,V=0,J=0){z=N,U=V,O=J;let $=!0,q=null,yt=!1,Lt=!1;if(N){let Vt=dt.get(N);if(Vt.__useDefaultFramebuffer!==void 0)lt.bindFramebuffer(H.FRAMEBUFFER,null),$=!1;else if(Vt.__webglFramebuffer===void 0)Rt.setupRenderTarget(N);else if(Vt.__hasExternalTextures)Rt.rebindTextures(N,dt.get(N.texture).__webglTexture,dt.get(N.depthTexture).__webglTexture);else if(N.depthBuffer){let Kt=N.depthTexture;if(Vt.__boundDepthTexture!==Kt){if(Kt!==null&amp;amp;amp;&amp;amp;amp;dt.has(Kt)&amp;amp;amp;&amp;amp;amp;(N.width!==Kt.image.width||N.height!==Kt.image.height))throw new Error(&amp;amp;quot;WebGLRenderTarget: Attached DepthTexture is initialized to the incorrect size.&amp;amp;quot;);Rt.setupDepthRenderbuffer(N)}}let ie=N.texture;(ie.isData3DTexture||ie.isDataArrayTexture||ie.isCompressedArrayTexture)&amp;amp;amp;&amp;amp;amp;(Lt=!0);let ae=dt.get(N).__webglFramebuffer;N.isWebGLCubeRenderTarget?(Array.isArray(ae[V])?q=ae[V][J]:q=ae[V],yt=!0):N.samples&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;Rt.useMultisampledRTT(N)===!1?q=dt.get(N).__webglMultisampledFramebuffer:Array.isArray(ae)?q=ae[J]:q=ae,P.copy(N.viewport),j.copy(N.scissor),X=N.scissorTest}else P.copy(xt).multiplyScalar(K).floor(),j.copy(It).multiplyScalar(K).floor(),X=se;if(J!==0&amp;amp;amp;&amp;amp;amp;(q=Hh),lt.bindFramebuffer(H.FRAMEBUFFER,q)&amp;amp;amp;&amp;amp;amp;$&amp;amp;amp;&amp;amp;amp;lt.drawBuffers(N,q),lt.viewport(P),lt.scissor(j),lt.setScissorTest(X),yt){let Vt=dt.get(N.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_CUBE_MAP_POSITIVE_X+V,Vt.__webglTexture,J)}else if(Lt){let Vt=V;for(let ie=0;ie&amp;amp;lt;N.textures.length;ie++){let ae=dt.get(N.textures[ie]);H.framebufferTextureLayer(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0+ie,ae.__webglTexture,J,Vt)}}else if(N!==null&amp;amp;amp;&amp;amp;amp;J!==0){let Vt=dt.get(N.texture);H.framebufferTexture2D(H.FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_2D,Vt.__webglTexture,J)}C=-1},this.readRenderTargetPixels=function(N,V,J,$,q,yt,Lt,Yt=0){if(!(N&amp;amp;amp;&amp;amp;amp;N.isWebGLRenderTarget)){console.error(&amp;amp;quot;THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.&amp;amp;quot;);return}let Vt=dt.get(N).__webglFramebuffer;if(N.isWebGLCubeRenderTarget&amp;amp;amp;&amp;amp;amp;Lt!==void 0&amp;amp;amp;&amp;amp;amp;(Vt=Vt[Lt]),Vt){lt.bindFramebuffer(H.FRAMEBUFFER,Vt);try{let ie=N.textures[Yt],ae=ie.format,Kt=ie.type;if(!pt.textureFormatReadable(ae)){console.error(&amp;amp;quot;THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.&amp;amp;quot;);return}if(!pt.textureTypeReadable(Kt)){console.error(&amp;amp;quot;THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.&amp;amp;quot;);return}V&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;V&amp;amp;lt;=N.width-$&amp;amp;amp;&amp;amp;amp;J&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;J&amp;amp;lt;=N.height-q&amp;amp;amp;&amp;amp;amp;(N.textures.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;H.readBuffer(H.COLOR_ATTACHMENT0+Yt),H.readPixels(V,J,$,q,kt.convert(ae),kt.convert(Kt),yt))}finally{let ie=z!==null?dt.get(z).__webglFramebuffer:null;lt.bindFramebuffer(H.FRAMEBUFFER,ie)}}},this.readRenderTargetPixelsAsync=async function(N,V,J,$,q,yt,Lt,Yt=0){if(!(N&amp;amp;amp;&amp;amp;amp;N.isWebGLRenderTarget))throw new Error(&amp;amp;quot;THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.&amp;amp;quot;);let Vt=dt.get(N).__webglFramebuffer;if(N.isWebGLCubeRenderTarget&amp;amp;amp;&amp;amp;amp;Lt!==void 0&amp;amp;amp;&amp;amp;amp;(Vt=Vt[Lt]),Vt)if(V&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;V&amp;amp;lt;=N.width-$&amp;amp;amp;&amp;amp;amp;J&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;J&amp;amp;lt;=N.height-q){lt.bindFramebuffer(H.FRAMEBUFFER,Vt);let ie=N.textures[Yt],ae=ie.format,Kt=ie.type;if(!pt.textureFormatReadable(ae))throw new Error(&amp;amp;quot;THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in RGBA or implementation defined format.&amp;amp;quot;);if(!pt.textureTypeReadable(Kt))throw new Error(&amp;amp;quot;THREE.WebGLRenderer.readRenderTargetPixelsAsync: renderTarget is not in UnsignedByteType or implementation defined type.&amp;amp;quot;);let Me=H.createBuffer();H.bindBuffer(H.PIXEL_PACK_BUFFER,Me),H.bufferData(H.PIXEL_PACK_BUFFER,yt.byteLength,H.STREAM_READ),N.textures.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;H.readBuffer(H.COLOR_ATTACHMENT0+Yt),H.readPixels(V,J,$,q,kt.convert(ae),kt.convert(Kt),0);let Fe=z!==null?dt.get(z).__webglFramebuffer:null;lt.bindFramebuffer(H.FRAMEBUFFER,Fe);let hn=H.fenceSync(H.SYNC_GPU_COMMANDS_COMPLETE,0);return H.flush(),await gO(H,hn,4),H.bindBuffer(H.PIXEL_PACK_BUFFER,Me),H.getBufferSubData(H.PIXEL_PACK_BUFFER,0,yt),H.deleteBuffer(Me),H.deleteSync(hn),yt}else throw new Error(&amp;amp;quot;THREE.WebGLRenderer.readRenderTargetPixelsAsync: requested read bounds are out of range.&amp;amp;quot;)},this.copyFramebufferToTexture=function(N,V=null,J=0){let $=Math.pow(2,-J),q=Math.floor(N.image.width*$),yt=Math.floor(N.image.height*$),Lt=V!==null?V.x:0,Yt=V!==null?V.y:0;Rt.setTexture2D(N,0),H.copyTexSubImage2D(H.TEXTURE_2D,J,0,0,Lt,Yt,q,yt),lt.unbindTexture()};let Fh=H.createFramebuffer(),Vh=H.createFramebuffer();this.copyTextureToTexture=function(N,V,J=null,$=null,q=0,yt=null){yt===null&amp;amp;amp;&amp;amp;amp;(q!==0?(_u(&amp;amp;quot;WebGLRenderer: copyTextureToTexture function signature has changed to support src and dst mipmap levels.&amp;amp;quot;),yt=q,q=0):yt=0);let Lt,Yt,Vt,ie,ae,Kt,Me,Fe,hn,Ze=N.isCompressedTexture?N.mipmaps[yt]:N.image;if(J!==null)Lt=J.max.x-J.min.x,Yt=J.max.y-J.min.y,Vt=J.isBox3?J.max.z-J.min.z:1,ie=J.min.x,ae=J.min.y,Kt=J.isBox3?J.min.z:0;else{let Bi=Math.pow(2,-q);Lt=Math.floor(Ze.width*Bi),Yt=Math.floor(Ze.height*Bi),N.isDataArrayTexture?Vt=Ze.depth:N.isData3DTexture?Vt=Math.floor(Ze.depth*Bi):Vt=1,ie=0,ae=0,Kt=0}$!==null?(Me=$.x,Fe=$.y,hn=$.z):(Me=0,Fe=0,hn=0);let qe=kt.convert(V.format),ee=kt.convert(V.type),on;V.isData3DTexture?(Rt.setTexture3D(V,0),on=H.TEXTURE_3D):V.isDataArrayTexture||V.isCompressedArrayTexture?(Rt.setTexture2DArray(V,0),on=H.TEXTURE_2D_ARRAY):(Rt.setTexture2D(V,0),on=H.TEXTURE_2D),H.pixelStorei(H.UNPACK_FLIP_Y_WEBGL,V.flipY),H.pixelStorei(H.UNPACK_PREMULTIPLY_ALPHA_WEBGL,V.premultiplyAlpha),H.pixelStorei(H.UNPACK_ALIGNMENT,V.unpackAlignment);let De=H.getParameter(H.UNPACK_ROW_LENGTH),_i=H.getParameter(H.UNPACK_IMAGE_HEIGHT),zs=H.getParameter(H.UNPACK_SKIP_PIXELS),xi=H.getParameter(H.UNPACK_SKIP_ROWS),io=H.getParameter(H.UNPACK_SKIP_IMAGES);H.pixelStorei(H.UNPACK_ROW_LENGTH,Ze.width),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,Ze.height),H.pixelStorei(H.UNPACK_SKIP_PIXELS,ie),H.pixelStorei(H.UNPACK_SKIP_ROWS,ae),H.pixelStorei(H.UNPACK_SKIP_IMAGES,Kt);let ln=N.isDataArrayTexture||N.isData3DTexture,zi=V.isDataArrayTexture||V.isData3DTexture;if(N.isDepthTexture){let Bi=dt.get(N),ci=dt.get(V),fi=dt.get(Bi.__renderTarget),Bs=dt.get(ci.__renderTarget);lt.bindFramebuffer(H.READ_FRAMEBUFFER,fi.__webglFramebuffer),lt.bindFramebuffer(H.DRAW_FRAMEBUFFER,Bs.__webglFramebuffer);for(let Ps=0;Ps&amp;amp;lt;Vt;Ps++)ln&amp;amp;amp;&amp;amp;amp;(H.framebufferTextureLayer(H.READ_FRAMEBUFFER,H.COLOR_ATTACHMENT0,dt.get(N).__webglTexture,q,Kt+Ps),H.framebufferTextureLayer(H.DRAW_FRAMEBUFFER,H.COLOR_ATTACHMENT0,dt.get(V).__webglTexture,yt,hn+Ps)),H.blitFramebuffer(ie,ae,Lt,Yt,Me,Fe,Lt,Yt,H.DEPTH_BUFFER_BIT,H.NEAREST);lt.bindFramebuffer(H.READ_FRAMEBUFFER,null),lt.bindFramebuffer(H.DRAW_FRAMEBUFFER,null)}else if(q!==0||N.isRenderTargetTexture||dt.has(N)){let Bi=dt.get(N),ci=dt.get(V);lt.bindFramebuffer(H.READ_FRAMEBUFFER,Fh),lt.bindFramebuffer(H.DRAW_FRAMEBUFFER,Vh);for(let fi=0;fi&amp;amp;lt;Vt;fi++)ln?H.framebufferTextureLayer(H.READ_FRAMEBUFFER,H.COLOR_ATTACHMENT0,Bi.__webglTexture,q,Kt+fi):H.framebufferTexture2D(H.READ_FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_2D,Bi.__webglTexture,q),zi?H.framebufferTextureLayer(H.DRAW_FRAMEBUFFER,H.COLOR_ATTACHMENT0,ci.__webglTexture,yt,hn+fi):H.framebufferTexture2D(H.DRAW_FRAMEBUFFER,H.COLOR_ATTACHMENT0,H.TEXTURE_2D,ci.__webglTexture,yt),q!==0?H.blitFramebuffer(ie,ae,Lt,Yt,Me,Fe,Lt,Yt,H.COLOR_BUFFER_BIT,H.NEAREST):zi?H.copyTexSubImage3D(on,yt,Me,Fe,hn+fi,ie,ae,Lt,Yt):H.copyTexSubImage2D(on,yt,Me,Fe,ie,ae,Lt,Yt);lt.bindFramebuffer(H.READ_FRAMEBUFFER,null),lt.bindFramebuffer(H.DRAW_FRAMEBUFFER,null)}else zi?N.isDataTexture||N.isData3DTexture?H.texSubImage3D(on,yt,Me,Fe,hn,Lt,Yt,Vt,qe,ee,Ze.data):V.isCompressedArrayTexture?H.compressedTexSubImage3D(on,yt,Me,Fe,hn,Lt,Yt,Vt,qe,Ze.data):H.texSubImage3D(on,yt,Me,Fe,hn,Lt,Yt,Vt,qe,ee,Ze):N.isDataTexture?H.texSubImage2D(H.TEXTURE_2D,yt,Me,Fe,Lt,Yt,qe,ee,Ze.data):N.isCompressedTexture?H.compressedTexSubImage2D(H.TEXTURE_2D,yt,Me,Fe,Ze.width,Ze.height,qe,Ze.data):H.texSubImage2D(H.TEXTURE_2D,yt,Me,Fe,Lt,Yt,qe,ee,Ze);H.pixelStorei(H.UNPACK_ROW_LENGTH,De),H.pixelStorei(H.UNPACK_IMAGE_HEIGHT,_i),H.pixelStorei(H.UNPACK_SKIP_PIXELS,zs),H.pixelStorei(H.UNPACK_SKIP_ROWS,xi),H.pixelStorei(H.UNPACK_SKIP_IMAGES,io),yt===0&amp;amp;amp;&amp;amp;amp;V.generateMipmaps&amp;amp;amp;&amp;amp;amp;H.generateMipmap(on),lt.unbindTexture()},this.copyTextureToTexture3D=function(N,V,J=null,$=null,q=0){return _u(&amp;amp;#39;WebGLRenderer: copyTextureToTexture3D function has been deprecated. Use &amp;amp;quot;copyTextureToTexture&amp;amp;quot; instead.&amp;amp;#39;),this.copyTextureToTexture(N,V,J,$,q)},this.initRenderTarget=function(N){dt.get(N).__webglFramebuffer===void 0&amp;amp;amp;&amp;amp;amp;Rt.setupRenderTarget(N)},this.initTexture=function(N){N.isCubeTexture?Rt.setTextureCube(N,0):N.isData3DTexture?Rt.setTexture3D(N,0):N.isDataArrayTexture||N.isCompressedArrayTexture?Rt.setTexture2DArray(N,0):Rt.setTexture2D(N,0),lt.unbindTexture()},this.resetState=function(){U=0,O=0,z=null,lt.reset(),Nt.reset()},typeof __THREE_DEVTOOLS__&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent(&amp;amp;quot;observe&amp;amp;quot;,{detail:this}))}get coordinateSystem(){return aa}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;let e=this.getContext();e.drawingBufferColorSpace=we._getDrawingBufferColorSpace(t),e.unpackColorSpace=we._getUnpackColorSpace()}};var hL=Ti(ja(),1),dL=Ti(lL(),1);var uL=n=&amp;amp;gt;{let t,e=new Set,i=(h,d)=&amp;amp;gt;{let m=typeof h==&amp;amp;quot;function&amp;amp;quot;?h(t):h;if(!Object.is(m,t)){let g=t;t=d??(typeof m!=&amp;amp;quot;object&amp;amp;quot;||m===null)?m:Object.assign({},t,m),e.forEach(y=&amp;amp;gt;y(t,g))}},a=()=&amp;amp;gt;t,u={setState:i,getState:a,getInitialState:()=&amp;amp;gt;c,subscribe:h=&amp;amp;gt;(e.add(h),()=&amp;amp;gt;e.delete(h))},c=t=n(i,a,u);return u},cL=n=&amp;amp;gt;n?uL(n):uL;var{useSyncExternalStoreWithSelector:Q8}=dL.default,K8=n=&amp;amp;gt;n;function J8(n,t=K8,e){let i=Q8(n.subscribe,n.getState,n.getInitialState,t,e);return hL.default.useDebugValue(i),i}var fL=(n,t)=&amp;amp;gt;{let e=cL(n),i=(a,s=t)=&amp;amp;gt;J8(e,a,s);return Object.assign(i,e),i},pL=(n,t)=&amp;amp;gt;n?fL(n,t):fL;var $8=n=&amp;amp;gt;typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof n.then==&amp;amp;quot;function&amp;amp;quot;,qu=[];function mL(n,t,e=(i,a)=&amp;amp;gt;i===a){if(n===t)return!0;if(!n||!t)return!1;let i=n.length;if(t.length!==i)return!1;for(let a=0;a&amp;amp;lt;i;a++)if(!e(n[a],t[a]))return!1;return!0}function gL(n,t=null,e=!1,i={}){t===null&amp;amp;amp;&amp;amp;amp;(t=[n]);for(let s of qu)if(mL(t,s.keys,s.equal)){if(e)return;if(Object.prototype.hasOwnProperty.call(s,&amp;amp;quot;error&amp;amp;quot;))throw s.error;if(Object.prototype.hasOwnProperty.call(s,&amp;amp;quot;response&amp;amp;quot;))return i.lifespan&amp;amp;amp;&amp;amp;amp;i.lifespan&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(s.timeout&amp;amp;amp;&amp;amp;amp;clearTimeout(s.timeout),s.timeout=setTimeout(s.remove,i.lifespan)),s.response;if(!e)throw s.promise}let a={keys:t,equal:i.equal,remove:()=&amp;amp;gt;{let s=qu.indexOf(a);s!==-1&amp;amp;amp;&amp;amp;amp;qu.splice(s,1)},promise:($8(n)?n:n(...t)).then(s=&amp;amp;gt;{a.response=s,i.lifespan&amp;amp;amp;&amp;amp;amp;i.lifespan&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(a.timeout=setTimeout(a.remove,i.lifespan))}).catch(s=&amp;amp;gt;a.error=s)};if(qu.push(a),!e)throw a.promise}var vL=(n,t,e)=&amp;amp;gt;gL(n,t,!1,e),yL=(n,t,e)=&amp;amp;gt;void gL(n,t,!0,e);var _L=n=&amp;amp;gt;{if(n===void 0||n.length===0)qu.splice(0,qu.length);else{let t=qu.find(e=&amp;amp;gt;mL(n,e.keys,e.equal));t&amp;amp;amp;&amp;amp;amp;t.remove()}};var YL=Ti(uA()),Ix=Ti(Ax()),Lh=Ti(cA());var bn=Ti(ja(),1);function Cx(n,t,e){if(!n)return;if(e(n)===!0)return n;let i=t?n.return:n.child;for(;i;){let a=Cx(i,t,e);if(a)return a;i=t?null:i.sibling}}function BL(n){try{return Object.defineProperties(n,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return n}}var fA=BL(bn.createContext(null)),qg=class extends bn.Component{render(){return bn.createElement(fA.Provider,{value:this._reactInternals},this.props.children)}};function hA(){let n=bn.useContext(fA);if(n===null)throw new Error(&amp;amp;quot;its-fine: useFiber must be called within a &amp;amp;lt;FiberProvider /&amp;amp;gt;!&amp;amp;quot;);let t=bn.useId();return bn.useMemo(()=&amp;amp;gt;{for(let e of[n,n?.alternate]){if(!e)continue;let i=Cx(e,!1,a=&amp;amp;gt;{let s=a.memoizedState;for(;s;){if(s.memoizedState===t)return!0;s=s.next}});if(i)return i}},[n,t])}var i7=Symbol.for(&amp;amp;quot;react.context&amp;amp;quot;),a7=n=&amp;amp;gt;n!==null&amp;amp;amp;&amp;amp;amp;typeof n==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;$$typeof&amp;amp;quot;in n&amp;amp;amp;&amp;amp;amp;n.$$typeof===i7;function s7(){let n=hA(),[t]=bn.useState(()=&amp;amp;gt;new Map);t.clear();let e=n;for(;e;){let i=e.type;a7(i)&amp;amp;amp;&amp;amp;amp;i!==fA&amp;amp;amp;&amp;amp;amp;!t.has(i)&amp;amp;amp;&amp;amp;amp;t.set(i,bn.use(BL(i))),e=e.return}return t}function PL(){let n=s7();return bn.useMemo(()=&amp;amp;gt;Array.from(n.keys()).reduce((t,e)=&amp;amp;gt;i=&amp;amp;gt;bn.createElement(t,null,bn.createElement(e.Provider,{...i,value:n.get(e)})),t=&amp;amp;gt;bn.createElement(qg,{...t})),[n])}function WL(n){let t=n.root;for(;t.getState().previousRoot;)t=t.getState().previousRoot;return t}var kL=n=&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;n.isOrthographicCamera,ZL=n=&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;n.hasOwnProperty(&amp;amp;quot;current&amp;amp;quot;),r7=n=&amp;amp;gt;n!=null&amp;amp;amp;&amp;amp;amp;(typeof n==&amp;amp;quot;string&amp;amp;quot;||typeof n==&amp;amp;quot;number&amp;amp;quot;||n.isColor),Bh=((n,t)=&amp;amp;gt;typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(((n=window.document)==null?void 0:n.createElement)||((t=window.navigator)==null?void 0:t.product)===&amp;amp;quot;ReactNative&amp;amp;quot;))()?sn.useLayoutEffect:sn.useEffect;function TA(n){let t=sn.useRef(n);return Bh(()=&amp;amp;gt;void(t.current=n),[n]),t}function jL(){let n=hA(),t=PL();return sn.useMemo(()=&amp;amp;gt;({children:e})=&amp;amp;gt;{let a=!!Cx(n,!0,s=&amp;amp;gt;s.type===sn.StrictMode)?sn.StrictMode:sn.Fragment;return(0,Lh.jsx)(a,{children:(0,Lh.jsx)(t,{children:e})})},[n,t])}function QL({set:n}){return Bh(()=&amp;amp;gt;(n(new Promise(()=&amp;amp;gt;null)),()=&amp;amp;gt;n(!1)),[n]),null}var KL=(n=&amp;amp;gt;(n=class extends sn.Component{constructor(...e){super(...e),this.state={error:!1}}componentDidCatch(e){this.props.set(e)}render(){return this.state.error?null:this.props.children}},n.getDerivedStateFromError=()=&amp;amp;gt;({error:!0}),n))();function JL(n){var t;let e=typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(t=window.devicePixelRatio)!=null?t:2:1;return Array.isArray(n)?Math.min(Math.max(n[0],e),n[1]):n}function Wu(n){var t;return(t=n.__r3f)==null?void 0:t.root.getState()}var _n={obj:n=&amp;amp;gt;n===Object(n)&amp;amp;amp;&amp;amp;amp;!_n.arr(n)&amp;amp;amp;&amp;amp;amp;typeof n!=&amp;amp;quot;function&amp;amp;quot;,fun:n=&amp;amp;gt;typeof n==&amp;amp;quot;function&amp;amp;quot;,str:n=&amp;amp;gt;typeof n==&amp;amp;quot;string&amp;amp;quot;,num:n=&amp;amp;gt;typeof n==&amp;amp;quot;number&amp;amp;quot;,boo:n=&amp;amp;gt;typeof n==&amp;amp;quot;boolean&amp;amp;quot;,und:n=&amp;amp;gt;n===void 0,nul:n=&amp;amp;gt;n===null,arr:n=&amp;amp;gt;Array.isArray(n),equ(n,t,{arrays:e=&amp;amp;quot;shallow&amp;amp;quot;,objects:i=&amp;amp;quot;reference&amp;amp;quot;,strict:a=!0}={}){if(typeof n!=typeof t||!!n!=!!t)return!1;if(_n.str(n)||_n.num(n)||_n.boo(n))return n===t;let s=_n.obj(n);if(s&amp;amp;amp;&amp;amp;amp;i===&amp;amp;quot;reference&amp;amp;quot;)return n===t;let o=_n.arr(n);if(o&amp;amp;amp;&amp;amp;amp;e===&amp;amp;quot;reference&amp;amp;quot;)return n===t;if((o||s)&amp;amp;amp;&amp;amp;amp;n===t)return!0;let u;for(u in n)if(!(u in t))return!1;if(s&amp;amp;amp;&amp;amp;amp;e===&amp;amp;quot;shallow&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i===&amp;amp;quot;shallow&amp;amp;quot;){for(u in a?t:n)if(!_n.equ(n[u],t[u],{strict:a,objects:&amp;amp;quot;reference&amp;amp;quot;}))return!1}else for(u in a?t:n)if(n[u]!==t[u])return!1;if(_n.und(u)){if(o&amp;amp;amp;&amp;amp;amp;n.length===0&amp;amp;amp;&amp;amp;amp;t.length===0||s&amp;amp;amp;&amp;amp;amp;Object.keys(n).length===0&amp;amp;amp;&amp;amp;amp;Object.keys(t).length===0)return!0;if(n!==t)return!1}return!0}};function $L(n){let t={nodes:{},materials:{},meshes:{}};return n&amp;amp;amp;&amp;amp;amp;n.traverse(e=&amp;amp;gt;{e.name&amp;amp;amp;&amp;amp;amp;(t.nodes[e.name]=e),e.material&amp;amp;amp;&amp;amp;amp;!t.materials[e.material.name]&amp;amp;amp;&amp;amp;amp;(t.materials[e.material.name]=e.material),e.isMesh&amp;amp;amp;&amp;amp;amp;!t.meshes[e.name]&amp;amp;amp;&amp;amp;amp;(t.meshes[e.name]=e)}),t}function tz(n){n.type!==&amp;amp;quot;Scene&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.dispose==null||n.dispose());for(let t in n){let e=n[t];e?.type!==&amp;amp;quot;Scene&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(e==null||e.dispose==null||e.dispose())}}var ez=[&amp;amp;quot;children&amp;amp;quot;,&amp;amp;quot;key&amp;amp;quot;,&amp;amp;quot;ref&amp;amp;quot;];function o7(n){let t={};for(let e in n)ez.includes(e)||(t[e]=n[e]);return t}function Nx(n,t,e,i){let a=n,s=a?.__r3f;return s||(s={root:t,type:e,parent:null,children:[],props:o7(i),object:a,eventCount:0,handlers:{},isHidden:!1},a&amp;amp;amp;&amp;amp;amp;(a.__r3f=s)),s}function Yg(n,t){let e=n[t];if(!t.includes(&amp;amp;quot;-&amp;amp;quot;))return{root:n,key:t,target:e};e=n;for(let a of t.split(&amp;amp;quot;-&amp;amp;quot;)){var i;t=a,n=e,e=(i=e)==null?void 0:i[t]}return{root:n,key:t,target:e}}var IL=/-\d+$/;function Ox(n,t){if(_n.str(t.props.attach)){if(IL.test(t.props.attach)){let a=t.props.attach.replace(IL,&amp;amp;quot;&amp;amp;quot;),{root:s,key:o}=Yg(n.object,a);Array.isArray(s[o])||(s[o]=[])}let{root:e,key:i}=Yg(n.object,t.props.attach);t.previousAttach=e[i],e[i]=t.object}else _n.fun(t.props.attach)&amp;amp;amp;&amp;amp;amp;(t.previousAttach=t.props.attach(n.object,t.object))}function Lx(n,t){if(_n.str(t.props.attach)){let{root:e,key:i}=Yg(n.object,t.props.attach),a=t.previousAttach;a===void 0?delete e[i]:e[i]=a}else t.previousAttach==null||t.previousAttach(n.object,t.object);delete t.previousAttach}var xA=[...ez,&amp;amp;quot;args&amp;amp;quot;,&amp;amp;quot;dispose&amp;amp;quot;,&amp;amp;quot;attach&amp;amp;quot;,&amp;amp;quot;object&amp;amp;quot;,&amp;amp;quot;onUpdate&amp;amp;quot;,&amp;amp;quot;dispose&amp;amp;quot;],HL=new Map;function l7(n){let t=HL.get(n.constructor);try{t||(t=new n.constructor,HL.set(n.constructor,t))}catch{}return t}function u7(n,t){let e={};for(let i in t)if(!xA.includes(i)&amp;amp;amp;&amp;amp;amp;!_n.equ(t[i],n.props[i])){e[i]=t[i];for(let a in t)a.startsWith(`${i}-`)&amp;amp;amp;&amp;amp;amp;(e[a]=t[a])}for(let i in n.props){if(xA.includes(i)||t.hasOwnProperty(i))continue;let{root:a,key:s}=Yg(n.object,i);if(a.constructor&amp;amp;amp;&amp;amp;amp;a.constructor.length===0){let o=l7(a);_n.und(o)||(e[s]=o[s])}else e[s]=0}return e}var c7=[&amp;amp;quot;map&amp;amp;quot;,&amp;amp;quot;emissiveMap&amp;amp;quot;,&amp;amp;quot;sheenColorMap&amp;amp;quot;,&amp;amp;quot;specularColorMap&amp;amp;quot;,&amp;amp;quot;envMap&amp;amp;quot;],f7=/^on(Pointer|Click|DoubleClick|ContextMenu|Wheel)/;function no(n,t){var e;let i=n.__r3f,a=i&amp;amp;amp;&amp;amp;amp;WL(i).getState(),s=i?.eventCount;for(let u in t){let c=t[u];if(xA.includes(u))continue;if(i&amp;amp;amp;&amp;amp;amp;f7.test(u)){typeof c==&amp;amp;quot;function&amp;amp;quot;?i.handlers[u]=c:delete i.handlers[u],i.eventCount=Object.keys(i.handlers).length;continue}if(c===void 0)continue;let{root:h,key:d,target:m}=Yg(n,u);if(m instanceof nr&amp;amp;amp;&amp;amp;amp;c instanceof nr)m.mask=c.mask;else if(m instanceof Bt&amp;amp;amp;&amp;amp;amp;r7(c))m.set(c);else if(m!==null&amp;amp;amp;&amp;amp;amp;typeof m==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof m.set==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof m.copy==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;c!=null&amp;amp;amp;&amp;amp;amp;c.constructor&amp;amp;amp;&amp;amp;amp;m.constructor===c.constructor)m.copy(c);else if(m!==null&amp;amp;amp;&amp;amp;amp;typeof m==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof m.set==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Array.isArray(c))typeof m.fromArray==&amp;amp;quot;function&amp;amp;quot;?m.fromArray(c):m.set(...c);else if(m!==null&amp;amp;amp;&amp;amp;amp;typeof m==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof m.set==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof c==&amp;amp;quot;number&amp;amp;quot;)typeof m.setScalar==&amp;amp;quot;function&amp;amp;quot;?m.setScalar(c):m.set(c);else{var o;h[d]=c,a&amp;amp;amp;&amp;amp;amp;!a.linear&amp;amp;amp;&amp;amp;amp;c7.includes(d)&amp;amp;amp;&amp;amp;amp;(o=h[d])!=null&amp;amp;amp;&amp;amp;amp;o.isTexture&amp;amp;amp;&amp;amp;amp;h[d].format===li&amp;amp;amp;&amp;amp;amp;h[d].type===la&amp;amp;amp;&amp;amp;amp;(h[d].colorSpace=ri)}}if(i!=null&amp;amp;amp;&amp;amp;amp;i.parent&amp;amp;amp;&amp;amp;amp;a!=null&amp;amp;amp;&amp;amp;amp;a.internal&amp;amp;amp;&amp;amp;amp;(e=i.object)!=null&amp;amp;amp;&amp;amp;amp;e.isObject3D&amp;amp;amp;&amp;amp;amp;s!==i.eventCount){let u=i.object,c=a.internal.interaction.indexOf(u);c&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;a.internal.interaction.splice(c,1),i.eventCount&amp;amp;amp;&amp;amp;amp;u.raycast!==null&amp;amp;amp;&amp;amp;amp;a.internal.interaction.push(u)}return i&amp;amp;amp;&amp;amp;amp;i.props.attach===void 0&amp;amp;amp;&amp;amp;amp;(i.object.isBufferGeometry?i.props.attach=&amp;amp;quot;geometry&amp;amp;quot;:i.object.isMaterial&amp;amp;amp;&amp;amp;amp;(i.props.attach=&amp;amp;quot;material&amp;amp;quot;)),i&amp;amp;amp;&amp;amp;amp;Ph(i),n}function Ph(n){var t;if(!n.parent)return;n.props.onUpdate==null||n.props.onUpdate(n.object);let e=(t=n.root)==null||t.getState==null?void 0:t.getState();e&amp;amp;amp;&amp;amp;amp;e.internal.frames===0&amp;amp;amp;&amp;amp;amp;e.invalidate()}function h7(n,t){n.manual||(kL(n)?(n.left=t.width/-2,n.right=t.width/2,n.top=t.height/2,n.bottom=t.height/-2):n.aspect=t.width/t.height,n.updateProjectionMatrix())}var Wi=n=&amp;amp;gt;n?.isObject3D;function wx(n){return(n.eventObject||n.object).uuid+&amp;amp;quot;/&amp;amp;quot;+n.index+n.instanceId}function nz(n,t,e,i){let a=e.get(t);a&amp;amp;amp;&amp;amp;amp;(e.delete(t),e.size===0&amp;amp;amp;&amp;amp;amp;(n.delete(i),a.target.releasePointerCapture(i)))}function d7(n,t){let{internal:e}=n.getState();e.interaction=e.interaction.filter(i=&amp;amp;gt;i!==t),e.initialHits=e.initialHits.filter(i=&amp;amp;gt;i!==t),e.hovered.forEach((i,a)=&amp;amp;gt;{(i.eventObject===t||i.object===t)&amp;amp;amp;&amp;amp;amp;e.hovered.delete(a)}),e.capturedMap.forEach((i,a)=&amp;amp;gt;{nz(e.capturedMap,t,i,a)})}function iz(n){function t(c){let{internal:h}=n.getState(),d=c.offsetX-h.initialClick[0],m=c.offsetY-h.initialClick[1];return Math.round(Math.sqrt(d*d+m*m))}function e(c){return c.filter(h=&amp;amp;gt;[&amp;amp;quot;Move&amp;amp;quot;,&amp;amp;quot;Over&amp;amp;quot;,&amp;amp;quot;Enter&amp;amp;quot;,&amp;amp;quot;Out&amp;amp;quot;,&amp;amp;quot;Leave&amp;amp;quot;].some(d=&amp;amp;gt;{var m;return(m=h.__r3f)==null?void 0:m.handlers[&amp;amp;quot;onPointer&amp;amp;quot;+d]}))}function i(c,h){let d=n.getState(),m=new Set,g=[],y=h?h(d.internal.interaction):d.internal.interaction;for(let v=0;v&amp;amp;lt;y.length;v++){let S=Wu(y[v]);S&amp;amp;amp;&amp;amp;amp;(S.raycaster.camera=void 0)}d.previousRoot||d.events.compute==null||d.events.compute(c,d);function x(v){let S=Wu(v);if(!S||!S.events.enabled||S.raycaster.camera===null)return[];if(S.raycaster.camera===void 0){var E;S.events.compute==null||S.events.compute(c,S,(E=S.previousRoot)==null?void 0:E.getState()),S.raycaster.camera===void 0&amp;amp;amp;&amp;amp;amp;(S.raycaster.camera=null)}return S.raycaster.camera?S.raycaster.intersectObject(v,!0):[]}let b=y.flatMap(x).sort((v,S)=&amp;amp;gt;{let E=Wu(v.object),T=Wu(S.object);return!E||!T?v.distance-S.distance:T.events.priority-E.events.priority||v.distance-S.distance}).filter(v=&amp;amp;gt;{let S=wx(v);return m.has(S)?!1:(m.add(S),!0)});d.events.filter&amp;amp;amp;&amp;amp;amp;(b=d.events.filter(b,d));for(let v of b){let S=v.object;for(;S;){var M;(M=S.__r3f)!=null&amp;amp;amp;&amp;amp;amp;M.eventCount&amp;amp;amp;&amp;amp;amp;g.push({...v,eventObject:S}),S=S.parent}}if(&amp;amp;quot;pointerId&amp;amp;quot;in c&amp;amp;amp;&amp;amp;amp;d.internal.capturedMap.has(c.pointerId))for(let v of d.internal.capturedMap.get(c.pointerId).values())m.has(wx(v.intersection))||g.push(v.intersection);return g}function a(c,h,d,m){if(c.length){let g={stopped:!1};for(let y of c){let x=Wu(y.object);if(x||y.object.traverseAncestors(b=&amp;amp;gt;{let M=Wu(b);if(M)return x=M,!1}),x){let{raycaster:b,pointer:M,camera:v,internal:S}=x,E=new B(M.x,M.y,0).unproject(v),T=C=&amp;amp;gt;{var R,P;return(R=(P=S.capturedMap.get(C))==null?void 0:P.has(y.eventObject))!=null?R:!1},w=C=&amp;amp;gt;{let R={intersection:y,target:h.target};S.capturedMap.has(C)?S.capturedMap.get(C).set(y.eventObject,R):S.capturedMap.set(C,new Map([[y.eventObject,R]])),h.target.setPointerCapture(C)},U=C=&amp;amp;gt;{let R=S.capturedMap.get(C);R&amp;amp;amp;&amp;amp;amp;nz(S.capturedMap,y.eventObject,R,C)},O={};for(let C in h){let R=h[C];typeof R!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(O[C]=R)}let z={...y,...O,pointer:M,intersections:c,stopped:g.stopped,delta:d,unprojectedPoint:E,ray:b.ray,camera:v,stopPropagation(){let C=&amp;amp;quot;pointerId&amp;amp;quot;in h&amp;amp;amp;&amp;amp;amp;S.capturedMap.get(h.pointerId);if((!C||C.has(y.eventObject))&amp;amp;amp;&amp;amp;amp;(z.stopped=g.stopped=!0,S.hovered.size&amp;amp;amp;&amp;amp;amp;Array.from(S.hovered.values()).find(R=&amp;amp;gt;R.eventObject===y.eventObject))){let R=c.slice(0,c.indexOf(y));s([...R,y])}},target:{hasPointerCapture:T,setPointerCapture:w,releasePointerCapture:U},currentTarget:{hasPointerCapture:T,setPointerCapture:w,releasePointerCapture:U},nativeEvent:h};if(m(z),g.stopped===!0)break}}}return c}function s(c){let{internal:h}=n.getState();for(let d of h.hovered.values())if(!c.length||!c.find(m=&amp;amp;gt;m.object===d.object&amp;amp;amp;&amp;amp;amp;m.index===d.index&amp;amp;amp;&amp;amp;amp;m.instanceId===d.instanceId)){let g=d.eventObject.__r3f;if(h.hovered.delete(wx(d)),g!=null&amp;amp;amp;&amp;amp;amp;g.eventCount){let y=g.handlers,x={...d,intersections:c};y.onPointerOut==null||y.onPointerOut(x),y.onPointerLeave==null||y.onPointerLeave(x)}}}function o(c,h){for(let d=0;d&amp;amp;lt;h.length;d++){let m=h[d].__r3f;m==null||m.handlers.onPointerMissed==null||m.handlers.onPointerMissed(c)}}function u(c){switch(c){case&amp;amp;quot;onPointerLeave&amp;amp;quot;:case&amp;amp;quot;onPointerCancel&amp;amp;quot;:return()=&amp;amp;gt;s([]);case&amp;amp;quot;onLostPointerCapture&amp;amp;quot;:return h=&amp;amp;gt;{let{internal:d}=n.getState();&amp;amp;quot;pointerId&amp;amp;quot;in h&amp;amp;amp;&amp;amp;amp;d.capturedMap.has(h.pointerId)&amp;amp;amp;&amp;amp;amp;requestAnimationFrame(()=&amp;amp;gt;{d.capturedMap.has(h.pointerId)&amp;amp;amp;&amp;amp;amp;(d.capturedMap.delete(h.pointerId),s([]))})}}return function(d){let{onPointerMissed:m,internal:g}=n.getState();g.lastEvent.current=d;let y=c===&amp;amp;quot;onPointerMove&amp;amp;quot;,x=c===&amp;amp;quot;onClick&amp;amp;quot;||c===&amp;amp;quot;onContextMenu&amp;amp;quot;||c===&amp;amp;quot;onDoubleClick&amp;amp;quot;,M=i(d,y?e:void 0),v=x?t(d):0;c===&amp;amp;quot;onPointerDown&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(g.initialClick=[d.offsetX,d.offsetY],g.initialHits=M.map(E=&amp;amp;gt;E.eventObject)),x&amp;amp;amp;&amp;amp;amp;!M.length&amp;amp;amp;&amp;amp;amp;v&amp;amp;lt;=2&amp;amp;amp;&amp;amp;amp;(o(d,g.interaction),m&amp;amp;amp;&amp;amp;amp;m(d)),y&amp;amp;amp;&amp;amp;amp;s(M);function S(E){let T=E.eventObject,w=T.__r3f;if(!(w!=null&amp;amp;amp;&amp;amp;amp;w.eventCount))return;let U=w.handlers;if(y){if(U.onPointerOver||U.onPointerEnter||U.onPointerOut||U.onPointerLeave){let O=wx(E),z=g.hovered.get(O);z?z.stopped&amp;amp;amp;&amp;amp;amp;E.stopPropagation():(g.hovered.set(O,E),U.onPointerOver==null||U.onPointerOver(E),U.onPointerEnter==null||U.onPointerEnter(E))}U.onPointerMove==null||U.onPointerMove(E)}else{let O=U[c];O?(!x||g.initialHits.includes(T))&amp;amp;amp;&amp;amp;amp;(o(d,g.interaction.filter(z=&amp;amp;gt;!g.initialHits.includes(z))),O(E)):x&amp;amp;amp;&amp;amp;amp;g.initialHits.includes(T)&amp;amp;amp;&amp;amp;amp;o(d,g.interaction.filter(z=&amp;amp;gt;!g.initialHits.includes(z)))}}a(M,d,v,S)}}return{handlePointer:u}}var FL=n=&amp;amp;gt;!!(n!=null&amp;amp;amp;&amp;amp;amp;n.render),AA=sn.createContext(null),p7=(n,t)=&amp;amp;gt;{let e=pL((u,c)=&amp;amp;gt;{let h=new B,d=new B,m=new B;function g(v=c().camera,S=d,E=c().size){let{width:T,height:w,top:U,left:O}=E,z=T/w;S.isVector3?m.copy(S):m.set(...S);let C=v.getWorldPosition(h).distanceTo(m);if(kL(v))return{width:T/v.zoom,height:w/v.zoom,top:U,left:O,factor:1,distance:C,aspect:z};{let R=v.fov*Math.PI/180,P=2*Math.tan(R/2)*C,j=P*(T/w);return{width:j,height:P,top:U,left:O,factor:T/j,distance:C,aspect:z}}}let y,x=v=&amp;amp;gt;u(S=&amp;amp;gt;({performance:{...S.performance,current:v}})),b=new ct;return{set:u,get:c,gl:null,camera:null,raycaster:null,events:{priority:1,enabled:!0,connected:!1},scene:null,xr:null,invalidate:(v=1)=&amp;amp;gt;n(c(),v),advance:(v,S)=&amp;amp;gt;t(v,S,c()),legacy:!1,linear:!1,flat:!1,controls:null,clock:new Uu,pointer:b,mouse:b,frameloop:&amp;amp;quot;always&amp;amp;quot;,onPointerMissed:void 0,performance:{current:1,min:.5,max:1,debounce:200,regress:()=&amp;amp;gt;{let v=c();y&amp;amp;amp;&amp;amp;amp;clearTimeout(y),v.performance.current!==v.performance.min&amp;amp;amp;&amp;amp;amp;x(v.performance.min),y=setTimeout(()=&amp;amp;gt;x(c().performance.max),v.performance.debounce)}},size:{width:0,height:0,top:0,left:0},viewport:{initialDpr:0,dpr:0,width:0,height:0,top:0,left:0,aspect:0,distance:0,factor:0,getCurrentViewport:g},setEvents:v=&amp;amp;gt;u(S=&amp;amp;gt;({...S,events:{...S.events,...v}})),setSize:(v,S,E=0,T=0)=&amp;amp;gt;{let w=c().camera,U={width:v,height:S,top:E,left:T};u(O=&amp;amp;gt;({size:U,viewport:{...O.viewport,...g(w,d,U)}}))},setDpr:v=&amp;amp;gt;u(S=&amp;amp;gt;{let E=JL(v);return{viewport:{...S.viewport,dpr:E,initialDpr:S.viewport.initialDpr||E}}}),setFrameloop:(v=&amp;amp;quot;always&amp;amp;quot;)=&amp;amp;gt;{let S=c().clock;S.stop(),S.elapsedTime=0,v!==&amp;amp;quot;never&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(S.start(),S.elapsedTime=0),u(()=&amp;amp;gt;({frameloop:v}))},previousRoot:void 0,internal:{interaction:[],hovered:new Map,subscribers:[],initialClick:[0,0],initialHits:[],capturedMap:new Map,lastEvent:sn.createRef(),active:!1,frames:0,priority:0,subscribe:(v,S,E)=&amp;amp;gt;{let T=c().internal;return T.priority=T.priority+(S&amp;amp;gt;0?1:0),T.subscribers.push({ref:v,priority:S,store:E}),T.subscribers=T.subscribers.sort((w,U)=&amp;amp;gt;w.priority-U.priority),()=&amp;amp;gt;{let w=c().internal;w!=null&amp;amp;amp;&amp;amp;amp;w.subscribers&amp;amp;amp;&amp;amp;amp;(w.priority=w.priority-(S&amp;amp;gt;0?1:0),w.subscribers=w.subscribers.filter(U=&amp;amp;gt;U.ref!==v))}}}}}),i=e.getState(),a=i.size,s=i.viewport.dpr,o=i.camera;return e.subscribe(()=&amp;amp;gt;{let{camera:u,size:c,viewport:h,gl:d,set:m}=e.getState();if(c.width!==a.width||c.height!==a.height||h.dpr!==s){a=c,s=h.dpr,h7(u,c),h.dpr&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;d.setPixelRatio(h.dpr);let g=typeof HTMLCanvasElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;d.domElement instanceof HTMLCanvasElement;d.setSize(c.width,c.height,g)}u!==o&amp;amp;amp;&amp;amp;amp;(o=u,m(g=&amp;amp;gt;({viewport:{...g.viewport,...g.viewport.getCurrentViewport(u)}})))}),e.subscribe(u=&amp;amp;gt;n(u)),e};function az(){let n=sn.useContext(AA);if(!n)throw new Error(&amp;amp;quot;R3F: Hooks can only be used within the Canvas component!&amp;amp;quot;);return n}function RA(n,t=0){let e=az(),i=e.getState().internal.subscribe,a=TA(n);return Bh(()=&amp;amp;gt;i(a,t,e),[t,i,e]),null}var VL=new WeakMap,m7=n=&amp;amp;gt;{var t;return typeof n==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n==null||(t=n.prototype)==null?void 0:t.constructor)===n};function sz(n,t){return function(e,...i){let a;return m7(e)?(a=VL.get(e),a||(a=new e,VL.set(e,a))):a=e,n&amp;amp;amp;&amp;amp;amp;n(a),Promise.all(i.map(s=&amp;amp;gt;new Promise((o,u)=&amp;amp;gt;a.load(s,c=&amp;amp;gt;{Wi(c?.scene)&amp;amp;amp;&amp;amp;amp;Object.assign(c,$L(c.scene)),o(c)},t,c=&amp;amp;gt;u(new Error(`Could not load ${s}: ${c?.message}`))))))}}function CA(n,t,e,i){let a=Array.isArray(t)?t:[t],s=vL(sz(e,i),[n,...a],{equal:_n.equ});return Array.isArray(t)?s:s[0]}CA.preload=function(n,t,e){let i=Array.isArray(t)?t:[t];return yL(sz(e),[n,...i])};CA.clear=function(n,t){let e=Array.isArray(t)?t:[t];return _L([n,...e])};function g7(n){let t=(0,YL.default)(n);return t.injectIntoDevTools({bundleType:(typeof process&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;,0),rendererPackageName:&amp;amp;quot;@react-three/fiber&amp;amp;quot;,version:sn.version}),t}var rz=0,zh={},v7=/^three(?=[A-Z])/,Hx=n=&amp;amp;gt;`${n[0].toUpperCase()}${n.slice(1)}`,y7=0,_7=n=&amp;amp;gt;typeof n==&amp;amp;quot;function&amp;amp;quot;;function wA(n){if(_7(n)){let t=`${y7++}`;return zh[t]=n,t}else Object.assign(zh,n)}function oz(n,t){let e=Hx(n),i=zh[e];if(n!==&amp;amp;quot;primitive&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!i)throw new Error(`R3F: ${e} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`);if(n===&amp;amp;quot;primitive&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!t.object)throw new Error(&amp;amp;quot;R3F: Primitives without &amp;amp;#39;object&amp;amp;#39; are invalid!&amp;amp;quot;);if(t.args!==void 0&amp;amp;amp;&amp;amp;amp;!Array.isArray(t.args))throw new Error(&amp;amp;quot;R3F: The args prop must be an array!&amp;amp;quot;)}function x7(n,t,e){var i;return n=Hx(n)in zh?n:n.replace(v7,&amp;amp;quot;&amp;amp;quot;),oz(n,t),n===&amp;amp;quot;primitive&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i=t.object)!=null&amp;amp;amp;&amp;amp;amp;i.__r3f&amp;amp;amp;&amp;amp;amp;delete t.object.__r3f,Nx(t.object,e,n,t)}function S7(n){if(!n.isHidden){var t;n.props.attach&amp;amp;amp;&amp;amp;amp;(t=n.parent)!=null&amp;amp;amp;&amp;amp;amp;t.object?Lx(n.parent,n):Wi(n.object)&amp;amp;amp;&amp;amp;amp;(n.object.visible=!1),n.isHidden=!0,Ph(n)}}function lz(n){if(n.isHidden){var t;n.props.attach&amp;amp;amp;&amp;amp;amp;(t=n.parent)!=null&amp;amp;amp;&amp;amp;amp;t.object?Ox(n.parent,n):Wi(n.object)&amp;amp;amp;&amp;amp;amp;n.props.visible!==!1&amp;amp;amp;&amp;amp;amp;(n.object.visible=!0),n.isHidden=!1,Ph(n)}}function DA(n,t,e){let i=t.root.getState();if(!(!n.parent&amp;amp;amp;&amp;amp;amp;n.object!==i.scene)){if(!t.object){var a,s;let o=zh[Hx(t.type)];t.object=(a=t.props.object)!=null?a:new o(...(s=t.props.args)!=null?s:[]),t.object.__r3f=t}if(no(t.object,t.props),t.props.attach)Ox(n,t);else if(Wi(t.object)&amp;amp;amp;&amp;amp;amp;Wi(n.object)){let o=n.object.children.indexOf(e?.object);if(e&amp;amp;amp;&amp;amp;amp;o!==-1){let u=n.object.children.indexOf(t.object);if(u!==-1){n.object.children.splice(u,1);let c=u&amp;amp;lt;o?o-1:o;n.object.children.splice(c,0,t.object)}else t.object.parent=n.object,n.object.children.splice(o,0,t.object),t.object.dispatchEvent({type:&amp;amp;quot;added&amp;amp;quot;}),n.object.dispatchEvent({type:&amp;amp;quot;childadded&amp;amp;quot;,child:t.object})}else n.object.add(t.object)}for(let o of t.children)DA(t,o);Ph(t)}}function dA(n,t){t&amp;amp;amp;&amp;amp;amp;(t.parent=n,n.children.push(t),DA(n,t))}function GL(n,t,e){if(!t||!e)return;t.parent=n;let i=n.children.indexOf(e);i!==-1?n.children.splice(i,0,t):n.children.push(t),DA(n,t,e)}function uz(n){if(typeof n.dispose==&amp;amp;quot;function&amp;amp;quot;){let t=()=&amp;amp;gt;{try{n.dispose()}catch{}};typeof IS_REACT_ACT_ENVIRONMENT&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?t():(0,Ix.unstable_scheduleCallback)(Ix.unstable_IdlePriority,t)}}function SA(n,t,e){if(!t)return;t.parent=null;let i=n.children.indexOf(t);i!==-1&amp;amp;amp;&amp;amp;amp;n.children.splice(i,1),t.props.attach?Lx(n,t):Wi(t.object)&amp;amp;amp;&amp;amp;amp;Wi(n.object)&amp;amp;amp;&amp;amp;amp;(n.object.remove(t.object),d7(WL(t),t.object));let a=t.props.dispose!==null&amp;amp;amp;&amp;amp;amp;e!==!1;for(let s=t.children.length-1;s&amp;amp;gt;=0;s--){let o=t.children[s];SA(t,o,a)}t.children.length=0,delete t.object.__r3f,a&amp;amp;amp;&amp;amp;amp;t.type!==&amp;amp;quot;primitive&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.object.type!==&amp;amp;quot;Scene&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;uz(t.object),e===void 0&amp;amp;amp;&amp;amp;amp;Ph(t)}function M7(n,t){for(let e of[n,n.alternate])if(e!==null)if(typeof e.ref==&amp;amp;quot;function&amp;amp;quot;){e.refCleanup==null||e.refCleanup();let i=e.ref(t);typeof i==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(e.refCleanup=i)}else e.ref&amp;amp;amp;&amp;amp;amp;(e.ref.current=t)}var Ux=[];function E7(){for(let[e]of Ux){let i=e.parent;if(i){e.props.attach?Lx(i,e):Wi(e.object)&amp;amp;amp;&amp;amp;amp;Wi(i.object)&amp;amp;amp;&amp;amp;amp;i.object.remove(e.object);for(let a of e.children)a.props.attach?Lx(e,a):Wi(a.object)&amp;amp;amp;&amp;amp;amp;Wi(e.object)&amp;amp;amp;&amp;amp;amp;e.object.remove(a.object)}e.isHidden&amp;amp;amp;&amp;amp;amp;lz(e),e.object.__r3f&amp;amp;amp;&amp;amp;amp;delete e.object.__r3f,e.type!==&amp;amp;quot;primitive&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;uz(e.object)}for(let[e,i,a]of Ux){e.props=i;let s=e.parent;if(s){var n,t;let o=zh[Hx(e.type)];e.object=(n=e.props.object)!=null?n:new o(...(t=e.props.args)!=null?t:[]),e.object.__r3f=e,M7(a,e.object),no(e.object,e.props),e.props.attach?Ox(s,e):Wi(e.object)&amp;amp;amp;&amp;amp;amp;Wi(s.object)&amp;amp;amp;&amp;amp;amp;s.object.add(e.object);for(let u of e.children)u.props.attach?Ox(e,u):Wi(u.object)&amp;amp;amp;&amp;amp;amp;Wi(e.object)&amp;amp;amp;&amp;amp;amp;e.object.add(u.object);Ph(e)}}Ux.length=0}var pA=()=&amp;amp;gt;{},XL={},Dx=rz,b7=0,T7=4,zx=g7({isPrimaryRenderer:!1,warnsIfNotActing:!1,supportsMutation:!0,supportsPersistence:!1,supportsHydration:!1,createInstance:x7,removeChild:SA,appendChild:dA,appendInitialChild:dA,insertBefore:GL,appendChildToContainer(n,t){let e=n.getState().scene.__r3f;!t||!e||dA(e,t)},removeChildFromContainer(n,t){let e=n.getState().scene.__r3f;!t||!e||SA(e,t)},insertInContainerBefore(n,t,e){let i=n.getState().scene.__r3f;!t||!e||!i||GL(i,t,e)},getRootHostContext:()=&amp;amp;gt;XL,getChildHostContext:()=&amp;amp;gt;XL,commitUpdate(n,t,e,i,a){var s,o,u;oz(t,i);let c=!1;if((n.type===&amp;amp;quot;primitive&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;e.object!==i.object||((s=i.args)==null?void 0:s.length)!==((o=e.args)==null?void 0:o.length)||(u=i.args)!=null&amp;amp;amp;&amp;amp;amp;u.some((d,m)=&amp;amp;gt;{var g;return d!==((g=e.args)==null?void 0:g[m])}))&amp;amp;amp;&amp;amp;amp;(c=!0),c)Ux.push([n,{...i},a]);else{let d=u7(n,i);Object.keys(d).length&amp;amp;amp;&amp;amp;amp;(Object.assign(n.props,d),no(n.object,d))}(a.sibling===null||(a.flags&amp;amp;amp;T7)===b7)&amp;amp;amp;&amp;amp;amp;E7()},finalizeInitialChildren:()=&amp;amp;gt;!1,commitMount(){},getPublicInstance:n=&amp;amp;gt;n?.object,prepareForCommit:()=&amp;amp;gt;null,preparePortalMount:n=&amp;amp;gt;Nx(n.getState().scene,n,&amp;amp;quot;&amp;amp;quot;,{}),resetAfterCommit:()=&amp;amp;gt;{},shouldSetTextContent:()=&amp;amp;gt;!1,clearContainer:()=&amp;amp;gt;!1,hideInstance:S7,unhideInstance:lz,createTextInstance:pA,hideTextInstance:pA,unhideTextInstance:pA,scheduleTimeout:typeof setTimeout==&amp;amp;quot;function&amp;amp;quot;?setTimeout:void 0,cancelTimeout:typeof clearTimeout==&amp;amp;quot;function&amp;amp;quot;?clearTimeout:void 0,noTimeout:-1,getInstanceFromNode:()=&amp;amp;gt;null,beforeActiveInstanceBlur(){},afterActiveInstanceBlur(){},detachDeletedInstance(){},prepareScopeUpdate(){},getInstanceFromScope:()=&amp;amp;gt;null,shouldAttemptEagerTransition:()=&amp;amp;gt;!1,trackSchedulerEvent:()=&amp;amp;gt;{},resolveEventType:()=&amp;amp;gt;null,resolveEventTimeStamp:()=&amp;amp;gt;-1.1,requestPostPaintCallback(){},maySuspendCommit:()=&amp;amp;gt;!1,preloadInstance:()=&amp;amp;gt;!0,startSuspendingCommit(){},suspendInstance(){},waitForCommitToBeReady:()=&amp;amp;gt;null,NotPendingTransition:null,HostTransitionContext:sn.createContext(null),setCurrentUpdatePriority(n){Dx=n},getCurrentUpdatePriority(){return Dx},resolveUpdatePriority(){var n;if(Dx!==rz)return Dx;switch(typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;((n=window.event)==null?void 0:n.type)){case&amp;amp;quot;click&amp;amp;quot;:case&amp;amp;quot;contextmenu&amp;amp;quot;:case&amp;amp;quot;dblclick&amp;amp;quot;:case&amp;amp;quot;pointercancel&amp;amp;quot;:case&amp;amp;quot;pointerdown&amp;amp;quot;:case&amp;amp;quot;pointerup&amp;amp;quot;:return vl.DiscreteEventPriority;case&amp;amp;quot;pointermove&amp;amp;quot;:case&amp;amp;quot;pointerout&amp;amp;quot;:case&amp;amp;quot;pointerover&amp;amp;quot;:case&amp;amp;quot;pointerenter&amp;amp;quot;:case&amp;amp;quot;pointerleave&amp;amp;quot;:case&amp;amp;quot;wheel&amp;amp;quot;:return vl.ContinuousEventPriority;default:return vl.DefaultEventPriority}},resetFormInstance(){}}),gl=new Map,Uh={objects:&amp;amp;quot;shallow&amp;amp;quot;,strict:!1};function A7(n,t){if(!t&amp;amp;amp;&amp;amp;amp;typeof HTMLCanvasElement&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n instanceof HTMLCanvasElement&amp;amp;amp;&amp;amp;amp;n.parentElement){let{width:e,height:i,top:a,left:s}=n.parentElement.getBoundingClientRect();return{width:e,height:i,top:a,left:s}}else if(!t&amp;amp;amp;&amp;amp;amp;typeof OffscreenCanvas&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n instanceof OffscreenCanvas)return{width:n.width,height:n.height,top:0,left:0};return{width:0,height:0,top:0,left:0,...t}}function UA(n){let t=gl.get(n),e=t?.fiber,i=t?.store;t&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;R3F.createRoot should only be called once!&amp;amp;quot;);let a=typeof reportError==&amp;amp;quot;function&amp;amp;quot;?reportError:console.error,s=i||p7(Px,bA),o=e||zx.createContainer(s,vl.ConcurrentRoot,null,!1,null,&amp;amp;quot;&amp;amp;quot;,a,a,a,null);t||gl.set(n,{fiber:o,store:s});let u,c,h=!1,d=null;return{async configure(m={}){let g;d=new Promise(xt=&amp;amp;gt;g=xt);let{gl:y,size:x,scene:b,events:M,onCreated:v,shadows:S=!1,linear:E=!1,flat:T=!1,legacy:w=!1,orthographic:U=!1,frameloop:O=&amp;amp;quot;always&amp;amp;quot;,dpr:z=[1,2],performance:C,raycaster:R,camera:P,onPointerMissed:j}=m,X=s.getState(),Z=X.gl;if(!X.gl){let xt={canvas:n,powerPreference:&amp;amp;quot;high-performance&amp;amp;quot;,antialias:!0,alpha:!0},It=typeof y==&amp;amp;quot;function&amp;amp;quot;?await y(xt):y;FL(It)?Z=It:Z=new Hg({...xt,...y}),X.set({gl:Z})}let st=X.raycaster;st||X.set({raycaster:st=new ph});let{params:et,...mt}=R||{};if(_n.equ(mt,st,Uh)||no(st,{...mt}),_n.equ(et,st.params,Uh)||no(st,{params:{...st.params,...et}}),!X.camera||X.camera===c&amp;amp;amp;&amp;amp;amp;!_n.equ(c,P,Uh)){c=P;let xt=P?.isCamera,It=xt?P:U?new $r(0,0,0,0,.1,1e3):new Un(75,0,.1,1e3);xt||(It.position.z=5,P&amp;amp;amp;&amp;amp;amp;(no(It,P),It.manual||(&amp;amp;quot;aspect&amp;amp;quot;in P||&amp;amp;quot;left&amp;amp;quot;in P||&amp;amp;quot;right&amp;amp;quot;in P||&amp;amp;quot;bottom&amp;amp;quot;in P||&amp;amp;quot;top&amp;amp;quot;in P)&amp;amp;amp;&amp;amp;amp;(It.manual=!0,It.updateProjectionMatrix())),!X.camera&amp;amp;amp;&amp;amp;amp;!(P!=null&amp;amp;amp;&amp;amp;amp;P.rotation)&amp;amp;amp;&amp;amp;amp;It.lookAt(0,0,0)),X.set({camera:It}),st.camera=It}if(!X.scene){let xt;b!=null&amp;amp;amp;&amp;amp;amp;b.isScene?(xt=b,Nx(xt,s,&amp;amp;quot;&amp;amp;quot;,{})):(xt=new bu,Nx(xt,s,&amp;amp;quot;&amp;amp;quot;,{}),b&amp;amp;amp;&amp;amp;amp;no(xt,b)),X.set({scene:xt})}M&amp;amp;amp;&amp;amp;amp;!X.events.handlers&amp;amp;amp;&amp;amp;amp;X.set({events:M(s)});let K=A7(n,x);if(_n.equ(K,X.size,Uh)||X.setSize(K.width,K.height,K.top,K.left),z&amp;amp;amp;&amp;amp;amp;X.viewport.dpr!==JL(z)&amp;amp;amp;&amp;amp;amp;X.setDpr(z),X.frameloop!==O&amp;amp;amp;&amp;amp;amp;X.setFrameloop(O),X.onPointerMissed||X.set({onPointerMissed:j}),C&amp;amp;amp;&amp;amp;amp;!_n.equ(C,X.performance,Uh)&amp;amp;amp;&amp;amp;amp;X.set(xt=&amp;amp;gt;({performance:{...xt.performance,...C}})),!X.xr){var _t;let xt=(Qt,it)=&amp;amp;gt;{let wt=s.getState();wt.frameloop!==&amp;amp;quot;never&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;bA(Qt,!0,wt,it)},It=()=&amp;amp;gt;{let Qt=s.getState();Qt.gl.xr.enabled=Qt.gl.xr.isPresenting,Qt.gl.xr.setAnimationLoop(Qt.gl.xr.isPresenting?xt:null),Qt.gl.xr.isPresenting||Px(Qt)},se={connect(){let Qt=s.getState().gl;Qt.xr.addEventListener(&amp;amp;quot;sessionstart&amp;amp;quot;,It),Qt.xr.addEventListener(&amp;amp;quot;sessionend&amp;amp;quot;,It)},disconnect(){let Qt=s.getState().gl;Qt.xr.removeEventListener(&amp;amp;quot;sessionstart&amp;amp;quot;,It),Qt.xr.removeEventListener(&amp;amp;quot;sessionend&amp;amp;quot;,It)}};typeof((_t=Z.xr)==null?void 0:_t.addEventListener)==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;se.connect(),X.set({xr:se})}if(Z.shadowMap){let xt=Z.shadowMap.enabled,It=Z.shadowMap.type;if(Z.shadowMap.enabled=!!S,_n.boo(S))Z.shadowMap.type=Nu;else if(_n.str(S)){var Ut;let se={basic:J_,percentage:mh,soft:Nu,variance:Pa};Z.shadowMap.type=(Ut=se[S])!=null?Ut:Nu}else _n.obj(S)&amp;amp;amp;&amp;amp;amp;Object.assign(Z.shadowMap,S);(xt!==Z.shadowMap.enabled||It!==Z.shadowMap.type)&amp;amp;amp;&amp;amp;amp;(Z.shadowMap.needsUpdate=!0)}return we.enabled=!w,h||(Z.outputColorSpace=E?er:ri,Z.toneMapping=T?us:ng),X.legacy!==w&amp;amp;amp;&amp;amp;amp;X.set(()=&amp;amp;gt;({legacy:w})),X.linear!==E&amp;amp;amp;&amp;amp;amp;X.set(()=&amp;amp;gt;({linear:E})),X.flat!==T&amp;amp;amp;&amp;amp;amp;X.set(()=&amp;amp;gt;({flat:T})),y&amp;amp;amp;&amp;amp;amp;!_n.fun(y)&amp;amp;amp;&amp;amp;amp;!FL(y)&amp;amp;amp;&amp;amp;amp;!_n.equ(y,Z,Uh)&amp;amp;amp;&amp;amp;amp;no(Z,y),u=v,h=!0,g(),this},render(m){return!h&amp;amp;amp;&amp;amp;amp;!d&amp;amp;amp;&amp;amp;amp;this.configure(),d.then(()=&amp;amp;gt;{zx.updateContainer((0,Lh.jsx)(R7,{store:s,children:m,onCreated:u,rootElement:n}),o,null,()=&amp;amp;gt;{})}),s},unmount(){Fx(n)}}}function R7({store:n,children:t,onCreated:e,rootElement:i}){return Bh(()=&amp;amp;gt;{let a=n.getState();a.set(s=&amp;amp;gt;({internal:{...s.internal,active:!0}})),e&amp;amp;amp;&amp;amp;amp;e(a),n.getState().events.connected||a.events.connect==null||a.events.connect(i)},[]),(0,Lh.jsx)(AA.Provider,{value:n,children:t})}function Fx(n,t){let e=gl.get(n),i=e?.fiber;if(i){let a=e?.store.getState();a&amp;amp;amp;&amp;amp;amp;(a.internal.active=!1),zx.updateContainer(null,i,null,()=&amp;amp;gt;{a&amp;amp;amp;&amp;amp;amp;setTimeout(()=&amp;amp;gt;{try{var s,o,u,c;a.events.disconnect==null||a.events.disconnect(),(s=a.gl)==null||(o=s.renderLists)==null||o.dispose==null||o.dispose(),(u=a.gl)==null||u.forceContextLoss==null||u.forceContextLoss(),(c=a.gl)!=null&amp;amp;amp;&amp;amp;amp;c.xr&amp;amp;amp;&amp;amp;amp;a.xr.disconnect(),tz(a.scene),gl.delete(n),t&amp;amp;amp;&amp;amp;amp;t(n)}catch{}},500)})}}var C7=new Set,w7=new Set,D7=new Set;function mA(n,t){if(n.size)for(let{callback:e}of n.values())e(t)}function Oh(n,t){switch(n){case&amp;amp;quot;before&amp;amp;quot;:return mA(C7,t);case&amp;amp;quot;after&amp;amp;quot;:return mA(w7,t);case&amp;amp;quot;tail&amp;amp;quot;:return mA(D7,t)}}var gA,vA;function MA(n,t,e){let i=t.clock.getDelta();t.frameloop===&amp;amp;quot;never&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof n==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i=n-t.clock.elapsedTime,t.clock.oldTime=t.clock.elapsedTime,t.clock.elapsedTime=n),gA=t.internal.subscribers;for(let a=0;a&amp;amp;lt;gA.length;a++)vA=gA[a],vA.ref.current(vA.store.getState(),i,e);return!t.internal.priority&amp;amp;amp;&amp;amp;amp;t.gl.render&amp;amp;amp;&amp;amp;amp;t.gl.render(t.scene,t.camera),t.internal.frames=Math.max(0,t.internal.frames-1),t.frameloop===&amp;amp;quot;always&amp;amp;quot;?1:t.internal.frames}var Bx=!1,EA=!1,yA,qL,Nh;function cz(n){qL=requestAnimationFrame(cz),Bx=!0,yA=0,Oh(&amp;amp;quot;before&amp;amp;quot;,n),EA=!0;for(let e of gl.values()){var t;Nh=e.store.getState(),Nh.internal.active&amp;amp;amp;&amp;amp;amp;(Nh.frameloop===&amp;amp;quot;always&amp;amp;quot;||Nh.internal.frames&amp;amp;gt;0)&amp;amp;amp;&amp;amp;amp;!((t=Nh.gl.xr)!=null&amp;amp;amp;&amp;amp;amp;t.isPresenting)&amp;amp;amp;&amp;amp;amp;(yA+=MA(n,Nh))}if(EA=!1,Oh(&amp;amp;quot;after&amp;amp;quot;,n),yA===0)return Oh(&amp;amp;quot;tail&amp;amp;quot;,n),Bx=!1,cancelAnimationFrame(qL)}function Px(n,t=1){var e;if(!n)return gl.forEach(i=&amp;amp;gt;Px(i.store.getState(),t));(e=n.gl.xr)!=null&amp;amp;amp;&amp;amp;amp;e.isPresenting||!n.internal.active||n.frameloop===&amp;amp;quot;never&amp;amp;quot;||(t&amp;amp;gt;1?n.internal.frames=Math.min(60,n.internal.frames+t):EA?n.internal.frames=2:n.internal.frames=1,Bx||(Bx=!0,requestAnimationFrame(cz)))}function bA(n,t=!0,e,i){if(t&amp;amp;amp;&amp;amp;amp;Oh(&amp;amp;quot;before&amp;amp;quot;,n),e)MA(n,e,i);else for(let a of gl.values())MA(n,a.store.getState());t&amp;amp;amp;&amp;amp;amp;Oh(&amp;amp;quot;after&amp;amp;quot;,n)}var _A={onClick:[&amp;amp;quot;click&amp;amp;quot;,!1],onContextMenu:[&amp;amp;quot;contextmenu&amp;amp;quot;,!1],onDoubleClick:[&amp;amp;quot;dblclick&amp;amp;quot;,!1],onWheel:[&amp;amp;quot;wheel&amp;amp;quot;,!0],onPointerDown:[&amp;amp;quot;pointerdown&amp;amp;quot;,!0],onPointerUp:[&amp;amp;quot;pointerup&amp;amp;quot;,!0],onPointerLeave:[&amp;amp;quot;pointerleave&amp;amp;quot;,!0],onPointerMove:[&amp;amp;quot;pointermove&amp;amp;quot;,!0],onPointerCancel:[&amp;amp;quot;pointercancel&amp;amp;quot;,!0],onLostPointerCapture:[&amp;amp;quot;lostpointercapture&amp;amp;quot;,!0]};function NA(n){let{handlePointer:t}=iz(n);return{priority:1,enabled:!0,compute(e,i,a){i.pointer.set(e.offsetX/i.size.width*2-1,-(e.offsetY/i.size.height)*2+1),i.raycaster.setFromCamera(i.pointer,i.camera)},connected:void 0,handlers:Object.keys(_A).reduce((e,i)=&amp;amp;gt;({...e,[i]:t(i)}),{}),update:()=&amp;amp;gt;{var e;let{events:i,internal:a}=n.getState();(e=a.lastEvent)!=null&amp;amp;amp;&amp;amp;amp;e.current&amp;amp;amp;&amp;amp;amp;i.handlers&amp;amp;amp;&amp;amp;amp;i.handlers.onPointerMove(a.lastEvent.current)},connect:e=&amp;amp;gt;{let{set:i,events:a}=n.getState();if(a.disconnect==null||a.disconnect(),i(s=&amp;amp;gt;({events:{...s.events,connected:e}})),a.handlers)for(let s in a.handlers){let o=a.handlers[s],[u,c]=_A[s];e.addEventListener(u,o,{passive:c})}},disconnect:()=&amp;amp;gt;{let{set:e,events:i}=n.getState();if(i.connected){if(i.handlers)for(let a in i.handlers){let s=i.handlers[a],[o]=_A[a];i.connected.removeEventListener(o,s)}e(a=&amp;amp;gt;({events:{...a.events,connected:void 0}}))}}}}var ki=Ti(ja());var Ia=Ti(ja(),1);function fz(n,t){let e;return(...i)=&amp;amp;gt;{window.clearTimeout(e),e=window.setTimeout(()=&amp;amp;gt;n(...i),t)}}function hz({debounce:n,scroll:t,polyfill:e,offsetSize:i}={debounce:0,scroll:!1,offsetSize:!1}){let a=e||(typeof window&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?class{}:window.ResizeObserver);if(!a)throw new Error(&amp;amp;quot;This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills&amp;amp;quot;);let[s,o]=(0,Ia.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}),u=(0,Ia.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:s,orientationHandler:null}),c=n?typeof n==&amp;amp;quot;number&amp;amp;quot;?n:n.scroll:null,h=n?typeof n==&amp;amp;quot;number&amp;amp;quot;?n:n.resize:null,d=(0,Ia.useRef)(!1);(0,Ia.useEffect)(()=&amp;amp;gt;(d.current=!0,()=&amp;amp;gt;void(d.current=!1)));let[m,g,y]=(0,Ia.useMemo)(()=&amp;amp;gt;{let v=()=&amp;amp;gt;{if(!u.current.element)return;let{left:S,top:E,width:T,height:w,bottom:U,right:O,x:z,y:C}=u.current.element.getBoundingClientRect(),R={left:S,top:E,width:T,height:w,bottom:U,right:O,x:z,y:C};u.current.element instanceof HTMLElement&amp;amp;amp;&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;(R.height=u.current.element.offsetHeight,R.width=u.current.element.offsetWidth),Object.freeze(R),d.current&amp;amp;amp;&amp;amp;amp;!L7(u.current.lastBounds,R)&amp;amp;amp;&amp;amp;amp;o(u.current.lastBounds=R)};return[v,h?fz(v,h):v,c?fz(v,c):v]},[o,i,c,h]);function x(){u.current.scrollContainers&amp;amp;amp;&amp;amp;amp;(u.current.scrollContainers.forEach(v=&amp;amp;gt;v.removeEventListener(&amp;amp;quot;scroll&amp;amp;quot;,y,!0)),u.current.scrollContainers=null),u.current.resizeObserver&amp;amp;amp;&amp;amp;amp;(u.current.resizeObserver.disconnect(),u.current.resizeObserver=null),u.current.orientationHandler&amp;amp;amp;&amp;amp;amp;(&amp;amp;quot;orientation&amp;amp;quot;in screen&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;removeEventListener&amp;amp;quot;in screen.orientation?screen.orientation.removeEventListener(&amp;amp;quot;change&amp;amp;quot;,u.current.orientationHandler):&amp;amp;quot;onorientationchange&amp;amp;quot;in window&amp;amp;amp;&amp;amp;amp;window.removeEventListener(&amp;amp;quot;orientationchange&amp;amp;quot;,u.current.orientationHandler))}function b(){u.current.element&amp;amp;amp;&amp;amp;amp;(u.current.resizeObserver=new a(y),u.current.resizeObserver.observe(u.current.element),t&amp;amp;amp;&amp;amp;amp;u.current.scrollContainers&amp;amp;amp;&amp;amp;amp;u.current.scrollContainers.forEach(v=&amp;amp;gt;v.addEventListener(&amp;amp;quot;scroll&amp;amp;quot;,y,{capture:!0,passive:!0})),u.current.orientationHandler=()=&amp;amp;gt;{y()},&amp;amp;quot;orientation&amp;amp;quot;in screen&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;addEventListener&amp;amp;quot;in screen.orientation?screen.orientation.addEventListener(&amp;amp;quot;change&amp;amp;quot;,u.current.orientationHandler):&amp;amp;quot;onorientationchange&amp;amp;quot;in window&amp;amp;amp;&amp;amp;amp;window.addEventListener(&amp;amp;quot;orientationchange&amp;amp;quot;,u.current.orientationHandler))}let M=v=&amp;amp;gt;{!v||v===u.current.element||(x(),u.current.element=v,u.current.scrollContainers=dz(v),b())};return N7(y,!!t),U7(g),(0,Ia.useEffect)(()=&amp;amp;gt;{x(),b()},[t,y,g]),(0,Ia.useEffect)(()=&amp;amp;gt;x,[]),[M,s,m]}function U7(n){(0,Ia.useEffect)(()=&amp;amp;gt;{let t=n;return window.addEventListener(&amp;amp;quot;resize&amp;amp;quot;,t),()=&amp;amp;gt;void window.removeEventListener(&amp;amp;quot;resize&amp;amp;quot;,t)},[n])}function N7(n,t){(0,Ia.useEffect)(()=&amp;amp;gt;{if(t){let e=n;return window.addEventListener(&amp;amp;quot;scroll&amp;amp;quot;,e,{capture:!0,passive:!0}),()=&amp;amp;gt;void window.removeEventListener(&amp;amp;quot;scroll&amp;amp;quot;,e,!0)}},[n,t])}function dz(n){let t=[];if(!n||n===document.body)return t;let{overflow:e,overflowX:i,overflowY:a}=window.getComputedStyle(n);return[e,i,a].some(s=&amp;amp;gt;s===&amp;amp;quot;auto&amp;amp;quot;||s===&amp;amp;quot;scroll&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;t.push(n),[...t,...dz(n.parentElement)]}var O7=[&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;top&amp;amp;quot;,&amp;amp;quot;bottom&amp;amp;quot;,&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;right&amp;amp;quot;,&amp;amp;quot;width&amp;amp;quot;,&amp;amp;quot;height&amp;amp;quot;],L7=(n,t)=&amp;amp;gt;O7.every(e=&amp;amp;gt;n[e]===t[e]);var cr=Ti(cA()),O9=Ti(qE());var L9=Ti(uA()),z9=Ti(Ax());function z7({ref:n,children:t,fallback:e,resize:i,style:a,gl:s,events:o=NA,eventSource:u,eventPrefix:c,shadows:h,linear:d,flat:m,legacy:g,orthographic:y,frameloop:x,dpr:b,performance:M,raycaster:v,camera:S,scene:E,onPointerMissed:T,onCreated:w,...U}){ki.useMemo(()=&amp;amp;gt;wA(_x),[]);let O=jL(),[z,C]=hz({scroll:!0,debounce:{scroll:50,resize:0},...i}),R=ki.useRef(null),P=ki.useRef(null);ki.useImperativeHandle(n,()=&amp;amp;gt;R.current);let j=TA(T),[X,Z]=ki.useState(!1),[st,et]=ki.useState(!1);if(X)throw X;if(st)throw st;let mt=ki.useRef(null);return Bh(()=&amp;amp;gt;{let _t=R.current;if(C.width&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;C.height&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;_t){mt.current||(mt.current=UA(_t));async function Ut(){await mt.current.configure({gl:s,scene:E,events:o,shadows:h,linear:d,flat:m,legacy:g,orthographic:y,frameloop:x,dpr:b,performance:M,raycaster:v,camera:S,size:C,onPointerMissed:(...xt)=&amp;amp;gt;j.current==null?void 0:j.current(...xt),onCreated:xt=&amp;amp;gt;{xt.events.connect==null||xt.events.connect(u?ZL(u)?u.current:u:P.current),c&amp;amp;amp;&amp;amp;amp;xt.setEvents({compute:(It,se)=&amp;amp;gt;{let Qt=It[c+&amp;amp;quot;X&amp;amp;quot;],it=It[c+&amp;amp;quot;Y&amp;amp;quot;];se.pointer.set(Qt/se.size.width*2-1,-(it/se.size.height)*2+1),se.raycaster.setFromCamera(se.pointer,se.camera)}}),w?.(xt)}}),mt.current.render((0,cr.jsx)(O,{children:(0,cr.jsx)(KL,{set:et,children:(0,cr.jsx)(ki.Suspense,{fallback:(0,cr.jsx)(QL,{set:Z}),children:t??null})})}))}Ut()}}),ki.useEffect(()=&amp;amp;gt;{let _t=R.current;if(_t)return()=&amp;amp;gt;Fx(_t)},[]),(0,cr.jsx)(&amp;amp;quot;div&amp;amp;quot;,{ref:P,style:{position:&amp;amp;quot;relative&amp;amp;quot;,width:&amp;amp;quot;100%&amp;amp;quot;,height:&amp;amp;quot;100%&amp;amp;quot;,overflow:&amp;amp;quot;hidden&amp;amp;quot;,pointerEvents:u?&amp;amp;quot;none&amp;amp;quot;:&amp;amp;quot;auto&amp;amp;quot;,...a},...U,children:(0,cr.jsx)(&amp;amp;quot;div&amp;amp;quot;,{ref:z,style:{width:&amp;amp;quot;100%&amp;amp;quot;,height:&amp;amp;quot;100%&amp;amp;quot;},children:(0,cr.jsx)(&amp;amp;quot;canvas&amp;amp;quot;,{ref:R,style:{display:&amp;amp;quot;block&amp;amp;quot;},children:e})})})}function pz(n){return(0,cr.jsx)(qg,{children:(0,cr.jsx)(z7,{...n})})}function B7(){let n=(0,Ls.useRef)();return RA(()=&amp;amp;gt;{n.current&amp;amp;amp;&amp;amp;amp;(n.current.rotation.y+=.01)}),Ls.default.createElement(&amp;amp;quot;mesh&amp;amp;quot;,{ref:n,position:[0,0,0]},Ls.default.createElement(&amp;amp;quot;boxGeometry&amp;amp;quot;,{args:[1,1,1]}),Ls.default.createElement(&amp;amp;quot;meshStandardMaterial&amp;amp;quot;,{color:&amp;amp;quot;tomato&amp;amp;quot;}))}function P7(){return Ls.default.createElement(pz,{camera:{position:[3,2,5],fov:50},style:{width:&amp;amp;quot;100%&amp;amp;quot;,height:&amp;amp;quot;100%&amp;amp;quot;}},Ls.default.createElement(&amp;amp;quot;ambientLight&amp;amp;quot;,{intensity:.4}),Ls.default.createElement(&amp;amp;quot;directionalLight&amp;amp;quot;,{position:[5,5,5],intensity:.8}),Ls.default.createElement(B7,null))}var mz=document.getElementById(&amp;amp;quot;react-root&amp;amp;quot;);mz&amp;amp;amp;&amp;amp;amp;(0,gz.createRoot)(mz).render(Ls.default.createElement(P7,null));})();
   5026 <a href="#l5007" class="line" id="l5007">   5007</a> &lt;a href=&quot;#l4988&quot; class=&quot;line&quot; id=&quot;l4988&quot;&gt;   4988&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3851&amp;quot; id=&amp;quot;h3-0-3851&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+/*! Bundled license information:
   5027 <a href="#l5008" class="line" id="l5008">   5008</a> &lt;a href=&quot;#l4989&quot; class=&quot;line&quot; id=&quot;l4989&quot;&gt;   4989&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3852&amp;quot; id=&amp;quot;h3-0-3852&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5028 <a href="#l5009" class="line" id="l5009">   5009</a> &lt;a href=&quot;#l4990&quot; class=&quot;line&quot; id=&quot;l4990&quot;&gt;   4990&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3853&amp;quot; id=&amp;quot;h3-0-3853&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+react/cjs/react.production.js:
   5029 <a href="#l5010" class="line" id="l5010">   5010</a> &lt;a href=&quot;#l4991&quot; class=&quot;line&quot; id=&quot;l4991&quot;&gt;   4991&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3854&amp;quot; id=&amp;quot;h3-0-3854&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5030 <a href="#l5011" class="line" id="l5011">   5011</a> &lt;a href=&quot;#l4992&quot; class=&quot;line&quot; id=&quot;l4992&quot;&gt;   4992&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3855&amp;quot; id=&amp;quot;h3-0-3855&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5031 <a href="#l5012" class="line" id="l5012">   5012</a> &lt;a href=&quot;#l4993&quot; class=&quot;line&quot; id=&quot;l4993&quot;&gt;   4993&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3856&amp;quot; id=&amp;quot;h3-0-3856&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * react.production.js
   5032 <a href="#l5013" class="line" id="l5013">   5013</a> &lt;a href=&quot;#l4994&quot; class=&quot;line&quot; id=&quot;l4994&quot;&gt;   4994&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3857&amp;quot; id=&amp;quot;h3-0-3857&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5033 <a href="#l5014" class="line" id="l5014">   5014</a> &lt;a href=&quot;#l4995&quot; class=&quot;line&quot; id=&quot;l4995&quot;&gt;   4995&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3858&amp;quot; id=&amp;quot;h3-0-3858&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5034 <a href="#l5015" class="line" id="l5015">   5015</a> &lt;a href=&quot;#l4996&quot; class=&quot;line&quot; id=&quot;l4996&quot;&gt;   4996&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3859&amp;quot; id=&amp;quot;h3-0-3859&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5035 <a href="#l5016" class="line" id="l5016">   5016</a> &lt;a href=&quot;#l4997&quot; class=&quot;line&quot; id=&quot;l4997&quot;&gt;   4997&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3860&amp;quot; id=&amp;quot;h3-0-3860&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5036 <a href="#l5017" class="line" id="l5017">   5017</a> &lt;a href=&quot;#l4998&quot; class=&quot;line&quot; id=&quot;l4998&quot;&gt;   4998&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3861&amp;quot; id=&amp;quot;h3-0-3861&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5037 <a href="#l5018" class="line" id="l5018">   5018</a> &lt;a href=&quot;#l4999&quot; class=&quot;line&quot; id=&quot;l4999&quot;&gt;   4999&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3862&amp;quot; id=&amp;quot;h3-0-3862&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5038 <a href="#l5019" class="line" id="l5019">   5019</a> &lt;a href=&quot;#l5000&quot; class=&quot;line&quot; id=&quot;l5000&quot;&gt;   5000&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3863&amp;quot; id=&amp;quot;h3-0-3863&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5039 <a href="#l5020" class="line" id="l5020">   5020</a> &lt;a href=&quot;#l5001&quot; class=&quot;line&quot; id=&quot;l5001&quot;&gt;   5001&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3864&amp;quot; id=&amp;quot;h3-0-3864&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+scheduler/cjs/scheduler.production.js:
   5040 <a href="#l5021" class="line" id="l5021">   5021</a> &lt;a href=&quot;#l5002&quot; class=&quot;line&quot; id=&quot;l5002&quot;&gt;   5002&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3865&amp;quot; id=&amp;quot;h3-0-3865&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+scheduler/cjs/scheduler.production.js:
   5041 <a href="#l5022" class="line" id="l5022">   5022</a> &lt;a href=&quot;#l5003&quot; class=&quot;line&quot; id=&quot;l5003&quot;&gt;   5003&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3866&amp;quot; id=&amp;quot;h3-0-3866&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5042 <a href="#l5023" class="line" id="l5023">   5023</a> &lt;a href=&quot;#l5004&quot; class=&quot;line&quot; id=&quot;l5004&quot;&gt;   5004&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3867&amp;quot; id=&amp;quot;h3-0-3867&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5043 <a href="#l5024" class="line" id="l5024">   5024</a> &lt;a href=&quot;#l5005&quot; class=&quot;line&quot; id=&quot;l5005&quot;&gt;   5005&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3868&amp;quot; id=&amp;quot;h3-0-3868&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * scheduler.production.js
   5044 <a href="#l5025" class="line" id="l5025">   5025</a> &lt;a href=&quot;#l5006&quot; class=&quot;line&quot; id=&quot;l5006&quot;&gt;   5006&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3869&amp;quot; id=&amp;quot;h3-0-3869&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5045 <a href="#l5026" class="line" id="l5026">   5026</a> &lt;a href=&quot;#l5007&quot; class=&quot;line&quot; id=&quot;l5007&quot;&gt;   5007&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3870&amp;quot; id=&amp;quot;h3-0-3870&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5046 <a href="#l5027" class="line" id="l5027">   5027</a> &lt;a href=&quot;#l5008&quot; class=&quot;line&quot; id=&quot;l5008&quot;&gt;   5008&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3871&amp;quot; id=&amp;quot;h3-0-3871&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5047 <a href="#l5028" class="line" id="l5028">   5028</a> &lt;a href=&quot;#l5009&quot; class=&quot;line&quot; id=&quot;l5009&quot;&gt;   5009&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3872&amp;quot; id=&amp;quot;h3-0-3872&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5048 <a href="#l5029" class="line" id="l5029">   5029</a> &lt;a href=&quot;#l5010&quot; class=&quot;line&quot; id=&quot;l5010&quot;&gt;   5010&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3873&amp;quot; id=&amp;quot;h3-0-3873&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5049 <a href="#l5030" class="line" id="l5030">   5030</a> &lt;a href=&quot;#l5011&quot; class=&quot;line&quot; id=&quot;l5011&quot;&gt;   5011&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3874&amp;quot; id=&amp;quot;h3-0-3874&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5050 <a href="#l5031" class="line" id="l5031">   5031</a> &lt;a href=&quot;#l5012&quot; class=&quot;line&quot; id=&quot;l5012&quot;&gt;   5012&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3875&amp;quot; id=&amp;quot;h3-0-3875&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5051 <a href="#l5032" class="line" id="l5032">   5032</a> &lt;a href=&quot;#l5013&quot; class=&quot;line&quot; id=&quot;l5013&quot;&gt;   5013&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3876&amp;quot; id=&amp;quot;h3-0-3876&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+react-dom/cjs/react-dom.production.js:
   5052 <a href="#l5033" class="line" id="l5033">   5033</a> &lt;a href=&quot;#l5014&quot; class=&quot;line&quot; id=&quot;l5014&quot;&gt;   5014&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3877&amp;quot; id=&amp;quot;h3-0-3877&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5053 <a href="#l5034" class="line" id="l5034">   5034</a> &lt;a href=&quot;#l5015&quot; class=&quot;line&quot; id=&quot;l5015&quot;&gt;   5015&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3878&amp;quot; id=&amp;quot;h3-0-3878&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5054 <a href="#l5035" class="line" id="l5035">   5035</a> &lt;a href=&quot;#l5016&quot; class=&quot;line&quot; id=&quot;l5016&quot;&gt;   5016&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3879&amp;quot; id=&amp;quot;h3-0-3879&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * react-dom.production.js
   5055 <a href="#l5036" class="line" id="l5036">   5036</a> &lt;a href=&quot;#l5017&quot; class=&quot;line&quot; id=&quot;l5017&quot;&gt;   5017&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3880&amp;quot; id=&amp;quot;h3-0-3880&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5056 <a href="#l5037" class="line" id="l5037">   5037</a> &lt;a href=&quot;#l5018&quot; class=&quot;line&quot; id=&quot;l5018&quot;&gt;   5018&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3881&amp;quot; id=&amp;quot;h3-0-3881&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5057 <a href="#l5038" class="line" id="l5038">   5038</a> &lt;a href=&quot;#l5019&quot; class=&quot;line&quot; id=&quot;l5019&quot;&gt;   5019&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3882&amp;quot; id=&amp;quot;h3-0-3882&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5058 <a href="#l5039" class="line" id="l5039">   5039</a> &lt;a href=&quot;#l5020&quot; class=&quot;line&quot; id=&quot;l5020&quot;&gt;   5020&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3883&amp;quot; id=&amp;quot;h3-0-3883&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5059 <a href="#l5040" class="line" id="l5040">   5040</a> &lt;a href=&quot;#l5021&quot; class=&quot;line&quot; id=&quot;l5021&quot;&gt;   5021&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3884&amp;quot; id=&amp;quot;h3-0-3884&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5060 <a href="#l5041" class="line" id="l5041">   5041</a> &lt;a href=&quot;#l5022&quot; class=&quot;line&quot; id=&quot;l5022&quot;&gt;   5022&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3885&amp;quot; id=&amp;quot;h3-0-3885&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5061 <a href="#l5042" class="line" id="l5042">   5042</a> &lt;a href=&quot;#l5023&quot; class=&quot;line&quot; id=&quot;l5023&quot;&gt;   5023&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3886&amp;quot; id=&amp;quot;h3-0-3886&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5062 <a href="#l5043" class="line" id="l5043">   5043</a> &lt;a href=&quot;#l5024&quot; class=&quot;line&quot; id=&quot;l5024&quot;&gt;   5024&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3887&amp;quot; id=&amp;quot;h3-0-3887&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+react-dom/cjs/react-dom-client.production.js:
   5063 <a href="#l5044" class="line" id="l5044">   5044</a> &lt;a href=&quot;#l5025&quot; class=&quot;line&quot; id=&quot;l5025&quot;&gt;   5025&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3888&amp;quot; id=&amp;quot;h3-0-3888&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5064 <a href="#l5045" class="line" id="l5045">   5045</a> &lt;a href=&quot;#l5026&quot; class=&quot;line&quot; id=&quot;l5026&quot;&gt;   5026&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3889&amp;quot; id=&amp;quot;h3-0-3889&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5065 <a href="#l5046" class="line" id="l5046">   5046</a> &lt;a href=&quot;#l5027&quot; class=&quot;line&quot; id=&quot;l5027&quot;&gt;   5027&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3890&amp;quot; id=&amp;quot;h3-0-3890&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * react-dom-client.production.js
   5066 <a href="#l5047" class="line" id="l5047">   5047</a> &lt;a href=&quot;#l5028&quot; class=&quot;line&quot; id=&quot;l5028&quot;&gt;   5028&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3891&amp;quot; id=&amp;quot;h3-0-3891&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5067 <a href="#l5048" class="line" id="l5048">   5048</a> &lt;a href=&quot;#l5029&quot; class=&quot;line&quot; id=&quot;l5029&quot;&gt;   5029&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3892&amp;quot; id=&amp;quot;h3-0-3892&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5068 <a href="#l5049" class="line" id="l5049">   5049</a> &lt;a href=&quot;#l5030&quot; class=&quot;line&quot; id=&quot;l5030&quot;&gt;   5030&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3893&amp;quot; id=&amp;quot;h3-0-3893&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5069 <a href="#l5050" class="line" id="l5050">   5050</a> &lt;a href=&quot;#l5031&quot; class=&quot;line&quot; id=&quot;l5031&quot;&gt;   5031&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3894&amp;quot; id=&amp;quot;h3-0-3894&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5070 <a href="#l5051" class="line" id="l5051">   5051</a> &lt;a href=&quot;#l5032&quot; class=&quot;line&quot; id=&quot;l5032&quot;&gt;   5032&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3895&amp;quot; id=&amp;quot;h3-0-3895&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5071 <a href="#l5052" class="line" id="l5052">   5052</a> &lt;a href=&quot;#l5033&quot; class=&quot;line&quot; id=&quot;l5033&quot;&gt;   5033&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3896&amp;quot; id=&amp;quot;h3-0-3896&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5072 <a href="#l5053" class="line" id="l5053">   5053</a> &lt;a href=&quot;#l5034&quot; class=&quot;line&quot; id=&quot;l5034&quot;&gt;   5034&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3897&amp;quot; id=&amp;quot;h3-0-3897&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5073 <a href="#l5054" class="line" id="l5054">   5054</a> &lt;a href=&quot;#l5035&quot; class=&quot;line&quot; id=&quot;l5035&quot;&gt;   5035&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3898&amp;quot; id=&amp;quot;h3-0-3898&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+react-reconciler/cjs/react-reconciler-constants.production.js:
   5074 <a href="#l5055" class="line" id="l5055">   5055</a> &lt;a href=&quot;#l5036&quot; class=&quot;line&quot; id=&quot;l5036&quot;&gt;   5036&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3899&amp;quot; id=&amp;quot;h3-0-3899&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5075 <a href="#l5056" class="line" id="l5056">   5056</a> &lt;a href=&quot;#l5037&quot; class=&quot;line&quot; id=&quot;l5037&quot;&gt;   5037&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3900&amp;quot; id=&amp;quot;h3-0-3900&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5076 <a href="#l5057" class="line" id="l5057">   5057</a> &lt;a href=&quot;#l5038&quot; class=&quot;line&quot; id=&quot;l5038&quot;&gt;   5038&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3901&amp;quot; id=&amp;quot;h3-0-3901&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * react-reconciler-constants.production.js
   5077 <a href="#l5058" class="line" id="l5058">   5058</a> &lt;a href=&quot;#l5039&quot; class=&quot;line&quot; id=&quot;l5039&quot;&gt;   5039&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3902&amp;quot; id=&amp;quot;h3-0-3902&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5078 <a href="#l5059" class="line" id="l5059">   5059</a> &lt;a href=&quot;#l5040&quot; class=&quot;line&quot; id=&quot;l5040&quot;&gt;   5040&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3903&amp;quot; id=&amp;quot;h3-0-3903&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5079 <a href="#l5060" class="line" id="l5060">   5060</a> &lt;a href=&quot;#l5041&quot; class=&quot;line&quot; id=&quot;l5041&quot;&gt;   5041&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3904&amp;quot; id=&amp;quot;h3-0-3904&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5080 <a href="#l5061" class="line" id="l5061">   5061</a> &lt;a href=&quot;#l5042&quot; class=&quot;line&quot; id=&quot;l5042&quot;&gt;   5042&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3905&amp;quot; id=&amp;quot;h3-0-3905&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5081 <a href="#l5062" class="line" id="l5062">   5062</a> &lt;a href=&quot;#l5043&quot; class=&quot;line&quot; id=&quot;l5043&quot;&gt;   5043&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3906&amp;quot; id=&amp;quot;h3-0-3906&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5082 <a href="#l5063" class="line" id="l5063">   5063</a> &lt;a href=&quot;#l5044&quot; class=&quot;line&quot; id=&quot;l5044&quot;&gt;   5044&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3907&amp;quot; id=&amp;quot;h3-0-3907&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5083 <a href="#l5064" class="line" id="l5064">   5064</a> &lt;a href=&quot;#l5045&quot; class=&quot;line&quot; id=&quot;l5045&quot;&gt;   5045&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3908&amp;quot; id=&amp;quot;h3-0-3908&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5084 <a href="#l5065" class="line" id="l5065">   5065</a> &lt;a href=&quot;#l5046&quot; class=&quot;line&quot; id=&quot;l5046&quot;&gt;   5046&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3909&amp;quot; id=&amp;quot;h3-0-3909&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+use-sync-external-store/cjs/use-sync-external-store-shim.production.js:
   5085 <a href="#l5066" class="line" id="l5066">   5066</a> &lt;a href=&quot;#l5047&quot; class=&quot;line&quot; id=&quot;l5047&quot;&gt;   5047&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3910&amp;quot; id=&amp;quot;h3-0-3910&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5086 <a href="#l5067" class="line" id="l5067">   5067</a> &lt;a href=&quot;#l5048&quot; class=&quot;line&quot; id=&quot;l5048&quot;&gt;   5048&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3911&amp;quot; id=&amp;quot;h3-0-3911&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5087 <a href="#l5068" class="line" id="l5068">   5068</a> &lt;a href=&quot;#l5049&quot; class=&quot;line&quot; id=&quot;l5049&quot;&gt;   5049&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3912&amp;quot; id=&amp;quot;h3-0-3912&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * use-sync-external-store-shim.production.js
   5088 <a href="#l5069" class="line" id="l5069">   5069</a> &lt;a href=&quot;#l5050&quot; class=&quot;line&quot; id=&quot;l5050&quot;&gt;   5050&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3913&amp;quot; id=&amp;quot;h3-0-3913&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5089 <a href="#l5070" class="line" id="l5070">   5070</a> &lt;a href=&quot;#l5051&quot; class=&quot;line&quot; id=&quot;l5051&quot;&gt;   5051&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3914&amp;quot; id=&amp;quot;h3-0-3914&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5090 <a href="#l5071" class="line" id="l5071">   5071</a> &lt;a href=&quot;#l5052&quot; class=&quot;line&quot; id=&quot;l5052&quot;&gt;   5052&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3915&amp;quot; id=&amp;quot;h3-0-3915&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5091 <a href="#l5072" class="line" id="l5072">   5072</a> &lt;a href=&quot;#l5053&quot; class=&quot;line&quot; id=&quot;l5053&quot;&gt;   5053&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3916&amp;quot; id=&amp;quot;h3-0-3916&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5092 <a href="#l5073" class="line" id="l5073">   5073</a> &lt;a href=&quot;#l5054&quot; class=&quot;line&quot; id=&quot;l5054&quot;&gt;   5054&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3917&amp;quot; id=&amp;quot;h3-0-3917&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5093 <a href="#l5074" class="line" id="l5074">   5074</a> &lt;a href=&quot;#l5055&quot; class=&quot;line&quot; id=&quot;l5055&quot;&gt;   5055&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3918&amp;quot; id=&amp;quot;h3-0-3918&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5094 <a href="#l5075" class="line" id="l5075">   5075</a> &lt;a href=&quot;#l5056&quot; class=&quot;line&quot; id=&quot;l5056&quot;&gt;   5056&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3919&amp;quot; id=&amp;quot;h3-0-3919&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5095 <a href="#l5076" class="line" id="l5076">   5076</a> &lt;a href=&quot;#l5057&quot; class=&quot;line&quot; id=&quot;l5057&quot;&gt;   5057&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3920&amp;quot; id=&amp;quot;h3-0-3920&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js:
   5096 <a href="#l5077" class="line" id="l5077">   5077</a> &lt;a href=&quot;#l5058&quot; class=&quot;line&quot; id=&quot;l5058&quot;&gt;   5058&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3921&amp;quot; id=&amp;quot;h3-0-3921&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5097 <a href="#l5078" class="line" id="l5078">   5078</a> &lt;a href=&quot;#l5059&quot; class=&quot;line&quot; id=&quot;l5059&quot;&gt;   5059&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3922&amp;quot; id=&amp;quot;h3-0-3922&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5098 <a href="#l5079" class="line" id="l5079">   5079</a> &lt;a href=&quot;#l5060&quot; class=&quot;line&quot; id=&quot;l5060&quot;&gt;   5060&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3923&amp;quot; id=&amp;quot;h3-0-3923&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * use-sync-external-store-shim/with-selector.production.js
   5099 <a href="#l5080" class="line" id="l5080">   5080</a> &lt;a href=&quot;#l5061&quot; class=&quot;line&quot; id=&quot;l5061&quot;&gt;   5061&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3924&amp;quot; id=&amp;quot;h3-0-3924&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5100 <a href="#l5081" class="line" id="l5081">   5081</a> &lt;a href=&quot;#l5062&quot; class=&quot;line&quot; id=&quot;l5062&quot;&gt;   5062&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3925&amp;quot; id=&amp;quot;h3-0-3925&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5101 <a href="#l5082" class="line" id="l5082">   5082</a> &lt;a href=&quot;#l5063&quot; class=&quot;line&quot; id=&quot;l5063&quot;&gt;   5063&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3926&amp;quot; id=&amp;quot;h3-0-3926&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5102 <a href="#l5083" class="line" id="l5083">   5083</a> &lt;a href=&quot;#l5064&quot; class=&quot;line&quot; id=&quot;l5064&quot;&gt;   5064&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3927&amp;quot; id=&amp;quot;h3-0-3927&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5103 <a href="#l5084" class="line" id="l5084">   5084</a> &lt;a href=&quot;#l5065&quot; class=&quot;line&quot; id=&quot;l5065&quot;&gt;   5065&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3928&amp;quot; id=&amp;quot;h3-0-3928&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5104 <a href="#l5085" class="line" id="l5085">   5085</a> &lt;a href=&quot;#l5066&quot; class=&quot;line&quot; id=&quot;l5066&quot;&gt;   5066&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3929&amp;quot; id=&amp;quot;h3-0-3929&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5105 <a href="#l5086" class="line" id="l5086">   5086</a> &lt;a href=&quot;#l5067&quot; class=&quot;line&quot; id=&quot;l5067&quot;&gt;   5067&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3930&amp;quot; id=&amp;quot;h3-0-3930&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5106 <a href="#l5087" class="line" id="l5087">   5087</a> &lt;a href=&quot;#l5068&quot; class=&quot;line&quot; id=&quot;l5068&quot;&gt;   5068&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3931&amp;quot; id=&amp;quot;h3-0-3931&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+react-reconciler/cjs/react-reconciler.production.js:
   5107 <a href="#l5088" class="line" id="l5088">   5088</a> &lt;a href=&quot;#l5069&quot; class=&quot;line&quot; id=&quot;l5069&quot;&gt;   5069&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3932&amp;quot; id=&amp;quot;h3-0-3932&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5108 <a href="#l5089" class="line" id="l5089">   5089</a> &lt;a href=&quot;#l5070&quot; class=&quot;line&quot; id=&quot;l5070&quot;&gt;   5070&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3933&amp;quot; id=&amp;quot;h3-0-3933&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5109 <a href="#l5090" class="line" id="l5090">   5090</a> &lt;a href=&quot;#l5071&quot; class=&quot;line&quot; id=&quot;l5071&quot;&gt;   5071&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3934&amp;quot; id=&amp;quot;h3-0-3934&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * react-reconciler.production.js
   5110 <a href="#l5091" class="line" id="l5091">   5091</a> &lt;a href=&quot;#l5072&quot; class=&quot;line&quot; id=&quot;l5072&quot;&gt;   5072&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3935&amp;quot; id=&amp;quot;h3-0-3935&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5111 <a href="#l5092" class="line" id="l5092">   5092</a> &lt;a href=&quot;#l5073&quot; class=&quot;line&quot; id=&quot;l5073&quot;&gt;   5073&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3936&amp;quot; id=&amp;quot;h3-0-3936&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5112 <a href="#l5093" class="line" id="l5093">   5093</a> &lt;a href=&quot;#l5074&quot; class=&quot;line&quot; id=&quot;l5074&quot;&gt;   5074&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3937&amp;quot; id=&amp;quot;h3-0-3937&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5113 <a href="#l5094" class="line" id="l5094">   5094</a> &lt;a href=&quot;#l5075&quot; class=&quot;line&quot; id=&quot;l5075&quot;&gt;   5075&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3938&amp;quot; id=&amp;quot;h3-0-3938&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5114 <a href="#l5095" class="line" id="l5095">   5095</a> &lt;a href=&quot;#l5076&quot; class=&quot;line&quot; id=&quot;l5076&quot;&gt;   5076&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3939&amp;quot; id=&amp;quot;h3-0-3939&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5115 <a href="#l5096" class="line" id="l5096">   5096</a> &lt;a href=&quot;#l5077&quot; class=&quot;line&quot; id=&quot;l5077&quot;&gt;   5077&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3940&amp;quot; id=&amp;quot;h3-0-3940&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5116 <a href="#l5097" class="line" id="l5097">   5097</a> &lt;a href=&quot;#l5078&quot; class=&quot;line&quot; id=&quot;l5078&quot;&gt;   5078&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3941&amp;quot; id=&amp;quot;h3-0-3941&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5117 <a href="#l5098" class="line" id="l5098">   5098</a> &lt;a href=&quot;#l5079&quot; class=&quot;line&quot; id=&quot;l5079&quot;&gt;   5079&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3942&amp;quot; id=&amp;quot;h3-0-3942&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+react/cjs/react-jsx-runtime.production.js:
   5118 <a href="#l5099" class="line" id="l5099">   5099</a> &lt;a href=&quot;#l5080&quot; class=&quot;line&quot; id=&quot;l5080&quot;&gt;   5080&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3943&amp;quot; id=&amp;quot;h3-0-3943&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5119 <a href="#l5100" class="line" id="l5100">   5100</a> &lt;a href=&quot;#l5081&quot; class=&quot;line&quot; id=&quot;l5081&quot;&gt;   5081&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3944&amp;quot; id=&amp;quot;h3-0-3944&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license React
   5120 <a href="#l5101" class="line" id="l5101">   5101</a> &lt;a href=&quot;#l5082&quot; class=&quot;line&quot; id=&quot;l5082&quot;&gt;   5082&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3945&amp;quot; id=&amp;quot;h3-0-3945&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * react-jsx-runtime.production.js
   5121 <a href="#l5102" class="line" id="l5102">   5102</a> &lt;a href=&quot;#l5083&quot; class=&quot;line&quot; id=&quot;l5083&quot;&gt;   5083&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3946&amp;quot; id=&amp;quot;h3-0-3946&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5122 <a href="#l5103" class="line" id="l5103">   5103</a> &lt;a href=&quot;#l5084&quot; class=&quot;line&quot; id=&quot;l5084&quot;&gt;   5084&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3947&amp;quot; id=&amp;quot;h3-0-3947&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright (c) Meta Platforms, Inc. and affiliates.
   5123 <a href="#l5104" class="line" id="l5104">   5104</a> &lt;a href=&quot;#l5085&quot; class=&quot;line&quot; id=&quot;l5085&quot;&gt;   5085&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3948&amp;quot; id=&amp;quot;h3-0-3948&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *
   5124 <a href="#l5105" class="line" id="l5105">   5105</a> &lt;a href=&quot;#l5086&quot; class=&quot;line&quot; id=&quot;l5086&quot;&gt;   5086&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3949&amp;quot; id=&amp;quot;h3-0-3949&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * This source code is licensed under the MIT license found in the
   5125 <a href="#l5106" class="line" id="l5106">   5106</a> &lt;a href=&quot;#l5087&quot; class=&quot;line&quot; id=&quot;l5087&quot;&gt;   5087&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3950&amp;quot; id=&amp;quot;h3-0-3950&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * LICENSE file in the root directory of this source tree.
   5126 <a href="#l5107" class="line" id="l5107">   5107</a> &lt;a href=&quot;#l5088&quot; class=&quot;line&quot; id=&quot;l5088&quot;&gt;   5088&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3951&amp;quot; id=&amp;quot;h3-0-3951&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5127 <a href="#l5108" class="line" id="l5108">   5108</a> &lt;a href=&quot;#l5089&quot; class=&quot;line&quot; id=&quot;l5089&quot;&gt;   5089&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3952&amp;quot; id=&amp;quot;h3-0-3952&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5128 <a href="#l5109" class="line" id="l5109">   5109</a> &lt;a href=&quot;#l5090&quot; class=&quot;line&quot; id=&quot;l5090&quot;&gt;   5090&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3953&amp;quot; id=&amp;quot;h3-0-3953&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+three/build/three.core.js:
   5129 <a href="#l5110" class="line" id="l5110">   5110</a> &lt;a href=&quot;#l5091&quot; class=&quot;line&quot; id=&quot;l5091&quot;&gt;   5091&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3954&amp;quot; id=&amp;quot;h3-0-3954&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+three/build/three.module.js:
   5130 <a href="#l5111" class="line" id="l5111">   5111</a> &lt;a href=&quot;#l5092&quot; class=&quot;line&quot; id=&quot;l5092&quot;&gt;   5092&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3955&amp;quot; id=&amp;quot;h3-0-3955&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (**
   5131 <a href="#l5112" class="line" id="l5112">   5112</a> &lt;a href=&quot;#l5093&quot; class=&quot;line&quot; id=&quot;l5093&quot;&gt;   5093&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3956&amp;quot; id=&amp;quot;h3-0-3956&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * @license
   5132 <a href="#l5113" class="line" id="l5113">   5113</a> &lt;a href=&quot;#l5094&quot; class=&quot;line&quot; id=&quot;l5094&quot;&gt;   5094&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3957&amp;quot; id=&amp;quot;h3-0-3957&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * Copyright 2010-2025 Three.js Authors
   5133 <a href="#l5114" class="line" id="l5114">   5114</a> &lt;a href=&quot;#l5095&quot; class=&quot;line&quot; id=&quot;l5095&quot;&gt;   5095&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3958&amp;quot; id=&amp;quot;h3-0-3958&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   * SPDX-License-Identifier: MIT
   5134 <a href="#l5115" class="line" id="l5115">   5115</a> &lt;a href=&quot;#l5096&quot; class=&quot;line&quot; id=&quot;l5096&quot;&gt;   5096&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3959&amp;quot; id=&amp;quot;h3-0-3959&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+   *)
   5135 <a href="#l5116" class="line" id="l5116">   5116</a> &lt;a href=&quot;#l5097&quot; class=&quot;line&quot; id=&quot;l5097&quot;&gt;   5097&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h3-0-3960&amp;quot; id=&amp;quot;h3-0-3960&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+*/
   5136 <a href="#l5117" class="line" id="l5117">   5117</a> &lt;a href=&quot;#l5098&quot; class=&quot;line&quot; id=&quot;l5098&quot;&gt;   5098&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;b&amp;gt;diff --git a/&amp;lt;a id=&amp;quot;h4&amp;quot; href=&amp;quot;../file/src/assets/js/sketch.bundle.js.html&amp;quot;&amp;gt;src/assets/js/sketch.bundle.js&amp;lt;/a&amp;gt; b/&amp;lt;a href=&amp;quot;../file/src/assets/js/sketch.bundle.js.html&amp;quot;&amp;gt;src/assets/js/sketch.bundle.js&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;
   5137 <a href="#l5118" class="line" id="l5118">   5118</a> &lt;a href=&quot;#l5099&quot; class=&quot;line&quot; id=&quot;l5099&quot;&gt;   5099&lt;/a&gt; &amp;lt;a href=&amp;quot;#h4-0&amp;quot; id=&amp;quot;h4-0&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -0,0 +1,2341 @@
   5138 <a href="#l5119" class="line" id="l5119">   5119</a> &lt;a href=&quot;#l5100&quot; class=&quot;line&quot; id=&quot;l5100&quot;&gt;   5100&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-0&amp;quot; id=&amp;quot;h4-0-0&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+(()=&amp;amp;gt;{var qy=Object.create;var Yo=Object.defineProperty;var Zy=Object.getOwnPropertyDescriptor;var Yy=Object.getOwnPropertyNames;var Xy=Object.getPrototypeOf,Ky=Object.prototype.hasOwnProperty;var ln=(i,t)=&amp;amp;gt;()=&amp;amp;gt;(i&amp;amp;amp;&amp;amp;amp;(t=i(i=0)),t);var ut=(i,t)=&amp;amp;gt;()=&amp;amp;gt;(t||i((t={exports:{}}).exports,t),t.exports),Jy=(i,t)=&amp;amp;gt;{for(var r in t)Yo(i,r,{get:t[r],enumerable:!0})},ed=(i,t,r,n)=&amp;amp;gt;{if(t&amp;amp;amp;&amp;amp;amp;typeof t==&amp;amp;quot;object&amp;amp;quot;||typeof t==&amp;amp;quot;function&amp;amp;quot;)for(let s of Yy(t))!Ky.call(i,s)&amp;amp;amp;&amp;amp;amp;s!==r&amp;amp;amp;&amp;amp;amp;Yo(i,s,{get:()=&amp;amp;gt;t[s],enumerable:!(n=Zy(t,s))||n.enumerable});return i};var Se=(i,t,r)=&amp;amp;gt;(r=i!=null?qy(Xy(i)):{},ed(t||!i||!i.__esModule?Yo(r,&amp;amp;quot;default&amp;amp;quot;,{value:i,enumerable:!0}):r,i)),Qy=i=&amp;amp;gt;ed(Yo({},&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0}),i);var Bt=ut((Qd,Pu)=&amp;amp;gt;{var Yh=Yh||function(i){&amp;amp;quot;use strict&amp;amp;quot;;if(!(typeof i&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||typeof navigator&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;/MSIE [1-9]\./.test(navigator.userAgent))){var t=i.document,r=function(){return i.URL||i.webkitURL||i},n=t.createElementNS(&amp;amp;quot;http://www.w3.org/1999/xhtml&amp;amp;quot;,&amp;amp;quot;a&amp;amp;quot;),s=&amp;amp;quot;download&amp;amp;quot;in n,a=function(w){var y=new MouseEvent(&amp;amp;quot;click&amp;amp;quot;);w.dispatchEvent(y)},o=/constructor/i.test(i.HTMLElement)||i.safari,u=/CriOS\/[\d]+/.test(navigator.userAgent),h=function(w){(i.setImmediate||i.setTimeout)(function(){throw w},0)},l=&amp;amp;quot;application/octet-stream&amp;amp;quot;,c=1e3*40,p=function(w){var y=function(){typeof w==&amp;amp;quot;string&amp;amp;quot;?r().revokeObjectURL(w):w.remove()};setTimeout(y,c)},f=function(w,y,S){y=[].concat(y);for(var _=y.length;_--;){var b=w[&amp;amp;quot;on&amp;amp;quot;+y[_]];if(typeof b==&amp;amp;quot;function&amp;amp;quot;)try{b.call(w,S||w)}catch(I){h(I)}}},d=function(w){return/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(w.type)?new Blob([&amp;amp;quot;\uFEFF&amp;amp;quot;,w],{type:w.type}):w},m=function(w,y,S){S||(w=d(w));var _=this,b=w.type,I=b===l,E,A=function(){f(_,&amp;amp;quot;writestart progress write writeend&amp;amp;quot;.split(&amp;amp;quot; &amp;amp;quot;))},C=function(){if((u||I&amp;amp;amp;&amp;amp;amp;o)&amp;amp;amp;&amp;amp;amp;i.FileReader){var T=new FileReader;T.onloadend=function(){var F=u?T.result:T.result.replace(/^data:[^;]*;/,&amp;amp;quot;data:attachment/file;&amp;amp;quot;),N=i.open(F,&amp;amp;quot;_blank&amp;amp;quot;);N||(i.location.href=F),F=void 0,_.readyState=_.DONE,A()},T.readAsDataURL(w),_.readyState=_.INIT;return}if(E||(E=r().createObjectURL(w)),I)i.location.href=E;else{var D=i.open(E,&amp;amp;quot;_blank&amp;amp;quot;);D||(i.location.href=E)}_.readyState=_.DONE,A(),p(E)};if(_.readyState=_.INIT,s){E=r().createObjectURL(w),setTimeout(function(){n.href=E,n.download=y,a(n),A(),p(E),_.readyState=_.DONE});return}C()},g=m.prototype,v=function(w,y,S){return new m(w,y||w.name||&amp;amp;quot;download&amp;amp;quot;,S)};return typeof navigator&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;navigator.msSaveOrOpenBlob?function(w,y,S){return y=y||w.name||&amp;amp;quot;download&amp;amp;quot;,S||(w=d(w)),navigator.msSaveOrOpenBlob(w,y)}:(g.abort=function(){},g.readyState=g.INIT=0,g.WRITING=1,g.DONE=2,g.error=g.onwritestart=g.onprogress=g.onwrite=g.onabort=g.onerror=g.onwriteend=null,v)}}(typeof self&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;self||typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;window||Qd.content);typeof Pu&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Pu.exports?Pu.exports.saveAs=Yh:typeof define&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;define!==null&amp;amp;amp;&amp;amp;amp;define.amd!==null&amp;amp;amp;&amp;amp;amp;define(&amp;amp;quot;FileSaver.js&amp;amp;quot;,function(){return Yh})});var or=ut(ec=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;function Bx(i,t,r,a){var s=0,a=a===void 0?{}:a,o=a.loop===void 0?null:a.loop,u=a.palette===void 0?null:a.palette;if(t&amp;amp;lt;=0||r&amp;amp;lt;=0||t&amp;amp;gt;65535||r&amp;amp;gt;65535)throw new Error(&amp;amp;quot;Width/Height invalid.&amp;amp;quot;);function h(v){var w=v.length;if(w&amp;amp;lt;2||w&amp;amp;gt;256||w&amp;amp;amp;w-1)throw new Error(&amp;amp;quot;Invalid code/color length, must be power of 2 and 2 .. 256.&amp;amp;quot;);return w}i[s++]=71,i[s++]=73,i[s++]=70,i[s++]=56,i[s++]=57,i[s++]=97;var l=0,c=0;if(u!==null){for(var p=h(u);p&amp;amp;gt;&amp;amp;gt;=1;)++l;if(p=1&amp;amp;lt;&amp;amp;lt;l,--l,a.background!==void 0){if(c=a.background,c&amp;amp;gt;=p)throw new Error(&amp;amp;quot;Background index out of range.&amp;amp;quot;);if(c===0)throw new Error(&amp;amp;quot;Background index explicitly passed as 0.&amp;amp;quot;)}}if(i[s++]=t&amp;amp;amp;255,i[s++]=t&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=r&amp;amp;amp;255,i[s++]=r&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=(u!==null?128:0)|l,i[s++]=c,i[s++]=0,u!==null)for(var f=0,d=u.length;f&amp;amp;lt;d;++f){var m=u[f];i[s++]=m&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,i[s++]=m&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=m&amp;amp;amp;255}if(o!==null){if(o&amp;amp;lt;0||o&amp;amp;gt;65535)throw new Error(&amp;amp;quot;Loop count invalid.&amp;amp;quot;);i[s++]=33,i[s++]=255,i[s++]=11,i[s++]=78,i[s++]=69,i[s++]=84,i[s++]=83,i[s++]=67,i[s++]=65,i[s++]=80,i[s++]=69,i[s++]=50,i[s++]=46,i[s++]=48,i[s++]=3,i[s++]=1,i[s++]=o&amp;amp;amp;255,i[s++]=o&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=0}var g=!1;this.addFrame=function(v,w,y,S,_,b){if(g===!0&amp;amp;amp;&amp;amp;amp;(--s,g=!1),b=b===void 0?{}:b,v&amp;amp;lt;0||w&amp;amp;lt;0||v&amp;amp;gt;65535||w&amp;amp;gt;65535)throw new Error(&amp;amp;quot;x/y invalid.&amp;amp;quot;);if(y&amp;amp;lt;=0||S&amp;amp;lt;=0||y&amp;amp;gt;65535||S&amp;amp;gt;65535)throw new Error(&amp;amp;quot;Width/Height invalid.&amp;amp;quot;);if(_.length&amp;amp;lt;y*S)throw new Error(&amp;amp;quot;Not enough pixels for the frame size.&amp;amp;quot;);var I=!0,E=b.palette;if(E==null&amp;amp;amp;&amp;amp;amp;(I=!1,E=u),E==null)throw new Error(&amp;amp;quot;Must supply either a local or global palette.&amp;amp;quot;);for(var A=h(E),C=0;A&amp;amp;gt;&amp;amp;gt;=1;)++C;A=1&amp;amp;lt;&amp;amp;lt;C;var T=b.delay===void 0?0:b.delay,D=b.disposal===void 0?0:b.disposal;if(D&amp;amp;lt;0||D&amp;amp;gt;3)throw new Error(&amp;amp;quot;Disposal out of range.&amp;amp;quot;);var F=!1,N=0;if(b.transparent!==void 0&amp;amp;amp;&amp;amp;amp;b.transparent!==null&amp;amp;amp;&amp;amp;amp;(F=!0,N=b.transparent,N&amp;amp;lt;0||N&amp;amp;gt;=A))throw new Error(&amp;amp;quot;Transparent color index.&amp;amp;quot;);if((D!==0||F||T!==0)&amp;amp;amp;&amp;amp;amp;(i[s++]=33,i[s++]=249,i[s++]=4,i[s++]=D&amp;amp;lt;&amp;amp;lt;2|(F===!0?1:0),i[s++]=T&amp;amp;amp;255,i[s++]=T&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=N,i[s++]=0),i[s++]=44,i[s++]=v&amp;amp;amp;255,i[s++]=v&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=w&amp;amp;amp;255,i[s++]=w&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=y&amp;amp;amp;255,i[s++]=y&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=S&amp;amp;amp;255,i[s++]=S&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=I===!0?128|C-1:0,I===!0)for(var B=0,U=E.length;B&amp;amp;lt;U;++B){var j=E[B];i[s++]=j&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,i[s++]=j&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[s++]=j&amp;amp;amp;255}return s=Px(i,s,C&amp;amp;lt;2?2:C,_),s},this.end=function(){return g===!1&amp;amp;amp;&amp;amp;amp;(i[s++]=59,g=!0),s},this.getOutputBuffer=function(){return i},this.setOutputBuffer=function(v){i=v},this.getOutputBufferPosition=function(){return s},this.setOutputBufferPosition=function(v){s=v}}function Px(i,t,r,n){i[t++]=r;var s=t++,a=1&amp;amp;lt;&amp;amp;lt;r,o=a-1,u=a+1,h=u+1,l=r+1,c=0,p=0;function f(b){for(;c&amp;amp;gt;=b;)i[t++]=p&amp;amp;amp;255,p&amp;amp;gt;&amp;amp;gt;=8,c-=8,t===s+256&amp;amp;amp;&amp;amp;amp;(i[s]=255,s=t++)}function d(b){p|=b&amp;amp;lt;&amp;amp;lt;c,c+=l,f(8)}var m=n[0]&amp;amp;amp;o,g={};d(a);for(var v=1,w=n.length;v&amp;amp;lt;w;++v){var y=n[v]&amp;amp;amp;o,S=m&amp;amp;lt;&amp;amp;lt;8|y,_=g[S];if(_===void 0){for(p|=m&amp;amp;lt;&amp;amp;lt;c,c+=l;c&amp;amp;gt;=8;)i[t++]=p&amp;amp;amp;255,p&amp;amp;gt;&amp;amp;gt;=8,c-=8,t===s+256&amp;amp;amp;&amp;amp;amp;(i[s]=255,s=t++);h===4096?(d(a),h=u+1,l=r+1,g={}):(h&amp;amp;gt;=1&amp;amp;lt;&amp;amp;lt;l&amp;amp;amp;&amp;amp;amp;++l,g[S]=h++),m=y}else m=_}return d(m),d(u),f(1),s+1===t?i[s]=0:(i[s]=t-s-1,i[t++]=0),t}function Ox(i){var t=0;if(i[t++]!==71||i[t++]!==73||i[t++]!==70||i[t++]!==56||(i[t++]+1&amp;amp;amp;253)!==56||i[t++]!==97)throw new Error(&amp;amp;quot;Invalid GIF 87a/89a header.&amp;amp;quot;);var r=i[t++]|i[t++]&amp;amp;lt;&amp;amp;lt;8,n=i[t++]|i[t++]&amp;amp;lt;&amp;amp;lt;8,s=i[t++],a=s&amp;amp;gt;&amp;amp;gt;7,o=s&amp;amp;amp;7,u=1&amp;amp;lt;&amp;amp;lt;o+1,h=i[t++];i[t++];var l=null,c=null;a&amp;amp;amp;&amp;amp;amp;(l=t,c=u,t+=u*3);var p=!0,f=[],d=0,m=null,g=0,v=null;for(this.width=r,this.height=n;p&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;i.length;)switch(i[t++]){case 33:switch(i[t++]){case 255:if(i[t]!==11||i[t+1]==78&amp;amp;amp;&amp;amp;amp;i[t+2]==69&amp;amp;amp;&amp;amp;amp;i[t+3]==84&amp;amp;amp;&amp;amp;amp;i[t+4]==83&amp;amp;amp;&amp;amp;amp;i[t+5]==67&amp;amp;amp;&amp;amp;amp;i[t+6]==65&amp;amp;amp;&amp;amp;amp;i[t+7]==80&amp;amp;amp;&amp;amp;amp;i[t+8]==69&amp;amp;amp;&amp;amp;amp;i[t+9]==50&amp;amp;amp;&amp;amp;amp;i[t+10]==46&amp;amp;amp;&amp;amp;amp;i[t+11]==48&amp;amp;amp;&amp;amp;amp;i[t+12]==3&amp;amp;amp;&amp;amp;amp;i[t+13]==1&amp;amp;amp;&amp;amp;amp;i[t+16]==0)t+=14,v=i[t++]|i[t++]&amp;amp;lt;&amp;amp;lt;8,t++;else for(t+=12;;){var w=i[t++];if(!(w&amp;amp;gt;=0))throw Error(&amp;amp;quot;Invalid block size&amp;amp;quot;);if(w===0)break;t+=w}break;case 249:if(i[t++]!==4||i[t+4]!==0)throw new Error(&amp;amp;quot;Invalid graphics extension block.&amp;amp;quot;);var y=i[t++];d=i[t++]|i[t++]&amp;amp;lt;&amp;amp;lt;8,m=i[t++],(y&amp;amp;amp;1)===0&amp;amp;amp;&amp;amp;amp;(m=null),g=y&amp;amp;gt;&amp;amp;gt;2&amp;amp;amp;7,t++;break;case 254:for(;;){var w=i[t++];if(!(w&amp;amp;gt;=0))throw Error(&amp;amp;quot;Invalid block size&amp;amp;quot;);if(w===0)break;t+=w}break;default:throw new Error(&amp;amp;quot;Unknown graphic control label: 0x&amp;amp;quot;+i[t-1].toString(16))}break;case 44:var S=i[t++]|i[t++]&amp;amp;lt;&amp;amp;lt;8,_=i[t++]|i[t++]&amp;amp;lt;&amp;amp;lt;8,b=i[t++]|i[t++]&amp;amp;lt;&amp;amp;lt;8,I=i[t++]|i[t++]&amp;amp;lt;&amp;amp;lt;8,E=i[t++],A=E&amp;amp;gt;&amp;amp;gt;7,C=E&amp;amp;gt;&amp;amp;gt;6&amp;amp;amp;1,T=E&amp;amp;amp;7,D=1&amp;amp;lt;&amp;amp;lt;T+1,F=l,N=c,B=!1;if(A){var B=!0;F=t,N=D,t+=D*3}var U=t;for(t++;;){var w=i[t++];if(!(w&amp;amp;gt;=0))throw Error(&amp;amp;quot;Invalid block size&amp;amp;quot;);if(w===0)break;t+=w}f.push({x:S,y:_,width:b,height:I,has_local_palette:B,palette_offset:F,palette_size:N,data_offset:U,data_length:t-U,transparent_index:m,interlaced:!!C,delay:d,disposal:g});break;case 59:p=!1;break;default:throw new Error(&amp;amp;quot;Unknown gif block: 0x&amp;amp;quot;+i[t-1].toString(16))}this.numFrames=function(){return f.length},this.loopCount=function(){return v},this.frameInfo=function(j){if(j&amp;amp;lt;0||j&amp;amp;gt;=f.length)throw new Error(&amp;amp;quot;Frame index out of range.&amp;amp;quot;);return f[j]},this.decodeAndBlitFrameBGRA=function(j,W){var te=this.frameInfo(j),X=te.width*te.height,Z=new Uint8Array(X);rm(i,te.data_offset,Z,X);var G=te.palette_offset,q=te.transparent_index;q===null&amp;amp;amp;&amp;amp;amp;(q=256);var J=te.width,Y=r-J,Q=J,fe=(te.y*r+te.x)*4,de=((te.y+te.height)*r+te.x)*4,me=fe,ie=Y*4;te.interlaced===!0&amp;amp;amp;&amp;amp;amp;(ie+=r*4*7);for(var ee=8,se=0,ce=Z.length;se&amp;amp;lt;ce;++se){var ue=Z[se];if(Q===0&amp;amp;amp;&amp;amp;amp;(me+=ie,Q=J,me&amp;amp;gt;=de&amp;amp;amp;&amp;amp;amp;(ie=Y*4+r*4*(ee-1),me=fe+(J+Y)*(ee&amp;amp;lt;&amp;amp;lt;1),ee&amp;amp;gt;&amp;amp;gt;=1)),ue===q)me+=4;else{var pe=i[G+ue*3],O=i[G+ue*3+1],P=i[G+ue*3+2];W[me++]=P,W[me++]=O,W[me++]=pe,W[me++]=255}--Q}},this.decodeAndBlitFrameRGBA=function(j,W){var te=this.frameInfo(j),X=te.width*te.height,Z=new Uint8Array(X);rm(i,te.data_offset,Z,X);var G=te.palette_offset,q=te.transparent_index;q===null&amp;amp;amp;&amp;amp;amp;(q=256);var J=te.width,Y=r-J,Q=J,fe=(te.y*r+te.x)*4,de=((te.y+te.height)*r+te.x)*4,me=fe,ie=Y*4;te.interlaced===!0&amp;amp;amp;&amp;amp;amp;(ie+=r*4*7);for(var ee=8,se=0,ce=Z.length;se&amp;amp;lt;ce;++se){var ue=Z[se];if(Q===0&amp;amp;amp;&amp;amp;amp;(me+=ie,Q=J,me&amp;amp;gt;=de&amp;amp;amp;&amp;amp;amp;(ie=Y*4+r*4*(ee-1),me=fe+(J+Y)*(ee&amp;amp;lt;&amp;amp;lt;1),ee&amp;amp;gt;&amp;amp;gt;=1)),ue===q)me+=4;else{var pe=i[G+ue*3],O=i[G+ue*3+1],P=i[G+ue*3+2];W[me++]=pe,W[me++]=O,W[me++]=P,W[me++]=255}--Q}}}function rm(i,t,r,n){for(var s=i[t++],a=1&amp;amp;lt;&amp;amp;lt;s,o=a+1,u=o+1,h=s+1,l=(1&amp;amp;lt;&amp;amp;lt;h)-1,c=0,p=0,f=0,d=i[t++],m=new Int32Array(4096),g=null;;){for(;c&amp;amp;lt;16&amp;amp;amp;&amp;amp;amp;d!==0;)p|=i[t++]&amp;amp;lt;&amp;amp;lt;c,c+=8,d===1?d=i[t++]:--d;if(c&amp;amp;lt;h)break;var v=p&amp;amp;amp;l;if(p&amp;amp;gt;&amp;amp;gt;=h,c-=h,v===a){u=o+1,h=s+1,l=(1&amp;amp;lt;&amp;amp;lt;h)-1,g=null;continue}else if(v===o)break;for(var w=v&amp;amp;lt;u?v:g,y=0,S=w;S&amp;amp;gt;a;)S=m[S]&amp;amp;gt;&amp;amp;gt;8,++y;var _=S,b=f+y+(w!==v?1:0);if(b&amp;amp;gt;n){console.log(&amp;amp;quot;Warning, gif stream longer than expected.&amp;amp;quot;);return}r[f++]=_,f+=y;var I=f;for(w!==v&amp;amp;amp;&amp;amp;amp;(r[f++]=_),S=w;y--;)S=m[S],r[--I]=S&amp;amp;amp;255,S&amp;amp;gt;&amp;amp;gt;=8;g!==null&amp;amp;amp;&amp;amp;amp;u&amp;amp;lt;4096&amp;amp;amp;&amp;amp;amp;(m[u++]=g&amp;amp;lt;&amp;amp;lt;8|_,u&amp;amp;gt;=l+1&amp;amp;amp;&amp;amp;amp;h&amp;amp;lt;12&amp;amp;amp;&amp;amp;amp;(++h,l=l&amp;amp;lt;&amp;amp;lt;1|1)),g=v}return f!==n&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;Warning, gif stream shorter than expected.&amp;amp;quot;),r}try{ec.GifWriter=Bx,ec.GifReader=Ox}catch{}});var ur=ut(nc=&amp;amp;gt;{var um=Object.defineProperty,Ux=i=&amp;amp;gt;um(i,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0}),Gx=(i,t)=&amp;amp;gt;{for(var r in t)um(i,r,{get:t[r],enumerable:!0})};Ux(nc);Gx(nc,{GIFEncoder:()=&amp;amp;gt;mm,applyPalette:()=&amp;amp;gt;Xx,default:()=&amp;amp;gt;ab,nearestColor:()=&amp;amp;gt;eb,nearestColorIndex:()=&amp;amp;gt;pm,nearestColorIndexWithDistance:()=&amp;amp;gt;dm,prequantize:()=&amp;amp;gt;Yx,quantize:()=&amp;amp;gt;qx,snapColorsToPalette:()=&amp;amp;gt;Qx});var zx={signature:&amp;amp;quot;GIF&amp;amp;quot;,version:&amp;amp;quot;89a&amp;amp;quot;,trailer:59,extensionIntroducer:33,applicationExtensionLabel:255,graphicControlExtensionLabel:249,imageSeparator:44,signatureSize:3,versionSize:3,globalColorTableFlagMask:128,colorResolutionMask:112,sortFlagMask:8,globalColorTableSizeMask:7,applicationIdentifierSize:8,applicationAuthCodeSize:3,disposalMethodMask:28,userInputFlagMask:2,transparentColorFlagMask:1,localColorTableFlagMask:128,interlaceFlagMask:64,idSortFlagMask:32,localColorTableSizeMask:7};function lm(i=256){let t=0,r=new Uint8Array(i);return{get buffer(){return r.buffer},reset(){t=0},bytesView(){return r.subarray(0,t)},bytes(){return r.slice(0,t)},writeByte(s){n(t+1),r[t]=s,t++},writeBytes(s,a=0,o=s.length){n(t+o);for(let u=0;u&amp;amp;lt;o;u++)r[t++]=s[u+a]},writeBytesView(s,a=0,o=s.byteLength){n(t+o),r.set(s.subarray(a,a+o),t),t+=o}};function n(s){var a=r.length;if(a&amp;amp;gt;=s)return;var o=1024*1024;s=Math.max(s,a*(a&amp;amp;lt;o?2:1.125)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0),a!=0&amp;amp;amp;&amp;amp;amp;(s=Math.max(s,256));let u=r;r=new Uint8Array(s),t&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;r.set(u.subarray(0,t),0)}}var tc=12,sm=5003,jx=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535];function $x(i,t,r,n,s=lm(512),a=new Uint8Array(256),o=new Int32Array(sm),u=new Int32Array(sm)){let h=o.length,l=Math.max(2,n);a.fill(0),u.fill(0),o.fill(-1);let c=0,p=0,f=l+1,d=f,m=!1,g=d,v=(1&amp;amp;lt;&amp;amp;lt;g)-1,w=1&amp;amp;lt;&amp;amp;lt;f-1,y=w+1,S=w+2,_=0,b=r[0],I=0;for(let C=h;C&amp;amp;lt;65536;C*=2)++I;I=8-I,s.writeByte(l),A(w);let E=r.length;for(let C=1;C&amp;amp;lt;E;C++)e:{let T=r[C],D=(T&amp;amp;lt;&amp;amp;lt;tc)+b,F=T&amp;amp;lt;&amp;amp;lt;I^b;if(o[F]===D){b=u[F];break e}let N=F===0?1:h-F;for(;o[F]&amp;amp;gt;=0;)if(F-=N,F&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(F+=h),o[F]===D){b=u[F];break e}A(b),b=T,S&amp;amp;lt;1&amp;amp;lt;&amp;amp;lt;tc?(u[F]=S++,o[F]=D):(o.fill(-1),S=w+2,m=!0,A(w))}return A(b),A(y),s.writeByte(0),s.bytesView();function A(C){for(c&amp;amp;amp;=jx[p],p&amp;amp;gt;0?c|=C&amp;amp;lt;&amp;amp;lt;p:c=C,p+=g;p&amp;amp;gt;=8;)a[_++]=c&amp;amp;amp;255,_&amp;amp;gt;=254&amp;amp;amp;&amp;amp;amp;(s.writeByte(_),s.writeBytesView(a,0,_),_=0),c&amp;amp;gt;&amp;amp;gt;=8,p-=8;if((S&amp;amp;gt;v||m)&amp;amp;amp;&amp;amp;amp;(m?(g=d,v=(1&amp;amp;lt;&amp;amp;lt;g)-1,m=!1):(++g,v=g===tc?1&amp;amp;lt;&amp;amp;lt;g:(1&amp;amp;lt;&amp;amp;lt;g)-1)),C==y){for(;p&amp;amp;gt;0;)a[_++]=c&amp;amp;amp;255,_&amp;amp;gt;=254&amp;amp;amp;&amp;amp;amp;(s.writeByte(_),s.writeBytesView(a,0,_),_=0),c&amp;amp;gt;&amp;amp;gt;=8,p-=8;_&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(s.writeByte(_),s.writeBytesView(a,0,_),_=0)}}}var Hx=$x;function hm(i,t,r){return i&amp;amp;lt;&amp;amp;lt;8&amp;amp;amp;63488|t&amp;amp;lt;&amp;amp;lt;2&amp;amp;amp;992|r&amp;amp;gt;&amp;amp;gt;3}function cm(i,t,r,n){return i&amp;amp;gt;&amp;amp;gt;4|t&amp;amp;amp;240|(r&amp;amp;amp;240)&amp;amp;lt;&amp;amp;lt;4|(n&amp;amp;amp;240)&amp;amp;lt;&amp;amp;lt;8}function fm(i,t,r){return i&amp;amp;gt;&amp;amp;gt;4&amp;amp;lt;&amp;amp;lt;8|t&amp;amp;amp;240|r&amp;amp;gt;&amp;amp;gt;4}function Vu(i,t,r){return i&amp;amp;lt;t?t:i&amp;amp;gt;r?r:i}function Za(i){return i*i}function am(i,t,r){var n=0,s=1e100;let a=i[t],o=a.cnt,u=a.ac,h=a.rc,l=a.gc,c=a.bc;for(var p=a.fw;p!=0;p=i[p].fw){let d=i[p],m=d.cnt,g=o*m/(o+m);if(!(g&amp;amp;gt;=s)){var f=0;r&amp;amp;amp;&amp;amp;amp;(f+=g*Za(d.ac-u),f&amp;amp;gt;=s)||(f+=g*Za(d.rc-h),!(f&amp;amp;gt;=s)&amp;amp;amp;&amp;amp;amp;(f+=g*Za(d.gc-l),!(f&amp;amp;gt;=s)&amp;amp;amp;&amp;amp;amp;(f+=g*Za(d.bc-c),!(f&amp;amp;gt;=s)&amp;amp;amp;&amp;amp;amp;(s=f,n=p))))}}a.err=s,a.nn=n}function rc(){return{ac:0,rc:0,gc:0,bc:0,cnt:0,nn:0,fw:0,bk:0,tm:0,mtm:0,err:0}}function Wx(i,t){let r=t===&amp;amp;quot;rgb444&amp;amp;quot;?4096:65536,n=new Array(r),s=i.length;if(t===&amp;amp;quot;rgba4444&amp;amp;quot;)for(let a=0;a&amp;amp;lt;s;++a){let o=i[a],u=o&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255,h=o&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,l=o&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,c=o&amp;amp;amp;255,p=cm(c,l,h,u),f=p in n?n[p]:n[p]=rc();f.rc+=c,f.gc+=l,f.bc+=h,f.ac+=u,f.cnt++}else if(t===&amp;amp;quot;rgb444&amp;amp;quot;)for(let a=0;a&amp;amp;lt;s;++a){let o=i[a],u=o&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,h=o&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,l=o&amp;amp;amp;255,c=fm(l,h,u),p=c in n?n[c]:n[c]=rc();p.rc+=l,p.gc+=h,p.bc+=u,p.cnt++}else for(let a=0;a&amp;amp;lt;s;++a){let o=i[a],u=o&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,h=o&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,l=o&amp;amp;amp;255,c=hm(l,h,u),p=c in n?n[c]:n[c]=rc();p.rc+=l,p.gc+=h,p.bc+=u,p.cnt++}return n}function qx(i,t,r={}){let{format:n=&amp;amp;quot;rgb565&amp;amp;quot;,clearAlpha:s=!0,clearAlphaColor:a=0,clearAlphaThreshold:o=0,oneBitAlpha:u=!1}=r;if(!i||!i.buffer)throw new Error(&amp;amp;quot;quantize() expected RGBA Uint8Array data&amp;amp;quot;);if(!(i instanceof Uint8Array)&amp;amp;amp;&amp;amp;amp;!(i instanceof Uint8ClampedArray))throw new Error(&amp;amp;quot;quantize() expected RGBA Uint8Array data&amp;amp;quot;);let h=new Uint32Array(i.buffer),l=r.useSqrt!==!1,c=n===&amp;amp;quot;rgba4444&amp;amp;quot;,p=Wx(h,n),f=p.length,d=f-1,m=new Uint32Array(f+1);for(var g=0,w=0;w&amp;amp;lt;f;++w){let U=p[w];if(U!=null){var v=1/U.cnt;c&amp;amp;amp;&amp;amp;amp;(U.ac*=v),U.rc*=v,U.gc*=v,U.bc*=v,p[g++]=U}}Za(t)/g&amp;amp;lt;.022&amp;amp;amp;&amp;amp;amp;(l=!1);for(var w=0;w&amp;amp;lt;g-1;++w)p[w].fw=w+1,p[w+1].bk=w,l&amp;amp;amp;&amp;amp;amp;(p[w].cnt=Math.sqrt(p[w].cnt));l&amp;amp;amp;&amp;amp;amp;(p[w].cnt=Math.sqrt(p[w].cnt));var y,S,_;for(w=0;w&amp;amp;lt;g;++w){am(p,w,!1);var b=p[w].err;for(S=++m[0];S&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(_=S&amp;amp;gt;&amp;amp;gt;1,!(p[y=m[_]].err&amp;amp;lt;=b));S=_)m[S]=y;m[S]=w}var I=g-t;for(w=0;w&amp;amp;lt;I;){for(var E;;){var A=m[1];if(E=p[A],E.tm&amp;amp;gt;=E.mtm&amp;amp;amp;&amp;amp;amp;p[E.nn].mtm&amp;amp;lt;=E.tm)break;E.mtm==d?A=m[1]=m[m[0]--]:(am(p,A,!1),E.tm=w);var b=p[A].err;for(S=1;(_=S+S)&amp;amp;lt;=m[0]&amp;amp;amp;&amp;amp;amp;(_&amp;amp;lt;m[0]&amp;amp;amp;&amp;amp;amp;p[m[_]].err&amp;amp;gt;p[m[_+1]].err&amp;amp;amp;&amp;amp;amp;_++,!(b&amp;amp;lt;=p[y=m[_]].err));S=_)m[S]=y;m[S]=A}var C=p[E.nn],T=E.cnt,D=C.cnt,v=1/(T+D);c&amp;amp;amp;&amp;amp;amp;(E.ac=v*(T*E.ac+D*C.ac)),E.rc=v*(T*E.rc+D*C.rc),E.gc=v*(T*E.gc+D*C.gc),E.bc=v*(T*E.bc+D*C.bc),E.cnt+=C.cnt,E.mtm=++w,p[C.bk].fw=C.fw,p[C.fw].bk=C.bk,C.mtm=d}let F=[];var N=0;for(w=0;;++N){let B=Vu(Math.round(p[w].rc),0,255),U=Vu(Math.round(p[w].gc),0,255),j=Vu(Math.round(p[w].bc),0,255),W=255;c&amp;amp;amp;&amp;amp;amp;(W=Vu(Math.round(p[w].ac),0,255),u&amp;amp;amp;&amp;amp;amp;(W=W&amp;amp;lt;=(typeof u==&amp;amp;quot;number&amp;amp;quot;?u:127)?0:255),s&amp;amp;amp;&amp;amp;amp;W&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;(B=U=j=a,W=0));let te=c?[B,U,j,W]:[B,U,j];if(Zx(F,te)||F.push(te),(w=p[w].fw)==0)break}return F}function Zx(i,t){for(let r=0;r&amp;amp;lt;i.length;r++){let n=i[r],s=n[0]===t[0]&amp;amp;amp;&amp;amp;amp;n[1]===t[1]&amp;amp;amp;&amp;amp;amp;n[2]===t[2],a=n.length&amp;amp;gt;=4&amp;amp;amp;&amp;amp;amp;t.length&amp;amp;gt;=4?n[3]===t[3]:!0;if(s&amp;amp;amp;&amp;amp;amp;a)return!0}return!1}function Gu(i,t){var r=0,n;for(n=0;n&amp;amp;lt;i.length;n++){let s=i[n]-t[n];r+=s*s}return r}function Uu(i,t){return t&amp;amp;gt;1?Math.round(i/t)*t:i}function Yx(i,{roundRGB:t=5,roundAlpha:r=10,oneBitAlpha:n=null}={}){let s=new Uint32Array(i.buffer);for(let a=0;a&amp;amp;lt;s.length;a++){let o=s[a],u=o&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255,h=o&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,l=o&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,c=o&amp;amp;amp;255;u=Uu(u,r),n&amp;amp;amp;&amp;amp;amp;(u=u&amp;amp;lt;=(typeof n==&amp;amp;quot;number&amp;amp;quot;?n:127)?0:255),c=Uu(c,t),l=Uu(l,t),h=Uu(h,t),s[a]=u&amp;amp;lt;&amp;amp;lt;24|h&amp;amp;lt;&amp;amp;lt;16|l&amp;amp;lt;&amp;amp;lt;8|c&amp;amp;lt;&amp;amp;lt;0}}function Xx(i,t,r=&amp;amp;quot;rgb565&amp;amp;quot;){if(!i||!i.buffer)throw new Error(&amp;amp;quot;quantize() expected RGBA Uint8Array data&amp;amp;quot;);if(!(i instanceof Uint8Array)&amp;amp;amp;&amp;amp;amp;!(i instanceof Uint8ClampedArray))throw new Error(&amp;amp;quot;quantize() expected RGBA Uint8Array data&amp;amp;quot;);if(t.length&amp;amp;gt;256)throw new Error(&amp;amp;quot;applyPalette() only works with 256 colors or less&amp;amp;quot;);let n=new Uint32Array(i.buffer),s=n.length,a=r===&amp;amp;quot;rgb444&amp;amp;quot;?4096:65536,o=new Uint8Array(s),u=new Array(a),h=r===&amp;amp;quot;rgba4444&amp;amp;quot;;if(r===&amp;amp;quot;rgba4444&amp;amp;quot;)for(let l=0;l&amp;amp;lt;s;l++){let c=n[l],p=c&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255,f=c&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,d=c&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,m=c&amp;amp;amp;255,g=cm(m,d,f,p),v=g in u?u[g]:u[g]=Kx(m,d,f,p,t);o[l]=v}else{let l=r===&amp;amp;quot;rgb444&amp;amp;quot;?fm:hm;for(let c=0;c&amp;amp;lt;s;c++){let p=n[c],f=p&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,d=p&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,m=p&amp;amp;amp;255,g=l(m,d,f),v=g in u?u[g]:u[g]=Jx(m,d,f,t);o[c]=v}}return o}function Kx(i,t,r,n,s){let a=0,o=1e100;for(let u=0;u&amp;amp;lt;s.length;u++){let h=s[u],l=h[3],c=kn(l-n);if(c&amp;amp;gt;o)continue;let p=h[0];if(c+=kn(p-i),c&amp;amp;gt;o)continue;let f=h[1];if(c+=kn(f-t),c&amp;amp;gt;o)continue;let d=h[2];c+=kn(d-r),!(c&amp;amp;gt;o)&amp;amp;amp;&amp;amp;amp;(o=c,a=u)}return a}function Jx(i,t,r,n){let s=0,a=1e100;for(let o=0;o&amp;amp;lt;n.length;o++){let u=n[o],h=u[0],l=kn(h-i);if(l&amp;amp;gt;a)continue;let c=u[1];if(l+=kn(c-t),l&amp;amp;gt;a)continue;let p=u[2];l+=kn(p-r),!(l&amp;amp;gt;a)&amp;amp;amp;&amp;amp;amp;(a=l,s=o)}return s}function Qx(i,t,r=5){if(!i.length||!t.length)return;let n=i.map(o=&amp;amp;gt;o.slice(0,3)),s=r*r,a=i[0].length;for(let o=0;o&amp;amp;lt;t.length;o++){let u=t[o];u.length&amp;amp;lt;a?u=[u[0],u[1],u[2],255]:u.length&amp;amp;gt;a?u=u.slice(0,3):u=u.slice();let h=dm(n,u.slice(0,3),Gu),l=h[0],c=h[1];c&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;c&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;(i[l]=u)}}function kn(i){return i*i}function pm(i,t,r=Gu){let n=1/0,s=-1;for(let a=0;a&amp;amp;lt;i.length;a++){let o=i[a],u=r(t,o);u&amp;amp;lt;n&amp;amp;amp;&amp;amp;amp;(n=u,s=a)}return s}function dm(i,t,r=Gu){let n=1/0,s=-1;for(let a=0;a&amp;amp;lt;i.length;a++){let o=i[a],u=r(t,o);u&amp;amp;lt;n&amp;amp;amp;&amp;amp;amp;(n=u,s=a)}return[s,n]}function eb(i,t,r=Gu){return i[pm(i,t,r)]}function mm(i={}){let{initialCapacity:t=4096,auto:r=!0}=i,n=lm(t),s=5003,a=new Uint8Array(256),o=new Int32Array(s),u=new Int32Array(s),h=!1;return{reset(){n.reset(),h=!1},finish(){n.writeByte(zx.trailer)},bytes(){return n.bytes()},bytesView(){return n.bytesView()},get buffer(){return n.buffer},get stream(){return n},writeHeader:l,writeFrame(c,p,f,d={}){let{transparent:m=!1,transparentIndex:g=0,delay:v=0,palette:w=null,repeat:y=0,colorDepth:S=8,dispose:_=-1}=d,b=!1;if(r?h||(b=!0,l(),h=!0):b=!!d.first,p=Math.max(0,Math.floor(p)),f=Math.max(0,Math.floor(f)),b){if(!w)throw new Error(&amp;amp;quot;First frame must include a { palette } option&amp;amp;quot;);rb(n,p,f,w,S),om(n,w),y&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;ib(n,y)}let I=Math.round(v/10);tb(n,_,I,m,g);let E=!!w&amp;amp;amp;&amp;amp;amp;!b;nb(n,p,f,E?w:null),E&amp;amp;amp;&amp;amp;amp;om(n,w),sb(n,c,p,f,S,a,o,u)}};function l(){gm(n,&amp;amp;quot;GIF89a&amp;amp;quot;)}}function tb(i,t,r,n,s){i.writeByte(33),i.writeByte(249),i.writeByte(4),s&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(s=0,n=!1);var a,o;n?(a=1,o=2):(a=0,o=0),t&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;(o=t&amp;amp;amp;7),o&amp;amp;lt;&amp;amp;lt;=2,i.writeByte(0|o|0|a),Wi(i,r),i.writeByte(s||0),i.writeByte(0)}function rb(i,t,r,n,s=8){let u=ic(n.length)-1,h=128|s-1&amp;amp;lt;&amp;amp;lt;4|0|u,l=0,c=0;Wi(i,t),Wi(i,r),i.writeBytes([h,l,c])}function ib(i,t){i.writeByte(33),i.writeByte(255),i.writeByte(11),gm(i,&amp;amp;quot;NETSCAPE2.0&amp;amp;quot;),i.writeByte(3),i.writeByte(1),Wi(i,t),i.writeByte(0)}function om(i,t){let r=1&amp;amp;lt;&amp;amp;lt;ic(t.length);for(let n=0;n&amp;amp;lt;r;n++){let s=[0,0,0];n&amp;amp;lt;t.length&amp;amp;amp;&amp;amp;amp;(s=t[n]),i.writeByte(s[0]),i.writeByte(s[1]),i.writeByte(s[2])}}function nb(i,t,r,n){if(i.writeByte(44),Wi(i,0),Wi(i,0),Wi(i,t),Wi(i,r),n){let o=ic(n.length)-1;i.writeByte(128|o)}else i.writeByte(0)}function sb(i,t,r,n,s=8,a,o,u){Hx(r,n,t,s,i,a,o,u)}function Wi(i,t){i.writeByte(t&amp;amp;amp;255),i.writeByte(t&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)}function gm(i,t){for(var r=0;r&amp;amp;lt;t.length;r++)i.writeByte(t.charCodeAt(r))}function ic(i){return Math.max(Math.ceil(Math.log2(i)),1)}var ab=mm});var lr=ut((wc,mc)=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;var zr;function Ur(i,t){return i.b===t.b&amp;amp;amp;&amp;amp;amp;i.a===t.a}function it(i,t){return i.b&amp;amp;lt;t.b||i.b===t.b&amp;amp;amp;&amp;amp;amp;i.a&amp;amp;lt;=t.a}function $u(i,t,r){var n=t.b-i.b,s=r.b-t.b;return 0&amp;amp;lt;n+s?n&amp;amp;lt;s?t.a-i.a+n/(n+s)*(i.a-r.a):t.a-r.a+s/(n+s)*(r.a-i.a):0}function gt(i,t,r){var n=t.b-i.b,s=r.b-t.b;return 0&amp;amp;lt;n+s?(t.a-r.a)*n+(t.a-i.a)*s:0}function Ja(i,t){return i.a&amp;amp;lt;t.a||i.a===t.a&amp;amp;amp;&amp;amp;amp;i.b&amp;amp;lt;=t.b}function ym(i,t,r){var n=t.a-i.a,s=r.a-t.a;return 0&amp;amp;lt;n+s?n&amp;amp;lt;s?t.b-i.b+n/(n+s)*(i.b-r.b):t.b-r.b+s/(n+s)*(r.b-i.b):0}function vm(i,t,r){var n=t.a-i.a,s=r.a-t.a;return 0&amp;amp;lt;n+s?(t.b-r.b)*n+(t.b-i.b)*s:0}function lb(i){return it(i.b.a,i.a)}function hb(i){return it(i.a,i.b.a)}function ju(i,t,r,n){return i=0&amp;amp;gt;i?0:i,r=0&amp;amp;gt;r?0:r,i&amp;amp;lt;=r?r===0?(t+n)/2:t+i/(i+r)*(n-t):n+r/(i+r)*(t-n)}function Sm(i){var t=gc(i.b);return Hu(t,i.c),Hu(t.b,i.c),Xu(t,i.a),t}function Pt(i,t){var r=!1,n=!1;i!==t&amp;amp;amp;&amp;amp;amp;(t.a!==i.a&amp;amp;amp;&amp;amp;amp;(n=!0,eo(t.a,i.a)),t.d!==i.d&amp;amp;amp;&amp;amp;amp;(r=!0,Wu(t.d,i.d)),ei(t,i),n||(Hu(t,i.a),i.a.c=i),r||(Xu(t,i.d),i.d.a=i))}function Vr(i){var t=i.b,r=!1;i.d!==i.b.d&amp;amp;amp;&amp;amp;amp;(r=!0,Wu(i.d,i.b.d)),i.c===i?eo(i.a,null):(i.b.d.a=vt(i),i.a.c=i.c,ei(i,vt(i)),r||Xu(i,i.d)),t.c===t?(eo(t.a,null),Wu(t.d,null)):(i.d.a=vt(t),t.a.c=t.c,ei(t,vt(t))),Am(i)}function br(i){var t=gc(i),r=t.b;return ei(t,i.e),t.a=i.b.a,Hu(r,t.a),t.d=r.d=i.d,t=t.b,ei(i.b,vt(i.b)),ei(i.b,t),i.b.a=t.a,t.b.a.c=t.b,t.b.d=i.b.d,t.f=i.f,t.b.f=i.b.f,t}function qi(i,t){var r=!1,n=gc(i),s=n.b;return t.d!==i.d&amp;amp;amp;&amp;amp;amp;(r=!0,Wu(t.d,i.d)),ei(n,i.e),ei(s,t),n.a=i.b.a,s.a=t.a,n.d=s.d=i.d,i.d.a=s,r||Xu(n,i.d),n}function gc(i){var t=new Zu,r=new Zu,n=i.b.h;return r.h=n,n.b.h=t,t.h=i,i.b.h=r,t.b=r,t.c=t,t.e=r,r.b=t,r.c=r,r.e=t}function ei(i,t){var r=i.c,n=t.c;r.b.e=t,n.b.e=i,i.c=n,t.c=r}function Hu(i,t){var r=t.f,n=new bc(t,r);r.e=n,t.f=n,r=n.c=i;do r.a=n,r=r.c;while(r!==i)}function Xu(i,t){var r=t.d,n=new Lm(t,r);r.b=n,t.d=n,n.a=i,n.c=t.c,r=i;do r.d=n,r=r.e;while(r!==i)}function Am(i){var t=i.h;i=i.b.h,t.b.h=i,i.b.h=t}function eo(i,t){var r=i.c,n=r;do n.a=t,n=n.c;while(n!==r);r=i.f,n=i.e,n.f=r,r.e=n}function Wu(i,t){var r=i.a,n=r;do n.d=t,n=n.e;while(n!==r);r=i.d,n=i.b,n.d=r,r.b=n}function xm(i){var t=0;return Math.abs(i[1])&amp;amp;gt;Math.abs(i[0])&amp;amp;amp;&amp;amp;amp;(t=1),Math.abs(i[2])&amp;amp;gt;Math.abs(i[t])&amp;amp;amp;&amp;amp;amp;(t=2),t}var qu=4*1e150;function yc(i,t){i.f+=t.f,i.b.f+=t.b.f}function cb(i,t,r){return i=i.a,t=t.a,r=r.a,t.b.a===i?r.b.a===i?it(t.a,r.a)?0&amp;amp;gt;=gt(r.b.a,t.a,r.a):0&amp;amp;lt;=gt(t.b.a,r.a,t.a):0&amp;amp;gt;=gt(r.b.a,i,r.a):r.b.a===i?0&amp;amp;lt;=gt(t.b.a,i,t.a):(t=$u(t.b.a,i,t.a),i=$u(r.b.a,i,r.a),t&amp;amp;gt;=i)}function Ss(i){i.a.i=null;var t=i.e;t.a.c=t.c,t.c.a=t.a,i.e=null}function vc(i,t){Vr(i.a),i.c=!1,i.a=t,t.i=i}function cc(i){var t=i.a.a;do i=Gr(i);while(i.a.a===t);return i.c&amp;amp;amp;&amp;amp;amp;(t=qi(Ft(i).a.b,i.a.e),vc(i,t),i=Gr(i)),i}function Dm(i,t,r){var n=new _c;return n.a=r,n.e=km(i.f,t.e,n),r.i=n}function Fm(i,t){switch(i.s){case 100130:return(t&amp;amp;amp;1)!==0;case 100131:return t!==0;case 100132:return 0&amp;amp;lt;t;case 100133:return 0&amp;amp;gt;t;case 100134:return 2&amp;amp;lt;=t||-2&amp;amp;gt;=t}return!1}function bm(i){var t=i.a,r=t.d;r.c=i.d,r.a=t,Ss(i)}function Qa(i,t,r){for(i=t,t=t.a;i!==r;){i.c=!1;var n=Ft(i),s=n.a;if(s.a!==t.a){if(!n.c){bm(i);break}s=qi(t.c.b,s.b),vc(n,s)}t.c!==s&amp;amp;amp;&amp;amp;amp;(Pt(vt(s),s),Pt(t,s)),bm(i),t=n.a,i=n}return t}function Es(i,t,r,n,s,a){var o=!0;do Dm(i,t,r.b),r=r.c;while(r!==n);for(s===null&amp;amp;amp;&amp;amp;amp;(s=Ft(t).a.b.c);n=Ft(t),r=n.a.b,r.a===s.a;)r.c!==s&amp;amp;amp;&amp;amp;amp;(Pt(vt(r),r),Pt(vt(s),r)),n.f=t.f-r.f,n.d=Fm(i,n.f),t.b=!0,!o&amp;amp;amp;&amp;amp;amp;xc(i,t)&amp;amp;amp;&amp;amp;amp;(yc(r,s),Ss(t),Vr(s)),o=!1,t=n,s=r;t.b=!0,a&amp;amp;amp;&amp;amp;amp;Im(i,t)}function Tm(i,t,r,n,s){var a=[t.g[0],t.g[1],t.g[2]];t.d=null,t.d=i.o&amp;amp;amp;&amp;amp;amp;i.o(a,r,n,i.c)||null,t.d===null&amp;amp;amp;&amp;amp;amp;(s?i.n||(Qr(i,100156),i.n=!0):t.d=r[0])}function fc(i,t,r){var n=[null,null,null,null];n[0]=t.a.d,n[1]=r.a.d,Tm(i,t.a,n,[.5,.5,0,0],!1),Pt(t,r)}function _m(i,t,r,n,s){var a=Math.abs(t.b-i.b)+Math.abs(t.a-i.a),o=Math.abs(r.b-i.b)+Math.abs(r.a-i.a),u=s+1;n[s]=.5*o/(a+o),n[u]=.5*a/(a+o),i.g[0]+=n[s]*t.g[0]+n[u]*r.g[0],i.g[1]+=n[s]*t.g[1]+n[u]*r.g[1],i.g[2]+=n[s]*t.g[2]+n[u]*r.g[2]}function xc(i,t){var r=Ft(t),n=t.a,s=r.a;if(it(n.a,s.a)){if(0&amp;amp;lt;gt(s.b.a,n.a,s.a))return!1;if(!Ur(n.a,s.a))br(s.b),Pt(n,vt(s)),t.b=r.b=!0;else if(n.a!==s.a){var r=i.e,a=n.a.h;if(0&amp;amp;lt;=a){var r=r.b,o=r.d,u=r.e,h=r.c,l=h[a];o[l]=o[r.a],h[o[l]]=l,l&amp;amp;lt;=--r.a&amp;amp;amp;&amp;amp;amp;(1&amp;amp;gt;=l||it(u[o[l&amp;amp;gt;&amp;amp;gt;1]],u[o[l]])?Yu(r,l):Pm(r,l)),u[a]=null,h[a]=r.b,r.b=a}else for(r.c[-(a+1)]=null;0&amp;amp;lt;r.a&amp;amp;amp;&amp;amp;amp;r.c[r.d[r.a-1]]===null;)--r.a;fc(i,vt(s),n)}}else{if(0&amp;amp;gt;gt(n.b.a,s.a,n.a))return!1;Gr(t).b=t.b=!0,br(n.b),Pt(vt(s),n)}return!0}function Nm(i,t){var r=Ft(t),n=t.a,s=r.a,a=n.a,o=s.a,u=n.b.a,h=s.b.a,l=new bc;if(gt(u,i.a,a),gt(h,i.a,o),a===o||Math.min(a.a,u.a)&amp;amp;gt;Math.max(o.a,h.a))return!1;if(it(a,o)){if(0&amp;amp;lt;gt(h,a,o))return!1}else if(0&amp;amp;gt;gt(u,o,a))return!1;var c=u,p=a,f=h,d=o,m,g;if(it(c,p)||(m=c,c=p,p=m),it(f,d)||(m=f,f=d,d=m),it(c,f)||(m=c,c=f,f=m,m=p,p=d,d=m),it(f,p)?it(p,d)?(m=$u(c,f,p),g=$u(f,p,d),0&amp;amp;gt;m+g&amp;amp;amp;&amp;amp;amp;(m=-m,g=-g),l.b=ju(m,f.b,g,p.b)):(m=gt(c,f,p),g=-gt(c,d,p),0&amp;amp;gt;m+g&amp;amp;amp;&amp;amp;amp;(m=-m,g=-g),l.b=ju(m,f.b,g,d.b)):l.b=(f.b+p.b)/2,Ja(c,p)||(m=c,c=p,p=m),Ja(f,d)||(m=f,f=d,d=m),Ja(c,f)||(m=c,c=f,f=m,m=p,p=d,d=m),Ja(f,p)?Ja(p,d)?(m=ym(c,f,p),g=ym(f,p,d),0&amp;amp;gt;m+g&amp;amp;amp;&amp;amp;amp;(m=-m,g=-g),l.a=ju(m,f.a,g,p.a)):(m=vm(c,f,p),g=-vm(c,d,p),0&amp;amp;gt;m+g&amp;amp;amp;&amp;amp;amp;(m=-m,g=-g),l.a=ju(m,f.a,g,d.a)):l.a=(f.a+p.a)/2,it(l,i.a)&amp;amp;amp;&amp;amp;amp;(l.b=i.a.b,l.a=i.a.a),c=it(a,o)?a:o,it(c,l)&amp;amp;amp;&amp;amp;amp;(l.b=c.b,l.a=c.a),Ur(l,a)||Ur(l,o))return xc(i,t),!1;if(!Ur(u,i.a)&amp;amp;amp;&amp;amp;amp;0&amp;amp;lt;=gt(u,i.a,l)||!Ur(h,i.a)&amp;amp;amp;&amp;amp;amp;0&amp;amp;gt;=gt(h,i.a,l)){if(h===i.a)return br(n.b),Pt(s.b,n),t=cc(t),n=Ft(t).a,Qa(i,Ft(t),r),Es(i,t,vt(n),n,n,!0),!0;if(u===i.a){br(s.b),Pt(n.e,vt(s)),a=r=t,o=a.a.b.a;do a=Gr(a);while(a.a.b.a===o);return t=a,a=Ft(t).a.b.c,r.a=vt(s),s=Qa(i,r,null),Es(i,t,s.c,n.b.c,a,!0),!0}return 0&amp;amp;lt;=gt(u,i.a,l)&amp;amp;amp;&amp;amp;amp;(Gr(t).b=t.b=!0,br(n.b),n.a.b=i.a.b,n.a.a=i.a.a),0&amp;amp;gt;=gt(h,i.a,l)&amp;amp;amp;&amp;amp;amp;(t.b=r.b=!0,br(s.b),s.a.b=i.a.b,s.a.a=i.a.a),!1}return br(n.b),br(s.b),Pt(vt(s),n),n.a.b=l.b,n.a.a=l.a,n.a.h=Rm(i.e,n.a),n=n.a,s=[0,0,0,0],l=[a.d,u.d,o.d,h.d],n.g[0]=n.g[1]=n.g[2]=0,_m(n,a,u,s,0),_m(n,o,h,s,2),Tm(i,n,l,s,!0),Gr(t).b=t.b=r.b=!0,!1}function Im(i,t){for(var r=Ft(t);;){for(;r.b;)t=r,r=Ft(r);if(!t.b&amp;amp;amp;&amp;amp;amp;(r=t,t=Gr(t),t===null||!t.b))break;t.b=!1;var n=t.a,s=r.a,a;if(a=n.b.a!==s.b.a)e:{a=t;var o=Ft(a),u=a.a,h=o.a,l=void 0;if(it(u.b.a,h.b.a)){if(0&amp;amp;gt;gt(u.b.a,h.b.a,u.a)){a=!1;break e}Gr(a).b=a.b=!0,l=br(u),Pt(h.b,l),l.d.c=a.d}else{if(0&amp;amp;lt;gt(h.b.a,u.b.a,h.a)){a=!1;break e}a.b=o.b=!0,l=br(h),Pt(u.e,h.b),l.b.d.c=a.d}a=!0}if(a&amp;amp;amp;&amp;amp;amp;(r.c?(Ss(r),Vr(s),r=Ft(t),s=r.a):t.c&amp;amp;amp;&amp;amp;amp;(Ss(t),Vr(n),t=Gr(r),n=t.a)),n.a!==s.a){if(n.b.a===s.b.a||t.c||r.c||n.b.a!==i.a&amp;amp;amp;&amp;amp;amp;s.b.a!==i.a)xc(i,t);else if(Nm(i,t))break}n.a===s.a&amp;amp;amp;&amp;amp;amp;n.b.a===s.b.a&amp;amp;amp;&amp;amp;amp;(yc(s,n),Ss(t),Vr(n),t=Gr(r))}}function pc(i,t){i.a=t;for(var r=t.c;r.i===null;)if(r=r.c,r===t.c){var r=i,n=t,o=new _c;o.a=n.c.b;var s=r.f,u=s.a;do u=u.a;while(u.b!==null&amp;amp;amp;&amp;amp;amp;!s.c(s.b,o,u.b));var s=u.b,a=Ft(s),o=s.a,u=a.a;if(gt(o.b.a,n,o.a)===0)o=s.a,Ur(o.a,n)||Ur(o.b.a,n)||(br(o.b),s.c&amp;amp;amp;&amp;amp;amp;(Vr(o.c),s.c=!1),Pt(n.c,o),pc(r,n));else{var h=it(u.b.a,o.b.a)?s:a,a=void 0;s.d||h.c?(h===s?a=qi(n.c.b,o.e):a=qi(u.b.c.b,n.c).b,h.c?vc(h,a):(o=r,s=Dm(r,s,a),s.f=Gr(s).f+s.a.f,s.d=Fm(o,s.f)),pc(r,n)):Es(r,s,n.c,n.c,null,!0)}return}if(r=cc(r.i),o=Ft(r),s=o.a,o=Qa(i,o,null),o.c===s){var s=o,o=s.c,u=Ft(r),a=r.a,h=u.a,l=!1;a.b.a!==h.b.a&amp;amp;amp;&amp;amp;amp;Nm(i,r),Ur(a.a,i.a)&amp;amp;amp;&amp;amp;amp;(Pt(vt(o),a),r=cc(r),o=Ft(r).a,Qa(i,Ft(r),u),l=!0),Ur(h.a,i.a)&amp;amp;amp;&amp;amp;amp;(Pt(s,vt(h)),s=Qa(i,u,null),l=!0),l?Es(i,r,s.c,o,o,!0):(it(h.a,a.a)?n=vt(h):n=a,n=qi(s.c.b,n),Es(i,r,n,n.c,n.c,!1),n.b.i.c=!0,Im(i,r))}else Es(i,r,o.c,s,s,!0)}function wm(i,t){var r=new _c,n=Sm(i.b);n.a.b=qu,n.a.a=t,n.b.a.b=-qu,n.b.a.a=t,i.a=n.b.a,r.a=n,r.f=0,r.d=!1,r.c=!1,r.h=!0,r.b=!1,n=i.f,n=km(n,n.a,r),r.e=n}function fb(i){this.a=new Mm,this.b=i,this.c=cb}function km(i,t,r){do t=t.c;while(t.b!==null&amp;amp;amp;&amp;amp;amp;!i.c(i.b,t.b,r));return i=new Mm(r,t.a,t),t.a.c=i,t.a=i}function Mm(i,t,r){this.b=i||null,this.a=t||this,this.c=r||this}function mt(){this.d=to,this.p=this.b=this.q=null,this.j=[0,0,0],this.s=100130,this.n=!1,this.o=this.a=this.e=this.f=null,this.m=!1,this.c=this.r=this.i=this.k=this.l=this.h=null}var to=0;zr=mt.prototype;zr.x=function(){As(this,to)};zr.B=function(i,t){switch(i){case 100142:return;case 100140:switch(t){case 100130:case 100131:case 100132:case 100133:case 100134:this.s=t;return}break;case 100141:this.m=!!t;return;default:Qr(this,100900);return}Qr(this,100901)};zr.y=function(i){switch(i){case 100142:return 0;case 100140:return this.s;case 100141:return this.m;default:Qr(this,100900)}return!1};zr.A=function(i,t,r){this.j[0]=i,this.j[1]=t,this.j[2]=r};zr.z=function(i,t){var r=t||null;switch(i){case 100100:case 100106:this.h=r;break;case 100104:case 100110:this.l=r;break;case 100101:case 100107:this.k=r;break;case 100102:case 100108:this.i=r;break;case 100103:case 100109:this.p=r;break;case 100105:case 100111:this.o=r;break;case 100112:this.r=r;break;default:Qr(this,100900)}};zr.C=function(i,t){var r=!1,n=[0,0,0];As(this,2);for(var s=0;3&amp;amp;gt;s;++s){var a=i[s];-1e150&amp;amp;gt;a&amp;amp;amp;&amp;amp;amp;(a=-1e150,r=!0),1e150&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;(a=1e150,r=!0),n[s]=a}r&amp;amp;amp;&amp;amp;amp;Qr(this,100155),r=this.q,r===null?(r=Sm(this.b),Pt(r,r.b)):(br(r),r=r.e),r.a.d=t,r.a.g[0]=n[0],r.a.g[1]=n[1],r.a.g[2]=n[2],r.f=1,r.b.f=-1,this.q=r};zr.u=function(i){As(this,to),this.d=1,this.b=new pb,this.c=i};zr.t=function(){As(this,1),this.d=2,this.q=null};zr.v=function(){As(this,2),this.d=1};zr.w=function(){As(this,1),this.d=to;var i=this.j[0],t=this.j[1],r=this.j[2],n=!1,s=[i,t,r];if(i===0&amp;amp;amp;&amp;amp;amp;t===0&amp;amp;amp;&amp;amp;amp;r===0){for(var t=[-2*1e150,-2*1e150,-2*1e150],a=[2*1e150,2*1e150,2*1e150],r=[],o=[],n=this.b.c,i=n.e;i!==n;i=i.e)for(var u=0;3&amp;amp;gt;u;++u){var h=i.g[u];h&amp;amp;lt;a[u]&amp;amp;amp;&amp;amp;amp;(a[u]=h,o[u]=i),h&amp;amp;gt;t[u]&amp;amp;amp;&amp;amp;amp;(t[u]=h,r[u]=i)}if(i=0,t[1]-a[1]&amp;amp;gt;t[0]-a[0]&amp;amp;amp;&amp;amp;amp;(i=1),t[2]-a[2]&amp;amp;gt;t[i]-a[i]&amp;amp;amp;&amp;amp;amp;(i=2),a[i]&amp;amp;gt;=t[i])s[0]=0,s[1]=0,s[2]=1;else{for(t=0,a=o[i],r=r[i],o=[0,0,0],a=[a.g[0]-r.g[0],a.g[1]-r.g[1],a.g[2]-r.g[2]],u=[0,0,0],i=n.e;i!==n;i=i.e)u[0]=i.g[0]-r.g[0],u[1]=i.g[1]-r.g[1],u[2]=i.g[2]-r.g[2],o[0]=a[1]*u[2]-a[2]*u[1],o[1]=a[2]*u[0]-a[0]*u[2],o[2]=a[0]*u[1]-a[1]*u[0],h=o[0]*o[0]+o[1]*o[1]+o[2]*o[2],h&amp;amp;gt;t&amp;amp;amp;&amp;amp;amp;(t=h,s[0]=o[0],s[1]=o[1],s[2]=o[2]);0&amp;amp;gt;=t&amp;amp;amp;&amp;amp;amp;(s[0]=s[1]=s[2]=0,s[xm(a)]=1)}n=!0}for(o=xm(s),i=this.b.c,t=(o+1)%3,r=(o+2)%3,o=0&amp;amp;lt;s[o]?1:-1,s=i.e;s!==i;s=s.e)s.b=s.g[t],s.a=o*s.g[r];if(n){for(s=0,n=this.b.a,i=n.b;i!==n;i=i.b)if(t=i.a,!(0&amp;amp;gt;=t.f))do s+=(t.a.b-t.b.a.b)*(t.a.a+t.b.a.a),t=t.e;while(t!==i.a);if(0&amp;amp;gt;s)for(s=this.b.c,n=s.e;n!==s;n=n.e)n.a=-n.a}for(this.n=!1,s=this.b.b,i=s.h;i!==s;i=n)n=i.h,t=i.e,Ur(i.a,i.b.a)&amp;amp;amp;&amp;amp;amp;i.e.e!==i&amp;amp;amp;&amp;amp;amp;(fc(this,t,i),Vr(i),i=t,t=i.e),t.e===i&amp;amp;amp;&amp;amp;amp;(t!==i&amp;amp;amp;&amp;amp;amp;((t===n||t===n.b)&amp;amp;amp;&amp;amp;amp;(n=n.h),Vr(t)),(i===n||i===n.b)&amp;amp;amp;&amp;amp;amp;(n=n.h),Vr(i));for(this.e=s=new db,n=this.b.c,i=n.e;i!==n;i=i.e)i.h=Rm(s,i);for(mb(s),this.f=new fb(this),wm(this,-qu),wm(this,qu);(s=Cm(this.e))!==null;){for(;;){e:if(i=this.e,i.a===0)n=dc(i.b);else if(n=i.c[i.d[i.a-1]],i.b.a!==0&amp;amp;amp;&amp;amp;amp;(i=dc(i.b),it(i,n))){n=i;break e}if(n===null||!Ur(n,s))break;n=Cm(this.e),fc(this,s.c,n.c)}pc(this,s)}for(this.a=this.f.a.a.b.a.a,s=0;(n=this.f.a.a.b)!==null;)n.h||++s,Ss(n);for(this.f=null,s=this.e,s.b=null,s.d=null,this.e=s.c=null,s=this.b,i=s.a.b;i!==s.a;i=n)n=i.b,i=i.a,i.e.e===i&amp;amp;amp;&amp;amp;amp;(yc(i.c,i),Vr(i));if(!this.n){if(s=this.b,this.m)for(i=s.b.h;i!==s.b;i=n)n=i.h,i.b.d.c!==i.d.c?i.f=i.d.c?1:-1:Vr(i);else for(i=s.a.b;i!==s.a;i=n)if(n=i.b,i.c){for(i=i.a;it(i.b.a,i.a);i=i.c.b);for(;it(i.a,i.b.a);i=i.e);for(t=i.c.b,r=void 0;i.e!==t;)if(it(i.b.a,t.a)){for(;t.e!==i&amp;amp;amp;&amp;amp;amp;(lb(t.e)||0&amp;amp;gt;=gt(t.a,t.b.a,t.e.b.a));)r=qi(t.e,t),t=r.b;t=t.c.b}else{for(;t.e!==i&amp;amp;amp;&amp;amp;amp;(hb(i.c.b)||0&amp;amp;lt;=gt(i.b.a,i.a,i.c.b.a));)r=qi(i,i.c.b),i=r.b;i=i.e}for(;t.e.e!==i;)r=qi(t.e,t),t=r.b}if(this.h||this.i||this.k||this.l)if(this.m){for(s=this.b,n=s.a.b;n!==s.a;n=n.b)if(n.c){this.h&amp;amp;amp;&amp;amp;amp;this.h(2,this.c),i=n.a;do this.k&amp;amp;amp;&amp;amp;amp;this.k(i.a.d,this.c),i=i.e;while(i!==n.a);this.i&amp;amp;amp;&amp;amp;amp;this.i(this.c)}}else{for(s=this.b,n=!!this.l,i=!1,t=-1,r=s.a.d;r!==s.a;r=r.d)if(r.c){i||(this.h&amp;amp;amp;&amp;amp;amp;this.h(4,this.c),i=!0),o=r.a;do n&amp;amp;amp;&amp;amp;amp;(a=o.b.d.c?0:1,t!==a&amp;amp;amp;&amp;amp;amp;(t=a,this.l&amp;amp;amp;&amp;amp;amp;this.l(!!t,this.c))),this.k&amp;amp;amp;&amp;amp;amp;this.k(o.a.d,this.c),o=o.e;while(o!==r.a)}i&amp;amp;amp;&amp;amp;amp;this.i&amp;amp;amp;&amp;amp;amp;this.i(this.c)}if(this.r){for(s=this.b,i=s.a.b;i!==s.a;i=n)if(n=i.b,!i.c){t=i.a,r=t.e,o=void 0;do o=r,r=o.e,o.d=null,o.b.d===null&amp;amp;amp;&amp;amp;amp;(o.c===o?eo(o.a,null):(o.a.c=o.c,ei(o,vt(o))),a=o.b,a.c===a?eo(a.a,null):(a.a.c=a.c,ei(a,vt(a))),Am(o));while(o!==t);t=i.d,i=i.b,i.d=t,t.b=i}this.r(this.b),this.c=this.b=null;return}}this.b=this.c=null};function As(i,t){if(i.d!==t)for(;i.d!==t;)if(i.d&amp;amp;lt;t)switch(i.d){case to:Qr(i,100151),i.u(null);break;case 1:Qr(i,100152),i.t()}else switch(i.d){case 2:Qr(i,100154),i.v();break;case 1:Qr(i,100153),i.w()}}function Qr(i,t){i.p&amp;amp;amp;&amp;amp;amp;i.p(t,i.c)}function Lm(i,t){this.b=i||this,this.d=t||this,this.a=null,this.c=!1}function Zu(){this.h=this,this.i=this.d=this.a=this.e=this.c=this.b=null,this.f=0}function vt(i){return i.b.e}function pb(){this.c=new bc,this.a=new Lm,this.b=new Zu,this.d=new Zu,this.b.b=this.d,this.d.b=this.b}function bc(i,t){this.e=i||this,this.f=t||this,this.d=this.c=null,this.g=[0,0,0],this.h=this.a=this.b=0}function db(){this.c=[],this.d=null,this.a=0,this.e=!1,this.b=new gb}function mb(i){i.d=[];for(var t=0;t&amp;amp;lt;i.a;t++)i.d[t]=t;i.d.sort(function(r){return function(n,s){return it(r[n],r[s])?1:-1}}(i.c)),i.e=!0,yb(i.b)}function Rm(i,t){if(i.e){var r=i.b,n=++r.a;2*n&amp;amp;gt;r.f&amp;amp;amp;&amp;amp;amp;(r.f*=2,r.c=Bm(r.c,r.f+1));var s;return r.b===0?s=n:(s=r.b,r.b=r.c[r.b]),r.e[s]=t,r.c[s]=n,r.d[n]=s,r.h&amp;amp;amp;&amp;amp;amp;Pm(r,n),s}return r=i.a++,i.c[r]=t,-(r+1)}function Cm(i){if(i.a===0)return Em(i.b);var t=i.c[i.d[i.a-1]];if(i.b.a!==0&amp;amp;amp;&amp;amp;amp;it(dc(i.b),t))return Em(i.b);do--i.a;while(0&amp;amp;lt;i.a&amp;amp;amp;&amp;amp;amp;i.c[i.d[i.a-1]]===null);return t}function gb(){this.d=Bm([0],33),this.e=[null,null],this.c=[0,0],this.a=0,this.f=32,this.b=0,this.h=!1,this.d[1]=1}function Bm(i,t){for(var r=Array(t),n=0;n&amp;amp;lt;i.length;n++)r[n]=i[n];for(;n&amp;amp;lt;t;n++)r[n]=0;return r}function yb(i){for(var t=i.a;1&amp;amp;lt;=t;--t)Yu(i,t);i.h=!0}function dc(i){return i.e[i.d[1]]}function Em(i){var t=i.d,r=i.e,n=i.c,s=t[1],a=r[s];return 0&amp;amp;lt;i.a&amp;amp;amp;&amp;amp;amp;(t[1]=t[i.a],n[t[1]]=1,r[s]=null,n[s]=i.b,i.b=s,0&amp;amp;lt;--i.a&amp;amp;amp;&amp;amp;amp;Yu(i,1)),a}function Yu(i,t){for(var r=i.d,n=i.e,s=i.c,a=t,o=r[a];;){var u=a&amp;amp;lt;&amp;amp;lt;1;u&amp;amp;lt;i.a&amp;amp;amp;&amp;amp;amp;it(n[r[u+1]],n[r[u]])&amp;amp;amp;&amp;amp;amp;(u+=1);var h=r[u];if(u&amp;amp;gt;i.a||it(n[o],n[h])){r[a]=o,s[o]=a;break}r[a]=h,s[h]=a,a=u}}function Pm(i,t){for(var r=i.d,n=i.e,s=i.c,a=t,o=r[a];;){var u=a&amp;amp;gt;&amp;amp;gt;1,h=r[u];if(u===0||it(n[h],n[o])){r[a]=o,s[o]=a;break}r[a]=h,s[h]=a,a=u}}function _c(){this.e=this.a=null,this.f=0,this.c=this.b=this.h=this.d=!1}function Ft(i){return i.e.c.b}function Gr(i){return i.e.a.b}wc.libtess={GluTesselator:mt,windingRule:{GLU_TESS_WINDING_ODD:100130,GLU_TESS_WINDING_NONZERO:100131,GLU_TESS_WINDING_POSITIVE:100132,GLU_TESS_WINDING_NEGATIVE:100133,GLU_TESS_WINDING_ABS_GEQ_TWO:100134},primitiveType:{GL_LINE_LOOP:2,GL_TRIANGLES:4,GL_TRIANGLE_STRIP:5,GL_TRIANGLE_FAN:6},errorType:{GLU_TESS_MISSING_BEGIN_POLYGON:100151,GLU_TESS_MISSING_END_POLYGON:100153,GLU_TESS_MISSING_BEGIN_CONTOUR:100152,GLU_TESS_MISSING_END_CONTOUR:100154,GLU_TESS_COORD_TOO_LARGE:100155,GLU_TESS_NEED_COMBINE_CALLBACK:100156},gluEnum:{GLU_TESS_MESH:100112,GLU_TESS_TOLERANCE:100142,GLU_TESS_WINDING_RULE:100140,GLU_TESS_BOUNDARY_ONLY:100141,GLU_INVALID_ENUM:100900,GLU_INVALID_VALUE:100901,GLU_TESS_BEGIN:100100,GLU_TESS_VERTEX:100101,GLU_TESS_END:100102,GLU_TESS_ERROR:100103,GLU_TESS_EDGE_FLAG:100104,GLU_TESS_COMBINE:100105,GLU_TESS_BEGIN_DATA:100106,GLU_TESS_VERTEX_DATA:100107,GLU_TESS_END_DATA:100108,GLU_TESS_ERROR_DATA:100109,GLU_TESS_EDGE_FLAG_DATA:100110,GLU_TESS_COMBINE_DATA:100111}};mt.prototype.gluDeleteTess=mt.prototype.x;mt.prototype.gluTessProperty=mt.prototype.B;mt.prototype.gluGetTessProperty=mt.prototype.y;mt.prototype.gluTessNormal=mt.prototype.A;mt.prototype.gluTessCallback=mt.prototype.z;mt.prototype.gluTessVertex=mt.prototype.C;mt.prototype.gluTessBeginPolygon=mt.prototype.u;mt.prototype.gluTessBeginContour=mt.prototype.t;mt.prototype.gluTessEndContour=mt.prototype.v;mt.prototype.gluTessEndPolygon=mt.prototype.w;typeof mc&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(mc.exports=wc.libtess)});var f0,c0=ln(()=&amp;amp;gt;{f0={fes:{autoplay:`The media that tried to play (with &amp;amp;#39;{{src}}&amp;amp;#39;) wasn&amp;amp;#39;t allowed to by this browser, most likely due to the browser&amp;amp;#39;s autoplay policy.
   5139 <a href="#l5120" class="line" id="l5120">   5120</a> &lt;a href=&quot;#l5101&quot; class=&quot;line&quot; id=&quot;l5101&quot;&gt;   5101&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1&amp;quot; id=&amp;quot;h4-0-1&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5140 <a href="#l5121" class="line" id="l5121">   5121</a> &lt;a href=&quot;#l5102&quot; class=&quot;line&quot; id=&quot;l5102&quot;&gt;   5102&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2&amp;quot; id=&amp;quot;h4-0-2&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,checkUserDefinedFns:&amp;amp;quot;It seems that you may have accidentally written {{name}} instead of {{actualName}}. Please correct it if it&amp;amp;#39;s not intentional.&amp;amp;quot;,fileLoadError:{bytes:&amp;amp;quot;It looks like there was a problem loading your file. {{suggestion}}&amp;amp;quot;,font:&amp;amp;quot;It looks like there was a problem loading your font. {{suggestion}}&amp;amp;quot;,gif:&amp;amp;quot;There was some trouble loading your GIF. Make sure that your GIF is using 87a or 89a encoding.&amp;amp;quot;,image:&amp;amp;quot;It looks like there was a problem loading your image. {{suggestion}}&amp;amp;quot;,json:&amp;amp;quot;It looks like there was a problem loading your JSON file. {{suggestion}}&amp;amp;quot;,large:&amp;amp;quot;If your large file isn&amp;amp;#39;t fetched successfully, we recommend splitting the file into smaller segments and fetching those.&amp;amp;quot;,strings:&amp;amp;quot;It looks like there was a problem loading your text file. {{suggestion}}&amp;amp;quot;,suggestion:`Try checking if the file path ({{filePath}}) is correct, hosting the file online, or running a local server.
   5141 <a href="#l5122" class="line" id="l5122">   5122</a> &lt;a href=&quot;#l5103&quot; class=&quot;line&quot; id=&quot;l5103&quot;&gt;   5103&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-3&amp;quot; id=&amp;quot;h4-0-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5142 <a href="#l5123" class="line" id="l5123">   5123</a> &lt;a href=&quot;#l5104&quot; class=&quot;line&quot; id=&quot;l5104&quot;&gt;   5104&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-4&amp;quot; id=&amp;quot;h4-0-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,table:&amp;amp;quot;It looks like there was a problem loading your table file. {{suggestion}}&amp;amp;quot;,xml:&amp;amp;quot;It looks like there was a problem loading your XML file. {{suggestion}}&amp;amp;quot;},friendlyParamError:{type_EMPTY_VAR:`{{location}} {{func}}() was expecting {{formatType}} for the {{position}} parameter, received an empty variable instead. If not intentional, this is often a problem with scope.
   5143 <a href="#l5124" class="line" id="l5124">   5124</a> &lt;a href=&quot;#l5105&quot; class=&quot;line&quot; id=&quot;l5105&quot;&gt;   5105&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-5&amp;quot; id=&amp;quot;h4-0-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5144 <a href="#l5125" class="line" id="l5125">   5125</a> &lt;a href=&quot;#l5106&quot; class=&quot;line&quot; id=&quot;l5106&quot;&gt;   5106&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-6&amp;quot; id=&amp;quot;h4-0-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,type_TOO_FEW_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}() was expecting at least {{minParams}} arguments, but received only {{argCount}}.&amp;amp;quot;,type_TOO_MANY_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}() was expecting no more than {{maxParams}} arguments, but received {{argCount}}.&amp;amp;quot;,type_WRONG_TYPE:&amp;amp;quot;{{location}} {{func}}() was expecting {{formatType}} for the {{position}} parameter, received {{argType}} instead.&amp;amp;quot;},globalErrors:{reference:{cannotAccess:`
   5145 <a href="#l5126" class="line" id="l5126">   5126</a> &lt;a href=&quot;#l5107&quot; class=&quot;line&quot; id=&quot;l5107&quot;&gt;   5107&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-7&amp;quot; id=&amp;quot;h4-0-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; is used before declaration. Make sure you have declared the variable before using it.
   5146 <a href="#l5127" class="line" id="l5127">   5127</a> &lt;a href=&quot;#l5108&quot; class=&quot;line&quot; id=&quot;l5108&quot;&gt;   5108&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-8&amp;quot; id=&amp;quot;h4-0-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5147 <a href="#l5128" class="line" id="l5128">   5128</a> &lt;a href=&quot;#l5109&quot; class=&quot;line&quot; id=&quot;l5109&quot;&gt;   5109&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-9&amp;quot; id=&amp;quot;h4-0-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,notDefined:`
   5148 <a href="#l5129" class="line" id="l5129">   5129</a> &lt;a href=&quot;#l5110&quot; class=&quot;line&quot; id=&quot;l5110&quot;&gt;   5110&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-10&amp;quot; id=&amp;quot;h4-0-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; is not defined in the current scope. If you have defined it in your code, you should check its scope, spelling, and letter-casing (JavaScript is case-sensitive).
   5149 <a href="#l5130" class="line" id="l5130">   5130</a> &lt;a href=&quot;#l5111&quot; class=&quot;line&quot; id=&quot;l5111&quot;&gt;   5111&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-11&amp;quot; id=&amp;quot;h4-0-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5150 <a href="#l5131" class="line" id="l5131">   5131</a> &lt;a href=&quot;#l5112&quot; class=&quot;line&quot; id=&quot;l5112&quot;&gt;   5112&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-12&amp;quot; id=&amp;quot;h4-0-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`},stackSubseq:`\u2514[{{location}}]
   5151 <a href="#l5132" class="line" id="l5132">   5132</a> &lt;a href=&quot;#l5113&quot; class=&quot;line&quot; id=&quot;l5113&quot;&gt;   5113&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-13&amp;quot; id=&amp;quot;h4-0-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 Called from line {{line}} in {{func}}()
   5152 <a href="#l5133" class="line" id="l5133">   5133</a> &lt;a href=&quot;#l5114&quot; class=&quot;line&quot; id=&quot;l5114&quot;&gt;   5114&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-14&amp;quot; id=&amp;quot;h4-0-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,stackTop:`\u250C[{{location}}]
   5153 <a href="#l5134" class="line" id="l5134">   5134</a> &lt;a href=&quot;#l5115&quot; class=&quot;line&quot; id=&quot;l5115&quot;&gt;   5115&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-15&amp;quot; id=&amp;quot;h4-0-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 Error at line {{line}} in {{func}}()
   5154 <a href="#l5135" class="line" id="l5135">   5135</a> &lt;a href=&quot;#l5116&quot; class=&quot;line&quot; id=&quot;l5116&quot;&gt;   5116&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-16&amp;quot; id=&amp;quot;h4-0-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,syntax:{badReturnOrYield:`
   5155 <a href="#l5136" class="line" id="l5136">   5136</a> &lt;a href=&quot;#l5117&quot; class=&quot;line&quot; id=&quot;l5117&quot;&gt;   5117&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-17&amp;quot; id=&amp;quot;h4-0-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - return lies outside of a function. Make sure you\u2019re not missing any brackets, so that return lies inside a function.
   5156 <a href="#l5137" class="line" id="l5137">   5137</a> &lt;a href=&quot;#l5118&quot; class=&quot;line&quot; id=&quot;l5118&quot;&gt;   5118&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-18&amp;quot; id=&amp;quot;h4-0-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5157 <a href="#l5138" class="line" id="l5138">   5138</a> &lt;a href=&quot;#l5119&quot; class=&quot;line&quot; id=&quot;l5119&quot;&gt;   5119&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-19&amp;quot; id=&amp;quot;h4-0-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,invalidToken:`
   5158 <a href="#l5139" class="line" id="l5139">   5139</a> &lt;a href=&quot;#l5120&quot; class=&quot;line&quot; id=&quot;l5120&quot;&gt;   5120&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-20&amp;quot; id=&amp;quot;h4-0-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - Found a symbol that JavaScript doesn&amp;amp;#39;t recognize or didn&amp;amp;#39;t expect at it&amp;amp;#39;s place.
   5159 <a href="#l5140" class="line" id="l5140">   5140</a> &lt;a href=&quot;#l5121&quot; class=&quot;line&quot; id=&quot;l5121&quot;&gt;   5121&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-21&amp;quot; id=&amp;quot;h4-0-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5160 <a href="#l5141" class="line" id="l5141">   5141</a> &lt;a href=&quot;#l5122&quot; class=&quot;line&quot; id=&quot;l5122&quot;&gt;   5122&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-22&amp;quot; id=&amp;quot;h4-0-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,missingInitializer:`
   5161 <a href="#l5142" class="line" id="l5142">   5142</a> &lt;a href=&quot;#l5123&quot; class=&quot;line&quot; id=&quot;l5123&quot;&gt;   5123&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-23&amp;quot; id=&amp;quot;h4-0-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - A const variable is declared but not initialized. In JavaScript, an initializer for a const is required. A value must be specified in the same statement in which the variable is declared. Check the line number in the error and assign the const variable a value.
   5162 <a href="#l5143" class="line" id="l5143">   5143</a> &lt;a href=&quot;#l5124&quot; class=&quot;line&quot; id=&quot;l5124&quot;&gt;   5124&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-24&amp;quot; id=&amp;quot;h4-0-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5163 <a href="#l5144" class="line" id="l5144">   5144</a> &lt;a href=&quot;#l5125&quot; class=&quot;line&quot; id=&quot;l5125&quot;&gt;   5125&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-25&amp;quot; id=&amp;quot;h4-0-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,redeclaredVariable:`
   5164 <a href="#l5145" class="line" id="l5145">   5145</a> &lt;a href=&quot;#l5126&quot; class=&quot;line&quot; id=&quot;l5126&quot;&gt;   5126&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-26&amp;quot; id=&amp;quot;h4-0-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - &amp;amp;quot;{{symbol}}&amp;amp;quot; is being redeclared. JavaScript doesn&amp;amp;#39;t allow declaring a variable more than once. Check the line number in error for redeclaration of the variable.
   5165 <a href="#l5146" class="line" id="l5146">   5146</a> &lt;a href=&quot;#l5127&quot; class=&quot;line&quot; id=&quot;l5127&quot;&gt;   5127&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-27&amp;quot; id=&amp;quot;h4-0-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5166 <a href="#l5147" class="line" id="l5147">   5147</a> &lt;a href=&quot;#l5128&quot; class=&quot;line&quot; id=&quot;l5128&quot;&gt;   5128&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-28&amp;quot; id=&amp;quot;h4-0-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,unexpectedToken:`
   5167 <a href="#l5148" class="line" id="l5148">   5148</a> &lt;a href=&quot;#l5129&quot; class=&quot;line&quot; id=&quot;l5129&quot;&gt;   5129&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-29&amp;quot; id=&amp;quot;h4-0-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - Symbol present at a place that wasn&amp;amp;#39;t expected.
   5168 <a href="#l5149" class="line" id="l5149">   5149</a> &lt;a href=&quot;#l5130&quot; class=&quot;line&quot; id=&quot;l5130&quot;&gt;   5130&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-30&amp;quot; id=&amp;quot;h4-0-30&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Usually this is due to a typo. Check the line number in the error for anything missing/extra.
   5169 <a href="#l5150" class="line" id="l5150">   5150</a> &lt;a href=&quot;#l5131&quot; class=&quot;line&quot; id=&quot;l5131&quot;&gt;   5131&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-31&amp;quot; id=&amp;quot;h4-0-31&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5170 <a href="#l5151" class="line" id="l5151">   5151</a> &lt;a href=&quot;#l5132&quot; class=&quot;line&quot; id=&quot;l5132&quot;&gt;   5132&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-32&amp;quot; id=&amp;quot;h4-0-32&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`},type:{constAssign:`
   5171 <a href="#l5152" class="line" id="l5152">   5152</a> &lt;a href=&quot;#l5133&quot; class=&quot;line&quot; id=&quot;l5133&quot;&gt;   5133&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-33&amp;quot; id=&amp;quot;h4-0-33&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} A const variable is being re-assigned. In javascript, re-assigning a value to a constant is not allowed. If you want to re-assign new values to a variable, make sure it is declared as var or let.
   5172 <a href="#l5153" class="line" id="l5153">   5153</a> &lt;a href=&quot;#l5134&quot; class=&quot;line&quot; id=&quot;l5134&quot;&gt;   5134&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-34&amp;quot; id=&amp;quot;h4-0-34&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5173 <a href="#l5154" class="line" id="l5154">   5154</a> &lt;a href=&quot;#l5135&quot; class=&quot;line&quot; id=&quot;l5135&quot;&gt;   5135&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-35&amp;quot; id=&amp;quot;h4-0-35&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,notfunc:`
   5174 <a href="#l5155" class="line" id="l5155">   5155</a> &lt;a href=&quot;#l5136&quot; class=&quot;line&quot; id=&quot;l5136&quot;&gt;   5136&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-36&amp;quot; id=&amp;quot;h4-0-36&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; could not be called as a function.
   5175 <a href="#l5156" class="line" id="l5156">   5156</a> &lt;a href=&quot;#l5137&quot; class=&quot;line&quot; id=&quot;l5137&quot;&gt;   5137&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-37&amp;quot; id=&amp;quot;h4-0-37&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Check the spelling, letter-casing (JavaScript is case-sensitive) and its type.
   5176 <a href="#l5157" class="line" id="l5157">   5157</a> &lt;a href=&quot;#l5138&quot; class=&quot;line&quot; id=&quot;l5138&quot;&gt;   5138&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-38&amp;quot; id=&amp;quot;h4-0-38&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5177 <a href="#l5158" class="line" id="l5158">   5158</a> &lt;a href=&quot;#l5139&quot; class=&quot;line&quot; id=&quot;l5139&quot;&gt;   5139&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-39&amp;quot; id=&amp;quot;h4-0-39&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,notfuncObj:`
   5178 <a href="#l5159" class="line" id="l5159">   5159</a> &lt;a href=&quot;#l5140&quot; class=&quot;line&quot; id=&quot;l5140&quot;&gt;   5140&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-40&amp;quot; id=&amp;quot;h4-0-40&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; could not be called as a function.
   5179 <a href="#l5160" class="line" id="l5160">   5160</a> &lt;a href=&quot;#l5141&quot; class=&quot;line&quot; id=&quot;l5141&quot;&gt;   5141&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-41&amp;quot; id=&amp;quot;h4-0-41&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Verify whether &amp;amp;quot;{{obj}}&amp;amp;quot; has &amp;amp;quot;{{symbol}}&amp;amp;quot; in it and check the spelling, letter-casing (JavaScript is case-sensitive) and its type.
   5180 <a href="#l5161" class="line" id="l5161">   5161</a> &lt;a href=&quot;#l5142&quot; class=&quot;line&quot; id=&quot;l5142&quot;&gt;   5142&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-42&amp;quot; id=&amp;quot;h4-0-42&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5181 <a href="#l5162" class="line" id="l5162">   5162</a> &lt;a href=&quot;#l5143&quot; class=&quot;line&quot; id=&quot;l5143&quot;&gt;   5143&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-43&amp;quot; id=&amp;quot;h4-0-43&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,readFromNull:`
   5182 <a href="#l5163" class="line" id="l5163">   5163</a> &lt;a href=&quot;#l5144&quot; class=&quot;line&quot; id=&quot;l5144&quot;&gt;   5144&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-44&amp;quot; id=&amp;quot;h4-0-44&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} The property of null can&amp;amp;#39;t be read. In javascript the value null indicates that an object has no value.
   5183 <a href="#l5164" class="line" id="l5164">   5164</a> &lt;a href=&quot;#l5145&quot; class=&quot;line&quot; id=&quot;l5145&quot;&gt;   5145&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-45&amp;quot; id=&amp;quot;h4-0-45&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5184 <a href="#l5165" class="line" id="l5165">   5165</a> &lt;a href=&quot;#l5146&quot; class=&quot;line&quot; id=&quot;l5146&quot;&gt;   5146&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-46&amp;quot; id=&amp;quot;h4-0-46&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,readFromUndefined:`
   5185 <a href="#l5166" class="line" id="l5166">   5166</a> &lt;a href=&quot;#l5147&quot; class=&quot;line&quot; id=&quot;l5147&quot;&gt;   5147&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-47&amp;quot; id=&amp;quot;h4-0-47&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} Cannot read property of undefined. Check the line number in error and make sure the variable which is being operated is not undefined.
   5186 <a href="#l5167" class="line" id="l5167">   5167</a> &lt;a href=&quot;#l5148&quot; class=&quot;line&quot; id=&quot;l5148&quot;&gt;   5148&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-48&amp;quot; id=&amp;quot;h4-0-48&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5187 <a href="#l5168" class="line" id="l5168">   5168</a> &lt;a href=&quot;#l5149&quot; class=&quot;line&quot; id=&quot;l5149&quot;&gt;   5149&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-49&amp;quot; id=&amp;quot;h4-0-49&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+ + More info: {{url}}`}},libraryError:&amp;amp;#39;{{location}} An error with message &amp;amp;quot;{{error}}&amp;amp;quot; occurred inside the p5js library when {{func}} was called. If not stated otherwise, it might be an issue with the arguments passed to {{func}}.&amp;amp;#39;,location:&amp;amp;quot;[{{file}}, line {{line}}]&amp;amp;quot;,misspelling:&amp;amp;#39;{{location}} It seems that you may have accidentally written &amp;amp;quot;{{name}}&amp;amp;quot; instead of &amp;amp;quot;{{actualName}}&amp;amp;quot;. Please correct it to {{actualName}} if you wish to use the {{type}} from p5.js.&amp;amp;#39;,misspelling_plural:`{{location}} It seems that you may have accidentally written &amp;amp;quot;{{name}}&amp;amp;quot;.
   5188 <a href="#l5169" class="line" id="l5169">   5169</a> &lt;a href=&quot;#l5150&quot; class=&quot;line&quot; id=&quot;l5150&quot;&gt;   5150&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-50&amp;quot; id=&amp;quot;h4-0-50&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+You may have meant one of the following:
   5189 <a href="#l5170" class="line" id="l5170">   5170</a> &lt;a href=&quot;#l5151&quot; class=&quot;line&quot; id=&quot;l5151&quot;&gt;   5151&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-51&amp;quot; id=&amp;quot;h4-0-51&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{suggestions}}`,misusedTopLevel:`Did you just try to use p5.js&amp;amp;#39;s {{symbolName}} {{symbolType}}? If so, you may want to move it into your sketch&amp;amp;#39;s setup() function.
   5190 <a href="#l5171" class="line" id="l5171">   5171</a> &lt;a href=&quot;#l5152&quot; class=&quot;line&quot; id=&quot;l5152&quot;&gt;   5152&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-52&amp;quot; id=&amp;quot;h4-0-52&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5191 <a href="#l5172" class="line" id="l5172">   5172</a> &lt;a href=&quot;#l5153&quot; class=&quot;line&quot; id=&quot;l5153&quot;&gt;   5153&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-53&amp;quot; id=&amp;quot;h4-0-53&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,preloadDisabled:&amp;amp;quot;The preload() function has been removed in p5.js 2.0. Please load assets in setup() using async / await keywords or callbacks instead. See https://dev.to/limzykenneth/asynchronous-p5js-20-458f for more information.&amp;amp;quot;,positions:{p_1:&amp;amp;quot;first&amp;amp;quot;,p_10:&amp;amp;quot;tenth&amp;amp;quot;,p_11:&amp;amp;quot;eleventh&amp;amp;quot;,p_12:&amp;amp;quot;twelfth&amp;amp;quot;,p_2:&amp;amp;quot;second&amp;amp;quot;,p_3:&amp;amp;quot;third&amp;amp;quot;,p_4:&amp;amp;quot;fourth&amp;amp;quot;,p_5:&amp;amp;quot;fifth&amp;amp;quot;,p_6:&amp;amp;quot;sixth&amp;amp;quot;,p_7:&amp;amp;quot;seventh&amp;amp;quot;,p_8:&amp;amp;quot;eighth&amp;amp;quot;,p_9:&amp;amp;quot;ninth&amp;amp;quot;},pre:`
   5192 <a href="#l5173" class="line" id="l5173">   5173</a> &lt;a href=&quot;#l5154&quot; class=&quot;line&quot; id=&quot;l5154&quot;&gt;   5154&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-54&amp;quot; id=&amp;quot;h4-0-54&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u{1F338} p5.js says: {{message}}`,sketchReaderErrors:{reservedConst:`you have used a p5.js reserved variable &amp;amp;quot;{{symbol}}&amp;amp;quot; make sure you change the variable name to something else.
   5193 <a href="#l5174" class="line" id="l5174">   5174</a> &lt;a href=&quot;#l5155&quot; class=&quot;line&quot; id=&quot;l5155&quot;&gt;   5155&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-55&amp;quot; id=&amp;quot;h4-0-55&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5194 <a href="#l5175" class="line" id="l5175">   5175</a> &lt;a href=&quot;#l5156&quot; class=&quot;line&quot; id=&quot;l5156&quot;&gt;   5156&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-56&amp;quot; id=&amp;quot;h4-0-56&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,reservedFunc:`you have used a p5.js reserved function &amp;amp;quot;{{symbol}}&amp;amp;quot; make sure you change the function name to something else.
   5195 <a href="#l5176" class="line" id="l5176">   5176</a> &lt;a href=&quot;#l5157&quot; class=&quot;line&quot; id=&quot;l5157&quot;&gt;   5157&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-57&amp;quot; id=&amp;quot;h4-0-57&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5196 <a href="#l5177" class="line" id="l5177">   5177</a> &lt;a href=&quot;#l5158&quot; class=&quot;line&quot; id=&quot;l5158&quot;&gt;   5158&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-58&amp;quot; id=&amp;quot;h4-0-58&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`},welcome:&amp;amp;quot;Welcome! This is your friendly debugger. To turn me off, switch to using p5.min.js.&amp;amp;quot;,wrongPreload:&amp;amp;#39;{{location}} An error with message &amp;amp;quot;{{error}}&amp;amp;quot; occurred inside the p5js library when &amp;amp;quot;{{func}}&amp;amp;quot; was called. If not stated otherwise, it might be due to &amp;amp;quot;{{func}}&amp;amp;quot; being called from preload. Nothing besides load calls (loadImage, loadJSON, loadFont, loadStrings, etc.) should be inside the preload function.&amp;amp;#39;}}});var d0,p0=ln(()=&amp;amp;gt;{d0={fes:{autoplay:&amp;amp;quot;Su browser impid\xEDo un medio tocar (de &amp;amp;#39;{{src}}&amp;amp;#39;), posiblemente porque las reglas de autoplay. Para aprender m\xE1s, visite {{link}}.&amp;amp;quot;,checkUserDefinedFns:&amp;amp;quot;&amp;amp;quot;,fileLoadError:{bytes:&amp;amp;quot;&amp;amp;quot;,font:&amp;amp;quot;&amp;amp;quot;,gif:&amp;amp;quot;&amp;amp;quot;,image:&amp;amp;quot;&amp;amp;quot;,json:&amp;amp;quot;&amp;amp;quot;,large:&amp;amp;quot;&amp;amp;quot;,strings:&amp;amp;quot;&amp;amp;quot;,suggestion:&amp;amp;quot;&amp;amp;quot;,table:&amp;amp;quot;&amp;amp;quot;,xml:&amp;amp;quot;&amp;amp;quot;},friendlyParamError:{type_EMPTY_VAR:&amp;amp;quot;&amp;amp;quot;,type_TOO_FEW_ARGUMENTS:&amp;amp;quot;&amp;amp;quot;,type_TOO_MANY_ARGUMENTS:&amp;amp;quot;&amp;amp;quot;,type_WRONG_TYPE:&amp;amp;quot;&amp;amp;quot;},globalErrors:{reference:{cannotAccess:&amp;amp;quot;&amp;amp;quot;,notDefined:&amp;amp;quot;&amp;amp;quot;},stackSubseq:&amp;amp;quot;&amp;amp;quot;,stackTop:&amp;amp;quot;&amp;amp;quot;,syntax:{badReturnOrYield:&amp;amp;quot;&amp;amp;quot;,invalidToken:&amp;amp;quot;&amp;amp;quot;,missingInitializer:&amp;amp;quot;&amp;amp;quot;,redeclaredVariable:&amp;amp;quot;&amp;amp;quot;,unexpectedToken:&amp;amp;quot;&amp;amp;quot;},type:{constAssign:&amp;amp;quot;&amp;amp;quot;,notfunc:&amp;amp;quot;&amp;amp;quot;,notfuncObj:&amp;amp;quot;&amp;amp;quot;,readFromNull:&amp;amp;quot;&amp;amp;quot;,readFromUndefined:&amp;amp;quot;&amp;amp;quot;}},libraryError:&amp;amp;quot;&amp;amp;quot;,location:&amp;amp;quot;&amp;amp;quot;,misspelling:&amp;amp;quot;&amp;amp;quot;,misspelling_plural:&amp;amp;quot;&amp;amp;quot;,misusedTopLevel:&amp;amp;quot;&amp;amp;quot;,positions:{p_1:&amp;amp;quot;&amp;amp;quot;,p_10:&amp;amp;quot;&amp;amp;quot;,p_11:&amp;amp;quot;&amp;amp;quot;,p_12:&amp;amp;quot;&amp;amp;quot;,p_2:&amp;amp;quot;&amp;amp;quot;,p_3:&amp;amp;quot;&amp;amp;quot;,p_4:&amp;amp;quot;&amp;amp;quot;,p_5:&amp;amp;quot;&amp;amp;quot;,p_6:&amp;amp;quot;&amp;amp;quot;,p_7:&amp;amp;quot;&amp;amp;quot;,p_8:&amp;amp;quot;&amp;amp;quot;,p_9:&amp;amp;quot;&amp;amp;quot;},pre:&amp;amp;quot;\u{1F338} p5.js dice: {{message}}&amp;amp;quot;,sketchReaderErrors:{reservedConst:&amp;amp;quot;&amp;amp;quot;,reservedFunc:&amp;amp;quot;&amp;amp;quot;},welcome:&amp;amp;quot;&amp;amp;quot;,wrongPreload:&amp;amp;quot;&amp;amp;quot;}}});var g0,m0=ln(()=&amp;amp;gt;{g0={fes:{autoplay:`\uBBF8\uB514\uC5B4(&amp;amp;#39;{{src}}&amp;amp;#39;)\uAC00 \uC774 \uBE0C\uB77C\uC6B0\uC800\uC5D0\uC11C\uB294 \uC7AC\uC0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uC0AC\uC6A9\uD558\uACE0 \uACC4\uC2E0 \uBE0C\uB77C\uC6B0\uC800\uC758 \uC790\uB3D9 \uC7AC\uC0DD \uC815\uCC45 \uB54C\uBB38\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.
   5197 <a href="#l5178" class="line" id="l5178">   5178</a> &lt;a href=&quot;#l5159&quot; class=&quot;line&quot; id=&quot;l5159&quot;&gt;   5159&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-59&amp;quot; id=&amp;quot;h4-0-59&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5198 <a href="#l5179" class="line" id="l5179">   5179</a> &lt;a href=&quot;#l5160&quot; class=&quot;line&quot; id=&quot;l5160&quot;&gt;   5160&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-60&amp;quot; id=&amp;quot;h4-0-60&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,checkUserDefinedFns:&amp;amp;quot;\uD639\uC2DC {{actualName}} \uB300\uC2E0 {{name}}\uB97C \uC4F4 \uAC83\uC774 \uC544\uB2CC\uC9C0 \uC0B4\uD3B4\uBCF4\uC138\uC694.&amp;amp;quot;,fileLoadError:{bytes:&amp;amp;quot;\uD30C\uC77C\uC744 \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. {{suggestion}}&amp;amp;quot;,font:&amp;amp;quot;\uAE00\uAF34\uC744 \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. {{suggestion}}&amp;amp;quot;,gif:&amp;amp;quot;GIF \uD30C\uC77C\uC744 \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. GIF \uD30C\uC77C\uC758 \uC778\uCF54\uB529 \uBC29\uC2DD\uC774 87a\uC774\uAC70\uB098 89a\uC778\uC9C0\uB97C \uD655\uC778\uD574\uBCF4\uC138\uC694.&amp;amp;quot;,image:&amp;amp;quot;\uC774\uBBF8\uC9C0\uB97C \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. {{suggestion}}&amp;amp;quot;,json:&amp;amp;quot;JSON \uD30C\uC77C\uC744 \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. {{suggestion}}&amp;amp;quot;,large:&amp;amp;quot;\uC6A9\uB7C9\uC774 \uD070 \uD30C\uC77C\uC744 \uD55C\uAEBC\uBC88\uC5D0 \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uD30C\uC77C \uC6A9\uB7C9\uC744 \uC904\uC5EC \uBCF4\uC138\uC694.&amp;amp;quot;,strings:&amp;amp;quot;\uD14D\uC2A4\uD2B8 \uD30C\uC77C\uC744 \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. {{suggestion}}&amp;amp;quot;,suggestion:`\uD30C\uC77C \uACBD\uB85C({{filePath}})\uAC00 \uC62C\uBC14\uB978\uC9C0 \uD655\uC778\uD574\uBCF4\uC138\uC694. \uD639\uC740 \uD574\uB2F9 \uD30C\uC77C\uC744 \uD638\uC2A4\uD305 \uC11C\uBE44\uC2A4\uB97C \uC774\uC6A9\uD558\uAC70\uB098 \uB85C\uCEEC \uC11C\uBC84\uB97C \uAD6C\uB3D9\uD558\uC5EC \uC6F9\uC5D0 \uC62C\uB9AC\uB294 \uBC29\uBC95\uC744 \uACE0\uB824\uD574 \uBCF4\uC138\uC694.
   5199 <a href="#l5180" class="line" id="l5180">   5180</a> &lt;a href=&quot;#l5161&quot; class=&quot;line&quot; id=&quot;l5161&quot;&gt;   5161&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-61&amp;quot; id=&amp;quot;h4-0-61&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5200 <a href="#l5181" class="line" id="l5181">   5181</a> &lt;a href=&quot;#l5162&quot; class=&quot;line&quot; id=&quot;l5162&quot;&gt;   5162&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-62&amp;quot; id=&amp;quot;h4-0-62&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,table:&amp;amp;quot;\uD14C\uC774\uBE14 \uD30C\uC77C\uC744 \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. {{suggestion}}&amp;amp;quot;,xml:&amp;amp;quot;XML \uD30C\uC77C\uC744 \uB85C\uB4DC\uD558\uB294 \uC911\uC5D0 \uBB38\uC81C\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. {{suggestion}}&amp;amp;quot;},friendlyParamError:{type_EMPTY_VAR:`{{location}} {{formatType}} \uD0C0\uC785 \uAC12\uC744 \uBC1B\uB294 {{func}}()\uC758 {{position}} \uB9E4\uAC1C\uBCC0\uC218(parameter)\uC5D0 \uC544\uBB34 \uAC12\uB3C4 \uC804\uB2EC\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uBC94\uC704(scope)\uC640 \uAD00\uB828\uB41C \uBB38\uC81C\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.
   5201 <a href="#l5182" class="line" id="l5182">   5182</a> &lt;a href=&quot;#l5163&quot; class=&quot;line&quot; id=&quot;l5163&quot;&gt;   5163&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-63&amp;quot; id=&amp;quot;h4-0-63&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5202 <a href="#l5183" class="line" id="l5183">   5183</a> &lt;a href=&quot;#l5164&quot; class=&quot;line&quot; id=&quot;l5164&quot;&gt;   5164&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-64&amp;quot; id=&amp;quot;h4-0-64&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,type_TOO_FEW_ARGUMENTS:&amp;amp;quot;{{location}} \uCD5C\uC18C {{minParams}}\uAC1C\uC758 \uC778\uC218(argument)\uB97C \uBC1B\uB294 \uD568\uC218 {{func}}()\uC5D0 \uC778\uC218\uAC00 {{argCount}}\uAC1C\uB9CC \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4.&amp;amp;quot;,type_TOO_MANY_ARGUMENTS:&amp;amp;quot;{{location}} \uCD5C\uB300 {{maxParams}}\uAC1C\uC758 \uC778\uC218(argument)\uB97C \uBC1B\uB294 \uD568\uC218 {{func}}()\uC5D0 \uC778\uC218\uAC00 {{argCount}}\uAC1C\uB098 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4.&amp;amp;quot;,type_WRONG_TYPE:&amp;amp;quot;{{location}} {{formatType}} \uD0C0\uC785\uC758 \uAC12\uC744 \uBC1B\uB294 {{func}}()\uC758 {{position}} \uB9E4\uAC1C\uBCC0\uC218(parameter)\uC5D0 {{argType}} \uD0C0\uC785\uC758 \uAC12\uC774 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4.&amp;amp;quot;},globalErrors:{reference:{cannotAccess:`
   5203 <a href="#l5184" class="line" id="l5184">   5184</a> &lt;a href=&quot;#l5165&quot; class=&quot;line&quot; id=&quot;l5165&quot;&gt;   5165&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-65&amp;quot; id=&amp;quot;h4-0-65&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot;\uAC00 \uC120\uC5B8\uB418\uC9C0 \uC54A\uC740 \uCC44 \uC0AC\uC6A9\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uBCC0\uC218\uB97C \uC0AC\uC6A9\uD558\uAE30 \uC804, \uBA3C\uC800 \uC120\uC5B8\uD588\uB294\uC9C0 \uD655\uC778\uD574\uBCF4\uC138\uC694.
   5204 <a href="#l5185" class="line" id="l5185">   5185</a> &lt;a href=&quot;#l5166&quot; class=&quot;line&quot; id=&quot;l5166&quot;&gt;   5166&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-66&amp;quot; id=&amp;quot;h4-0-66&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5205 <a href="#l5186" class="line" id="l5186">   5186</a> &lt;a href=&quot;#l5167&quot; class=&quot;line&quot; id=&quot;l5167&quot;&gt;   5167&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-67&amp;quot; id=&amp;quot;h4-0-67&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,notDefined:`
   5206 <a href="#l5187" class="line" id="l5187">   5187</a> &lt;a href=&quot;#l5168&quot; class=&quot;line&quot; id=&quot;l5168&quot;&gt;   5168&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-68&amp;quot; id=&amp;quot;h4-0-68&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot;\uC740 \uD604\uC7AC \uBC94\uC704(scope) \uC548\uC5D0 \uC815\uC758\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uB9CC\uC57D \uC815\uC758\uB97C \uD588\uB2E4\uBA74, \uD574\uB2F9 \uBC94\uC704\uC640 \uC624\uD0C8\uC790, \uB300\uC18C\uBB38\uC790 \uB4F1\uC744 \uD655\uC778\uD574\uBCF4\uC138\uC694 (\uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8\uC5D0\uC11C\uB294 \uB300\uC18C\uBB38\uC790\uB97C \uAD6C\uBD84\uD569\uB2C8\uB2E4).
   5207 <a href="#l5188" class="line" id="l5188">   5188</a> &lt;a href=&quot;#l5169&quot; class=&quot;line&quot; id=&quot;l5169&quot;&gt;   5169&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-69&amp;quot; id=&amp;quot;h4-0-69&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5208 <a href="#l5189" class="line" id="l5189">   5189</a> &lt;a href=&quot;#l5170&quot; class=&quot;line&quot; id=&quot;l5170&quot;&gt;   5170&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-70&amp;quot; id=&amp;quot;h4-0-70&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`},stackSubseq:`\u2514[{{location}}]
   5209 <a href="#l5190" class="line" id="l5190">   5190</a> &lt;a href=&quot;#l5171&quot; class=&quot;line&quot; id=&quot;l5171&quot;&gt;   5171&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-71&amp;quot; id=&amp;quot;h4-0-71&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 {{func}}()\uC5D0 \uC788\uB294 \uC904{{line}}\uC5D0\uC11C \uD638\uCD9C
   5210 <a href="#l5191" class="line" id="l5191">   5191</a> &lt;a href=&quot;#l5172&quot; class=&quot;line&quot; id=&quot;l5172&quot;&gt;   5172&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-72&amp;quot; id=&amp;quot;h4-0-72&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,stackTop:`\u250C[{{location}}]
   5211 <a href="#l5192" class="line" id="l5192">   5192</a> &lt;a href=&quot;#l5173&quot; class=&quot;line&quot; id=&quot;l5173&quot;&gt;   5173&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-73&amp;quot; id=&amp;quot;h4-0-73&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 {{func}}()\uC5D0 \uC788\uB294 \uC904{{line}}\uC5D0\uC11C \uC624\uB958 \uBC1C\uC0DD
   5212 <a href="#l5193" class="line" id="l5193">   5193</a> &lt;a href=&quot;#l5174&quot; class=&quot;line&quot; id=&quot;l5174&quot;&gt;   5174&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-74&amp;quot; id=&amp;quot;h4-0-74&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,syntax:{badReturnOrYield:`
   5213 <a href="#l5194" class="line" id="l5194">   5194</a> &lt;a href=&quot;#l5175&quot; class=&quot;line&quot; id=&quot;l5175&quot;&gt;   5175&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-75&amp;quot; id=&amp;quot;h4-0-75&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\uAD6C\uBB38 \uC624\uB958 - \uB300\uAD04\uD638\uAC00 \uC81C\uB300\uB85C \uC4F0\uC600\uB294\uC9C0 \uD655\uC778\uD574 \uBCF8 \uD6C4, return\uC744 \uD568\uC218 \uC548\uC5D0 \uB123\uC5B4\uC8FC\uC138\uC694.
   5214 <a href="#l5195" class="line" id="l5195">   5195</a> &lt;a href=&quot;#l5176&quot; class=&quot;line&quot; id=&quot;l5176&quot;&gt;   5176&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-76&amp;quot; id=&amp;quot;h4-0-76&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5215 <a href="#l5196" class="line" id="l5196">   5196</a> &lt;a href=&quot;#l5177&quot; class=&quot;line&quot; id=&quot;l5177&quot;&gt;   5177&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-77&amp;quot; id=&amp;quot;h4-0-77&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,invalidToken:`
   5216 <a href="#l5197" class="line" id="l5197">   5197</a> &lt;a href=&quot;#l5178&quot; class=&quot;line&quot; id=&quot;l5178&quot;&gt;   5178&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-78&amp;quot; id=&amp;quot;h4-0-78&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\uAD6C\uBB38 \uC624\uB958 - \uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8\uAC00 \uC778\uC2DD\uD560 \uC218 \uC5C6\uAC70\uB098, \uC801\uD569\uD558\uC9C0 \uC54A\uC740 \uAE30\uD638\uB098 \uBB38\uAD6C\uAC00 \uC785\uB825\uB418\uC5C8\uC2B5\uB2C8\uB2E4.
   5217 <a href="#l5198" class="line" id="l5198">   5198</a> &lt;a href=&quot;#l5179&quot; class=&quot;line&quot; id=&quot;l5179&quot;&gt;   5179&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-79&amp;quot; id=&amp;quot;h4-0-79&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5218 <a href="#l5199" class="line" id="l5199">   5199</a> &lt;a href=&quot;#l5180&quot; class=&quot;line&quot; id=&quot;l5180&quot;&gt;   5180&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-80&amp;quot; id=&amp;quot;h4-0-80&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,missingInitializer:`
   5219 <a href="#l5200" class="line" id="l5200">   5200</a> &lt;a href=&quot;#l5181&quot; class=&quot;line&quot; id=&quot;l5181&quot;&gt;   5181&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-81&amp;quot; id=&amp;quot;h4-0-81&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\uAD6C\uBB38 \uC624\uB958 - const \uBCC0\uC218\uAC00 \uC120\uC5B8\uB418\uC5C8\uC9C0\uB9CC \uCD08\uAE30\uD654\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4. \uBCC0\uC218\uAC00 \uC120\uC5B8\uB41C \uBA85\uB839\uBB38 \uC548\uC5D0\uC11C \uAC12\uC744 \uC9C0\uC815\uD574\uC8FC\uC138\uC694.
   5220 <a href="#l5201" class="line" id="l5201">   5201</a> &lt;a href=&quot;#l5182&quot; class=&quot;line&quot; id=&quot;l5182&quot;&gt;   5182&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-82&amp;quot; id=&amp;quot;h4-0-82&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5221 <a href="#l5202" class="line" id="l5202">   5202</a> &lt;a href=&quot;#l5183&quot; class=&quot;line&quot; id=&quot;l5183&quot;&gt;   5183&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-83&amp;quot; id=&amp;quot;h4-0-83&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,redeclaredVariable:`
   5222 <a href="#l5203" class="line" id="l5203">   5203</a> &lt;a href=&quot;#l5184&quot; class=&quot;line&quot; id=&quot;l5184&quot;&gt;   5184&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-84&amp;quot; id=&amp;quot;h4-0-84&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\uAD6C\uBB38 \uC624\uB958 - \uC774\uBBF8 \uC120\uC5B8\uB41C &amp;amp;quot;{{symbol}}&amp;amp;quot;\uAC00 \uC7AC\uC120\uC5B8\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8\uC5D0\uC11C\uB294 \uAC19\uC740 \uBCC0\uC218\uB97C \uD55C \uBC88 \uC774\uC0C1 \uC120\uC5B8\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
   5223 <a href="#l5204" class="line" id="l5204">   5204</a> &lt;a href=&quot;#l5185&quot; class=&quot;line&quot; id=&quot;l5185&quot;&gt;   5185&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-85&amp;quot; id=&amp;quot;h4-0-85&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5224 <a href="#l5205" class="line" id="l5205">   5205</a> &lt;a href=&quot;#l5186&quot; class=&quot;line&quot; id=&quot;l5186&quot;&gt;   5186&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-86&amp;quot; id=&amp;quot;h4-0-86&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,unexpectedToken:`
   5225 <a href="#l5206" class="line" id="l5206">   5206</a> &lt;a href=&quot;#l5187&quot; class=&quot;line&quot; id=&quot;l5187&quot;&gt;   5187&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-87&amp;quot; id=&amp;quot;h4-0-87&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\uAD6C\uBB38 \uC624\uB958 - \uC785\uB825\uB41C \uBB38\uAD6C\uAC00 \uC608\uC0C1\uD558\uC9C0 \uBABB\uD55C \uC704\uCE58\uC5D0 \uC788\uC2B5\uB2C8\uB2E4.\uBCF4\uD1B5 \uC774\uB7F0 \uC0C1\uD669\uC740 \uC624\uD0C8\uC790 \uB54C\uBB38\uC5D0 \uC77C\uC5B4\uB098\uB294 \uACBD\uC6B0\uAC00 \uB9CE\uC2B5\uB2C8\uB2E4. \uB204\uB77D\uB418\uAC70\uB098 \uCD94\uAC00\uB41C \uB0B4\uC6A9\uC774 \uC5C6\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694.
   5226 <a href="#l5207" class="line" id="l5207">   5207</a> &lt;a href=&quot;#l5188&quot; class=&quot;line&quot; id=&quot;l5188&quot;&gt;   5188&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-88&amp;quot; id=&amp;quot;h4-0-88&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5227 <a href="#l5208" class="line" id="l5208">   5208</a> &lt;a href=&quot;#l5189&quot; class=&quot;line&quot; id=&quot;l5189&quot;&gt;   5189&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-89&amp;quot; id=&amp;quot;h4-0-89&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`},type:{constAssign:`
   5228 <a href="#l5209" class="line" id="l5209">   5209</a> &lt;a href=&quot;#l5190&quot; class=&quot;line&quot; id=&quot;l5190&quot;&gt;   5190&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-90&amp;quot; id=&amp;quot;h4-0-90&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} const \uBCC0\uC218\uAC00 \uC7AC\uC9C0\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8\uC5D0\uC11C\uB294 const \uBCC0\uC218\uC5D0 \uB2E4\uB978 \uAC12\uC744 \uC5EC\uB7EC \uBC88 \uC9C0\uC815\uD560 \uC218 \uC5C6\uC73C\uBBC0\uB85C \uC0C8\uB85C\uC6B4 \uAC12\uC744 \uC5EC\uB7EC \uBC88 \uC9C0\uC815\uD558\uC2DC\uB824\uBA74, const \uB300\uC2E0 var\uB098 let\uC744 \uC368\uC11C \uBCC0\uC218\uB97C \uC120\uC5B8\uD574 \uC8FC\uC138\uC694.
   5229 <a href="#l5210" class="line" id="l5210">   5210</a> &lt;a href=&quot;#l5191&quot; class=&quot;line&quot; id=&quot;l5191&quot;&gt;   5191&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-91&amp;quot; id=&amp;quot;h4-0-91&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5230 <a href="#l5211" class="line" id="l5211">   5211</a> &lt;a href=&quot;#l5192&quot; class=&quot;line&quot; id=&quot;l5192&quot;&gt;   5192&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-92&amp;quot; id=&amp;quot;h4-0-92&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,notfunc:`
   5231 <a href="#l5212" class="line" id="l5212">   5212</a> &lt;a href=&quot;#l5193&quot; class=&quot;line&quot; id=&quot;l5193&quot;&gt;   5193&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-93&amp;quot; id=&amp;quot;h4-0-93&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot;\uB294 \uD568\uC218\uB85C \uD638\uCD9C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uD0C0\uC785\uACFC \uC624\uD0C8\uC790, \uB300\uC18C\uBB38\uC790 \uB4F1\uC744 \uD655\uC778\uD574\uC8FC\uC138\uC694.
   5232 <a href="#l5213" class="line" id="l5213">   5213</a> &lt;a href=&quot;#l5194&quot; class=&quot;line&quot; id=&quot;l5194&quot;&gt;   5194&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-94&amp;quot; id=&amp;quot;h4-0-94&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5233 <a href="#l5214" class="line" id="l5214">   5214</a> &lt;a href=&quot;#l5195&quot; class=&quot;line&quot; id=&quot;l5195&quot;&gt;   5195&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-95&amp;quot; id=&amp;quot;h4-0-95&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,notfuncObj:`
   5234 <a href="#l5215" class="line" id="l5215">   5215</a> &lt;a href=&quot;#l5196&quot; class=&quot;line&quot; id=&quot;l5196&quot;&gt;   5196&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-96&amp;quot; id=&amp;quot;h4-0-96&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot;\uB294 \uD568\uC218\uB85C \uD638\uCD9C\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. &amp;amp;quot;{{obj}}&amp;amp;quot;\uAC00 &amp;amp;quot;{{symbol}}&amp;amp;quot;\uB97C \uAC00\uC9C0\uACE0 \uC788\uB294\uC9C0 \uC0B4\uD3B4\uBCF4\uACE0, \uD0C0\uC785\uACFC \uC624\uD0C8\uC790, \uB300\uC18C\uBB38\uC790 \uB4F1\uC744 \uD655\uC778\uD574\uC8FC\uC138\uC694.
   5235 <a href="#l5216" class="line" id="l5216">   5216</a> &lt;a href=&quot;#l5197&quot; class=&quot;line&quot; id=&quot;l5197&quot;&gt;   5197&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-97&amp;quot; id=&amp;quot;h4-0-97&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5236 <a href="#l5217" class="line" id="l5217">   5217</a> &lt;a href=&quot;#l5198&quot; class=&quot;line&quot; id=&quot;l5198&quot;&gt;   5198&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-98&amp;quot; id=&amp;quot;h4-0-98&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,readFromNull:`
   5237 <a href="#l5218" class="line" id="l5218">   5218</a> &lt;a href=&quot;#l5199&quot; class=&quot;line&quot; id=&quot;l5199&quot;&gt;   5199&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-99&amp;quot; id=&amp;quot;h4-0-99&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} null\uC758 \uC18D\uC131(property)\uC744 \uC77D\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uC790\uBC14\uC2A4\uD06C\uB9BD\uD2B8\uC5D0\uC11C null\uC774\uB780, \uAC1D\uCCB4(object)\uC5D0 \uC8FC\uC5B4\uC9C4 \uAC12\uC774 \uBE44\uC5B4\uC788\uB2E4\uB294 \uB73B\uC785\uB2C8\uB2E4.
   5238 <a href="#l5219" class="line" id="l5219">   5219</a> &lt;a href=&quot;#l5200&quot; class=&quot;line&quot; id=&quot;l5200&quot;&gt;   5200&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-100&amp;quot; id=&amp;quot;h4-0-100&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5239 <a href="#l5220" class="line" id="l5220">   5220</a> &lt;a href=&quot;#l5201&quot; class=&quot;line&quot; id=&quot;l5201&quot;&gt;   5201&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-101&amp;quot; id=&amp;quot;h4-0-101&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,readFromUndefined:`
   5240 <a href="#l5221" class="line" id="l5221">   5221</a> &lt;a href=&quot;#l5202&quot; class=&quot;line&quot; id=&quot;l5202&quot;&gt;   5202&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-102&amp;quot; id=&amp;quot;h4-0-102&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} undefined\uC758 \uC18D\uC131(property)\uC744 \uC77D\uC744 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. \uD639\uC2DC \uC5F0\uC0B0 \uC911\uC778 \uBCC0\uC218\uAC00 \uC815\uC758\uB418\uC9C0 \uC54A\uC558\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694.
   5241 <a href="#l5222" class="line" id="l5222">   5222</a> &lt;a href=&quot;#l5203&quot; class=&quot;line&quot; id=&quot;l5203&quot;&gt;   5203&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-103&amp;quot; id=&amp;quot;h4-0-103&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5242 <a href="#l5223" class="line" id="l5223">   5223</a> &lt;a href=&quot;#l5204&quot; class=&quot;line&quot; id=&quot;l5204&quot;&gt;   5204&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-104&amp;quot; id=&amp;quot;h4-0-104&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`}},libraryError:&amp;amp;#39;{{location}} \uD568\uC218 {{func}}\uAC00 \uD638\uCD9C\uB418\uC5C8\uC744 \uB54C,  &amp;amp;quot;{{error}}&amp;amp;quot; \uC624\uB958\uAC00 p5js \uB77C\uC774\uBE0C\uB7EC\uB9AC \uB0B4\uC5D0\uC11C \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. \uD568\uC218 {{func}}\uC5D0 \uC804\uB2EC\uD55C \uC778\uC218(argument)\uAC00 \uBB38\uC81C\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4.&amp;amp;#39;,location:&amp;amp;quot;[{{file}}, \uC904{{line}}]&amp;amp;quot;,misspelling:&amp;amp;#39;{{location}} \uD639\uC2DC p5.js\uC758 {{type}}\uB97C \uC0AC\uC6A9\uD558\uC2DC\uB824\uBA74 &amp;amp;quot;{{name}}&amp;amp;quot;\uB97C {{actualName}}\uB85C \uACE0\uCCD0 \uBCF4\uC138\uC694.&amp;amp;#39;,misspelling_plural:`{{location}} \uD639\uC2DC p5.js\uC758 {{type}}\uB97C \uC0AC\uC6A9\uD558\uC2DC\uB824\uBA74 &amp;amp;quot;{{name}}&amp;amp;quot;\uB97C \uB2E4\uC74C \uC911 \uD558\uB098\uB85C \uACE0\uCCD0\uBCF4\uC138\uC694:
   5243 <a href="#l5224" class="line" id="l5224">   5224</a> &lt;a href=&quot;#l5205&quot; class=&quot;line&quot; id=&quot;l5205&quot;&gt;   5205&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-105&amp;quot; id=&amp;quot;h4-0-105&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{suggestions}}`,misusedTopLevel:`{{location}} \uD639\uC2DC p5.js\uC758 {{symbolType}} \uD0C0\uC785 {{symbolName}}\uC744 \uC0AC\uC6A9\uD558\uC168\uB098\uC694? \uADF8\uB807\uB2E4\uBA74 {{symbolName}}\uC744 \uC791\uC131 \uC911\uC778 setup() \uD568\uC218\uC758 \uB300\uAD04\uD638 \uC548\uC73C\uB85C \uC62E\uACA8\uBCF4\uC138\uC694.
   5244 <a href="#l5225" class="line" id="l5225">   5225</a> &lt;a href=&quot;#l5206&quot; class=&quot;line&quot; id=&quot;l5206&quot;&gt;   5206&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-106&amp;quot; id=&amp;quot;h4-0-106&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5245 <a href="#l5226" class="line" id="l5226">   5226</a> &lt;a href=&quot;#l5207&quot; class=&quot;line&quot; id=&quot;l5207&quot;&gt;   5207&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-107&amp;quot; id=&amp;quot;h4-0-107&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,positions:{p_1:&amp;amp;quot;1\uBC88\uC9F8&amp;amp;quot;,p_10:&amp;amp;quot;10\uBC88\uC9F8&amp;amp;quot;,p_11:&amp;amp;quot;11\uBC88\uC9F8&amp;amp;quot;,p_12:&amp;amp;quot;12\uBC88\uC9F8&amp;amp;quot;,p_2:&amp;amp;quot;2\uBC88\uC9F8&amp;amp;quot;,p_3:&amp;amp;quot;3\uBC88\uC9F8&amp;amp;quot;,p_4:&amp;amp;quot;4\uBC88\uC9F8&amp;amp;quot;,p_5:&amp;amp;quot;5\uBC88\uC9F8&amp;amp;quot;,p_6:&amp;amp;quot;6\uBC88\uC9F8&amp;amp;quot;,p_7:&amp;amp;quot;7\uBC88\uC9F8&amp;amp;quot;,p_8:&amp;amp;quot;8\uBC88\uC9F8&amp;amp;quot;,p_9:&amp;amp;quot;9\uBC88\uC9F8&amp;amp;quot;},pre:`
   5246 <a href="#l5227" class="line" id="l5227">   5227</a> &lt;a href=&quot;#l5208&quot; class=&quot;line&quot; id=&quot;l5208&quot;&gt;   5208&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-108&amp;quot; id=&amp;quot;h4-0-108&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u{1F338} p5.js says: {{message}}`,sketchReaderErrors:{reservedConst:`p5.js\uC5D0\uC11C \uC774\uBBF8 \uC4F0\uACE0 \uC788\uB294 \uBCC0\uC218 &amp;amp;quot;{{symbol}}&amp;amp;quot;\uB97C \uC0AC\uC6A9\uD558\uC168\uC2B5\uB2C8\uB2E4. \uD574\uB2F9 \uBCC0\uC218\uB97C \uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uBC14\uAFB8\uC5B4 \uC8FC\uC138\uC694.
   5247 <a href="#l5228" class="line" id="l5228">   5228</a> &lt;a href=&quot;#l5209&quot; class=&quot;line&quot; id=&quot;l5209&quot;&gt;   5209&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-109&amp;quot; id=&amp;quot;h4-0-109&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5248 <a href="#l5229" class="line" id="l5229">   5229</a> &lt;a href=&quot;#l5210&quot; class=&quot;line&quot; id=&quot;l5210&quot;&gt;   5210&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-110&amp;quot; id=&amp;quot;h4-0-110&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`,reservedFunc:`p5.js\uC5D0\uC11C \uC774\uBBF8 \uC4F0\uACE0 \uC788\uB294 \uD568\uC218 &amp;amp;quot;{{symbol}}&amp;amp;quot;\uB97C \uC0AC\uC6A9\uD558\uC168\uC2B5\uB2C8\uB2E4. \uD574\uB2F9 \uD568\uC218\uB97C \uB2E4\uB978 \uC774\uB984\uC73C\uB85C \uBC14\uAFB8\uC5B4 \uC8FC\uC138\uC694.
   5249 <a href="#l5230" class="line" id="l5230">   5230</a> &lt;a href=&quot;#l5211&quot; class=&quot;line&quot; id=&quot;l5211&quot;&gt;   5211&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-111&amp;quot; id=&amp;quot;h4-0-111&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5250 <a href="#l5231" class="line" id="l5231">   5231</a> &lt;a href=&quot;#l5212&quot; class=&quot;line&quot; id=&quot;l5212&quot;&gt;   5212&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-112&amp;quot; id=&amp;quot;h4-0-112&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \uCD94\uAC00 \uC815\uBCF4: {{url}}`},welcome:&amp;amp;quot;{{logo}} \uD658\uC601\uD569\uB2C8\uB2E4, \uC774 \uBA54\uC138\uC9C0\uB294 \uC5D0\uB7EC\uB97C \uCC3E\uB294 \uB514\uBC84\uAE45 \uC548\uB0B4\uBB38\uC785\uB2C8\uB2E4. \uC548\uB0B4\uAC00 \uD544\uC694\uC5C6\uB294 \uACBD\uC6B0 p5.js\uB300\uC2E0 p5.min.js\uB97C \uC0AC\uC6A9\uD558\uC138\uC694.&amp;amp;quot;,wrongPreload:`{{location}} &amp;amp;quot;{{func}}&amp;amp;quot;\uAC00 \uD638\uCD9C\uB418\uBA70 p5js \uB77C\uC774\uBE0C\uB7EC\uB9AC \uB0B4\uBD80\uC5D0\uC11C \uB2E4\uC74C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4: &amp;amp;quot;{{error}}&amp;amp;quot;.
   5251 <a href="#l5232" class="line" id="l5232">   5232</a> &lt;a href=&quot;#l5213&quot; class=&quot;line&quot; id=&quot;l5213&quot;&gt;   5213&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-113&amp;quot; id=&amp;quot;h4-0-113&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5252 <a href="#l5233" class="line" id="l5233">   5233</a> &lt;a href=&quot;#l5214&quot; class=&quot;line&quot; id=&quot;l5214&quot;&gt;   5214&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-114&amp;quot; id=&amp;quot;h4-0-114&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+ \uD568\uC218 &amp;amp;quot;{{func}}&amp;amp;quot;\uAC00 preload()\uC5D0\uC11C \uD638\uCD9C\uB418\uC5C8\uAE30 \uB54C\uBB38\uC77C \uC218 \uC788\uC2B5\uB2C8\uB2E4. preload() \uD568\uC218 \uC548\uC5D0\uC11C\uB294 \uC9C0\uC815\uB41C \uD568\uC218(\uC608: loadImage, loadJSON, loadFont, loadStrings \uB4F1)\uB9CC \uD638\uCD9C\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.`}}});var v0,y0=ln(()=&amp;amp;gt;{v0={fes:{autoplay:`\u5C1D\u8BD5\u64AD\u653E\uFF08\u4F7F\u7528&amp;amp;#39;{{src}}&amp;amp;#39;\uFF09\u7684\u5A92\u4F53\u5728\u6B64\u6D4F\u89C8\u5668\u4E2D\u88AB\u7981\u6B62\uFF0C\u5F88\u53EF\u80FD\u662F\u7531\u4E8E\u6D4F\u89C8\u5668\u7684\u81EA\u52A8\u64AD\u653E\u7B56\u7565\u3002
   5253 <a href="#l5234" class="line" id="l5234">   5234</a> &lt;a href=&quot;#l5215&quot; class=&quot;line&quot; id=&quot;l5215&quot;&gt;   5215&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-115&amp;quot; id=&amp;quot;h4-0-115&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5254 <a href="#l5235" class="line" id="l5235">   5235</a> &lt;a href=&quot;#l5216&quot; class=&quot;line&quot; id=&quot;l5216&quot;&gt;   5216&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-116&amp;quot; id=&amp;quot;h4-0-116&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,checkUserDefinedFns:&amp;amp;quot;\u770B\u8D77\u6765\u60A8\u53EF\u80FD\u5728{{name}}\u5904\u610F\u5916\u5199\u9519\u4E86\uFF0C\u5E94\u8BE5\u662F{{actualName}}\u3002\u5982\u679C\u8FD9\u4E0D\u662F\u6545\u610F\u7684\uFF0C\u8BF7\u8FDB\u884C\u66F4\u6B63\u3002&amp;amp;quot;,fileLoadError:{bytes:&amp;amp;quot;\u4F3C\u4E4E\u5728\u52A0\u8F7D\u6587\u4EF6\u65F6\u51FA\u73B0\u4E86\u95EE\u9898\u3002{{suggestion}}&amp;amp;quot;,font:&amp;amp;quot;\u4F3C\u4E4E\u5728\u52A0\u8F7D\u5B57\u4F53\u65F6\u51FA\u73B0\u4E86\u95EE\u9898\u3002{{suggestion}}&amp;amp;quot;,gif:&amp;amp;quot;\u52A0\u8F7DGIF\u65F6\u51FA\u73B0\u4E86\u95EE\u9898\u3002\u8BF7\u786E\u4FDD\u60A8\u7684GIF\u4F7F\u752887a\u621689a\u7F16\u7801\u3002&amp;amp;quot;,image:&amp;amp;quot;\u4F3C\u4E4E\u5728\u52A0\u8F7D\u56FE\u50CF\u65F6\u51FA\u73B0\u4E86\u95EE\u9898\u3002{{suggestion}}&amp;amp;quot;,json:&amp;amp;quot;\u4F3C\u4E4E\u5728\u52A0\u8F7DJSON\u6587\u4EF6\u65F6\u51FA\u73B0\u4E86\u95EE\u9898\u3002{{suggestion}}&amp;amp;quot;,large:&amp;amp;quot;\u5982\u679C\u60A8\u65E0\u6CD5\u6210\u529F\u83B7\u53D6\u5927\u578B\u6587\u4EF6\uFF0C\u6211\u4EEC\u5EFA\u8BAE\u5C06\u6587\u4EF6\u5206\u5272\u6210\u8F83\u5C0F\u7684\u6BB5\u5E76\u83B7\u53D6\u8FD9\u4E9B\u6BB5\u3002&amp;amp;quot;,strings:&amp;amp;quot;\u4F3C\u4E4E\u5728\u52A0\u8F7D\u6587\u672C\u6587\u4EF6\u65F6\u51FA\u73B0\u4E86\u95EE\u9898\u3002{{suggestion}}&amp;amp;quot;,suggestion:`\u5C1D\u8BD5\u68C0\u67E5\u6587\u4EF6\u8DEF\u5F84\uFF08{{filePath}}\uFF09\u662F\u5426\u6B63\u786E\uFF0C\u5C06\u6587\u4EF6\u6258\u7BA1\u5728\u7EBF\u4E0A\u6216\u8FD0\u884C\u672C\u5730\u670D\u52A1\u5668\u3002
   5255 <a href="#l5236" class="line" id="l5236">   5236</a> &lt;a href=&quot;#l5217&quot; class=&quot;line&quot; id=&quot;l5217&quot;&gt;   5217&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-117&amp;quot; id=&amp;quot;h4-0-117&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5256 <a href="#l5237" class="line" id="l5237">   5237</a> &lt;a href=&quot;#l5218&quot; class=&quot;line&quot; id=&quot;l5218&quot;&gt;   5218&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-118&amp;quot; id=&amp;quot;h4-0-118&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,table:&amp;amp;quot;\u4F3C\u4E4E\u5728\u52A0\u8F7D\u8868\u683C\u6587\u4EF6\u65F6\u51FA\u73B0\u4E86\u95EE\u9898\u3002{{suggestion}}&amp;amp;quot;,xml:&amp;amp;quot;\u4F3C\u4E4E\u5728\u52A0\u8F7DXML\u6587\u4EF6\u65F6\u51FA\u73B0\u4E86\u95EE\u9898\u3002{{suggestion}}&amp;amp;quot;},friendlyParamError:{type_EMPTY_VAR:`{{location}} {{func}}() \u671F\u671B\u7684\u662F{{formatType}}\u7C7B\u578B\u7684{{position}}\u53C2\u6570\uFF0C\u800C\u63A5\u6536\u5230\u4E86\u4E00\u4E2A\u7A7A\u53D8\u91CF\u3002\u5982\u679C\u8FD9\u4E0D\u662F\u6545\u610F\u7684\uFF0C\u901A\u5E38\u662F\u4F5C\u7528\u57DF\u7684\u95EE\u9898\u3002
   5257 <a href="#l5238" class="line" id="l5238">   5238</a> &lt;a href=&quot;#l5219&quot; class=&quot;line&quot; id=&quot;l5219&quot;&gt;   5219&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-119&amp;quot; id=&amp;quot;h4-0-119&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5258 <a href="#l5239" class="line" id="l5239">   5239</a> &lt;a href=&quot;#l5220&quot; class=&quot;line&quot; id=&quot;l5220&quot;&gt;   5220&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-120&amp;quot; id=&amp;quot;h4-0-120&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,type_TOO_FEW_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}() \u671F\u671B\u81F3\u5C11{{minParams}}\u4E2A\u53C2\u6570\uFF0C\u4F46\u53EA\u6536\u5230\u4E86{{argCount}}\u4E2A\u3002&amp;amp;quot;,type_TOO_MANY_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}() \u671F\u671B\u6700\u591A{{maxParams}}\u4E2A\u53C2\u6570\uFF0C\u4F46\u6536\u5230\u4E86{{argCount}}\u4E2A\u3002&amp;amp;quot;,type_WRONG_TYPE:&amp;amp;quot;{{location}} {{func}}() \u671F\u671B\u7684\u662F{{formatType}}\u7C7B\u578B\u7684{{position}}\u53C2\u6570\uFF0C\u800C\u63A5\u6536\u5230\u4E86{{argType}}\u7C7B\u578B\u3002&amp;amp;quot;},globalErrors:{reference:{cannotAccess:`
   5259 <a href="#l5240" class="line" id="l5240">   5240</a> &lt;a href=&quot;#l5221&quot; class=&quot;line&quot; id=&quot;l5221&quot;&gt;   5221&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-121&amp;quot; id=&amp;quot;h4-0-121&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u5728\u58F0\u660E\u4E4B\u524D\u4F7F\u7528\u4E86&amp;amp;quot;{{symbol}}&amp;amp;quot;\u3002\u8BF7\u786E\u4FDD\u5728\u4F7F\u7528\u4E4B\u524D\u5DF2\u7ECF\u58F0\u660E\u4E86\u8BE5\u53D8\u91CF\u3002
   5260 <a href="#l5241" class="line" id="l5241">   5241</a> &lt;a href=&quot;#l5222&quot; class=&quot;line&quot; id=&quot;l5222&quot;&gt;   5222&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-122&amp;quot; id=&amp;quot;h4-0-122&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5261 <a href="#l5242" class="line" id="l5242">   5242</a> &lt;a href=&quot;#l5223&quot; class=&quot;line&quot; id=&quot;l5223&quot;&gt;   5223&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-123&amp;quot; id=&amp;quot;h4-0-123&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,notDefined:`
   5262 <a href="#l5243" class="line" id="l5243">   5243</a> &lt;a href=&quot;#l5224&quot; class=&quot;line&quot; id=&quot;l5224&quot;&gt;   5224&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-124&amp;quot; id=&amp;quot;h4-0-124&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u5728\u5F53\u524D\u8303\u56F4\u4E2D\u672A\u5B9A\u4E49&amp;amp;quot;{{symbol}}&amp;amp;quot;\u3002\u5982\u679C\u60A8\u5DF2\u7ECF\u5728\u4EE3\u7801\u4E2D\u5B9A\u4E49\u4E86\u5B83\uFF0C\u8BF7\u68C0\u67E5\u5176\u4F5C\u7528\u57DF\u3001\u62FC\u5199\u548C\u5927\u5C0F\u5199\uFF08JavaScript\u533A\u5206\u5927\u5C0F\u5199\uFF09\u3002
   5263 <a href="#l5244" class="line" id="l5244">   5244</a> &lt;a href=&quot;#l5225&quot; class=&quot;line&quot; id=&quot;l5225&quot;&gt;   5225&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-125&amp;quot; id=&amp;quot;h4-0-125&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5264 <a href="#l5245" class="line" id="l5245">   5245</a> &lt;a href=&quot;#l5226&quot; class=&quot;line&quot; id=&quot;l5226&quot;&gt;   5226&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-126&amp;quot; id=&amp;quot;h4-0-126&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`},stackSubseq:`\u2514[{{location}}]
   5265 <a href="#l5246" class="line" id="l5246">   5246</a> &lt;a href=&quot;#l5227&quot; class=&quot;line&quot; id=&quot;l5227&quot;&gt;   5227&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-127&amp;quot; id=&amp;quot;h4-0-127&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 \u5728{{func}}()\u4E2D\u7684\u7B2C{{line}}\u884C\u8C03\u7528
   5266 <a href="#l5247" class="line" id="l5247">   5247</a> &lt;a href=&quot;#l5228&quot; class=&quot;line&quot; id=&quot;l5228&quot;&gt;   5228&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-128&amp;quot; id=&amp;quot;h4-0-128&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,stackTop:`\u250C[{{location}}]
   5267 <a href="#l5248" class="line" id="l5248">   5248</a> &lt;a href=&quot;#l5229&quot; class=&quot;line&quot; id=&quot;l5229&quot;&gt;   5229&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-129&amp;quot; id=&amp;quot;h4-0-129&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 \u5728{{func}}()\u7684\u7B2C{{line}}\u884C\u51FA\u73B0\u9519\u8BEF
   5268 <a href="#l5249" class="line" id="l5249">   5249</a> &lt;a href=&quot;#l5230&quot; class=&quot;line&quot; id=&quot;l5230&quot;&gt;   5230&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-130&amp;quot; id=&amp;quot;h4-0-130&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,syntax:{badReturnOrYield:`
   5269 <a href="#l5250" class="line" id="l5250">   5250</a> &lt;a href=&quot;#l5231&quot; class=&quot;line&quot; id=&quot;l5231&quot;&gt;   5231&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-131&amp;quot; id=&amp;quot;h4-0-131&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u8BED\u6CD5\u9519\u8BEF - return\u4F4D\u4E8E\u51FD\u6570\u5916\u90E8\u3002\u8BF7\u786E\u4FDD\u6CA1\u6709\u6F0F\u6389\u4EFB\u4F55\u62EC\u53F7\uFF0C\u4EE5\u4FBFreturn\u4F4D\u4E8E\u51FD\u6570\u5185\u90E8\u3002
   5270 <a href="#l5251" class="line" id="l5251">   5251</a> &lt;a href=&quot;#l5232&quot; class=&quot;line&quot; id=&quot;l5232&quot;&gt;   5232&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-132&amp;quot; id=&amp;quot;h4-0-132&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5271 <a href="#l5252" class="line" id="l5252">   5252</a> &lt;a href=&quot;#l5233&quot; class=&quot;line&quot; id=&quot;l5233&quot;&gt;   5233&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-133&amp;quot; id=&amp;quot;h4-0-133&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,invalidToken:`
   5272 <a href="#l5253" class="line" id="l5253">   5253</a> &lt;a href=&quot;#l5234&quot; class=&quot;line&quot; id=&quot;l5234&quot;&gt;   5234&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-134&amp;quot; id=&amp;quot;h4-0-134&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u8BED\u6CD5\u9519\u8BEF - \u53D1\u73B0\u4E86JavaScript\u4E0D\u8BC6\u522B\u6216\u4E0D\u671F\u671B\u7684\u7B26\u53F7\u3002
   5273 <a href="#l5254" class="line" id="l5254">   5254</a> &lt;a href=&quot;#l5235&quot; class=&quot;line&quot; id=&quot;l5235&quot;&gt;   5235&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-135&amp;quot; id=&amp;quot;h4-0-135&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5274 <a href="#l5255" class="line" id="l5255">   5255</a> &lt;a href=&quot;#l5236&quot; class=&quot;line&quot; id=&quot;l5236&quot;&gt;   5236&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-136&amp;quot; id=&amp;quot;h4-0-136&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,missingInitializer:`
   5275 <a href="#l5256" class="line" id="l5256">   5256</a> &lt;a href=&quot;#l5237&quot; class=&quot;line&quot; id=&quot;l5237&quot;&gt;   5237&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-137&amp;quot; id=&amp;quot;h4-0-137&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u8BED\u6CD5\u9519\u8BEF - \u58F0\u660E\u4E86\u4E00\u4E2Aconst\u53D8\u91CF\u4F46\u6CA1\u6709\u521D\u59CB\u5316\u3002\u5728JavaScript\u4E2D\uFF0Cconst\u5FC5\u987B\u8981\u6709\u521D\u59CB\u503C\u3002\u5728\u540C\u4E00\u8BED\u53E5\u4E2D\u5FC5\u987B\u6307\u5B9A\u503C\u6765\u58F0\u660E\u53D8\u91CF\u3002\u8BF7\u68C0\u67E5\u9519\u8BEF\u4E2D\u7684\u884C\u53F7\u5E76\u7ED9const\u53D8\u91CF\u8D4B\u503C\u3002
   5276 <a href="#l5257" class="line" id="l5257">   5257</a> &lt;a href=&quot;#l5238&quot; class=&quot;line&quot; id=&quot;l5238&quot;&gt;   5238&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-138&amp;quot; id=&amp;quot;h4-0-138&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5277 <a href="#l5258" class="line" id="l5258">   5258</a> &lt;a href=&quot;#l5239&quot; class=&quot;line&quot; id=&quot;l5239&quot;&gt;   5239&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-139&amp;quot; id=&amp;quot;h4-0-139&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,redeclaredVariable:`
   5278 <a href="#l5259" class="line" id="l5259">   5259</a> &lt;a href=&quot;#l5240&quot; class=&quot;line&quot; id=&quot;l5240&quot;&gt;   5240&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-140&amp;quot; id=&amp;quot;h4-0-140&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u8BED\u6CD5\u9519\u8BEF - &amp;amp;quot;{{symbol}}&amp;amp;quot; \u6B63\u5728\u88AB\u91CD\u65B0\u58F0\u660E\u3002JavaScript\u4E0D\u5141\u8BB8\u91CD\u590D\u58F0\u660E\u53D8\u91CF\u3002\u8BF7\u68C0\u67E5\u9519\u8BEF\u4E2D\u7684\u884C\u53F7\u662F\u5426\u91CD\u65B0\u58F0\u660E\u4E86\u8BE5\u53D8\u91CF\u3002
   5279 <a href="#l5260" class="line" id="l5260">   5260</a> &lt;a href=&quot;#l5241&quot; class=&quot;line&quot; id=&quot;l5241&quot;&gt;   5241&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-141&amp;quot; id=&amp;quot;h4-0-141&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5280 <a href="#l5261" class="line" id="l5261">   5261</a> &lt;a href=&quot;#l5242&quot; class=&quot;line&quot; id=&quot;l5242&quot;&gt;   5242&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-142&amp;quot; id=&amp;quot;h4-0-142&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,unexpectedToken:`
   5281 <a href="#l5262" class="line" id="l5262">   5262</a> &lt;a href=&quot;#l5243&quot; class=&quot;line&quot; id=&quot;l5243&quot;&gt;   5243&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-143&amp;quot; id=&amp;quot;h4-0-143&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u8BED\u6CD5\u9519\u8BEF - \u7B26\u53F7\u51FA\u73B0\u5728\u4E0D\u5E94\u8BE5\u51FA\u73B0\u7684\u4F4D\u7F6E\u3002
   5282 <a href="#l5263" class="line" id="l5263">   5263</a> &lt;a href=&quot;#l5244&quot; class=&quot;line&quot; id=&quot;l5244&quot;&gt;   5244&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-144&amp;quot; id=&amp;quot;h4-0-144&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u901A\u5E38\u8FD9\u662F\u7531\u4E8E\u62FC\u5199\u9519\u8BEF\u3002\u8BF7\u68C0\u67E5\u9519\u8BEF\u4E2D\u7684\u884C\u53F7\u662F\u5426\u6709\u7F3A\u5C11\u6216\u591A\u4F59\u7684\u5185\u5BB9\u3002
   5283 <a href="#l5264" class="line" id="l5264">   5264</a> &lt;a href=&quot;#l5245&quot; class=&quot;line&quot; id=&quot;l5245&quot;&gt;   5245&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-145&amp;quot; id=&amp;quot;h4-0-145&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5284 <a href="#l5265" class="line" id="l5265">   5265</a> &lt;a href=&quot;#l5246&quot; class=&quot;line&quot; id=&quot;l5246&quot;&gt;   5246&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-146&amp;quot; id=&amp;quot;h4-0-146&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`},type:{constAssign:`
   5285 <a href="#l5266" class="line" id="l5266">   5266</a> &lt;a href=&quot;#l5247&quot; class=&quot;line&quot; id=&quot;l5247&quot;&gt;   5247&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-147&amp;quot; id=&amp;quot;h4-0-147&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u6B63\u5728\u91CD\u65B0\u8D4B\u503Cconst\u53D8\u91CF\u3002\u5728JavaScript\u4E2D\uFF0C\u4E0D\u5141\u8BB8\u5BF9\u5E38\u91CF\u8FDB\u884C\u91CD\u65B0\u8D4B\u503C\u3002\u5982\u679C\u8981\u7ED9\u53D8\u91CF\u91CD\u65B0\u8D4B\u503C\uFF0C\u8BF7\u786E\u4FDD\u58F0\u660E\u4E3Avar\u6216let\u3002
   5286 <a href="#l5267" class="line" id="l5267">   5267</a> &lt;a href=&quot;#l5248&quot; class=&quot;line&quot; id=&quot;l5248&quot;&gt;   5248&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-148&amp;quot; id=&amp;quot;h4-0-148&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5287 <a href="#l5268" class="line" id="l5268">   5268</a> &lt;a href=&quot;#l5249&quot; class=&quot;line&quot; id=&quot;l5249&quot;&gt;   5249&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-149&amp;quot; id=&amp;quot;h4-0-149&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,notfunc:`
   5288 <a href="#l5269" class="line" id="l5269">   5269</a> &lt;a href=&quot;#l5250&quot; class=&quot;line&quot; id=&quot;l5250&quot;&gt;   5250&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-150&amp;quot; id=&amp;quot;h4-0-150&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u65E0\u6CD5\u5C06&amp;amp;quot;{{symbol}}&amp;amp;quot; \u8C03\u7528\u4E3A\u51FD\u6570\u3002
   5289 <a href="#l5270" class="line" id="l5270">   5270</a> &lt;a href=&quot;#l5251&quot; class=&quot;line&quot; id=&quot;l5251&quot;&gt;   5251&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-151&amp;quot; id=&amp;quot;h4-0-151&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u8BF7\u68C0\u67E5\u62FC\u5199\u3001\u5927\u5C0F\u5199\uFF08JavaScript\u533A\u5206\u5927\u5C0F\u5199\uFF09\u548C\u5176\u7C7B\u578B\u3002
   5290 <a href="#l5271" class="line" id="l5271">   5271</a> &lt;a href=&quot;#l5252&quot; class=&quot;line&quot; id=&quot;l5252&quot;&gt;   5252&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-152&amp;quot; id=&amp;quot;h4-0-152&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5291 <a href="#l5272" class="line" id="l5272">   5272</a> &lt;a href=&quot;#l5253&quot; class=&quot;line&quot; id=&quot;l5253&quot;&gt;   5253&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-153&amp;quot; id=&amp;quot;h4-0-153&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,notfuncObj:`
   5292 <a href="#l5273" class="line" id="l5273">   5273</a> &lt;a href=&quot;#l5254&quot; class=&quot;line&quot; id=&quot;l5254&quot;&gt;   5254&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-154&amp;quot; id=&amp;quot;h4-0-154&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u65E0\u6CD5\u5C06&amp;amp;quot;{{symbol}}&amp;amp;quot; \u8C03\u7528\u4E3A\u51FD\u6570\u3002
   5293 <a href="#l5274" class="line" id="l5274">   5274</a> &lt;a href=&quot;#l5255&quot; class=&quot;line&quot; id=&quot;l5255&quot;&gt;   5255&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-155&amp;quot; id=&amp;quot;h4-0-155&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u8BF7\u9A8C\u8BC1&amp;amp;quot;{{obj}}&amp;amp;quot;\u662F\u5426\u5305\u542B&amp;amp;quot;{{symbol}}&amp;amp;quot;\uFF0C\u5E76\u68C0\u67E5\u62FC\u5199\u3001\u5927\u5C0F\u5199\uFF08JavaScript\u533A\u5206\u5927\u5C0F\u5199\uFF09\u548C\u5176\u7C7B\u578B\u3002
   5294 <a href="#l5275" class="line" id="l5275">   5275</a> &lt;a href=&quot;#l5256&quot; class=&quot;line&quot; id=&quot;l5256&quot;&gt;   5256&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-156&amp;quot; id=&amp;quot;h4-0-156&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5295 <a href="#l5276" class="line" id="l5276">   5276</a> &lt;a href=&quot;#l5257&quot; class=&quot;line&quot; id=&quot;l5257&quot;&gt;   5257&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-157&amp;quot; id=&amp;quot;h4-0-157&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,readFromNull:`
   5296 <a href="#l5277" class="line" id="l5277">   5277</a> &lt;a href=&quot;#l5258&quot; class=&quot;line&quot; id=&quot;l5258&quot;&gt;   5258&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-158&amp;quot; id=&amp;quot;h4-0-158&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u65E0\u6CD5\u8BFB\u53D6null\u7684\u5C5E\u6027\u3002\u5728JavaScript\u4E2D\uFF0Cnull\u8868\u793A\u5BF9\u8C61\u6CA1\u6709\u503C\u3002
   5297 <a href="#l5278" class="line" id="l5278">   5278</a> &lt;a href=&quot;#l5259&quot; class=&quot;line&quot; id=&quot;l5259&quot;&gt;   5259&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-159&amp;quot; id=&amp;quot;h4-0-159&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5298 <a href="#l5279" class="line" id="l5279">   5279</a> &lt;a href=&quot;#l5260&quot; class=&quot;line&quot; id=&quot;l5260&quot;&gt;   5260&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-160&amp;quot; id=&amp;quot;h4-0-160&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,readFromUndefined:`
   5299 <a href="#l5280" class="line" id="l5280">   5280</a> &lt;a href=&quot;#l5261&quot; class=&quot;line&quot; id=&quot;l5261&quot;&gt;   5261&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-161&amp;quot; id=&amp;quot;h4-0-161&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u65E0\u6CD5\u8BFB\u53D6undefined\u7684\u5C5E\u6027\u3002\u8BF7\u68C0\u67E5\u9519\u8BEF\u4E2D\u7684\u884C\u53F7\u5E76\u786E\u4FDD\u6B63\u5728\u64CD\u4F5C\u7684\u53D8\u91CF\u4E0D\u662Fundefined\u3002
   5300 <a href="#l5281" class="line" id="l5281">   5281</a> &lt;a href=&quot;#l5262&quot; class=&quot;line&quot; id=&quot;l5262&quot;&gt;   5262&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-162&amp;quot; id=&amp;quot;h4-0-162&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5301 <a href="#l5282" class="line" id="l5282">   5282</a> &lt;a href=&quot;#l5263&quot; class=&quot;line&quot; id=&quot;l5263&quot;&gt;   5263&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-163&amp;quot; id=&amp;quot;h4-0-163&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`}},libraryError:&amp;amp;#39;{{location}} \u5728\u8C03\u7528{{func}}\u65F6\uFF0C\u5728p5js\u5E93\u5185\u90E8\u51FA\u73B0\u4E86\u4E00\u6761\u9519\u8BEF\u6D88\u606F&amp;amp;quot;{{error}}&amp;amp;quot;\u3002\u9664\u975E\u53E6\u6709\u8BF4\u660E\uFF0C\u5426\u5219\u53EF\u80FD\u662F\u4E0E\u4F20\u9012\u7ED9{{func}}\u7684\u53C2\u6570\u6709\u5173\u7684\u95EE\u9898\u3002&amp;amp;#39;,location:&amp;amp;quot;[{{file}}\uFF0C\u7B2C{{line}}\u884C]&amp;amp;quot;,misspelling:&amp;amp;#39;{{location}} \u770B\u8D77\u6765\u60A8\u53EF\u80FD\u5728{{name}}\u5904\u610F\u5916\u5199\u9519\u4E86\uFF0C\u5E94\u8BE5\u662F&amp;amp;quot;{{actualName}}&amp;amp;quot;\u3002\u5982\u679C\u5E0C\u671B\u4F7F\u7528p5.js\u4E2D\u7684{{type}}\uFF0C\u8BF7\u5C06\u5176\u66F4\u6B63\u4E3A{{actualName}}\u3002&amp;amp;#39;,misspelling_plural:`{{location}} \u770B\u8D77\u6765\u60A8\u53EF\u80FD\u5728{{name}}\u5904\u610F\u5916\u5199\u9519\u4E86\u3002
   5302 <a href="#l5283" class="line" id="l5283">   5283</a> &lt;a href=&quot;#l5264&quot; class=&quot;line&quot; id=&quot;l5264&quot;&gt;   5264&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-164&amp;quot; id=&amp;quot;h4-0-164&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u60A8\u53EF\u80FD\u6307\u7684\u662F\u4EE5\u4E0B\u4E4B\u4E00\uFF1A
   5303 <a href="#l5284" class="line" id="l5284">   5284</a> &lt;a href=&quot;#l5265&quot; class=&quot;line&quot; id=&quot;l5265&quot;&gt;   5265&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-165&amp;quot; id=&amp;quot;h4-0-165&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{suggestions}}`,misusedTopLevel:`\u60A8\u521A\u521A\u5C1D\u8BD5\u4F7F\u7528\u4E86p5.js\u7684{{symbolType}} {{symbolName}}\u5417\uFF1F\u5982\u679C\u662F\uFF0C\u8BF7\u5C06\u5176\u79FB\u5230\u60A8\u7684sketch\u7684setup()\u51FD\u6570\u4E2D\u3002
   5304 <a href="#l5285" class="line" id="l5285">   5285</a> &lt;a href=&quot;#l5266&quot; class=&quot;line&quot; id=&quot;l5266&quot;&gt;   5266&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-166&amp;quot; id=&amp;quot;h4-0-166&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5305 <a href="#l5286" class="line" id="l5286">   5286</a> &lt;a href=&quot;#l5267&quot; class=&quot;line&quot; id=&quot;l5267&quot;&gt;   5267&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-167&amp;quot; id=&amp;quot;h4-0-167&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,positions:{p_1:&amp;amp;quot;\u7B2C\u4E00&amp;amp;quot;,p_10:&amp;amp;quot;\u7B2C\u5341&amp;amp;quot;,p_11:&amp;amp;quot;\u7B2C\u5341\u4E00&amp;amp;quot;,p_12:&amp;amp;quot;\u7B2C\u5341\u4E8C&amp;amp;quot;,p_2:&amp;amp;quot;\u7B2C\u4E8C&amp;amp;quot;,p_3:&amp;amp;quot;\u7B2C\u4E09&amp;amp;quot;,p_4:&amp;amp;quot;\u7B2C\u56DB&amp;amp;quot;,p_5:&amp;amp;quot;\u7B2C\u4E94&amp;amp;quot;,p_6:&amp;amp;quot;\u7B2C\u516D&amp;amp;quot;,p_7:&amp;amp;quot;\u7B2C\u4E03&amp;amp;quot;,p_8:&amp;amp;quot;\u7B2C\u516B&amp;amp;quot;,p_9:&amp;amp;quot;\u7B2C\u4E5D&amp;amp;quot;},pre:`
   5306 <a href="#l5287" class="line" id="l5287">   5287</a> &lt;a href=&quot;#l5268&quot; class=&quot;line&quot; id=&quot;l5268&quot;&gt;   5268&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-168&amp;quot; id=&amp;quot;h4-0-168&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u{1F338} p5.js \u8BF4\uFF1A{{message}}`,sketchReaderErrors:{reservedConst:`\u60A8\u4F7F\u7528\u4E86p5.js\u7684\u4FDD\u7559\u53D8\u91CF&amp;amp;quot;{{symbol}}&amp;amp;quot;\uFF0C\u8BF7\u786E\u4FDD\u5C06\u53D8\u91CF\u540D\u66F4\u6539\u4E3A\u5176\u4ED6\u540D\u79F0\u3002
   5307 <a href="#l5288" class="line" id="l5288">   5288</a> &lt;a href=&quot;#l5269&quot; class=&quot;line&quot; id=&quot;l5269&quot;&gt;   5269&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-169&amp;quot; id=&amp;quot;h4-0-169&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5308 <a href="#l5289" class="line" id="l5289">   5289</a> &lt;a href=&quot;#l5270&quot; class=&quot;line&quot; id=&quot;l5270&quot;&gt;   5270&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-170&amp;quot; id=&amp;quot;h4-0-170&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`,reservedFunc:`\u60A8\u4F7F\u7528\u4E86p5.js\u7684\u4FDD\u7559\u51FD\u6570&amp;amp;quot;{{symbol}}&amp;amp;quot;\uFF0C\u8BF7\u786E\u4FDD\u5C06\u51FD\u6570\u540D\u66F4\u6539\u4E3A\u5176\u4ED6\u540D\u79F0\u3002
   5309 <a href="#l5290" class="line" id="l5290">   5290</a> &lt;a href=&quot;#l5271&quot; class=&quot;line&quot; id=&quot;l5271&quot;&gt;   5271&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-171&amp;quot; id=&amp;quot;h4-0-171&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5310 <a href="#l5291" class="line" id="l5291">   5291</a> &lt;a href=&quot;#l5272&quot; class=&quot;line&quot; id=&quot;l5272&quot;&gt;   5272&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-172&amp;quot; id=&amp;quot;h4-0-172&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u66F4\u591A\u4FE1\u606F\uFF1A{{url}}`},welcome:&amp;amp;quot;\u6B22\u8FCE\uFF01\u8FD9\u662F\u60A8\u53CB\u597D\u7684\u8C03\u8BD5\u7A0B\u5E8F\u3002\u8981\u5173\u95ED\u6211\uFF0C\u8BF7\u5207\u6362\u5230\u4F7F\u7528p5.min.js\u3002&amp;amp;quot;,wrongPreload:&amp;amp;#39;{{location}} \u5728\u8C03\u7528&amp;amp;quot;{{func}}&amp;amp;quot;\u65F6\uFF0C\u5728p5js\u5E93\u5185\u90E8\u51FA\u73B0\u4E86\u4E00\u6761\u9519\u8BEF\u6D88\u606F&amp;amp;quot;{{error}}&amp;amp;quot;\u3002\u9664\u975E\u53E6\u6709\u8BF4\u660E\uFF0C\u5426\u5219\u53EF\u80FD\u662F\u7531\u4E8E\u5728preload\u4E2D\u8C03\u7528\u4E86&amp;amp;quot;{{func}}&amp;amp;quot;\u3002preload\u51FD\u6570\u4E4B\u5916\u4E0D\u5E94\u8BE5\u5305\u542B\u9664load\u51FD\u6570\uFF08loadImage\u3001loadJSON\u3001loadFont\u3001loadStrings\u7B49\uFF09\u4EE5\u5916\u7684\u5185\u5BB9\u3002&amp;amp;#39;}}});var b0,x0=ln(()=&amp;amp;gt;{b0={fes:{autoplay:`\u091C\u093F\u0938 \u092E\u0940\u0921\u093F\u092F\u093E \u0915\u094B \u091A\u0932\u093E\u0928\u0947 \u0915\u0940 \u0915\u094B\u0936\u093F\u0936 \u0915\u0940 \u0917\u0908 (&amp;amp;#39;{{src}}&amp;amp;#39; \u0915\u0947 \u0938\u093E\u0925) \u0909\u0938\u0947 \u0907\u0938 \u092C\u094D\u0930\u093E\u0909\u091C\u093C\u0930 \u0926\u094D\u0935\u093E\u0930\u093E \u0905\u0928\u0941\u092E\u0924\u093F \u0928\u0939\u0940\u0902 \u0926\u0940 \u0917\u0908, \u0938\u0902\u092D\u0935\u0924\u0903 \u092C\u094D\u0930\u093E\u0909\u091C\u093C\u0930 \u0915\u0940 \u0938\u094D\u0935\u0924: \u092A\u094D\u0932\u0947 \u0928\u0940\u0924\u093F \u0915\u0947 \u0915\u093E\u0930\u0923\u0964
   5311 <a href="#l5292" class="line" id="l5292">   5292</a> &lt;a href=&quot;#l5273&quot; class=&quot;line&quot; id=&quot;l5273&quot;&gt;   5273&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-173&amp;quot; id=&amp;quot;h4-0-173&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5312 <a href="#l5293" class="line" id="l5293">   5293</a> &lt;a href=&quot;#l5274&quot; class=&quot;line&quot; id=&quot;l5274&quot;&gt;   5274&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-174&amp;quot; id=&amp;quot;h4-0-174&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,checkUserDefinedFns:&amp;amp;quot;\u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0928\u0947 \u0917\u0932\u0924\u0940 \u0938\u0947 {{actualName}} \u0915\u0940 \u091C\u0917\u0939 {{name}} \u0932\u093F\u0916 \u0926\u093F\u092F\u093E \u0939\u0948\u0964 \u092F\u0926\u093F \u092F\u0939 \u091C\u093E\u0928\u092C\u0942\u091D\u0915\u0930 \u0928\u0939\u0940\u0902 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0939\u0948 \u0924\u094B \u0915\u0943\u092A\u092F\u093E \u0907\u0938\u0947 \u0938\u0941\u0927\u093E\u0930\u0947\u0902\u0964&amp;amp;quot;,fileLoadError:{bytes:&amp;amp;quot;\u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0915\u0940 \u092B\u093C\u093E\u0907\u0932 \u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u092E\u0947\u0902 \u0915\u094B\u0908 \u0938\u092E\u0938\u094D\u092F\u093E \u0925\u0940\u0964 {{suggestion}}&amp;amp;quot;,font:&amp;amp;quot;\u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0915\u093E \u092E\u0941\u0926\u094D\u0930\u0932\u093F\u092A\u093F \u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u092E\u0947\u0902 \u0915\u094B\u0908 \u0938\u092E\u0938\u094D\u092F\u093E \u0925\u0940\u0964 {{suggestion}}&amp;amp;quot;,gif:&amp;amp;quot;\u0906\u092A\u0915\u0940 GIF \u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u092E\u0947\u0902 \u0915\u0941\u091B \u0938\u092E\u0938\u094D\u092F\u093E \u0939\u0941\u0908\u0964 \u0938\u0941\u0928\u093F\u0936\u094D\u091A\u093F\u0924 \u0915\u0930\u0947\u0902 \u0915\u093F \u0906\u092A\u0915\u093E GIF 87a \u092F\u093E 89a \u090F\u0928\u094D\u0915\u094B\u0921\u093F\u0902\u0917 \u0915\u093E \u0909\u092A\u092F\u094B\u0917 \u0915\u0930 \u0930\u0939\u093E \u0939\u0948\u0964&amp;amp;quot;,image:&amp;amp;quot;\u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0915\u0940 \u091B\u0935\u093F \u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u092E\u0947\u0902 \u0915\u094B\u0908 \u0938\u092E\u0938\u094D\u092F\u093E \u0925\u0940\u0964 {{suggestion}}&amp;amp;quot;,json:&amp;amp;quot;\u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0915\u0940 JSON \u092B\u093C\u093E\u0907\u0932 \u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u092E\u0947\u0902 \u0915\u094B\u0908 \u0938\u092E\u0938\u094D\u092F\u093E \u0925\u0940\u0964 {{suggestion}}&amp;amp;quot;,large:&amp;amp;quot;\u092F\u0926\u093F \u0906\u092A\u0915\u0940 \u092C\u0921\u093C\u0940 \u092B\u093C\u093E\u0907\u0932 \u0938\u092B\u0932\u0924\u093E\u092A\u0942\u0930\u094D\u0935\u0915 \u0928\u0939\u0940\u0902 \u0932\u093E\u0908 \u0917\u0908 \u0939\u0948, \u0924\u094B \u0939\u092E \u092B\u093C\u093E\u0907\u0932 \u0915\u094B \u091B\u094B\u091F\u0947 \u0916\u0902\u0921\u094B\u0902 \u092E\u0947\u0902 \u0935\u093F\u092D\u093E\u091C\u093F\u0924 \u0915\u0930\u0928\u0947 \u0914\u0930 \u0909\u0928\u094D\u0939\u0947\u0902 \u0932\u093E\u0928\u0947 \u0915\u0940 \u0938\u0932\u093E\u0939 \u0926\u0947\u0924\u0947 \u0939\u0948\u0902\u0964&amp;amp;quot;,strings:&amp;amp;quot;\u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0915\u0940 \u092A\u093E\u0920 \u092B\u093C\u093E\u0907\u0932 \u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u092E\u0947\u0902 \u0915\u094B\u0908 \u0938\u092E\u0938\u094D\u092F\u093E \u0925\u0940\u0964 {{suggestion}}&amp;amp;quot;,suggestion:`\u092F\u0939 \u091C\u093E\u0901\u091A\u0928\u0947 \u0915\u093E \u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u0930\u0947\u0902 \u0915\u093F \u092B\u093C\u093E\u0907\u0932 \u092A\u0925 ({{filePath}}) \u0938\u0939\u0940 \u0939\u0948 \u092F\u093E \u0928\u0939\u0940\u0902, \u092B\u093C\u093E\u0907\u0932 \u0915\u094B \u0911\u0928\u0932\u093E\u0907\u0928 \u0939\u094B\u0938\u094D\u091F \u0915\u0930\u0928\u093E, \u092F\u093E \u0938\u094D\u0925\u093E\u0928\u0940\u092F \u0938\u0930\u094D\u0935\u0930 \u091A\u0932\u093E\u0928\u093E\u0964
   5313 <a href="#l5294" class="line" id="l5294">   5294</a> &lt;a href=&quot;#l5275&quot; class=&quot;line&quot; id=&quot;l5275&quot;&gt;   5275&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-175&amp;quot; id=&amp;quot;h4-0-175&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5314 <a href="#l5295" class="line" id="l5295">   5295</a> &lt;a href=&quot;#l5276&quot; class=&quot;line&quot; id=&quot;l5276&quot;&gt;   5276&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-176&amp;quot; id=&amp;quot;h4-0-176&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,table:&amp;amp;quot;\u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0915\u0940 \u0924\u093E\u0932\u093F\u0915\u093E \u092B\u093C\u093E\u0907\u0932 \u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u092E\u0947\u0902 \u0915\u094B\u0908 \u0938\u092E\u0938\u094D\u092F\u093E \u0925\u0940\u0964 {{suggestion}}&amp;amp;quot;,xml:&amp;amp;quot;\u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0915\u0940 XML \u092B\u093C\u093E\u0907\u0932 \u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u092E\u0947\u0902 \u0915\u094B\u0908 \u0938\u092E\u0938\u094D\u092F\u093E \u0925\u0940\u0964 {{suggestion}}&amp;amp;quot;},friendlyParamError:{type_EMPTY_VAR:`{{location}} {{func}}() {{position}} \u092A\u094D\u0930\u093E\u091A\u0932 \u0915\u0947 \u0932\u093F\u090F {{formatType}} \u0915\u0940 \u0905\u092A\u0947\u0915\u094D\u0937\u093E \u0915\u0930 \u0930\u0939\u093E \u0925\u093E, \u0907\u0938\u0915\u0947 \u092C\u091C\u093E\u092F \u090F\u0915 \u0916\u093E\u0932\u0940 \u091A\u0930 \u092A\u094D\u0930\u093E\u092A\u094D\u0924 \u0939\u0941\u0906\u0964 \u092F\u0926\u093F \u091C\u093E\u0928\u092C\u0942\u091D\u0915\u0930 \u0928\u0939\u0940\u0902 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0939\u0948, \u0924\u094B \u092F\u0939 \u0905\u0915\u094D\u0938\u0930 \u0926\u093E\u092F\u0930\u0947 \u0915\u0947 \u0938\u093E\u0925 \u090F\u0915 \u0938\u092E\u0938\u094D\u092F\u093E \u0939\u0948\u0964
   5315 <a href="#l5296" class="line" id="l5296">   5296</a> &lt;a href=&quot;#l5277&quot; class=&quot;line&quot; id=&quot;l5277&quot;&gt;   5277&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-177&amp;quot; id=&amp;quot;h4-0-177&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5316 <a href="#l5297" class="line" id="l5297">   5297</a> &lt;a href=&quot;#l5278&quot; class=&quot;line&quot; id=&quot;l5278&quot;&gt;   5278&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-178&amp;quot; id=&amp;quot;h4-0-178&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940:{{url}}`,type_TOO_FEW_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}() \u0915\u092E \u0938\u0947 \u0915\u092E {{minParams}} \u0924\u0930\u094D\u0915\u094B\u0902 \u0915\u0940 \u0905\u092A\u0947\u0915\u094D\u0937\u093E \u0925\u0940, \u0932\u0947\u0915\u093F\u0928 \u0915\u0947\u0935\u0932 \u092A\u094D\u0930\u093E\u092A\u094D\u0924 \u0939\u0941\u090F {{argCount}}.&amp;amp;quot;,type_TOO_MANY_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}() {{maxParams}} \u0938\u0947 \u0905\u0927\u093F\u0915 \u0924\u0930\u094D\u0915\u094B\u0902 \u0915\u0940 \u0905\u092A\u0947\u0915\u094D\u0937\u093E \u0928\u0939\u0940\u0902 \u0915\u0930 \u0930\u0939\u093E \u0925\u093E, \u0932\u0947\u0915\u093F\u0928 \u092A\u094D\u0930\u093E\u092A\u094D\u0924 \u0939\u0941\u0906 {{argCount}}.&amp;amp;quot;,type_WRONG_TYPE:&amp;amp;quot;{{location}} {{func}}() {{position}} \u092A\u094D\u0930\u093E\u091A\u0932 \u0915\u0947 \u0932\u093F\u090F {{formatType}} \u0915\u0940 \u0905\u092A\u0947\u0915\u094D\u0937\u093E \u0915\u0930 \u0930\u0939\u093E \u0925\u093E, \u0907\u0938\u0915\u0947 \u092C\u091C\u093E\u092F {{argType}} \u092A\u094D\u0930\u093E\u092A\u094D\u0924 \u0939\u0941\u0906\u0964&amp;amp;quot;},globalErrors:{reference:{cannotAccess:`
   5317 <a href="#l5298" class="line" id="l5298">   5298</a> &lt;a href=&quot;#l5279&quot; class=&quot;line&quot; id=&quot;l5279&quot;&gt;   5279&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-179&amp;quot; id=&amp;quot;h4-0-179&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; \u0918\u094B\u0937\u0923\u093E \u0938\u0947 \u092A\u0939\u0932\u0947 \u092A\u094D\u0930\u092F\u094B\u0917 \u0915\u093F\u092F\u093E \u091C\u093E\u0924\u093E \u0939\u0948\u0964 \u0938\u0941\u0928\u093F\u0936\u094D\u091A\u093F\u0924 \u0915\u0930\u0947\u0902 \u0915\u093F \u0906\u092A\u0928\u0947 \u091A\u0930 \u0915\u093E \u0909\u092A\u092F\u094B\u0917 \u0915\u0930\u0928\u0947 \u0938\u0947 \u092A\u0939\u0932\u0947 \u0909\u0938\u0947 \u0918\u094B\u0937\u093F\u0924 \u0915\u0930 \u0926\u093F\u092F\u093E \u0939\u0948\u0964
   5318 <a href="#l5299" class="line" id="l5299">   5299</a> &lt;a href=&quot;#l5280&quot; class=&quot;line&quot; id=&quot;l5280&quot;&gt;   5280&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-180&amp;quot; id=&amp;quot;h4-0-180&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5319 <a href="#l5300" class="line" id="l5300">   5300</a> &lt;a href=&quot;#l5281&quot; class=&quot;line&quot; id=&quot;l5281&quot;&gt;   5281&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-181&amp;quot; id=&amp;quot;h4-0-181&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,notDefined:`
   5320 <a href="#l5301" class="line" id="l5301">   5301</a> &lt;a href=&quot;#l5282&quot; class=&quot;line&quot; id=&quot;l5282&quot;&gt;   5282&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-182&amp;quot; id=&amp;quot;h4-0-182&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; \u0935\u0930\u094D\u0924\u092E\u093E\u0928 \u0926\u093E\u092F\u0930\u0947 \u092E\u0947\u0902 \u092A\u0930\u093F\u092D\u093E\u0937\u093F\u0924 \u0928\u0939\u0940\u0902 \u0939\u0948\u0964 \u092F\u0926\u093F \u0906\u092A\u0928\u0947 \u0907\u0938\u0947 \u0905\u092A\u0928\u0947 \u0915\u094B\u0921 \u092E\u0947\u0902 \u092A\u0930\u093F\u092D\u093E\u0937\u093F\u0924 \u0915\u093F\u092F\u093E \u0939\u0948, \u0924\u094B \u0906\u092A\u0915\u094B \u0907\u0938\u0915\u093E \u0926\u093E\u092F\u0930\u093E, \u0935\u0930\u094D\u0924\u0928\u0940 \u0914\u0930 \u0905\u0915\u094D\u0937\u0930-\u0906\u0935\u0930\u0923 \u091C\u093E\u0902\u091A\u0928\u093E \u091A\u093E\u0939\u093F\u090F (JavaScript \u0915\u0947\u0938-\u0938\u0902\u0935\u0947\u0926\u0940 \u0939\u0948)\u0964
   5321 <a href="#l5302" class="line" id="l5302">   5302</a> &lt;a href=&quot;#l5283&quot; class=&quot;line&quot; id=&quot;l5283&quot;&gt;   5283&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-183&amp;quot; id=&amp;quot;h4-0-183&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5322 <a href="#l5303" class="line" id="l5303">   5303</a> &lt;a href=&quot;#l5284&quot; class=&quot;line&quot; id=&quot;l5284&quot;&gt;   5284&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-184&amp;quot; id=&amp;quot;h4-0-184&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`},stackSubseq:`\u2514[{{location}}]
   5323 <a href="#l5304" class="line" id="l5304">   5304</a> &lt;a href=&quot;#l5285&quot; class=&quot;line&quot; id=&quot;l5285&quot;&gt;   5285&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-185&amp;quot; id=&amp;quot;h4-0-185&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 {{func}}() \u092E\u0947\u0902 \u092A\u0902\u0915\u094D\u0924\u093F {{line}} \u0938\u0947 \u0906\u0939\u094D\u0935\u093E\u0928 \u0915\u093F\u092F\u093E \u0917\u092F\u093E
   5324 <a href="#l5305" class="line" id="l5305">   5305</a> &lt;a href=&quot;#l5286&quot; class=&quot;line&quot; id=&quot;l5286&quot;&gt;   5286&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-186&amp;quot; id=&amp;quot;h4-0-186&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,stackTop:`\u250C[{{location}}]
   5325 <a href="#l5306" class="line" id="l5306">   5306</a> &lt;a href=&quot;#l5287&quot; class=&quot;line&quot; id=&quot;l5287&quot;&gt;   5287&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-187&amp;quot; id=&amp;quot;h4-0-187&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 {{func}}() \u092E\u0947\u0902 \u092A\u0902\u0915\u094D\u0924\u093F {{line}} \u092A\u0930 \u0924\u094D\u0930\u0941\u091F\u093F
   5326 <a href="#l5307" class="line" id="l5307">   5307</a> &lt;a href=&quot;#l5288&quot; class=&quot;line&quot; id=&quot;l5288&quot;&gt;   5288&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-188&amp;quot; id=&amp;quot;h4-0-188&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,syntax:{badReturnOrYield:`
   5327 <a href="#l5308" class="line" id="l5308">   5308</a> &lt;a href=&quot;#l5289&quot; class=&quot;line&quot; id=&quot;l5289&quot;&gt;   5289&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-189&amp;quot; id=&amp;quot;h4-0-189&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0935\u093E\u0915\u094D\u092F - \u0935\u093F\u0928\u094D\u092F\u093E\u0938 \u0924\u094D\u0930\u0941\u091F\u093F - \u0930\u093F\u091F\u0930\u094D\u0928 \u0915\u093F\u0938\u0940 \u092B\u093C\u0902\u0915\u094D\u0936\u0928 \u0915\u0947 \u092C\u093E\u0939\u0930 \u0939\u094B\u0924\u093E \u0939\u0948\u0964 \u0938\u0941\u0928\u093F\u0936\u094D\u091A\u093F\u0924 \u0915\u0930\u0947\u0902 \u0915\u093F \u0906\u092A\u0938\u0947 \u0915\u094B\u0908 \u0915\u094B\u0937\u094D\u0920\u0915 \u0928\u0939\u0940\u0902 \u091B\u0942\u091F \u0930\u0939\u093E \u0939\u0948, \u0924\u093E\u0915\u093F \u0930\u093F\u091F\u0930\u094D\u0928 \u0915\u093F\u0938\u0940 \u092B\u093C\u0902\u0915\u094D\u0936\u0928 \u0915\u0947 \u0905\u0902\u0926\u0930 \u0939\u094B\u0964
   5328 <a href="#l5309" class="line" id="l5309">   5309</a> &lt;a href=&quot;#l5290&quot; class=&quot;line&quot; id=&quot;l5290&quot;&gt;   5290&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-190&amp;quot; id=&amp;quot;h4-0-190&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5329 <a href="#l5310" class="line" id="l5310">   5310</a> &lt;a href=&quot;#l5291&quot; class=&quot;line&quot; id=&quot;l5291&quot;&gt;   5291&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-191&amp;quot; id=&amp;quot;h4-0-191&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,invalidToken:`
   5330 <a href="#l5311" class="line" id="l5311">   5311</a> &lt;a href=&quot;#l5292&quot; class=&quot;line&quot; id=&quot;l5292&quot;&gt;   5292&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-192&amp;quot; id=&amp;quot;h4-0-192&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0935\u093E\u0915\u094D\u092F - \u0935\u093F\u0928\u094D\u092F\u093E\u0938 \u0924\u094D\u0930\u0941\u091F\u093F - \u090F\u0915 \u0910\u0938\u093E \u092A\u094D\u0930\u0924\u0940\u0915 \u092E\u093F\u0932\u093E \u091C\u093F\u0938\u0947 \u091C\u093E\u0935\u093E\u0938\u094D\u0915\u094D\u0930\u093F\u092A\u094D\u091F \u0928\u0939\u0940\u0902 \u092A\u0939\u091A\u093E\u0928\u0924\u093E \u092F\u093E \u0905\u092A\u0928\u0947 \u0938\u094D\u0925\u093E\u0928 \u092A\u0930 \u0905\u092A\u0947\u0915\u094D\u0937\u093F\u0924 \u0928\u0939\u0940\u0902 \u0925\u093E\u0964
   5331 <a href="#l5312" class="line" id="l5312">   5312</a> &lt;a href=&quot;#l5293&quot; class=&quot;line&quot; id=&quot;l5293&quot;&gt;   5293&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-193&amp;quot; id=&amp;quot;h4-0-193&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5332 <a href="#l5313" class="line" id="l5313">   5313</a> &lt;a href=&quot;#l5294&quot; class=&quot;line&quot; id=&quot;l5294&quot;&gt;   5294&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-194&amp;quot; id=&amp;quot;h4-0-194&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,missingInitializer:`
   5333 <a href="#l5314" class="line" id="l5314">   5314</a> &lt;a href=&quot;#l5295&quot; class=&quot;line&quot; id=&quot;l5295&quot;&gt;   5295&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-195&amp;quot; id=&amp;quot;h4-0-195&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0935\u093E\u0915\u094D\u092F - \u0935\u093F\u0928\u094D\u092F\u093E\u0938 \u0924\u094D\u0930\u0941\u091F\u093F - \u090F\u0915 \u0928\u093F\u092F\u0924 \u091A\u0930 \u0918\u094B\u0937\u093F\u0924 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0939\u0948 \u0932\u0947\u0915\u093F\u0928 \u092A\u094D\u0930\u093E\u0930\u0902\u092D \u0928\u0939\u0940\u0902 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0939\u0948\u0964 \u091C\u093E\u0935\u093E\u0938\u094D\u0915\u094D\u0930\u093F\u092A\u094D\u091F \u092E\u0947\u0902, \u090F\u0915 \u0928\u093F\u092F\u0924 \u0915\u0947 \u0932\u093F\u090F \u092A\u094D\u0930\u093E\u0930\u0902\u092D\u0915\u0930\u094D\u0924\u093E \u0915\u0940 \u0906\u0935\u0936\u094D\u092F\u0915\u0924\u093E \u0939\u094B\u0924\u0940 \u0939\u0948\u0964 \u090F\u0915 \u092E\u093E\u0928 \u0909\u0938\u0940 \u0915\u0925\u0928 \u092E\u0947\u0902 \u0928\u093F\u0930\u094D\u0926\u093F\u0937\u094D\u091F \u0915\u093F\u092F\u093E \u091C\u093E\u0928\u093E \u091A\u093E\u0939\u093F\u090F \u091C\u093F\u0938\u092E\u0947\u0902 \u091A\u0930 \u0918\u094B\u0937\u093F\u0924 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0939\u0948\u0964 \u0924\u094D\u0930\u0941\u091F\u093F \u092E\u0947\u0902 \u092A\u0902\u0915\u094D\u0924\u093F \u0938\u0902\u0916\u094D\u092F\u093E \u0915\u0940 \u091C\u093E\u0901\u091A \u0915\u0930\u0947\u0902 \u0914\u0930 \u0938\u094D\u0925\u093F\u0930\u093E\u0902\u0915 \u091A\u0930 \u0915\u094B \u090F\u0915 \u092E\u093E\u0928 \u0928\u093F\u0930\u094D\u0926\u093F\u0937\u094D\u091F \u0915\u0930\u0947\u0902\u0964
   5334 <a href="#l5315" class="line" id="l5315">   5315</a> &lt;a href=&quot;#l5296&quot; class=&quot;line&quot; id=&quot;l5296&quot;&gt;   5296&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-196&amp;quot; id=&amp;quot;h4-0-196&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5335 <a href="#l5316" class="line" id="l5316">   5316</a> &lt;a href=&quot;#l5297&quot; class=&quot;line&quot; id=&quot;l5297&quot;&gt;   5297&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-197&amp;quot; id=&amp;quot;h4-0-197&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,redeclaredVariable:`
   5336 <a href="#l5317" class="line" id="l5317">   5317</a> &lt;a href=&quot;#l5298&quot; class=&quot;line&quot; id=&quot;l5298&quot;&gt;   5298&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-198&amp;quot; id=&amp;quot;h4-0-198&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0935\u093E\u0915\u094D\u092F - \u0935\u093F\u0928\u094D\u092F\u093E\u0938 \u0924\u094D\u0930\u0941\u091F\u093F - &amp;amp;quot;{{symbol}}&amp;amp;quot; \u092A\u0941\u0928\u0903 \u0918\u094B\u0937\u093F\u0924 \u0915\u093F\u092F\u093E \u091C\u093E \u0930\u0939\u093E \u0939\u0948\u0964 \u091C\u093E\u0935\u093E\u0938\u094D\u0915\u094D\u0930\u093F\u092A\u094D\u091F \u090F\u0915 \u091A\u0930 \u0915\u094B \u090F\u0915 \u0938\u0947 \u0905\u0927\u093F\u0915 \u092C\u093E\u0930 \u0918\u094B\u0937\u093F\u0924 \u0915\u0930\u0928\u0947 \u0915\u0940 \u0905\u0928\u0941\u092E\u0924\u093F \u0928\u0939\u0940\u0902 \u0926\u0947\u0924\u093E \u0939\u0948\u0964 \u091A\u0930 \u0915\u0940 \u092A\u0941\u0928\u0903 \u0918\u094B\u0937\u0923\u093E \u0915\u0947 \u0932\u093F\u090F \u0924\u094D\u0930\u0941\u091F\u093F \u0935\u093E\u0932\u0940 \u092A\u0902\u0915\u094D\u0924\u093F \u0938\u0902\u0916\u094D\u092F\u093E \u0915\u0940 \u091C\u093E\u0901\u091A \u0915\u0930\u0947\u0902\u0964
   5337 <a href="#l5318" class="line" id="l5318">   5318</a> &lt;a href=&quot;#l5299&quot; class=&quot;line&quot; id=&quot;l5299&quot;&gt;   5299&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-199&amp;quot; id=&amp;quot;h4-0-199&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5338 <a href="#l5319" class="line" id="l5319">   5319</a> &lt;a href=&quot;#l5300&quot; class=&quot;line&quot; id=&quot;l5300&quot;&gt;   5300&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-200&amp;quot; id=&amp;quot;h4-0-200&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,unexpectedToken:`
   5339 <a href="#l5320" class="line" id="l5320">   5320</a> &lt;a href=&quot;#l5301&quot; class=&quot;line&quot; id=&quot;l5301&quot;&gt;   5301&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-201&amp;quot; id=&amp;quot;h4-0-201&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0935\u093E\u0915\u094D\u092F - \u0935\u093F\u0928\u094D\u092F\u093E\u0938 \u0924\u094D\u0930\u0941\u091F\u093F - \u092A\u094D\u0930\u0924\u0940\u0915 \u0910\u0938\u0947 \u0938\u094D\u0925\u093E\u0928 \u092A\u0930 \u092E\u094C\u091C\u0942\u0926 \u0939\u0948 \u091C\u093F\u0938\u0915\u0940 \u0905\u092A\u0947\u0915\u094D\u0937\u093E \u0928\u0939\u0940\u0902 \u0925\u0940\u0964
   5340 <a href="#l5321" class="line" id="l5321">   5321</a> &lt;a href=&quot;#l5302&quot; class=&quot;line&quot; id=&quot;l5302&quot;&gt;   5302&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-202&amp;quot; id=&amp;quot;h4-0-202&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0906\u092E \u0924\u094C\u0930 \u092A\u0930 \u092F\u0939 \u091F\u0902\u0915\u0923 \u0924\u094D\u0930\u0941\u091F\u093F \u0915\u0947 \u0915\u093E\u0930\u0923 \u0939\u094B\u0924\u093E \u0939\u0948\u0964 \u0915\u093F\u0938\u0940 \u092D\u0940 \u0917\u0941\u092E/\u0905\u0924\u093F\u0930\u093F\u0915\u094D\u0924 \u091A\u0940\u091C\u093C \u0915\u0947 \u0932\u093F\u090F \u0924\u094D\u0930\u0941\u091F\u093F \u092E\u0947\u0902 \u092A\u0902\u0915\u094D\u0924\u093F \u0928\u0902\u092C\u0930 \u0915\u0940 \u091C\u093E\u0901\u091A \u0915\u0930\u0947\u0902\u0964
   5341 <a href="#l5322" class="line" id="l5322">   5322</a> &lt;a href=&quot;#l5303&quot; class=&quot;line&quot; id=&quot;l5303&quot;&gt;   5303&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-203&amp;quot; id=&amp;quot;h4-0-203&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5342 <a href="#l5323" class="line" id="l5323">   5323</a> &lt;a href=&quot;#l5304&quot; class=&quot;line&quot; id=&quot;l5304&quot;&gt;   5304&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-204&amp;quot; id=&amp;quot;h4-0-204&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`},type:{constAssign:`
   5343 <a href="#l5324" class="line" id="l5324">   5324</a> &lt;a href=&quot;#l5305&quot; class=&quot;line&quot; id=&quot;l5305&quot;&gt;   5305&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-205&amp;quot; id=&amp;quot;h4-0-205&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u090F\u0915 \u0928\u093F\u092F\u0924 \u091A\u0930 \u0915\u094B \u092B\u093F\u0930 \u0938\u0947 \u0905\u0938\u093E\u0907\u0928 \u0915\u093F\u092F\u093E \u091C\u093E \u0930\u0939\u093E \u0939\u0948\u0964 \u091C\u093E\u0935\u093E\u0938\u094D\u0915\u094D\u0930\u093F\u092A\u094D\u091F \u092E\u0947\u0902, \u0915\u093F\u0938\u0940 \u0938\u094D\u0925\u093F\u0930\u093E\u0902\u0915 \u0915\u094B \u0926\u094B\u092C\u093E\u0930\u093E \u092E\u093E\u0928 \u0928\u093F\u0930\u094D\u0926\u093F\u0937\u094D\u091F \u0915\u0930\u0928\u0947 \u0915\u0940 \u0905\u0928\u0941\u092E\u0924\u093F \u0928\u0939\u0940\u0902 \u0939\u0948\u0964 \u092F\u0926\u093F \u0906\u092A \u0915\u093F\u0938\u0940 \u091A\u0930 \u0915\u0947 \u0932\u093F\u090F \u0928\u090F \u092E\u093E\u0928 \u092A\u0941\u0928\u0903 \u0928\u093F\u0930\u094D\u0926\u093F\u0937\u094D\u091F \u0915\u0930\u0928\u093E \u091A\u093E\u0939\u0924\u0947 \u0939\u0948\u0902, \u0924\u094B \u0938\u0941\u0928\u093F\u0936\u094D\u091A\u093F\u0924 \u0915\u0930\u0947\u0902 \u0915\u093F \u0907\u0938\u0947 var \u092F\u093E Let \u0915\u0947 \u0930\u0942\u092A \u092E\u0947\u0902 \u0918\u094B\u0937\u093F\u0924 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0939\u0948\u0964
   5344 <a href="#l5325" class="line" id="l5325">   5325</a> &lt;a href=&quot;#l5306&quot; class=&quot;line&quot; id=&quot;l5306&quot;&gt;   5306&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-206&amp;quot; id=&amp;quot;h4-0-206&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5345 <a href="#l5326" class="line" id="l5326">   5326</a> &lt;a href=&quot;#l5307&quot; class=&quot;line&quot; id=&quot;l5307&quot;&gt;   5307&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-207&amp;quot; id=&amp;quot;h4-0-207&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,notfunc:`
   5346 <a href="#l5327" class="line" id="l5327">   5327</a> &lt;a href=&quot;#l5308&quot; class=&quot;line&quot; id=&quot;l5308&quot;&gt;   5308&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-208&amp;quot; id=&amp;quot;h4-0-208&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; \u092B\u093C\u0902\u0915\u094D\u0936\u0928 \u0915\u0947 \u0930\u0942\u092A \u092E\u0947\u0902 \u0928\u0939\u0940\u0902 \u092C\u0941\u0932\u093E\u092F\u093E \u091C\u093E \u0938\u0915\u093E\u0964
   5347 <a href="#l5328" class="line" id="l5328">   5328</a> &lt;a href=&quot;#l5309&quot; class=&quot;line&quot; id=&quot;l5309&quot;&gt;   5309&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-209&amp;quot; id=&amp;quot;h4-0-209&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0935\u0930\u094D\u0924\u0928\u0940, \u0905\u0915\u094D\u0937\u0930-\u0906\u0935\u0930\u0923 (\u091C\u093E\u0935\u093E\u0938\u094D\u0915\u094D\u0930\u093F\u092A\u094D\u091F \u0915\u0947\u0938-\u0938\u0902\u0935\u0947\u0926\u0940 \u0939\u0948) \u0914\u0930 \u0909\u0938\u0915\u0947 \u092A\u094D\u0930\u0915\u093E\u0930 \u0915\u0940 \u091C\u093E\u0901\u091A \u0915\u0930\u0947\u0902\u0964
   5348 <a href="#l5329" class="line" id="l5329">   5329</a> &lt;a href=&quot;#l5310&quot; class=&quot;line&quot; id=&quot;l5310&quot;&gt;   5310&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-210&amp;quot; id=&amp;quot;h4-0-210&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5349 <a href="#l5330" class="line" id="l5330">   5330</a> &lt;a href=&quot;#l5311&quot; class=&quot;line&quot; id=&quot;l5311&quot;&gt;   5311&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-211&amp;quot; id=&amp;quot;h4-0-211&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,notfuncObj:`
   5350 <a href="#l5331" class="line" id="l5331">   5331</a> &lt;a href=&quot;#l5312&quot; class=&quot;line&quot; id=&quot;l5312&quot;&gt;   5312&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-212&amp;quot; id=&amp;quot;h4-0-212&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; \u092B\u093C\u0902\u0915\u094D\u0936\u0928 \u0915\u0947 \u0930\u0942\u092A \u092E\u0947\u0902 \u0928\u0939\u0940\u0902 \u092C\u0941\u0932\u093E\u092F\u093E \u091C\u093E \u0938\u0915\u093E\u0964
   5351 <a href="#l5332" class="line" id="l5332">   5332</a> &lt;a href=&quot;#l5313&quot; class=&quot;line&quot; id=&quot;l5313&quot;&gt;   5313&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-213&amp;quot; id=&amp;quot;h4-0-213&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0938\u0924\u094D\u092F\u093E\u092A\u093F\u0924 \u0915\u0930\u0947\u0902 \u0915\u093F \u0915\u094D\u092F\u093E &amp;amp;quot;{{obj}}&amp;amp;quot; \u092E\u0947\u0902 &amp;amp;quot;{{symbol}}&amp;amp;quot; \u0939\u0948 \u0914\u0930 \u0935\u0930\u094D\u0924\u0928\u0940, \u0905\u0915\u094D\u0937\u0930-\u0906\u0935\u0930\u0923 (\u091C\u093E\u0935\u093E\u0938\u094D\u0915\u094D\u0930\u093F\u092A\u094D\u091F \u0915\u0947\u0938-\u0938\u0902\u0935\u0947\u0926\u0940 \u0939\u0948) \u0914\u0930 \u0909\u0938\u0915\u0947 \u092A\u094D\u0930\u0915\u093E\u0930 \u0915\u0940 \u091C\u093E\u0902\u091A \u0915\u0930\u0947\u0902\u0964
   5352 <a href="#l5333" class="line" id="l5333">   5333</a> &lt;a href=&quot;#l5314&quot; class=&quot;line&quot; id=&quot;l5314&quot;&gt;   5314&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-214&amp;quot; id=&amp;quot;h4-0-214&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5353 <a href="#l5334" class="line" id="l5334">   5334</a> &lt;a href=&quot;#l5315&quot; class=&quot;line&quot; id=&quot;l5315&quot;&gt;   5315&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-215&amp;quot; id=&amp;quot;h4-0-215&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,readFromNull:`
   5354 <a href="#l5335" class="line" id="l5335">   5335</a> &lt;a href=&quot;#l5316&quot; class=&quot;line&quot; id=&quot;l5316&quot;&gt;   5316&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-216&amp;quot; id=&amp;quot;h4-0-216&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} null \u0915\u0940 \u0938\u0902\u092A\u0924\u094D\u0924\u093F \u0915\u094B \u092A\u0922\u093C\u093E \u0928\u0939\u0940\u0902 \u091C\u093E \u0938\u0915\u0924\u093E. \u091C\u093E\u0935\u093E\u0938\u094D\u0915\u094D\u0930\u093F\u092A\u094D\u091F \u092E\u0947\u0902 \u092E\u093E\u0928 null \u0907\u0902\u0917\u093F\u0924 \u0915\u0930\u0924\u093E \u0939\u0948 \u0915\u093F \u0915\u093F\u0938\u0940 \u0911\u092C\u094D\u091C\u0947\u0915\u094D\u091F \u0915\u093E \u0915\u094B\u0908 \u092E\u0942\u0932\u094D\u092F \u0928\u0939\u0940\u0902 \u0939\u0948\u0964
   5355 <a href="#l5336" class="line" id="l5336">   5336</a> &lt;a href=&quot;#l5317&quot; class=&quot;line&quot; id=&quot;l5317&quot;&gt;   5317&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-217&amp;quot; id=&amp;quot;h4-0-217&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5356 <a href="#l5337" class="line" id="l5337">   5337</a> &lt;a href=&quot;#l5318&quot; class=&quot;line&quot; id=&quot;l5318&quot;&gt;   5318&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-218&amp;quot; id=&amp;quot;h4-0-218&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,readFromUndefined:`
   5357 <a href="#l5338" class="line" id="l5338">   5338</a> &lt;a href=&quot;#l5319&quot; class=&quot;line&quot; id=&quot;l5319&quot;&gt;   5319&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-219&amp;quot; id=&amp;quot;h4-0-219&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} undefined \u0915\u0940 \u0938\u0902\u092A\u0924\u094D\u0924\u093F \u0928\u0939\u0940\u0902 \u092A\u0922\u093C \u0938\u0915\u0924\u093E. \u0924\u094D\u0930\u0941\u091F\u093F \u0935\u093E\u0932\u0940 \u092A\u0902\u0915\u094D\u0924\u093F \u0938\u0902\u0916\u094D\u092F\u093E \u0915\u0940 \u091C\u093E\u0901\u091A \u0915\u0930\u0947\u0902 \u0914\u0930 \u0938\u0941\u0928\u093F\u0936\u094D\u091A\u093F\u0924 \u0915\u0930\u0947\u0902 \u0915\u093F \u091C\u094B \u091A\u0930 \u0938\u0902\u091A\u093E\u0932\u093F\u0924 \u0915\u093F\u092F\u093E \u091C\u093E \u0930\u0939\u093E \u0939\u0948 \u0935\u0939 \u0905\u092A\u0930\u093F\u092D\u093E\u0937\u093F\u0924 \u0928\u0939\u0940\u0902 \u0939\u0948\u0964
   5358 <a href="#l5339" class="line" id="l5339">   5339</a> &lt;a href=&quot;#l5320&quot; class=&quot;line&quot; id=&quot;l5320&quot;&gt;   5320&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-220&amp;quot; id=&amp;quot;h4-0-220&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5359 <a href="#l5340" class="line" id="l5340">   5340</a> &lt;a href=&quot;#l5321&quot; class=&quot;line&quot; id=&quot;l5321&quot;&gt;   5321&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-221&amp;quot; id=&amp;quot;h4-0-221&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+ + \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`}},libraryError:&amp;amp;#39;{{location}} \u091C\u092C {{func}} \u0915\u094B \u0906\u0939\u094D\u0935\u093E\u0928 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0924\u094B p5js \u0932\u093E\u0907\u092C\u094D\u0930\u0947\u0930\u0940 \u0915\u0947 \u0905\u0902\u0926\u0930 &amp;amp;quot;{{error}}&amp;amp;quot; \u0938\u0902\u0926\u0947\u0936 \u0915\u0947 \u0938\u093E\u0925 \u090F\u0915 \u0924\u094D\u0930\u0941\u091F\u093F \u0909\u0924\u094D\u092A\u0928\u094D\u0928 \u0939\u0941\u0908\u0964 \u092F\u0926\u093F \u0905\u0928\u094D\u092F\u0925\u093E \u0928\u0939\u0940\u0902 \u0915\u0939\u093E \u0917\u092F\u093E \u0939\u0948, \u0924\u094B \u092F\u0939 {{func}} \u0915\u094B \u0926\u093F\u090F \u0917\u090F \u0924\u0930\u094D\u0915\u094B\u0902 \u0915\u0947 \u0938\u093E\u0925 \u090F\u0915 \u0938\u092E\u0938\u094D\u092F\u093E \u0939\u094B \u0938\u0915\u0924\u0940 \u0939\u0948\u0964&amp;amp;#39;,location:&amp;amp;quot;[{{file}}, \u092A\u0902\u0915\u094D\u0924\u093F {{line}}]&amp;amp;quot;,misspelling:&amp;amp;#39;{{location}} \u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0928\u0947 \u0917\u0932\u0924\u0940 \u0938\u0947 &amp;amp;quot;{{actualName}}&amp;amp;quot; \u0915\u0947 \u0938\u094D\u0925\u093E\u0928 \u092A\u0930 &amp;amp;quot;{{name}}&amp;amp;quot; \u0932\u093F\u0916 \u0926\u093F\u092F\u093E \u0939\u094B\u0917\u093E\u0964 \u092F\u0926\u093F \u0906\u092A p5.js \u0938\u0947 {{type}} \u0915\u093E \u0909\u092A\u092F\u094B\u0917 \u0915\u0930\u0928\u093E \u091A\u093E\u0939\u0924\u0947 \u0939\u0948\u0902 \u0924\u094B \u0915\u0943\u092A\u092F\u093E \u0907\u0938\u0947 \u0938\u0939\u0940 \u0915\u0930\u0915\u0947 {{actualName}} \u0915\u0930 \u0926\u0947\u0902\u0964&amp;amp;#39;,misspelling_plural:`{{location}} \u0910\u0938\u093E \u0932\u0917\u0924\u093E \u0939\u0948 \u0915\u093F \u0906\u092A\u0928\u0947 \u0917\u0932\u0924\u0940 \u0938\u0947 &amp;amp;quot;{{name}}&amp;amp;quot; \u0932\u093F\u0916 \u0926\u093F\u092F\u093E \u0939\u094B\u0917\u093E\u0964
   5360 <a href="#l5341" class="line" id="l5341">   5341</a> &lt;a href=&quot;#l5322&quot; class=&quot;line&quot; id=&quot;l5322&quot;&gt;   5322&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-222&amp;quot; id=&amp;quot;h4-0-222&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u0906\u092A\u0915\u093E \u092E\u0924\u0932\u092C \u0928\u093F\u092E\u094D\u0928\u0932\u093F\u0916\u093F\u0924 \u092E\u0947\u0902 \u0938\u0947 \u0915\u094B\u0908 \u090F\u0915 \u0939\u094B \u0938\u0915\u0924\u093E \u0939\u0948:
   5361 <a href="#l5342" class="line" id="l5342">   5342</a> &lt;a href=&quot;#l5323&quot; class=&quot;line&quot; id=&quot;l5323&quot;&gt;   5323&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-223&amp;quot; id=&amp;quot;h4-0-223&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{suggestions}}`,misusedTopLevel:`\u0915\u094D\u092F\u093E \u0906\u092A\u0928\u0947 \u0905\u092D\u0940 p5.js \u0915\u0947 {{symbolName}} {{symbolType}} \u0915\u093E \u0909\u092A\u092F\u094B\u0917 \u0915\u0930\u0928\u0947 \u0915\u093E \u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u093F\u092F\u093E? \u092F\u0926\u093F \u0910\u0938\u093E \u0939\u0948, \u0924\u094B \u0906\u092A \u0907\u0938\u0947 \u0905\u092A\u0928\u0947 \u0930\u0947\u0916\u093E-\u091A\u093F\u0924\u094D\u0930 \u0915\u0947 setup() \u092B\u093C\u0902\u0915\u094D\u0936\u0928 \u092E\u0947\u0902 \u0932\u0947 \u091C\u093E\u0928\u093E \u091A\u093E\u0939 \u0938\u0915\u0924\u0947 \u0939\u0948\u0902\u0964
   5362 <a href="#l5343" class="line" id="l5343">   5343</a> &lt;a href=&quot;#l5324&quot; class=&quot;line&quot; id=&quot;l5324&quot;&gt;   5324&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-224&amp;quot; id=&amp;quot;h4-0-224&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5363 <a href="#l5344" class="line" id="l5344">   5344</a> &lt;a href=&quot;#l5325&quot; class=&quot;line&quot; id=&quot;l5325&quot;&gt;   5325&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-225&amp;quot; id=&amp;quot;h4-0-225&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,positions:{p_1:&amp;amp;quot;\u092A\u0939\u0932\u093E&amp;amp;quot;,p_10:&amp;amp;quot;\u0926\u0938\u0935\u093E\u0902&amp;amp;quot;,p_11:&amp;amp;quot;\u0917\u094D\u092F\u093E\u0930\u0939\u0935\u0947\u0902&amp;amp;quot;,p_12:&amp;amp;quot;\u092C\u093E\u0930\u0939\u0935\u0947\u0902&amp;amp;quot;,p_2:&amp;amp;quot;\u0926\u0942\u0938\u0930\u093E&amp;amp;quot;,p_3:&amp;amp;quot;\u0924\u0940\u0938\u0930\u093E&amp;amp;quot;,p_4:&amp;amp;quot;\u091A\u094C\u0925\u0940&amp;amp;quot;,p_5:&amp;amp;quot;\u092A\u093E\u0902\u091A\u0935\u093E\u0902&amp;amp;quot;,p_6:&amp;amp;quot;\u091B\u0920\u093E&amp;amp;quot;,p_7:&amp;amp;quot;\u0938\u093E\u0924\u0935\u0940\u0902&amp;amp;quot;,p_8:&amp;amp;quot;\u0906\u0920\u0935\u093E\u0901&amp;amp;quot;,p_9:&amp;amp;quot;\u0928\u094C\u0935\u093E\u0902&amp;amp;quot;},pre:`
   5364 <a href="#l5345" class="line" id="l5345">   5345</a> &lt;a href=&quot;#l5326&quot; class=&quot;line&quot; id=&quot;l5326&quot;&gt;   5326&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-226&amp;quot; id=&amp;quot;h4-0-226&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u{1F338} p5.js \u0915\u0939\u0924\u093E \u0939\u0948: {{message}}`,sketchReaderErrors:{reservedConst:`\u0906\u092A\u0928\u0947 \u090F\u0915 p5.js \u0906\u0930\u0915\u094D\u0937\u093F\u0924 \u091A\u0930 &amp;amp;quot;{{symbol}}&amp;amp;quot; \u0915\u093E \u0909\u092A\u092F\u094B\u0917 \u0915\u093F\u092F\u093E \u0939\u0948, \u0938\u0941\u0928\u093F\u0936\u094D\u091A\u093F\u0924 \u0915\u0930\u0947\u0902 \u0915\u093F \u0906\u092A\u0928\u0947 \u091A\u0930 \u0928\u093E\u092E \u0915\u094B \u0915\u093F\u0938\u0940 \u0914\u0930 \u091A\u0940\u091C\u093C \u092E\u0947\u0902 \u092C\u0926\u0932 \u0926\u093F\u092F\u093E \u0939\u0948\u0964
   5365 <a href="#l5346" class="line" id="l5346">   5346</a> &lt;a href=&quot;#l5327&quot; class=&quot;line&quot; id=&quot;l5327&quot;&gt;   5327&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-227&amp;quot; id=&amp;quot;h4-0-227&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5366 <a href="#l5347" class="line" id="l5347">   5347</a> &lt;a href=&quot;#l5328&quot; class=&quot;line&quot; id=&quot;l5328&quot;&gt;   5328&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-228&amp;quot; id=&amp;quot;h4-0-228&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`,reservedFunc:`\u0906\u092A\u0928\u0947 \u090F\u0915 p5.js \u0906\u0930\u0915\u094D\u0937\u093F\u0924 \u092B\u093C\u0902\u0915\u094D\u0936\u0928 &amp;amp;quot;{{symbol}}&amp;amp;quot; \u0915\u093E \u0909\u092A\u092F\u094B\u0917 \u0915\u093F\u092F\u093E \u0939\u0948, \u0938\u0941\u0928\u093F\u0936\u094D\u091A\u093F\u0924 \u0915\u0930\u0947\u0902 \u0915\u093F \u0906\u092A\u0928\u0947 \u092B\u093C\u0902\u0915\u094D\u0936\u0928 \u0915\u093E \u0928\u093E\u092E \u0915\u093F\u0938\u0940 \u0914\u0930 \u091A\u0940\u091C\u093C \u092E\u0947\u0902 \u092C\u0926\u0932 \u0926\u093F\u092F\u093E \u0939\u0948\u0964
   5367 <a href="#l5348" class="line" id="l5348">   5348</a> &lt;a href=&quot;#l5329&quot; class=&quot;line&quot; id=&quot;l5329&quot;&gt;   5329&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-229&amp;quot; id=&amp;quot;h4-0-229&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5368 <a href="#l5349" class="line" id="l5349">   5349</a> &lt;a href=&quot;#l5330&quot; class=&quot;line&quot; id=&quot;l5330&quot;&gt;   5330&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-230&amp;quot; id=&amp;quot;h4-0-230&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u0905\u0927\u093F\u0915 \u091C\u093E\u0928\u0915\u093E\u0930\u0940: {{url}}`},welcome:&amp;amp;quot;\u0938\u094D\u0935\u093E\u0917\u0924! \u092F\u0939 \u0906\u092A\u0915\u093E \u092E\u093F\u0924\u094D\u0930\u0935\u0924 \u0921\u093F\u092C\u0917\u0930 \u0939\u0948. \u092E\u0941\u091D\u0947 \u092C\u0902\u0926 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F, p5.min.js \u0915\u093E \u0909\u092A\u092F\u094B\u0917 \u0915\u0930\u0947\u0902\u0964&amp;amp;quot;,wrongPreload:&amp;amp;#39;{{location}} \u091C\u092C &amp;amp;quot;{{func}}&amp;amp;quot; \u0915\u094B \u0906\u0939\u094D\u0935\u093E\u0928 \u0915\u093F\u092F\u093E \u0917\u092F\u093E \u0924\u094B p5js \u0932\u093E\u0907\u092C\u094D\u0930\u0947\u0930\u0940 \u0915\u0947 \u0905\u0902\u0926\u0930 &amp;amp;quot;{{error}}&amp;amp;quot; \u0938\u0902\u0926\u0947\u0936 \u0915\u0947 \u0938\u093E\u0925 \u090F\u0915 \u0924\u094D\u0930\u0941\u091F\u093F \u0909\u0924\u094D\u092A\u0928\u094D\u0928 \u0939\u0941\u0908\u0964 \u092F\u0926\u093F \u0905\u0928\u094D\u092F\u0925\u093E \u0928\u0939\u0940\u0902 \u0915\u0939\u093E \u0917\u092F\u093E \u0939\u0948, \u0924\u094B \u092F\u0939 &amp;amp;quot;{{func}}&amp;amp;quot; \u0915\u094B \u092A\u094D\u0930\u0940\u0932\u094B\u0921 \u0938\u0947 \u0906\u0939\u094D\u0935\u093E\u0928 \u0915\u093F\u090F \u091C\u093E\u0928\u0947 \u0915\u0947 \u0915\u093E\u0930\u0923 \u0939\u094B \u0938\u0915\u0924\u093E \u0939\u0948\u0964 \u092A\u094D\u0930\u0940\u0932\u094B\u0921 \u092B\u093C\u0902\u0915\u094D\u0936\u0928 \u0915\u0947 \u0905\u0902\u0926\u0930 \u0932\u094B\u0921 \u0906\u0939\u094D\u0935\u093E\u0928 (\u0932\u094B\u0921\u091B\u0935\u093F, \u0932\u094B\u0921\u091C\u0947\u090F\u0938\u0913\u090F\u0928, \u0932\u094B\u0921\u092E\u0941\u0926\u094D\u0930\u0932\u093F\u092A\u093F, \u0932\u094B\u0921\u0938\u094D\u091F\u094D\u0930\u093F\u0902\u0917\u094D\u0938 \u0907\u0924\u094D\u092F\u093E\u0926\u093F) \u0915\u0947 \u0905\u0932\u093E\u0935\u093E \u0915\u0941\u091B \u092D\u0940 \u0928\u0939\u0940\u0902 \u0939\u094B\u0928\u093E \u091A\u093E\u0939\u093F\u090F\u0964&amp;amp;#39;}}});var w0,_0=ln(()=&amp;amp;gt;{w0={fes:{autoplay:`\u518D\u751F\u3057\u3088\u3046\u3068\u3057\u305F\u30E1\u30C7\u30A3\u30A2({{src}})\u306F\u3001\u30D6\u30E9\u30A6\u30B6\u304B\u3089\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u304A\u305D\u3089\u304F\u306F\u30D6\u30E9\u30A6\u30B6\u306E\u81EA\u52D5\u518D\u751F\u30DD\u30EA\u30B7\u30FC\u306B\u3088\u308B\u3082\u306E\u3067\u3059\u3002
   5369 <a href="#l5350" class="line" id="l5350">   5350</a> &lt;a href=&quot;#l5331&quot; class=&quot;line&quot; id=&quot;l5331&quot;&gt;   5331&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-231&amp;quot; id=&amp;quot;h4-0-231&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5370 <a href="#l5351" class="line" id="l5351">   5351</a> &lt;a href=&quot;#l5332&quot; class=&quot;line&quot; id=&quot;l5332&quot;&gt;   5332&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-232&amp;quot; id=&amp;quot;h4-0-232&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,checkUserDefinedFns:&amp;amp;quot;{{actualName}} \u3067\u306F\u306A\u304F\u3001\u8AA4\u3063\u3066 {{name}} \u3068\u66F8\u3044\u3066\u3057\u307E\u3063\u305F\u3088\u3046\u3067\u3059\u3002\u3053\u308C\u304C\u610F\u56F3\u7684\u3067\u306A\u3051\u308C\u3070\u4FEE\u6B63\u3057\u3066\u304F\u3060\u3055\u3044\u3002&amp;amp;quot;,fileLoadError:{bytes:&amp;amp;quot;\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u3088\u3046\u3067\u3059\u3002 {{suggestion}}&amp;amp;quot;,font:&amp;amp;quot;\u30D5\u30A9\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u3088\u3046\u3067\u3059\u3002 {{suggestion}}&amp;amp;quot;,gif:&amp;amp;quot;GIF\u3092\u30ED\u30FC\u30C9\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002GIF\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u304C 87a \u307E\u305F\u306F 89a \u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002&amp;amp;quot;,image:&amp;amp;quot;\u753B\u50CF\u3092\u30ED\u30FC\u30C9\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u3088\u3046\u3067\u3059\u3002 {{suggestion}}&amp;amp;quot;,json:&amp;amp;quot;JSON\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u3088\u3046\u3067\u3059\u3002 {{suggestion}}&amp;amp;quot;,large:&amp;amp;quot;\u5927\u304D\u306A\u30D5\u30A1\u30A4\u30EB\u3092\u6B63\u5E38\u306B\u53D6\u5F97\u3067\u304D\u306A\u3044\u5834\u5408\u306F\u3001\u30D5\u30A1\u30A4\u30EB\u3092\u3088\u308A\u5C0F\u3055\u306A\u30BB\u30B0\u30E1\u30F3\u30C8\u306B\u5206\u5272\u3057\u3066\u3001\u305D\u308C\u3089\u3092\u53D6\u5F97\u3059\u308B\u3053\u3068\u3092\u304A\u3059\u3059\u3081\u3057\u307E\u3059\u3002&amp;amp;quot;,strings:&amp;amp;quot;\u30C6\u30AD\u30B9\u30C8\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u3088\u3046\u3067\u3059\u3002 {{suggestion}}&amp;amp;quot;,suggestion:`\u307E\u305A\u306F\u30D5\u30A1\u30A4\u30EB\u30D1\u30B9({{filePath}})\u304C\u6B63\u3057\u3044\u304B\u3092\u78BA\u8A8D\u3057\u3001\u6B21\u306B\u30D5\u30A1\u30A4\u30EB\u304C\u30AA\u30F3\u30E9\u30A4\u30F3\u3067\u30DB\u30B9\u30C8\u3055\u308C\u3066\u3044\u308B\u304B\u3001\u30ED\u30FC\u30AB\u30EB\u30B5\u30FC\u30D0\u30FC\u3092\u5B9F\u884C\u3057\u3066\u3044\u308B\u304B\u3092\u78BA\u8A8D\u3057\u3066\u307F\u3066\u304F\u3060\u3055\u3044\u3002
   5371 <a href="#l5352" class="line" id="l5352">   5352</a> &lt;a href=&quot;#l5333&quot; class=&quot;line&quot; id=&quot;l5333&quot;&gt;   5333&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-233&amp;quot; id=&amp;quot;h4-0-233&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5372 <a href="#l5353" class="line" id="l5353">   5353</a> &lt;a href=&quot;#l5334&quot; class=&quot;line&quot; id=&quot;l5334&quot;&gt;   5334&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-234&amp;quot; id=&amp;quot;h4-0-234&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,table:&amp;amp;quot;\u30C6\u30FC\u30D6\u30EB\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u3088\u3046\u3067\u3059\u3002 {{suggestion}}&amp;amp;quot;,xml:&amp;amp;quot;XML\u30D5\u30A1\u30A4\u30EB\u3092\u30ED\u30FC\u30C9\u3059\u308B\u969B\u306B\u554F\u984C\u304C\u767A\u751F\u3057\u305F\u3088\u3046\u3067\u3059\u3002 {{suggestion}}&amp;amp;quot;},friendlyParamError:{type_EMPTY_VAR:`{{location}} {{func}}()\u306F{{position}}\u5F15\u6570\u306B {{formatType}} \u3092\u671F\u5F85\u3057\u3066\u3044\u307E\u3057\u305F\u304C\u3001\u7A7A\u306E\u5909\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\u3002\u3053\u308C\u304C\u610F\u56F3\u7684\u3067\u306A\u3051\u308C\u3070\u3001\u901A\u5E38\u306F\u30B9\u30B3\u30FC\u30D7\u306E\u554F\u984C\u3067\u3059\u3002
   5373 <a href="#l5354" class="line" id="l5354">   5354</a> &lt;a href=&quot;#l5335&quot; class=&quot;line&quot; id=&quot;l5335&quot;&gt;   5335&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-235&amp;quot; id=&amp;quot;h4-0-235&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5374 <a href="#l5355" class="line" id="l5355">   5355</a> &lt;a href=&quot;#l5336&quot; class=&quot;line&quot; id=&quot;l5336&quot;&gt;   5336&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-236&amp;quot; id=&amp;quot;h4-0-236&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,type_TOO_FEW_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}()\u306F\u5C11\u306A\u304F\u3068\u3082{{minParams}}\u500B\u306E\u5F15\u6570\u3092\u671F\u5F85\u3057\u3066\u3044\u307E\u3057\u305F\u304C\u3001{{argCount}}\u500B\u3057\u304B\u53D7\u3051\u53D6\u3063\u3066\u3044\u307E\u305B\u3093\u3002&amp;amp;quot;,type_TOO_MANY_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}()\u306F\u6700\u5927{{maxParams}}\u500B\u306E\u5F15\u6570\u3092\u671F\u5F85\u3057\u3066\u3044\u307E\u3059\u304C\u3001{{argCount}}\u500B\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\u3002&amp;amp;quot;,type_WRONG_TYPE:&amp;amp;quot;{{location}} {{func}}()\u306F{{position}}\u5F15\u6570\u306B {{formatType}}\u30BF\u30A4\u30D7\u3092\u671F\u5F85\u3057\u3066\u3044\u307E\u3057\u305F\u304C\u3001{{argType}}\u30BF\u30A4\u30D7\u3092\u53D7\u3051\u53D6\u308A\u307E\u3057\u305F\u3002&amp;amp;quot;},globalErrors:{reference:{cannotAccess:`
   5375 <a href="#l5356" class="line" id="l5356">   5356</a> &lt;a href=&quot;#l5337&quot; class=&quot;line&quot; id=&quot;l5337&quot;&gt;   5337&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-237&amp;quot; id=&amp;quot;h4-0-237&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; \u304C\u5BA3\u8A00\u524D\u306B\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u5909\u6570\u3092\u4F7F\u7528\u3059\u308B\u524D\u306B\u5FC5\u305A\u5BA3\u8A00\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5376 <a href="#l5357" class="line" id="l5357">   5357</a> &lt;a href=&quot;#l5338&quot; class=&quot;line&quot; id=&quot;l5338&quot;&gt;   5338&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-238&amp;quot; id=&amp;quot;h4-0-238&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5377 <a href="#l5358" class="line" id="l5358">   5358</a> &lt;a href=&quot;#l5339&quot; class=&quot;line&quot; id=&quot;l5339&quot;&gt;   5339&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-239&amp;quot; id=&amp;quot;h4-0-239&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831\uFF1A: {{url}}`,notDefined:`
   5378 <a href="#l5359" class="line" id="l5359">   5359</a> &lt;a href=&quot;#l5340&quot; class=&quot;line&quot; id=&quot;l5340&quot;&gt;   5340&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-240&amp;quot; id=&amp;quot;h4-0-240&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; \u304C\u73FE\u5728\u306E\u30B9\u30B3\u30FC\u30D7\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30B3\u30FC\u30C9\u5185\u3067\u5B9A\u7FA9\u3057\u3066\u3044\u308B\u5834\u5408\u306F\u3001\u305D\u306E\u30B9\u30B3\u30FC\u30D7\u3001\u30B9\u30DA\u30EB\u3001\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57(JavaScript\u306F\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3057\u307E\u3059)\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5379 <a href="#l5360" class="line" id="l5360">   5360</a> &lt;a href=&quot;#l5341&quot; class=&quot;line&quot; id=&quot;l5341&quot;&gt;   5341&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-241&amp;quot; id=&amp;quot;h4-0-241&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5380 <a href="#l5361" class="line" id="l5361">   5361</a> &lt;a href=&quot;#l5342&quot; class=&quot;line&quot; id=&quot;l5342&quot;&gt;   5342&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-242&amp;quot; id=&amp;quot;h4-0-242&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831\uFF1A {{url}}`},stackSubseq:`\u2514[{{location}}]
   5381 <a href="#l5362" class="line" id="l5362">   5362</a> &lt;a href=&quot;#l5343&quot; class=&quot;line&quot; id=&quot;l5343&quot;&gt;   5343&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-243&amp;quot; id=&amp;quot;h4-0-243&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 {{line}}\u884C\u76EE( {{func}}()\u5185 )\u304B\u3089\u547C\u3073\u51FA\u3055\u308C\u307E\u3057\u305F
   5382 <a href="#l5363" class="line" id="l5363">   5363</a> &lt;a href=&quot;#l5344&quot; class=&quot;line&quot; id=&quot;l5344&quot;&gt;   5344&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-244&amp;quot; id=&amp;quot;h4-0-244&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,stackTop:`\u250C[{{location}}]
   5383 <a href="#l5364" class="line" id="l5364">   5364</a> &lt;a href=&quot;#l5345&quot; class=&quot;line&quot; id=&quot;l5345&quot;&gt;   5345&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-245&amp;quot; id=&amp;quot;h4-0-245&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 {{line}}\u884C\u76EE( {{func}}()\u5185 )\u3067\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F
   5384 <a href="#l5365" class="line" id="l5365">   5365</a> &lt;a href=&quot;#l5346&quot; class=&quot;line&quot; id=&quot;l5346&quot;&gt;   5346&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-246&amp;quot; id=&amp;quot;h4-0-246&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,syntax:{badReturnOrYield:`
   5385 <a href="#l5366" class="line" id="l5366">   5366</a> &lt;a href=&quot;#l5347&quot; class=&quot;line&quot; id=&quot;l5347&quot;&gt;   5347&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-247&amp;quot; id=&amp;quot;h4-0-247&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u69CB\u6587\u30A8\u30E9\u30FC - return\u304C\u95A2\u6570\u5916\u3067\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u62EC\u5F27\u3092\u5FD8\u308C\u305A\u306B\u3001return\u304C\u95A2\u6570\u5185\u3067\u4F7F\u7528\u3055\u308C\u3066\u3044\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5386 <a href="#l5367" class="line" id="l5367">   5367</a> &lt;a href=&quot;#l5348&quot; class=&quot;line&quot; id=&quot;l5348&quot;&gt;   5348&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-248&amp;quot; id=&amp;quot;h4-0-248&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5387 <a href="#l5368" class="line" id="l5368">   5368</a> &lt;a href=&quot;#l5349&quot; class=&quot;line&quot; id=&quot;l5349&quot;&gt;   5349&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-249&amp;quot; id=&amp;quot;h4-0-249&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,invalidToken:`
   5388 <a href="#l5369" class="line" id="l5369">   5369</a> &lt;a href=&quot;#l5350&quot; class=&quot;line&quot; id=&quot;l5350&quot;&gt;   5350&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-250&amp;quot; id=&amp;quot;h4-0-250&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u69CB\u6587\u30A8\u30E9\u30FC - JavaScript\u304C\u8A8D\u8B58\u3057\u306A\u3044\u304B\u3001\u671F\u5F85\u3057\u3066\u3044\u306A\u3044\u30B7\u30F3\u30DC\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002
   5389 <a href="#l5370" class="line" id="l5370">   5370</a> &lt;a href=&quot;#l5351&quot; class=&quot;line&quot; id=&quot;l5351&quot;&gt;   5351&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-251&amp;quot; id=&amp;quot;h4-0-251&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5390 <a href="#l5371" class="line" id="l5371">   5371</a> &lt;a href=&quot;#l5352&quot; class=&quot;line&quot; id=&quot;l5352&quot;&gt;   5352&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-252&amp;quot; id=&amp;quot;h4-0-252&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,missingInitializer:`
   5391 <a href="#l5372" class="line" id="l5372">   5372</a> &lt;a href=&quot;#l5353&quot; class=&quot;line&quot; id=&quot;l5353&quot;&gt;   5353&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-253&amp;quot; id=&amp;quot;h4-0-253&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u69CB\u6587\u30A8\u30E9\u30FC - \u5B9A\u6570\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002JavaScript\u3067\u306F const \u306B\u306F\u521D\u671F\u5024\u304C\u5FC5\u8981\u3067\u3059\u3002\u5909\u6570\u3092\u5BA3\u8A00\u3059\u308B\u969B\u306B\u540C\u3058\u6587\u5185\u3067\u5024\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u30A8\u30E9\u30FC\u306E\u884C\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3066\u5B9A\u6570\u306B\u5024\u3092\u5272\u308A\u5F53\u3066\u3066\u304F\u3060\u3055\u3044\u3002
   5392 <a href="#l5373" class="line" id="l5373">   5373</a> &lt;a href=&quot;#l5354&quot; class=&quot;line&quot; id=&quot;l5354&quot;&gt;   5354&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-254&amp;quot; id=&amp;quot;h4-0-254&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5393 <a href="#l5374" class="line" id="l5374">   5374</a> &lt;a href=&quot;#l5355&quot; class=&quot;line&quot; id=&quot;l5355&quot;&gt;   5355&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-255&amp;quot; id=&amp;quot;h4-0-255&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,redeclaredVariable:`
   5394 <a href="#l5375" class="line" id="l5375">   5375</a> &lt;a href=&quot;#l5356&quot; class=&quot;line&quot; id=&quot;l5356&quot;&gt;   5356&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-256&amp;quot; id=&amp;quot;h4-0-256&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u69CB\u6587\u30A8\u30E9\u30FC - &amp;amp;quot;{{symbol}}&amp;amp;quot; \u304C\u518D\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u3059\u3002JavaScript\u3067\u306F\u5909\u6570\u3092\u518D\u5BA3\u8A00\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002\u30A8\u30E9\u30FC\u306E\u884C\u756A\u53F7\u3067\u305D\u306E\u5909\u6570\u304C\u518D\u5BA3\u8A00\u3055\u308C\u3066\u3044\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5395 <a href="#l5376" class="line" id="l5376">   5376</a> &lt;a href=&quot;#l5357&quot; class=&quot;line&quot; id=&quot;l5357&quot;&gt;   5357&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-257&amp;quot; id=&amp;quot;h4-0-257&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5396 <a href="#l5377" class="line" id="l5377">   5377</a> &lt;a href=&quot;#l5358&quot; class=&quot;line&quot; id=&quot;l5358&quot;&gt;   5358&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-258&amp;quot; id=&amp;quot;h4-0-258&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,unexpectedToken:`
   5397 <a href="#l5378" class="line" id="l5378">   5378</a> &lt;a href=&quot;#l5359&quot; class=&quot;line&quot; id=&quot;l5359&quot;&gt;   5359&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-259&amp;quot; id=&amp;quot;h4-0-259&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u69CB\u6587\u30A8\u30E9\u30FC - \u4E88\u671F\u3057\u306A\u3044\u5834\u6240\u306B\u30B7\u30F3\u30DC\u30EB\u304C\u3042\u308A\u307E\u3059\u3002
   5398 <a href="#l5379" class="line" id="l5379">   5379</a> &lt;a href=&quot;#l5360&quot; class=&quot;line&quot; id=&quot;l5360&quot;&gt;   5360&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-260&amp;quot; id=&amp;quot;h4-0-260&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u901A\u5E38\u306F\u30BF\u30A4\u30D7\u30DF\u30B9\u304C\u539F\u56E0\u3067\u3059\u3002\u30A8\u30E9\u30FC\u5185\u306E\u884C\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001\u4E0D\u8DB3\u3084\u4F59\u5206\u306A\u3082\u306E\u304C\u306A\u3044\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5399 <a href="#l5380" class="line" id="l5380">   5380</a> &lt;a href=&quot;#l5361&quot; class=&quot;line&quot; id=&quot;l5361&quot;&gt;   5361&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-261&amp;quot; id=&amp;quot;h4-0-261&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5400 <a href="#l5381" class="line" id="l5381">   5381</a> &lt;a href=&quot;#l5362&quot; class=&quot;line&quot; id=&quot;l5362&quot;&gt;   5362&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-262&amp;quot; id=&amp;quot;h4-0-262&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`},type:{constAssign:`
   5401 <a href="#l5382" class="line" id="l5382">   5382</a> &lt;a href=&quot;#l5363&quot; class=&quot;line&quot; id=&quot;l5363&quot;&gt;   5363&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-263&amp;quot; id=&amp;quot;h4-0-263&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} \u5B9A\u6570\u306B\u518D\u4EE3\u5165\u3057\u3066\u3044\u307E\u3059\u3002JavaScript\u3067\u306F\u5B9A\u6570\u306B\u5BFE\u3059\u308B\u518D\u4EE3\u5165\u306F\u8A31\u53EF\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u5909\u6570\u306B\u518D\u4EE3\u5165\u3057\u305F\u3044\u5834\u5408\u306F\u3001 var \u307E\u305F\u306F let \u3067\u5BA3\u8A00\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5402 <a href="#l5383" class="line" id="l5383">   5383</a> &lt;a href=&quot;#l5364&quot; class=&quot;line&quot; id=&quot;l5364&quot;&gt;   5364&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-264&amp;quot; id=&amp;quot;h4-0-264&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5403 <a href="#l5384" class="line" id="l5384">   5384</a> &lt;a href=&quot;#l5365&quot; class=&quot;line&quot; id=&quot;l5365&quot;&gt;   5365&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-265&amp;quot; id=&amp;quot;h4-0-265&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,notfunc:`
   5404 <a href="#l5385" class="line" id="l5385">   5385</a> &lt;a href=&quot;#l5366&quot; class=&quot;line&quot; id=&quot;l5366&quot;&gt;   5366&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-266&amp;quot; id=&amp;quot;h4-0-266&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; \u3092\u95A2\u6570\u3068\u3057\u3066\u547C\u3073\u51FA\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002
   5405 <a href="#l5386" class="line" id="l5386">   5386</a> &lt;a href=&quot;#l5367&quot; class=&quot;line&quot; id=&quot;l5367&quot;&gt;   5367&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-267&amp;quot; id=&amp;quot;h4-0-267&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u30B9\u30DA\u30EB\u3001\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57(JavaScript\u306F\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3057\u307E\u3059)\u3001\u305D\u306E\u30BF\u30A4\u30D7\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5406 <a href="#l5387" class="line" id="l5387">   5387</a> &lt;a href=&quot;#l5368&quot; class=&quot;line&quot; id=&quot;l5368&quot;&gt;   5368&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-268&amp;quot; id=&amp;quot;h4-0-268&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5407 <a href="#l5388" class="line" id="l5388">   5388</a> &lt;a href=&quot;#l5369&quot; class=&quot;line&quot; id=&quot;l5369&quot;&gt;   5369&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-269&amp;quot; id=&amp;quot;h4-0-269&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,notfuncObj:`
   5408 <a href="#l5389" class="line" id="l5389">   5389</a> &lt;a href=&quot;#l5370&quot; class=&quot;line&quot; id=&quot;l5370&quot;&gt;   5370&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-270&amp;quot; id=&amp;quot;h4-0-270&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; \u3092\u95A2\u6570\u3068\u3057\u3066\u547C\u3073\u51FA\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002
   5409 <a href="#l5390" class="line" id="l5390">   5390</a> &lt;a href=&quot;#l5371&quot; class=&quot;line&quot; id=&quot;l5371&quot;&gt;   5371&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-271&amp;quot; id=&amp;quot;h4-0-271&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{obj}} \u306E\u4E2D\u306B &amp;amp;quot;{{symbol}}&amp;amp;quot; \u304C\u3042\u308B\u304B\u3069\u3046\u304B\u3001\u30B9\u30DA\u30EB\u3001\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57(JavaScript\u306F\u5927\u6587\u5B57\u3068\u5C0F\u6587\u5B57\u3092\u533A\u5225\u3057\u307E\u3059)\u3001\u304A\u3088\u3073\u305D\u306E\u30BF\u30A4\u30D7\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5410 <a href="#l5391" class="line" id="l5391">   5391</a> &lt;a href=&quot;#l5372&quot; class=&quot;line&quot; id=&quot;l5372&quot;&gt;   5372&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-272&amp;quot; id=&amp;quot;h4-0-272&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5411 <a href="#l5392" class="line" id="l5392">   5392</a> &lt;a href=&quot;#l5373&quot; class=&quot;line&quot; id=&quot;l5373&quot;&gt;   5373&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-273&amp;quot; id=&amp;quot;h4-0-273&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,readFromNull:`
   5412 <a href="#l5393" class="line" id="l5393">   5393</a> &lt;a href=&quot;#l5374&quot; class=&quot;line&quot; id=&quot;l5374&quot;&gt;   5374&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-274&amp;quot; id=&amp;quot;h4-0-274&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} null \u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8AAD\u307F\u53D6\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002JavaScript\u3067\u306F\u3001null \u306F\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u304C\u5024\u3092\u6301\u305F\u306A\u3044\u3053\u3068\u3092\u610F\u5473\u3057\u307E\u3059\u3002
   5413 <a href="#l5394" class="line" id="l5394">   5394</a> &lt;a href=&quot;#l5375&quot; class=&quot;line&quot; id=&quot;l5375&quot;&gt;   5375&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-275&amp;quot; id=&amp;quot;h4-0-275&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5414 <a href="#l5395" class="line" id="l5395">   5395</a> &lt;a href=&quot;#l5376&quot; class=&quot;line&quot; id=&quot;l5376&quot;&gt;   5376&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-276&amp;quot; id=&amp;quot;h4-0-276&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,readFromUndefined:`
   5415 <a href="#l5396" class="line" id="l5396">   5396</a> &lt;a href=&quot;#l5377&quot; class=&quot;line&quot; id=&quot;l5377&quot;&gt;   5377&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-277&amp;quot; id=&amp;quot;h4-0-277&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} undefined \u306E\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8AAD\u307F\u53D6\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\u3002\u30A8\u30E9\u30FC\u306E\u884C\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001\u64CD\u4F5C\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308B\u5909\u6570\u304C undefined \u3067\u306A\u3044\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5416 <a href="#l5397" class="line" id="l5397">   5397</a> &lt;a href=&quot;#l5378&quot; class=&quot;line&quot; id=&quot;l5378&quot;&gt;   5378&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-278&amp;quot; id=&amp;quot;h4-0-278&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5417 <a href="#l5398" class="line" id="l5398">   5398</a> &lt;a href=&quot;#l5379&quot; class=&quot;line&quot; id=&quot;l5379&quot;&gt;   5379&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-279&amp;quot; id=&amp;quot;h4-0-279&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`}},libraryError:&amp;amp;#39;{{location}} {{func}} \u3092\u547C\u3073\u51FA\u3057\u305F\u969B\u306B\u3001p5js\u30E9\u30A4\u30D6\u30E9\u30EA\u5185\u3067\u30E1\u30C3\u30BB\u30FC\u30B8 &amp;amp;quot;{{error}}&amp;amp;quot; \u306E\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u7279\u306B\u8A18\u8FF0\u304C\u306A\u3051\u308C\u3070\u3001 {{func}} \u306B\u6E21\u3055\u308C\u305F\u5F15\u6570\u306B\u95A2\u3059\u308B\u554F\u984C\u304C\u3042\u308B\u3053\u3068\u304C\u591A\u3044\u3067\u3059\u3002&amp;amp;#39;,location:&amp;amp;quot;[{{file}}, {{line}}\u884C\u76EE]&amp;amp;quot;,misspelling:&amp;amp;#39;{{location}} &amp;amp;quot;{{actualName}}&amp;amp;quot; \u3067\u306F\u306A\u304F\u3001\u8AA4\u3063\u3066 &amp;amp;quot;{{name}}&amp;amp;quot; \u3068\u66F8\u3044\u3066\u3057\u307E\u3063\u305F\u3088\u3046\u3067\u3059\u3002p5.js\u5185\u306E {{type}} \u3092\u4F7F\u7528\u3057\u305F\u3044\u5834\u5408\u306F\u3001 {{actualName}} \u306B\u4FEE\u6B63\u3057\u3066\u304F\u3060\u3055\u3044\u3002&amp;amp;#39;,misspelling_plural:`{{location}} \u3082\u3057\u304B\u3059\u308B\u3068\u8AA4\u3063\u3066 &amp;amp;quot;{{name}}&amp;amp;quot; \u3068\u66F8\u3044\u3066\u3044\u308B\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002
   5418 <a href="#l5399" class="line" id="l5399">   5399</a> &lt;a href=&quot;#l5380&quot; class=&quot;line&quot; id=&quot;l5380&quot;&gt;   5380&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-280&amp;quot; id=&amp;quot;h4-0-280&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u4EE5\u4E0B\u306E\u3044\u305A\u308C\u304B\u306E\u5019\u88DC\u304C\u3042\u308A\u307E\u3059:
   5419 <a href="#l5400" class="line" id="l5400">   5400</a> &lt;a href=&quot;#l5381&quot; class=&quot;line&quot; id=&quot;l5381&quot;&gt;   5381&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-281&amp;quot; id=&amp;quot;h4-0-281&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{suggestions}}`,misusedTopLevel:`p5.js\u306E {{symbolType}} {{symbolName}} \u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F\u304B\uFF1F\u3082\u3057\u305D\u3046\u306A\u3089\u3001\u305D\u308C\u3092\u30B9\u30B1\u30C3\u30C1\u306E setup()\u95A2\u6570\u5185\u306B\u79FB\u52D5\u3055\u305B\u3066\u304F\u3060\u3055\u3044\u3002
   5420 <a href="#l5401" class="line" id="l5401">   5401</a> &lt;a href=&quot;#l5382&quot; class=&quot;line&quot; id=&quot;l5382&quot;&gt;   5382&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-282&amp;quot; id=&amp;quot;h4-0-282&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5421 <a href="#l5402" class="line" id="l5402">   5402</a> &lt;a href=&quot;#l5383&quot; class=&quot;line&quot; id=&quot;l5383&quot;&gt;   5383&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-283&amp;quot; id=&amp;quot;h4-0-283&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,positions:{p_1:&amp;amp;quot;\u7B2C1&amp;amp;quot;,p_10:&amp;amp;quot;\u7B2C10&amp;amp;quot;,p_11:&amp;amp;quot;\u7B2C11&amp;amp;quot;,p_12:&amp;amp;quot;\u7B2C12&amp;amp;quot;,p_2:&amp;amp;quot;\u7B2C2&amp;amp;quot;,p_3:&amp;amp;quot;\u7B2C3&amp;amp;quot;,p_4:&amp;amp;quot;\u7B2C4&amp;amp;quot;,p_5:&amp;amp;quot;\u7B2C5&amp;amp;quot;,p_6:&amp;amp;quot;\u7B2C6&amp;amp;quot;,p_7:&amp;amp;quot;\u7B2C7&amp;amp;quot;,p_8:&amp;amp;quot;\u7B2C8&amp;amp;quot;,p_9:&amp;amp;quot;\u7B2C9&amp;amp;quot;},pre:`
   5422 <a href="#l5403" class="line" id="l5403">   5403</a> &lt;a href=&quot;#l5384&quot; class=&quot;line&quot; id=&quot;l5384&quot;&gt;   5384&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-284&amp;quot; id=&amp;quot;h4-0-284&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u{1F338} p5.js\u304C\u8A00\u3063\u3066\u3044\u307E\u3059: {{message}}`,sketchReaderErrors:{reservedConst:`p5.js\u306E\u4E88\u7D04\u6E08\u307F\u5909\u6570 &amp;amp;quot;{{symbol}}&amp;amp;quot; \u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u3002\u5909\u6570\u540D\u3092\u4ED6\u306E\u540D\u524D\u306B\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5423 <a href="#l5404" class="line" id="l5404">   5404</a> &lt;a href=&quot;#l5385&quot; class=&quot;line&quot; id=&quot;l5385&quot;&gt;   5385&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-285&amp;quot; id=&amp;quot;h4-0-285&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5424 <a href="#l5405" class="line" id="l5405">   5405</a> &lt;a href=&quot;#l5386&quot; class=&quot;line&quot; id=&quot;l5386&quot;&gt;   5386&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-286&amp;quot; id=&amp;quot;h4-0-286&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`,reservedFunc:`p5.js\u306E\u4E88\u7D04\u6E08\u307F\u95A2\u6570 &amp;amp;quot;{{symbol}}&amp;amp;quot; \u3092\u4F7F\u7528\u3057\u307E\u3057\u305F\u3002\u95A2\u6570\u540D\u3092\u4ED6\u306E\u540D\u524D\u306B\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002
   5425 <a href="#l5406" class="line" id="l5406">   5406</a> &lt;a href=&quot;#l5387&quot; class=&quot;line&quot; id=&quot;l5387&quot;&gt;   5387&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-287&amp;quot; id=&amp;quot;h4-0-287&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5426 <a href="#l5407" class="line" id="l5407">   5407</a> &lt;a href=&quot;#l5388&quot; class=&quot;line&quot; id=&quot;l5388&quot;&gt;   5388&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-288&amp;quot; id=&amp;quot;h4-0-288&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ \u8A73\u7D30\u60C5\u5831: {{url}}`},welcome:&amp;amp;quot;\u3088\u3046\u3053\u305D\uFF01\u3053\u308C\u306F\u3042\u306A\u305F\u306E\u30D5\u30EC\u30F3\u30C9\u30EA\u30FC\u306A\u30C7\u30D0\u30C3\u30AC\u30FC\u3067\u3059\u3002\u30AA\u30D5\u306B\u3059\u308B\u306B\u306F\u3001p5.min.js\u306B\u5207\u308A\u66FF\u3048\u3066\u304F\u3060\u3055\u3044\u3002&amp;amp;quot;,wrongPreload:&amp;amp;#39;{{location}} p5.js\u30E9\u30A4\u30D6\u30E9\u30EA\u5185\u90E8\u3067 &amp;amp;quot;{{error}}&amp;amp;quot; \u3068\u3044\u3046\u30E1\u30C3\u30BB\u30FC\u30B8\u306E\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002\u7279\u306B\u8A18\u8F09\u304C\u306A\u3044\u5834\u5408\u3001preload\u304B\u3089 &amp;amp;quot;{{func}}&amp;amp;quot; \u304C\u547C\u3073\u51FA\u3055\u308C\u305F\u3053\u3068\u304C\u539F\u56E0\u304B\u3082\u3057\u308C\u307E\u305B\u3093\u3002load\u547C\u3073\u51FA\u3057(loadImage\u3001loadJSON\u3001loadFont\u3001loadStrings\u306A\u3069)\u4EE5\u5916\u306E\u3082\u306E\u306F\u3001preload\u95A2\u6570\u306E\u4E2D\u306B\u5165\u308C\u3066\u306F\u306A\u308A\u307E\u305B\u3093\u3002&amp;amp;#39;}}});var C0={};Jy(C0,{en_translation:()=&amp;amp;gt;f0,es_translation:()=&amp;amp;gt;d0,hi_translation:()=&amp;amp;gt;b0,ja_translation:()=&amp;amp;gt;w0,ko_translation:()=&amp;amp;gt;g0,zh_translation:()=&amp;amp;gt;v0});var E0=ln(()=&amp;amp;gt;{c0();p0();m0();y0();x0();_0()});var Xs=ut(ep=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;Object.defineProperty(ep,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0});var P2=function(){function i(){}return i.parse=function(t){for(var r=new Set,n=0,s=t;n&amp;amp;lt;s.length;n++){var a=s[n];if(!i.REGEXP.test(a))throw new TypeError(&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;+a+&amp;amp;#39;&amp;amp;quot; is invalid unicode-range.&amp;amp;#39;);var o=a.match(i.REGEXP),u=o[1],h=o[2],l=o[3];if(u){if(/\?[^?]+$/.test(u))throw new TypeError(&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;+a+&amp;amp;#39;&amp;amp;quot; is invalid unicode-range.&amp;amp;#39;);if(u.includes(&amp;amp;quot;?&amp;amp;quot;))for(var c=u.replace(/\?/g,&amp;amp;quot;0&amp;amp;quot;),p=u.replace(/\?/g,&amp;amp;quot;F&amp;amp;quot;),f=i.parse([&amp;amp;quot;U+&amp;amp;quot;+c+&amp;amp;quot;-&amp;amp;quot;+p]),d=0,m=f;d&amp;amp;lt;m.length;d++){var g=m[d];r.add(g)}else r.add(parseInt(u,16))}if(h&amp;amp;amp;&amp;amp;amp;l)for(var v=parseInt(h,16),w=parseInt(l,16),g=v;g&amp;amp;lt;=w;g++)r.add(g)}return Array.from(r).sort(function(y,S){return y-S})},i.stringify=function(t){for(var r=Array.from(new Set(t)).sort(function(h,l){return h-l}),n=[],s,a=0;a&amp;amp;lt;r.length;a++){var o=r[a],u=r[a-1];s&amp;amp;amp;&amp;amp;amp;o-u!==1&amp;amp;amp;&amp;amp;amp;(n.push(i.rangeString(s,u)),s=o),s||(s=o),a===r.length-1&amp;amp;amp;&amp;amp;amp;(s===o?n.push(i.rangeString(o)):n.push(i.rangeString(s,o)))}return n},i.rangeString=function(t,r){return!r||t===r?&amp;amp;quot;U+&amp;amp;quot;+t.toString(16):&amp;amp;quot;U+&amp;amp;quot;+t.toString(16)+&amp;amp;quot;-&amp;amp;quot;+r.toString(16)},i.REGEXP=/^u\+(?:([0-9a-f]?[0-9a-f?]{1,5})|([0-9a-f]{1,6})-([0-9a-f]{1,6}))?$/i,i}();ep.UnicodeRange=P2});var aa=ut((ql,Ip)=&amp;amp;gt;{(function(i,t){typeof ql==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof Ip==&amp;amp;quot;object&amp;amp;quot;?Ip.exports=t():typeof define==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;define.amd?define([],t):typeof ql==&amp;amp;quot;object&amp;amp;quot;?ql.BezierPath=t():i.BezierPath=t()})(self,()=&amp;amp;gt;(()=&amp;amp;gt;{&amp;amp;quot;use strict&amp;amp;quot;;var i={177:(r,n,s)=&amp;amp;gt;{Object.defineProperty(n,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0}),n.BezierPath=void 0;let a=s(558),o=s(188);n.BezierPath=class{constructor(u){this.samples=[],this.segments=u;let h=u.map(m=&amp;amp;gt;m.getTotalLength()),l=[0];for(let m=1;m&amp;amp;lt;h.length;m++)l.push(l[m-1]+h[m-1]);this._totalLength=l[l.length-1]+h[h.length-1];let c=u.map(m=&amp;amp;gt;Math.max(4,Math.ceil(m.getTotalLength()/a.BezierSegment.sampleSpacing()))),p=c.reduce((m,g)=&amp;amp;gt;m+g),f=1/p/10,d=this._totalLength/p;this.samples.push({dist:0,pt:this.segments[0].A,tan:this.segments[0].tangentAtParameter(0),segIdx:0,t:0}),u.forEach((m,g)=&amp;amp;gt;{let v=c[g],w=(0,o.times)(v+1).map(b=&amp;amp;gt;b/v),y=w.map(b=&amp;amp;gt;m.pointAtParameter(b)),S;for(let b=0;b&amp;amp;lt;4;b++){S=(0,o.times)(v).map(A=&amp;amp;gt;Math.hypot(y[A+1].x-y[A].x,y[A+1].y-y[A].y));let I=S.map(A=&amp;amp;gt;A-d),E=0;for(let A=1;A&amp;amp;lt;w.length-1;A++)E+=I[A-1],w[A]-=f*E,y[A]=m.pointAtParameter(w[A])}let _=0;y.slice(1).forEach((b,I)=&amp;amp;gt;{_+=S[I],this.samples.push({dist:l[g]+_,pt:b,tan:this.segments[g].tangentAtParameter(w[I+1]),segIdx:g,t:w[I+1]})})}),this._jumps=[],this.segmentStartEnds=[{start:0,end:0}];for(let m=1;m&amp;amp;lt;this.samples.length;m++){let g=this.samples[m-1],v=this.samples[m];if(v.segIdx===g.segIdx?this.segmentStartEnds[this.segmentStartEnds.length-1].end=v.dist:this.segmentStartEnds[v.segIdx]={start:v.dist,end:v.dist},g.segIdx!==v.segIdx&amp;amp;amp;&amp;amp;amp;(this.segments[g.segIdx].D.x!==this.segments[v.segIdx].A.x||this.segments[g.segIdx].D.y!==this.segments[v.segIdx].A.y)){let w=(g.dist+v.dist)/2,y={dist:w-1e-8,pt:this.segments[g.segIdx].D,tan:this.segments[g.segIdx].tangentAtParameter(1),segIdx:g.segIdx,t:1},S={dist:w+1e-8,pt:this.segments[v.segIdx].A,tan:this.segments[v.segIdx].tangentAtParameter(0),segIdx:v.segIdx,t:0};this._jumps.push(w),this.samples.splice(m,0,y,S),m+=2}}}jumps(){return[...this._jumps]}getTotalLength(){return this._totalLength}findClosestSampleIdx(u){let h=0,l=this.samples.length-1;for(;h&amp;amp;lt;l;){let c=Math.floor((h+l)/2);if(this.samples[c].dist&amp;amp;gt;u)l=c-1;else{if(!(this.samples[c].dist&amp;amp;lt;u))return c;h=c+1}}return Math.max(0,Math.min(this.samples.length-1,Math.floor((h+l)/2)))}getPointAtLength(u,h=!1){if(u&amp;amp;lt;=0)return this.samples[0].pt;if(u&amp;amp;gt;=this._totalLength)return this.samples[this.samples.length-1].pt;let l=this.findClosestSampleIdx(u),c=this.samples[l].dist&amp;amp;lt;u?Math.min(l+1,this.samples.length-1):Math.max(0,l-1),p=Math.abs(this.samples[c].dist-this.samples[l].dist)&amp;amp;lt;1e-6?0:(u-this.samples[l].dist)/(this.samples[c].dist-this.samples[l].dist);if(h||this.samples[l].segIdx&amp;amp;gt;this.samples[c].segIdx)return{x:(1-p)*this.samples[l].pt.x+p*this.samples[c].pt.x,y:(1-p)*this.samples[l].pt.y+p*this.samples[c].pt.y};if(this.samples[l].segIdx!==this.samples[c].segIdx){if(p&amp;amp;lt;.5){let f=this.segments[this.samples[l].segIdx],d=2*p,m=(1-d)*this.samples[l].t+d;return f.pointAtParameter(m)}{let f=this.segments[this.samples[c].segIdx],d=2*(p-.5)*this.samples[c].t;return f.pointAtParameter(d)}}{let f=this.segments[this.samples[l].segIdx],d=(1-p)*this.samples[l].t+p*this.samples[c].t;return f.pointAtParameter(d)}}getAngleAtLength(u,h=!1){let l=this.getTangentAtLength(u,h);return Math.atan2(l.y,l.x)}getTangentAtLength(u,h=!1){if(u&amp;amp;lt;=0)return this.samples[0].tan;if(u&amp;amp;gt;=this._totalLength)return this.samples[this.samples.length-1].tan;let l=this.findClosestSampleIdx(u),c=this.samples[l].dist&amp;amp;lt;u?Math.min(l+1,this.samples.length-1):Math.max(0,l-1),p=(u-this.samples[l].dist)/(this.samples[c].dist-this.samples[l].dist);if(h||this.samples[l].segIdx&amp;amp;gt;this.samples[c].segIdx){let f=(1-p)*this.samples[l].tan.x+p*this.samples[c].tan.x,d=(1-p)*this.samples[l].tan.y+p*this.samples[c].tan.y,m=Math.max(Math.hypot(f,d),1e-4);return f/=m,d/=m,{x:f,y:d}}if(this.samples[l].segIdx!==this.samples[c].segIdx){if(p&amp;amp;lt;.5){let f=this.segments[this.samples[l].segIdx],d=2*p,m=(1-d)*this.samples[l].t+d;return f.tangentAtParameter(m)}{let f=this.segments[this.samples[c].segIdx],d=2*(p-.5)*this.samples[c].t;return f.tangentAtParameter(d)}}{let f=this.segments[this.samples[l].segIdx],d=(1-p)*this.samples[l].t+p*this.samples[c].t;return f.tangentAtParameter(d)}}}},558:(r,n,s)=&amp;amp;gt;{Object.defineProperty(n,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0}),n.BezierSegment=void 0;let a=s(188);class o{constructor(h,l,c,p){this._totalLength=void 0,this.A=h,this.B=l,this.C=c,this.D=p}static sampleSpacing(){return 2}tangentAtParameter(h){let l=Math.max(0,Math.min(1,h));if(l===0||l===1){let m,g;l===0?this.A.x===this.B.x&amp;amp;amp;&amp;amp;amp;this.A.y===this.B.y?(m=this.C.x-this.A.x,g=this.C.y-this.A.y):(m=this.B.x-this.A.x,g=this.B.y-this.A.y):this.D.x===this.C.x&amp;amp;amp;&amp;amp;amp;this.D.y===this.C.y?(m=this.D.x-this.B.x,g=this.D.y-this.B.y):(m=this.D.x-this.C.x,g=this.D.y-this.C.y);let v=Math.hypot(m,g);return Math.abs(v)&amp;amp;gt;1e-4&amp;amp;amp;&amp;amp;amp;(m/=v,g/=v),{x:m,y:g}}let c=1-l,p=3*this.D.x*Math.pow(l,2)-3*this.C.x*Math.pow(l,2)+6*this.C.x*c*l-6*this.B.x*c*l+3*this.B.x*Math.pow(c,2)-3*this.A.x*Math.pow(c,2),f=3*this.D.y*Math.pow(l,2)-3*this.C.y*Math.pow(l,2)+6*this.C.y*c*l-6*this.B.y*c*l+3*this.B.y*Math.pow(c,2)-3*this.A.y*Math.pow(c,2),d=Math.hypot(p,f);return Math.abs(d)&amp;amp;gt;1e-4&amp;amp;amp;&amp;amp;amp;(p/=d,f/=d),{x:p,y:f}}isLinear(){return this.A.x===this.B.x&amp;amp;amp;&amp;amp;amp;this.A.y===this.B.y&amp;amp;amp;&amp;amp;amp;this.C.x===this.D.x&amp;amp;amp;&amp;amp;amp;this.C.y===this.D.y}pointAtParameter(h){let l=Math.max(0,Math.min(1,h));return{x:Math.pow(1-l,3)*this.A.x+3*Math.pow(1-l,2)*l*this.B.x+3*(1-l)*Math.pow(l,2)*this.C.x+Math.pow(l,3)*this.D.x,y:Math.pow(1-l,3)*this.A.y+3*Math.pow(1-l,2)*l*this.B.y+3*(1-l)*Math.pow(l,2)*this.C.y+Math.pow(l,3)*this.D.y}}getTotalLength(){if(this._totalLength===void 0)if(this.isLinear())this._totalLength=Math.hypot(this.D.x-this.A.x,this.D.y-this.A.y);else{let h=Math.max(10,Math.ceil((Math.hypot(this.B.x-this.A.x,this.B.y-this.A.y)+Math.hypot(this.C.x-this.B.x,this.C.y-this.B.y)+Math.hypot(this.D.x-this.C.x,this.D.y-this.C.y))/o.sampleSpacing())),l=(0,a.times)(h).map(p=&amp;amp;gt;this.pointAtParameter(p/(h-1))),c=0;for(let p=1;p&amp;amp;lt;l.length;p++)c+=Math.hypot(l[p].x-l[p-1].x,l[p].y-l[p-1].y);this._totalLength=c}return this._totalLength}}n.BezierSegment=o},729:(r,n,s)=&amp;amp;gt;{Object.defineProperty(n,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0}),n.createFromCommands=n.create=n.createFromElement=n.createFromCircle=n.createFromLine=n.createFromPath=void 0;let a=s(821),o=s(558),u={M:[&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;],m:[&amp;amp;quot;dx&amp;amp;quot;,&amp;amp;quot;dy&amp;amp;quot;],H:[&amp;amp;quot;x&amp;amp;quot;],h:[&amp;amp;quot;dx&amp;amp;quot;],V:[&amp;amp;quot;y&amp;amp;quot;],v:[&amp;amp;quot;dy&amp;amp;quot;],L:[&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;],l:[&amp;amp;quot;dx&amp;amp;quot;,&amp;amp;quot;dy&amp;amp;quot;],Z:[],C:[&amp;amp;quot;x1&amp;amp;quot;,&amp;amp;quot;y1&amp;amp;quot;,&amp;amp;quot;x2&amp;amp;quot;,&amp;amp;quot;y2&amp;amp;quot;,&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;],c:[&amp;amp;quot;dx1&amp;amp;quot;,&amp;amp;quot;dy1&amp;amp;quot;,&amp;amp;quot;dx2&amp;amp;quot;,&amp;amp;quot;dy2&amp;amp;quot;,&amp;amp;quot;dx&amp;amp;quot;,&amp;amp;quot;dy&amp;amp;quot;],S:[&amp;amp;quot;x2&amp;amp;quot;,&amp;amp;quot;y2&amp;amp;quot;,&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;],s:[&amp;amp;quot;dx2&amp;amp;quot;,&amp;amp;quot;dy2&amp;amp;quot;,&amp;amp;quot;dx&amp;amp;quot;,&amp;amp;quot;dy&amp;amp;quot;],Q:[&amp;amp;quot;x1&amp;amp;quot;,&amp;amp;quot;y1&amp;amp;quot;,&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;],q:[&amp;amp;quot;dx1&amp;amp;quot;,&amp;amp;quot;dy1&amp;amp;quot;,&amp;amp;quot;dx&amp;amp;quot;,&amp;amp;quot;dy&amp;amp;quot;],T:[&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;],t:[&amp;amp;quot;dx&amp;amp;quot;,&amp;amp;quot;dy&amp;amp;quot;],A:[&amp;amp;quot;rx&amp;amp;quot;,&amp;amp;quot;ry&amp;amp;quot;,&amp;amp;quot;rotation&amp;amp;quot;,&amp;amp;quot;large-arc&amp;amp;quot;,&amp;amp;quot;sweep&amp;amp;quot;,&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;],a:[&amp;amp;quot;rx&amp;amp;quot;,&amp;amp;quot;ry&amp;amp;quot;,&amp;amp;quot;rotation&amp;amp;quot;,&amp;amp;quot;large-arc&amp;amp;quot;,&amp;amp;quot;sweep&amp;amp;quot;,&amp;amp;quot;dx&amp;amp;quot;,&amp;amp;quot;dy&amp;amp;quot;]};n.createFromPath=h=&amp;amp;gt;{let l=function(f){let d=f.replace(/[\n\r]/g,&amp;amp;quot;&amp;amp;quot;).replace(/-/g,&amp;amp;quot; -&amp;amp;quot;).replace(/(\d*\.)(\d+)(?=\.)/g,&amp;amp;quot;$1$2 &amp;amp;quot;).replace(/(\d)([A-Za-z])/g,&amp;amp;quot;$1 $2&amp;amp;quot;).replace(/([A-Za-z])(\d)/g,&amp;amp;quot;$1 $2&amp;amp;quot;).trim().split(/\s*,|\s+/),m=[],g=&amp;amp;quot;&amp;amp;quot;,v={};for(;d.length&amp;amp;gt;0;){let w=d.shift();u.hasOwnProperty(w)?g=w:d.unshift(w),v={type:g},u[g].forEach(y=&amp;amp;gt;{w=d.shift(),v[y]=parseFloat(w)}),g===&amp;amp;quot;M&amp;amp;quot;?g=&amp;amp;quot;L&amp;amp;quot;:g===&amp;amp;quot;m&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(g=&amp;amp;quot;l&amp;amp;quot;),m.push(v)}return m}(h.getAttribute(&amp;amp;quot;d&amp;amp;quot;));if(l.length&amp;amp;lt;2)throw new Error(`Path doesn&amp;amp;#39;t have enough commands: ${JSON.stringify(l)}`);if(l[0].type!==&amp;amp;quot;M&amp;amp;quot;)throw new Error(`Path starts with ${l[0].type} instead of M!`);let c={x:l[0].x,y:l[0].y};l.shift();let p=[];for(;l.length&amp;amp;gt;0;){let f=l.shift();if(f.type===&amp;amp;quot;C&amp;amp;quot;)p.push(new o.BezierSegment(c,{x:f.x1,y:f.y1},{x:f.x2,y:f.y2},{x:f.x,y:f.y})),c={x:f.x,y:f.y};else if(f.type===&amp;amp;quot;L&amp;amp;quot;)p.push(new o.BezierSegment(c,c,{x:f.x,y:f.y},{x:f.x,y:f.y})),c={x:f.x,y:f.y};else if(f.type===&amp;amp;quot;H&amp;amp;quot;)p.push(new o.BezierSegment(c,c,{x:f.x,y:c.y},{x:f.x,y:c.y})),c={x:f.x,y:c.y};else if(f.type===&amp;amp;quot;V&amp;amp;quot;)p.push(new o.BezierSegment(c,c,{x:c.x,y:f.y},{x:c.x,y:f.y})),c={x:c.x,y:f.y};else if(f.type!==&amp;amp;quot;Z&amp;amp;quot;)throw new Error(`Unsupported path command ${f.type}; use only H, V, M, L, C, Z!`)}return new a.BezierPath(p)},n.createFromLine=h=&amp;amp;gt;{let[l,c,p,f]=[&amp;amp;quot;x1&amp;amp;quot;,&amp;amp;quot;x2&amp;amp;quot;,&amp;amp;quot;y1&amp;amp;quot;,&amp;amp;quot;y2&amp;amp;quot;].map(d=&amp;amp;gt;parseFloat(h.getAttribute(d)||&amp;amp;quot;0&amp;amp;quot;));return new a.BezierPath([new o.BezierSegment({x:l,y:p},{x:l,y:p},{x:c,y:f},{x:c,y:f})])},n.createFromCircle=h=&amp;amp;gt;{let[l,c,p]=[&amp;amp;quot;cx&amp;amp;quot;,&amp;amp;quot;cy&amp;amp;quot;,&amp;amp;quot;r&amp;amp;quot;].map(d=&amp;amp;gt;parseFloat(h.getAttribute(d)||&amp;amp;quot;0&amp;amp;quot;)),f=1.3;return new a.BezierPath([new o.BezierSegment({x:l-p,y:c},{x:l-p,y:c-f*p},{x:l+p,y:c-f*p},{x:l+p,y:c}),new o.BezierSegment({x:l+p,y:c},{x:l+p,y:c+f*p},{x:l-p,y:c+f*p},{x:l-p,y:c})])},n.createFromElement=h=&amp;amp;gt;{let l=h.tagName.toLowerCase();if(l===&amp;amp;quot;path&amp;amp;quot;)return(0,n.createFromPath)(h);if(l===&amp;amp;quot;line&amp;amp;quot;)return(0,n.createFromLine)(h);if(l===&amp;amp;quot;circle&amp;amp;quot;)return(0,n.createFromCircle)(h);throw new Error(`Unsupported SVG tag: ${l}`)},n.create=h=&amp;amp;gt;{let l=[];for(let c=1;c&amp;amp;lt;h.length;c++){let p=h[c-1],f=h[c];l.push(new o.BezierSegment(p.pt,p.right||p.pt,f.left||f.pt,f.pt))}return new a.BezierPath(l)},n.createFromCommands=h=&amp;amp;gt;{let l=h.slice();if(l.length&amp;amp;lt;2)throw new Error(`Path doesn&amp;amp;#39;t have enough commands: ${JSON.stringify(l)}`);if(l[0].type!==&amp;amp;quot;M&amp;amp;quot;)throw new Error(`Path starts with ${l[0].type} instead of M!`);let c={x:l[0].x,y:l[0].y},p=Object.assign({},c),f=[];for(;l.length&amp;amp;gt;0;){let d=l.shift();if(d.type===&amp;amp;quot;M&amp;amp;quot;)p={x:d.x,y:d.y},c=p;else if(d.type===&amp;amp;quot;C&amp;amp;quot;)f.push(new o.BezierSegment(c,{x:d.x1,y:d.y1},{x:d.x2,y:d.y2},{x:d.x,y:d.y})),c={x:d.x,y:d.y};else if(d.type===&amp;amp;quot;L&amp;amp;quot;)d.x===c.x&amp;amp;amp;&amp;amp;amp;d.y===c.y||f.push(new o.BezierSegment(c,c,{x:d.x,y:d.y},{x:d.x,y:d.y})),c={x:d.x,y:d.y};else if(d.type===&amp;amp;quot;H&amp;amp;quot;)d.x!==c.x&amp;amp;amp;&amp;amp;amp;f.push(new o.BezierSegment(c,c,{x:d.x,y:c.y},{x:d.x,y:c.y})),c={x:d.x,y:c.y};else if(d.type===&amp;amp;quot;V&amp;amp;quot;)d.y!==c.y&amp;amp;amp;&amp;amp;amp;f.push(new o.BezierSegment(c,c,{x:c.x,y:d.y},{x:c.x,y:d.y})),c={x:c.x,y:d.y};else if(d.type===&amp;amp;quot;Q&amp;amp;quot;)f.push(new o.BezierSegment(c,{x:c.x+.6666666666666666*(d.x1-c.x),y:c.y+.6666666666666666*(d.y1-c.y)},{x:d.x+.6666666666666666*(d.x1-d.x),y:d.y+.6666666666666666*(d.y1-d.y)},{x:d.x,y:d.y})),c={x:d.x,y:d.y};else{if(d.type!==&amp;amp;quot;Z&amp;amp;quot;)throw new Error(`Unsupported path command ${d.type}; use only H, V, M, L, C, Z!`);Math.hypot(c.x-p.x,c.y-p.y)&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;f.push(new o.BezierSegment(c,c,p,p))}}return new a.BezierPath(f)}},821:function(r,n,s){var a=this&amp;amp;amp;&amp;amp;amp;this.__createBinding||(Object.create?function(u,h,l,c){c===void 0&amp;amp;amp;&amp;amp;amp;(c=l);var p=Object.getOwnPropertyDescriptor(h,l);p&amp;amp;amp;&amp;amp;amp;!(&amp;amp;quot;get&amp;amp;quot;in p?!h.__esModule:p.writable||p.configurable)||(p={enumerable:!0,get:function(){return h[l]}}),Object.defineProperty(u,c,p)}:function(u,h,l,c){c===void 0&amp;amp;amp;&amp;amp;amp;(c=l),u[c]=h[l]}),o=this&amp;amp;amp;&amp;amp;amp;this.__exportStar||function(u,h){for(var l in u)l===&amp;amp;quot;default&amp;amp;quot;||Object.prototype.hasOwnProperty.call(h,l)||a(h,u,l)};Object.defineProperty(n,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0}),o(s(177),n),o(s(558),n),o(s(729),n),o(s(856),n)},856:(r,n)=&amp;amp;gt;{Object.defineProperty(n,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0})},188:(r,n)=&amp;amp;gt;{Object.defineProperty(n,&amp;amp;quot;__esModule&amp;amp;quot;,{value:!0}),n.times=void 0,n.times=function(s){let a=[];for(let o=0;o&amp;amp;lt;s;o++)a.push(o);return a}}},t={};return function r(n){var s=t[n];if(s!==void 0)return s.exports;var a=t[n]={exports:{}};return i[n].call(a.exports,a,a.exports,r),a.exports}(821)})())});var ay=ut(sy=&amp;amp;gt;{(function i(t){&amp;amp;quot;use strict&amp;amp;quot;;var r,n,s,a,o,u;function h(_){var b={},I,E;for(I in _)_.hasOwnProperty(I)&amp;amp;amp;&amp;amp;amp;(E=_[I],typeof E==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;E!==null?b[I]=h(E):b[I]=E);return b}function l(_,b){var I,E,A,C;for(E=_.length,A=0;E;)I=E&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1,C=A+I,b(_[C])?E=I:(A=C+1,E-=I+1);return A}r={AssignmentExpression:&amp;amp;quot;AssignmentExpression&amp;amp;quot;,AssignmentPattern:&amp;amp;quot;AssignmentPattern&amp;amp;quot;,ArrayExpression:&amp;amp;quot;ArrayExpression&amp;amp;quot;,ArrayPattern:&amp;amp;quot;ArrayPattern&amp;amp;quot;,ArrowFunctionExpression:&amp;amp;quot;ArrowFunctionExpression&amp;amp;quot;,AwaitExpression:&amp;amp;quot;AwaitExpression&amp;amp;quot;,BlockStatement:&amp;amp;quot;BlockStatement&amp;amp;quot;,BinaryExpression:&amp;amp;quot;BinaryExpression&amp;amp;quot;,BreakStatement:&amp;amp;quot;BreakStatement&amp;amp;quot;,CallExpression:&amp;amp;quot;CallExpression&amp;amp;quot;,CatchClause:&amp;amp;quot;CatchClause&amp;amp;quot;,ChainExpression:&amp;amp;quot;ChainExpression&amp;amp;quot;,ClassBody:&amp;amp;quot;ClassBody&amp;amp;quot;,ClassDeclaration:&amp;amp;quot;ClassDeclaration&amp;amp;quot;,ClassExpression:&amp;amp;quot;ClassExpression&amp;amp;quot;,ComprehensionBlock:&amp;amp;quot;ComprehensionBlock&amp;amp;quot;,ComprehensionExpression:&amp;amp;quot;ComprehensionExpression&amp;amp;quot;,ConditionalExpression:&amp;amp;quot;ConditionalExpression&amp;amp;quot;,ContinueStatement:&amp;amp;quot;ContinueStatement&amp;amp;quot;,DebuggerStatement:&amp;amp;quot;DebuggerStatement&amp;amp;quot;,DirectiveStatement:&amp;amp;quot;DirectiveStatement&amp;amp;quot;,DoWhileStatement:&amp;amp;quot;DoWhileStatement&amp;amp;quot;,EmptyStatement:&amp;amp;quot;EmptyStatement&amp;amp;quot;,ExportAllDeclaration:&amp;amp;quot;ExportAllDeclaration&amp;amp;quot;,ExportDefaultDeclaration:&amp;amp;quot;ExportDefaultDeclaration&amp;amp;quot;,ExportNamedDeclaration:&amp;amp;quot;ExportNamedDeclaration&amp;amp;quot;,ExportSpecifier:&amp;amp;quot;ExportSpecifier&amp;amp;quot;,ExpressionStatement:&amp;amp;quot;ExpressionStatement&amp;amp;quot;,ForStatement:&amp;amp;quot;ForStatement&amp;amp;quot;,ForInStatement:&amp;amp;quot;ForInStatement&amp;amp;quot;,ForOfStatement:&amp;amp;quot;ForOfStatement&amp;amp;quot;,FunctionDeclaration:&amp;amp;quot;FunctionDeclaration&amp;amp;quot;,FunctionExpression:&amp;amp;quot;FunctionExpression&amp;amp;quot;,GeneratorExpression:&amp;amp;quot;GeneratorExpression&amp;amp;quot;,Identifier:&amp;amp;quot;Identifier&amp;amp;quot;,IfStatement:&amp;amp;quot;IfStatement&amp;amp;quot;,ImportExpression:&amp;amp;quot;ImportExpression&amp;amp;quot;,ImportDeclaration:&amp;amp;quot;ImportDeclaration&amp;amp;quot;,ImportDefaultSpecifier:&amp;amp;quot;ImportDefaultSpecifier&amp;amp;quot;,ImportNamespaceSpecifier:&amp;amp;quot;ImportNamespaceSpecifier&amp;amp;quot;,ImportSpecifier:&amp;amp;quot;ImportSpecifier&amp;amp;quot;,Literal:&amp;amp;quot;Literal&amp;amp;quot;,LabeledStatement:&amp;amp;quot;LabeledStatement&amp;amp;quot;,LogicalExpression:&amp;amp;quot;LogicalExpression&amp;amp;quot;,MemberExpression:&amp;amp;quot;MemberExpression&amp;amp;quot;,MetaProperty:&amp;amp;quot;MetaProperty&amp;amp;quot;,MethodDefinition:&amp;amp;quot;MethodDefinition&amp;amp;quot;,ModuleSpecifier:&amp;amp;quot;ModuleSpecifier&amp;amp;quot;,NewExpression:&amp;amp;quot;NewExpression&amp;amp;quot;,ObjectExpression:&amp;amp;quot;ObjectExpression&amp;amp;quot;,ObjectPattern:&amp;amp;quot;ObjectPattern&amp;amp;quot;,PrivateIdentifier:&amp;amp;quot;PrivateIdentifier&amp;amp;quot;,Program:&amp;amp;quot;Program&amp;amp;quot;,Property:&amp;amp;quot;Property&amp;amp;quot;,PropertyDefinition:&amp;amp;quot;PropertyDefinition&amp;amp;quot;,RestElement:&amp;amp;quot;RestElement&amp;amp;quot;,ReturnStatement:&amp;amp;quot;ReturnStatement&amp;amp;quot;,SequenceExpression:&amp;amp;quot;SequenceExpression&amp;amp;quot;,SpreadElement:&amp;amp;quot;SpreadElement&amp;amp;quot;,Super:&amp;amp;quot;Super&amp;amp;quot;,SwitchStatement:&amp;amp;quot;SwitchStatement&amp;amp;quot;,SwitchCase:&amp;amp;quot;SwitchCase&amp;amp;quot;,TaggedTemplateExpression:&amp;amp;quot;TaggedTemplateExpression&amp;amp;quot;,TemplateElement:&amp;amp;quot;TemplateElement&amp;amp;quot;,TemplateLiteral:&amp;amp;quot;TemplateLiteral&amp;amp;quot;,ThisExpression:&amp;amp;quot;ThisExpression&amp;amp;quot;,ThrowStatement:&amp;amp;quot;ThrowStatement&amp;amp;quot;,TryStatement:&amp;amp;quot;TryStatement&amp;amp;quot;,UnaryExpression:&amp;amp;quot;UnaryExpression&amp;amp;quot;,UpdateExpression:&amp;amp;quot;UpdateExpression&amp;amp;quot;,VariableDeclaration:&amp;amp;quot;VariableDeclaration&amp;amp;quot;,VariableDeclarator:&amp;amp;quot;VariableDeclarator&amp;amp;quot;,WhileStatement:&amp;amp;quot;WhileStatement&amp;amp;quot;,WithStatement:&amp;amp;quot;WithStatement&amp;amp;quot;,YieldExpression:&amp;amp;quot;YieldExpression&amp;amp;quot;},s={AssignmentExpression:[&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;right&amp;amp;quot;],AssignmentPattern:[&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;right&amp;amp;quot;],ArrayExpression:[&amp;amp;quot;elements&amp;amp;quot;],ArrayPattern:[&amp;amp;quot;elements&amp;amp;quot;],ArrowFunctionExpression:[&amp;amp;quot;params&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],AwaitExpression:[&amp;amp;quot;argument&amp;amp;quot;],BlockStatement:[&amp;amp;quot;body&amp;amp;quot;],BinaryExpression:[&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;right&amp;amp;quot;],BreakStatement:[&amp;amp;quot;label&amp;amp;quot;],CallExpression:[&amp;amp;quot;callee&amp;amp;quot;,&amp;amp;quot;arguments&amp;amp;quot;],CatchClause:[&amp;amp;quot;param&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],ChainExpression:[&amp;amp;quot;expression&amp;amp;quot;],ClassBody:[&amp;amp;quot;body&amp;amp;quot;],ClassDeclaration:[&amp;amp;quot;id&amp;amp;quot;,&amp;amp;quot;superClass&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],ClassExpression:[&amp;amp;quot;id&amp;amp;quot;,&amp;amp;quot;superClass&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],ComprehensionBlock:[&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;right&amp;amp;quot;],ComprehensionExpression:[&amp;amp;quot;blocks&amp;amp;quot;,&amp;amp;quot;filter&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],ConditionalExpression:[&amp;amp;quot;test&amp;amp;quot;,&amp;amp;quot;consequent&amp;amp;quot;,&amp;amp;quot;alternate&amp;amp;quot;],ContinueStatement:[&amp;amp;quot;label&amp;amp;quot;],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:[&amp;amp;quot;body&amp;amp;quot;,&amp;amp;quot;test&amp;amp;quot;],EmptyStatement:[],ExportAllDeclaration:[&amp;amp;quot;source&amp;amp;quot;],ExportDefaultDeclaration:[&amp;amp;quot;declaration&amp;amp;quot;],ExportNamedDeclaration:[&amp;amp;quot;declaration&amp;amp;quot;,&amp;amp;quot;specifiers&amp;amp;quot;,&amp;amp;quot;source&amp;amp;quot;],ExportSpecifier:[&amp;amp;quot;exported&amp;amp;quot;,&amp;amp;quot;local&amp;amp;quot;],ExpressionStatement:[&amp;amp;quot;expression&amp;amp;quot;],ForStatement:[&amp;amp;quot;init&amp;amp;quot;,&amp;amp;quot;test&amp;amp;quot;,&amp;amp;quot;update&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],ForInStatement:[&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;right&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],ForOfStatement:[&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;right&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],FunctionDeclaration:[&amp;amp;quot;id&amp;amp;quot;,&amp;amp;quot;params&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],FunctionExpression:[&amp;amp;quot;id&amp;amp;quot;,&amp;amp;quot;params&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],GeneratorExpression:[&amp;amp;quot;blocks&amp;amp;quot;,&amp;amp;quot;filter&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],Identifier:[],IfStatement:[&amp;amp;quot;test&amp;amp;quot;,&amp;amp;quot;consequent&amp;amp;quot;,&amp;amp;quot;alternate&amp;amp;quot;],ImportExpression:[&amp;amp;quot;source&amp;amp;quot;],ImportDeclaration:[&amp;amp;quot;specifiers&amp;amp;quot;,&amp;amp;quot;source&amp;amp;quot;],ImportDefaultSpecifier:[&amp;amp;quot;local&amp;amp;quot;],ImportNamespaceSpecifier:[&amp;amp;quot;local&amp;amp;quot;],ImportSpecifier:[&amp;amp;quot;imported&amp;amp;quot;,&amp;amp;quot;local&amp;amp;quot;],Literal:[],LabeledStatement:[&amp;amp;quot;label&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],LogicalExpression:[&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;right&amp;amp;quot;],MemberExpression:[&amp;amp;quot;object&amp;amp;quot;,&amp;amp;quot;property&amp;amp;quot;],MetaProperty:[&amp;amp;quot;meta&amp;amp;quot;,&amp;amp;quot;property&amp;amp;quot;],MethodDefinition:[&amp;amp;quot;key&amp;amp;quot;,&amp;amp;quot;value&amp;amp;quot;],ModuleSpecifier:[],NewExpression:[&amp;amp;quot;callee&amp;amp;quot;,&amp;amp;quot;arguments&amp;amp;quot;],ObjectExpression:[&amp;amp;quot;properties&amp;amp;quot;],ObjectPattern:[&amp;amp;quot;properties&amp;amp;quot;],PrivateIdentifier:[],Program:[&amp;amp;quot;body&amp;amp;quot;],Property:[&amp;amp;quot;key&amp;amp;quot;,&amp;amp;quot;value&amp;amp;quot;],PropertyDefinition:[&amp;amp;quot;key&amp;amp;quot;,&amp;amp;quot;value&amp;amp;quot;],RestElement:[&amp;amp;quot;argument&amp;amp;quot;],ReturnStatement:[&amp;amp;quot;argument&amp;amp;quot;],SequenceExpression:[&amp;amp;quot;expressions&amp;amp;quot;],SpreadElement:[&amp;amp;quot;argument&amp;amp;quot;],Super:[],SwitchStatement:[&amp;amp;quot;discriminant&amp;amp;quot;,&amp;amp;quot;cases&amp;amp;quot;],SwitchCase:[&amp;amp;quot;test&amp;amp;quot;,&amp;amp;quot;consequent&amp;amp;quot;],TaggedTemplateExpression:[&amp;amp;quot;tag&amp;amp;quot;,&amp;amp;quot;quasi&amp;amp;quot;],TemplateElement:[],TemplateLiteral:[&amp;amp;quot;quasis&amp;amp;quot;,&amp;amp;quot;expressions&amp;amp;quot;],ThisExpression:[],ThrowStatement:[&amp;amp;quot;argument&amp;amp;quot;],TryStatement:[&amp;amp;quot;block&amp;amp;quot;,&amp;amp;quot;handler&amp;amp;quot;,&amp;amp;quot;finalizer&amp;amp;quot;],UnaryExpression:[&amp;amp;quot;argument&amp;amp;quot;],UpdateExpression:[&amp;amp;quot;argument&amp;amp;quot;],VariableDeclaration:[&amp;amp;quot;declarations&amp;amp;quot;],VariableDeclarator:[&amp;amp;quot;id&amp;amp;quot;,&amp;amp;quot;init&amp;amp;quot;],WhileStatement:[&amp;amp;quot;test&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],WithStatement:[&amp;amp;quot;object&amp;amp;quot;,&amp;amp;quot;body&amp;amp;quot;],YieldExpression:[&amp;amp;quot;argument&amp;amp;quot;]},a={},o={},u={},n={Break:a,Skip:o,Remove:u};function c(_,b){this.parent=_,this.key=b}c.prototype.replace=function(b){this.parent[this.key]=b},c.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)};function p(_,b,I,E){this.node=_,this.path=b,this.wrap=I,this.ref=E}function f(){}f.prototype.path=function(){var b,I,E,A,C,T;function D(F,N){if(Array.isArray(N))for(E=0,A=N.length;E&amp;amp;lt;A;++E)F.push(N[E]);else F.push(N)}if(!this.__current.path)return null;for(C=[],b=2,I=this.__leavelist.length;b&amp;amp;lt;I;++b)T=this.__leavelist[b],D(C,T.path);return D(C,this.__current.path),C},f.prototype.type=function(){var _=this.current();return _.type||this.__current.wrap},f.prototype.parents=function(){var b,I,E;for(E=[],b=1,I=this.__leavelist.length;b&amp;amp;lt;I;++b)E.push(this.__leavelist[b].node);return E},f.prototype.current=function(){return this.__current.node},f.prototype.__execute=function(b,I){var E,A;return A=void 0,E=this.__current,this.__current=I,this.__state=null,b&amp;amp;amp;&amp;amp;amp;(A=b.call(this,I.node,this.__leavelist[this.__leavelist.length-1].node)),this.__current=E,A},f.prototype.notify=function(b){this.__state=b},f.prototype.skip=function(){this.notify(o)},f.prototype.break=function(){this.notify(a)},f.prototype.remove=function(){this.notify(u)},f.prototype.__initialize=function(_,b){this.visitor=b,this.root=_,this.__worklist=[],this.__leavelist=[],this.__current=null,this.__state=null,this.__fallback=null,b.fallback===&amp;amp;quot;iteration&amp;amp;quot;?this.__fallback=Object.keys:typeof b.fallback==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.__fallback=b.fallback),this.__keys=s,b.keys&amp;amp;amp;&amp;amp;amp;(this.__keys=Object.assign(Object.create(this.__keys),b.keys))};function d(_){return _==null?!1:typeof _==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof _.type==&amp;amp;quot;string&amp;amp;quot;}function m(_,b){return(_===r.ObjectExpression||_===r.ObjectPattern)&amp;amp;amp;&amp;amp;amp;b===&amp;amp;quot;properties&amp;amp;quot;}function g(_,b){for(var I=_.length-1;I&amp;amp;gt;=0;--I)if(_[I].node===b)return!0;return!1}f.prototype.traverse=function(b,I){var E,A,C,T,D,F,N,B,U,j,W,te;for(this.__initialize(b,I),te={},E=this.__worklist,A=this.__leavelist,E.push(new p(b,null,null,null)),A.push(new p(null,null,null,null));E.length;){if(C=E.pop(),C===te){if(C=A.pop(),F=this.__execute(I.leave,C),this.__state===a||F===a)return;continue}if(C.node){if(F=this.__execute(I.enter,C),this.__state===a||F===a)return;if(E.push(te),A.push(C),this.__state===o||F===o)continue;if(T=C.node,D=T.type||C.wrap,j=this.__keys[D],!j)if(this.__fallback)j=this.__fallback(T);else throw new Error(&amp;amp;quot;Unknown node type &amp;amp;quot;+D+&amp;amp;quot;.&amp;amp;quot;);for(B=j.length;(B-=1)&amp;amp;gt;=0;)if(N=j[B],W=T[N],!!W){if(Array.isArray(W)){for(U=W.length;(U-=1)&amp;amp;gt;=0;)if(W[U]&amp;amp;amp;&amp;amp;amp;!g(A,W[U])){if(m(D,j[B]))C=new p(W[U],[N,U],&amp;amp;quot;Property&amp;amp;quot;,null);else if(d(W[U]))C=new p(W[U],[N,U],null,null);else continue;E.push(C)}}else if(d(W)){if(g(A,W))continue;E.push(new p(W,N,null,null))}}}}},f.prototype.replace=function(b,I){var E,A,C,T,D,F,N,B,U,j,W,te,X;function Z(G){var q,J,Y,Q;if(G.ref.remove()){for(J=G.ref.key,Q=G.ref.parent,q=E.length;q--;)if(Y=E[q],Y.ref&amp;amp;amp;&amp;amp;amp;Y.ref.parent===Q){if(Y.ref.key&amp;amp;lt;J)break;--Y.ref.key}}}for(this.__initialize(b,I),W={},E=this.__worklist,A=this.__leavelist,te={root:b},F=new p(b,null,null,new c(te,&amp;amp;quot;root&amp;amp;quot;)),E.push(F),A.push(F);E.length;){if(F=E.pop(),F===W){if(F=A.pop(),D=this.__execute(I.leave,F),D!==void 0&amp;amp;amp;&amp;amp;amp;D!==a&amp;amp;amp;&amp;amp;amp;D!==o&amp;amp;amp;&amp;amp;amp;D!==u&amp;amp;amp;&amp;amp;amp;F.ref.replace(D),(this.__state===u||D===u)&amp;amp;amp;&amp;amp;amp;Z(F),this.__state===a||D===a)return te.root;continue}if(D=this.__execute(I.enter,F),D!==void 0&amp;amp;amp;&amp;amp;amp;D!==a&amp;amp;amp;&amp;amp;amp;D!==o&amp;amp;amp;&amp;amp;amp;D!==u&amp;amp;amp;&amp;amp;amp;(F.ref.replace(D),F.node=D),(this.__state===u||D===u)&amp;amp;amp;&amp;amp;amp;(Z(F),F.node=null),this.__state===a||D===a)return te.root;if(C=F.node,!!C&amp;amp;amp;&amp;amp;amp;(E.push(W),A.push(F),!(this.__state===o||D===o))){if(T=C.type||F.wrap,U=this.__keys[T],!U)if(this.__fallback)U=this.__fallback(C);else throw new Error(&amp;amp;quot;Unknown node type &amp;amp;quot;+T+&amp;amp;quot;.&amp;amp;quot;);for(N=U.length;(N-=1)&amp;amp;gt;=0;)if(X=U[N],j=C[X],!!j)if(Array.isArray(j)){for(B=j.length;(B-=1)&amp;amp;gt;=0;)if(j[B]){if(m(T,U[N]))F=new p(j[B],[X,B],&amp;amp;quot;Property&amp;amp;quot;,new c(j,B));else if(d(j[B]))F=new p(j[B],[X,B],null,new c(j,B));else continue;E.push(F)}}else d(j)&amp;amp;amp;&amp;amp;amp;E.push(new p(j,X,null,new c(C,X)))}}return te.root};function v(_,b){var I=new f;return I.traverse(_,b)}function w(_,b){var I=new f;return I.replace(_,b)}function y(_,b){var I;return I=l(b,function(A){return A.range[0]&amp;amp;gt;_.range[0]}),_.extendedRange=[_.range[0],_.range[1]],I!==b.length&amp;amp;amp;&amp;amp;amp;(_.extendedRange[1]=b[I].range[0]),I-=1,I&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;(_.extendedRange[0]=b[I].range[1]),_}function S(_,b,I){var E=[],A,C,T,D;if(!_.range)throw new Error(&amp;amp;quot;attachComments needs range information&amp;amp;quot;);if(!I.length){if(b.length){for(T=0,C=b.length;T&amp;amp;lt;C;T+=1)A=h(b[T]),A.extendedRange=[0,_.range[0]],E.push(A);_.leadingComments=E}return _}for(T=0,C=b.length;T&amp;amp;lt;C;T+=1)E.push(y(h(b[T]),I));return D=0,v(_,{enter:function(F){for(var N;D&amp;amp;lt;E.length&amp;amp;amp;&amp;amp;amp;(N=E[D],!(N.extendedRange[1]&amp;amp;gt;F.range[0]));)N.extendedRange[1]===F.range[0]?(F.leadingComments||(F.leadingComments=[]),F.leadingComments.push(N),E.splice(D,1)):D+=1;if(D===E.length)return n.Break;if(E[D].extendedRange[0]&amp;amp;gt;F.range[1])return n.Skip}}),D=0,v(_,{leave:function(F){for(var N;D&amp;amp;lt;E.length&amp;amp;amp;&amp;amp;amp;(N=E[D],!(F.range[1]&amp;amp;lt;N.extendedRange[0]));)F.range[1]===N.extendedRange[0]?(F.trailingComments||(F.trailingComments=[]),F.trailingComments.push(N),E.splice(D,1)):D+=1;if(D===E.length)return n.Break;if(E[D].extendedRange[0]&amp;amp;gt;F.range[1])return n.Skip}}),_}return t.Syntax=r,t.traverse=v,t.replace=w,t.attachComments=S,t.VisitorKeys=s,t.VisitorOption=n,t.Controller=f,t.cloneEnvironment=function(){return i({})},t})(sy)});var uy=ut((gO,oy)=&amp;amp;gt;{(function(){&amp;amp;quot;use strict&amp;amp;quot;;function i(o){if(o==null)return!1;switch(o.type){case&amp;amp;quot;ArrayExpression&amp;amp;quot;:case&amp;amp;quot;AssignmentExpression&amp;amp;quot;:case&amp;amp;quot;BinaryExpression&amp;amp;quot;:case&amp;amp;quot;CallExpression&amp;amp;quot;:case&amp;amp;quot;ConditionalExpression&amp;amp;quot;:case&amp;amp;quot;FunctionExpression&amp;amp;quot;:case&amp;amp;quot;Identifier&amp;amp;quot;:case&amp;amp;quot;Literal&amp;amp;quot;:case&amp;amp;quot;LogicalExpression&amp;amp;quot;:case&amp;amp;quot;MemberExpression&amp;amp;quot;:case&amp;amp;quot;NewExpression&amp;amp;quot;:case&amp;amp;quot;ObjectExpression&amp;amp;quot;:case&amp;amp;quot;SequenceExpression&amp;amp;quot;:case&amp;amp;quot;ThisExpression&amp;amp;quot;:case&amp;amp;quot;UnaryExpression&amp;amp;quot;:case&amp;amp;quot;UpdateExpression&amp;amp;quot;:return!0}return!1}function t(o){if(o==null)return!1;switch(o.type){case&amp;amp;quot;DoWhileStatement&amp;amp;quot;:case&amp;amp;quot;ForInStatement&amp;amp;quot;:case&amp;amp;quot;ForStatement&amp;amp;quot;:case&amp;amp;quot;WhileStatement&amp;amp;quot;:return!0}return!1}function r(o){if(o==null)return!1;switch(o.type){case&amp;amp;quot;BlockStatement&amp;amp;quot;:case&amp;amp;quot;BreakStatement&amp;amp;quot;:case&amp;amp;quot;ContinueStatement&amp;amp;quot;:case&amp;amp;quot;DebuggerStatement&amp;amp;quot;:case&amp;amp;quot;DoWhileStatement&amp;amp;quot;:case&amp;amp;quot;EmptyStatement&amp;amp;quot;:case&amp;amp;quot;ExpressionStatement&amp;amp;quot;:case&amp;amp;quot;ForInStatement&amp;amp;quot;:case&amp;amp;quot;ForStatement&amp;amp;quot;:case&amp;amp;quot;IfStatement&amp;amp;quot;:case&amp;amp;quot;LabeledStatement&amp;amp;quot;:case&amp;amp;quot;ReturnStatement&amp;amp;quot;:case&amp;amp;quot;SwitchStatement&amp;amp;quot;:case&amp;amp;quot;ThrowStatement&amp;amp;quot;:case&amp;amp;quot;TryStatement&amp;amp;quot;:case&amp;amp;quot;VariableDeclaration&amp;amp;quot;:case&amp;amp;quot;WhileStatement&amp;amp;quot;:case&amp;amp;quot;WithStatement&amp;amp;quot;:return!0}return!1}function n(o){return r(o)||o!=null&amp;amp;amp;&amp;amp;amp;o.type===&amp;amp;quot;FunctionDeclaration&amp;amp;quot;}function s(o){switch(o.type){case&amp;amp;quot;IfStatement&amp;amp;quot;:return o.alternate!=null?o.alternate:o.consequent;case&amp;amp;quot;LabeledStatement&amp;amp;quot;:case&amp;amp;quot;ForStatement&amp;amp;quot;:case&amp;amp;quot;ForInStatement&amp;amp;quot;:case&amp;amp;quot;WhileStatement&amp;amp;quot;:case&amp;amp;quot;WithStatement&amp;amp;quot;:return o.body}return null}function a(o){var u;if(o.type!==&amp;amp;quot;IfStatement&amp;amp;quot;||o.alternate==null)return!1;u=o.consequent;do{if(u.type===&amp;amp;quot;IfStatement&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u.alternate==null)return!0;u=s(u)}while(u);return!1}oy.exports={isExpression:i,isStatement:r,isIterationStatement:t,isSourceElement:n,isProblematicIfStatement:a,trailingStatement:s}})()});var Rp=ut((yO,ly)=&amp;amp;gt;{(function(){&amp;amp;quot;use strict&amp;amp;quot;;var i,t,r,n,s,a;t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},i={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};function o(v){return 48&amp;amp;lt;=v&amp;amp;amp;&amp;amp;amp;v&amp;amp;lt;=57}function u(v){return 48&amp;amp;lt;=v&amp;amp;amp;&amp;amp;amp;v&amp;amp;lt;=57||97&amp;amp;lt;=v&amp;amp;amp;&amp;amp;amp;v&amp;amp;lt;=102||65&amp;amp;lt;=v&amp;amp;amp;&amp;amp;amp;v&amp;amp;lt;=70}function h(v){return v&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;v&amp;amp;lt;=55}r=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279];function l(v){return v===32||v===9||v===11||v===12||v===160||v&amp;amp;gt;=5760&amp;amp;amp;&amp;amp;amp;r.indexOf(v)&amp;amp;gt;=0}function c(v){return v===10||v===13||v===8232||v===8233}function p(v){if(v&amp;amp;lt;=65535)return String.fromCharCode(v);var w=String.fromCharCode(Math.floor((v-65536)/1024)+55296),y=String.fromCharCode((v-65536)%1024+56320);return w+y}for(n=new Array(128),a=0;a&amp;amp;lt;128;++a)n[a]=a&amp;amp;gt;=97&amp;amp;amp;&amp;amp;amp;a&amp;amp;lt;=122||a&amp;amp;gt;=65&amp;amp;amp;&amp;amp;amp;a&amp;amp;lt;=90||a===36||a===95;for(s=new Array(128),a=0;a&amp;amp;lt;128;++a)s[a]=a&amp;amp;gt;=97&amp;amp;amp;&amp;amp;amp;a&amp;amp;lt;=122||a&amp;amp;gt;=65&amp;amp;amp;&amp;amp;amp;a&amp;amp;lt;=90||a&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;a&amp;amp;lt;=57||a===36||a===95;function f(v){return v&amp;amp;lt;128?n[v]:t.NonAsciiIdentifierStart.test(p(v))}function d(v){return v&amp;amp;lt;128?s[v]:t.NonAsciiIdentifierPart.test(p(v))}function m(v){return v&amp;amp;lt;128?n[v]:i.NonAsciiIdentifierStart.test(p(v))}function g(v){return v&amp;amp;lt;128?s[v]:i.NonAsciiIdentifierPart.test(p(v))}ly.exports={isDecimalDigit:o,isHexDigit:u,isOctalDigit:h,isWhiteSpace:l,isLineTerminator:c,isIdentifierStartES5:f,isIdentifierPartES5:d,isIdentifierStartES6:m,isIdentifierPartES6:g}})()});var cy=ut((vO,hy)=&amp;amp;gt;{(function(){&amp;amp;quot;use strict&amp;amp;quot;;var i=Rp();function t(f){switch(f){case&amp;amp;quot;implements&amp;amp;quot;:case&amp;amp;quot;interface&amp;amp;quot;:case&amp;amp;quot;package&amp;amp;quot;:case&amp;amp;quot;private&amp;amp;quot;:case&amp;amp;quot;protected&amp;amp;quot;:case&amp;amp;quot;public&amp;amp;quot;:case&amp;amp;quot;static&amp;amp;quot;:case&amp;amp;quot;let&amp;amp;quot;:return!0;default:return!1}}function r(f,d){return!d&amp;amp;amp;&amp;amp;amp;f===&amp;amp;quot;yield&amp;amp;quot;?!1:n(f,d)}function n(f,d){if(d&amp;amp;amp;&amp;amp;amp;t(f))return!0;switch(f.length){case 2:return f===&amp;amp;quot;if&amp;amp;quot;||f===&amp;amp;quot;in&amp;amp;quot;||f===&amp;amp;quot;do&amp;amp;quot;;case 3:return f===&amp;amp;quot;var&amp;amp;quot;||f===&amp;amp;quot;for&amp;amp;quot;||f===&amp;amp;quot;new&amp;amp;quot;||f===&amp;amp;quot;try&amp;amp;quot;;case 4:return f===&amp;amp;quot;this&amp;amp;quot;||f===&amp;amp;quot;else&amp;amp;quot;||f===&amp;amp;quot;case&amp;amp;quot;||f===&amp;amp;quot;void&amp;amp;quot;||f===&amp;amp;quot;with&amp;amp;quot;||f===&amp;amp;quot;enum&amp;amp;quot;;case 5:return f===&amp;amp;quot;while&amp;amp;quot;||f===&amp;amp;quot;break&amp;amp;quot;||f===&amp;amp;quot;catch&amp;amp;quot;||f===&amp;amp;quot;throw&amp;amp;quot;||f===&amp;amp;quot;const&amp;amp;quot;||f===&amp;amp;quot;yield&amp;amp;quot;||f===&amp;amp;quot;class&amp;amp;quot;||f===&amp;amp;quot;super&amp;amp;quot;;case 6:return f===&amp;amp;quot;return&amp;amp;quot;||f===&amp;amp;quot;typeof&amp;amp;quot;||f===&amp;amp;quot;delete&amp;amp;quot;||f===&amp;amp;quot;switch&amp;amp;quot;||f===&amp;amp;quot;export&amp;amp;quot;||f===&amp;amp;quot;import&amp;amp;quot;;case 7:return f===&amp;amp;quot;default&amp;amp;quot;||f===&amp;amp;quot;finally&amp;amp;quot;||f===&amp;amp;quot;extends&amp;amp;quot;;case 8:return f===&amp;amp;quot;function&amp;amp;quot;||f===&amp;amp;quot;continue&amp;amp;quot;||f===&amp;amp;quot;debugger&amp;amp;quot;;case 10:return f===&amp;amp;quot;instanceof&amp;amp;quot;;default:return!1}}function s(f,d){return f===&amp;amp;quot;null&amp;amp;quot;||f===&amp;amp;quot;true&amp;amp;quot;||f===&amp;amp;quot;false&amp;amp;quot;||r(f,d)}function a(f,d){return f===&amp;amp;quot;null&amp;amp;quot;||f===&amp;amp;quot;true&amp;amp;quot;||f===&amp;amp;quot;false&amp;amp;quot;||n(f,d)}function o(f){return f===&amp;amp;quot;eval&amp;amp;quot;||f===&amp;amp;quot;arguments&amp;amp;quot;}function u(f){var d,m,g;if(f.length===0||(g=f.charCodeAt(0),!i.isIdentifierStartES5(g)))return!1;for(d=1,m=f.length;d&amp;amp;lt;m;++d)if(g=f.charCodeAt(d),!i.isIdentifierPartES5(g))return!1;return!0}function h(f,d){return(f-55296)*1024+(d-56320)+65536}function l(f){var d,m,g,v,w;if(f.length===0)return!1;for(w=i.isIdentifierStartES6,d=0,m=f.length;d&amp;amp;lt;m;++d){if(g=f.charCodeAt(d),55296&amp;amp;lt;=g&amp;amp;amp;&amp;amp;amp;g&amp;amp;lt;=56319){if(++d,d&amp;amp;gt;=m||(v=f.charCodeAt(d),!(56320&amp;amp;lt;=v&amp;amp;amp;&amp;amp;amp;v&amp;amp;lt;=57343)))return!1;g=h(g,v)}if(!w(g))return!1;w=i.isIdentifierPartES6}return!0}function c(f,d){return u(f)&amp;amp;amp;&amp;amp;amp;!s(f,d)}function p(f,d){return l(f)&amp;amp;amp;&amp;amp;amp;!a(f,d)}hy.exports={isKeywordES5:r,isKeywordES6:n,isReservedWordES5:s,isReservedWordES6:a,isRestrictedWord:o,isIdentifierNameES5:u,isIdentifierNameES6:l,isIdentifierES5:c,isIdentifierES6:p}})()});var fy=ut(Yl=&amp;amp;gt;{(function(){&amp;amp;quot;use strict&amp;amp;quot;;Yl.ast=uy(),Yl.code=Rp(),Yl.keyword=cy()})()});var dy=ut(Bp=&amp;amp;gt;{var py=&amp;amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;amp;quot;.split(&amp;amp;quot;&amp;amp;quot;);Bp.encode=function(i){if(0&amp;amp;lt;=i&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;py.length)return py[i];throw new TypeError(&amp;amp;quot;Must be between 0 and 63: &amp;amp;quot;+i)};Bp.decode=function(i){var t=65,r=90,n=97,s=122,a=48,o=57,u=43,h=47,l=26,c=52;return t&amp;amp;lt;=i&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=r?i-t:n&amp;amp;lt;=i&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=s?i-n+l:a&amp;amp;lt;=i&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=o?i-a+c:i==u?62:i==h?63:-1}});var Vp=ut(Op=&amp;amp;gt;{var my=dy(),Pp=5,gy=1&amp;amp;lt;&amp;amp;lt;Pp,yy=gy-1,vy=gy;function SE(i){return i&amp;amp;lt;0?(-i&amp;amp;lt;&amp;amp;lt;1)+1:(i&amp;amp;lt;&amp;amp;lt;1)+0}function AE(i){var t=(i&amp;amp;amp;1)===1,r=i&amp;amp;gt;&amp;amp;gt;1;return t?-r:r}Op.encode=function(t){var r=&amp;amp;quot;&amp;amp;quot;,n,s=SE(t);do n=s&amp;amp;amp;yy,s&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=Pp,s&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(n|=vy),r+=my.encode(n);while(s&amp;amp;gt;0);return r};Op.decode=function(t,r,n){var s=t.length,a=0,o=0,u,h;do{if(r&amp;amp;gt;=s)throw new Error(&amp;amp;quot;Expected more digits in base 64 VLQ value.&amp;amp;quot;);if(h=my.decode(t.charCodeAt(r++)),h===-1)throw new Error(&amp;amp;quot;Invalid base64 digit: &amp;amp;quot;+t.charAt(r-1));u=!!(h&amp;amp;amp;vy),h&amp;amp;amp;=yy,a=a+(h&amp;amp;lt;&amp;amp;lt;o),o+=Pp}while(u);n.value=AE(a),n.rest=r}});var ha=ut(Ut=&amp;amp;gt;{function DE(i,t,r){if(t in i)return i[t];if(arguments.length===3)return r;throw new Error(&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;+t+&amp;amp;#39;&amp;amp;quot; is a required argument.&amp;amp;#39;)}Ut.getArg=DE;var xy=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,FE=/^data:.+\,.+$/;function Ho(i){var t=i.match(xy);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}Ut.urlParse=Ho;function ua(i){var t=&amp;amp;quot;&amp;amp;quot;;return i.scheme&amp;amp;amp;&amp;amp;amp;(t+=i.scheme+&amp;amp;quot;:&amp;amp;quot;),t+=&amp;amp;quot;//&amp;amp;quot;,i.auth&amp;amp;amp;&amp;amp;amp;(t+=i.auth+&amp;amp;quot;@&amp;amp;quot;),i.host&amp;amp;amp;&amp;amp;amp;(t+=i.host),i.port&amp;amp;amp;&amp;amp;amp;(t+=&amp;amp;quot;:&amp;amp;quot;+i.port),i.path&amp;amp;amp;&amp;amp;amp;(t+=i.path),t}Ut.urlGenerate=ua;function Up(i){var t=i,r=Ho(i);if(r){if(!r.path)return i;t=r.path}for(var n=Ut.isAbsolute(t),s=t.split(/\/+/),a,o=0,u=s.length-1;u&amp;amp;gt;=0;u--)a=s[u],a===&amp;amp;quot;.&amp;amp;quot;?s.splice(u,1):a===&amp;amp;quot;..&amp;amp;quot;?o++:o&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(a===&amp;amp;quot;&amp;amp;quot;?(s.splice(u+1,o),o=0):(s.splice(u,2),o--));return t=s.join(&amp;amp;quot;/&amp;amp;quot;),t===&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t=n?&amp;amp;quot;/&amp;amp;quot;:&amp;amp;quot;.&amp;amp;quot;),r?(r.path=t,ua(r)):t}Ut.normalize=Up;function by(i,t){i===&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i=&amp;amp;quot;.&amp;amp;quot;),t===&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t=&amp;amp;quot;.&amp;amp;quot;);var r=Ho(t),n=Ho(i);if(n&amp;amp;amp;&amp;amp;amp;(i=n.path||&amp;amp;quot;/&amp;amp;quot;),r&amp;amp;amp;&amp;amp;amp;!r.scheme)return n&amp;amp;amp;&amp;amp;amp;(r.scheme=n.scheme),ua(r);if(r||t.match(FE))return t;if(n&amp;amp;amp;&amp;amp;amp;!n.host&amp;amp;amp;&amp;amp;amp;!n.path)return n.host=t,ua(n);var s=t.charAt(0)===&amp;amp;quot;/&amp;amp;quot;?t:Up(i.replace(/\/+$/,&amp;amp;quot;&amp;amp;quot;)+&amp;amp;quot;/&amp;amp;quot;+t);return n?(n.path=s,ua(n)):s}Ut.join=by;Ut.isAbsolute=function(i){return i.charAt(0)===&amp;amp;quot;/&amp;amp;quot;||xy.test(i)};function TE(i,t){i===&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i=&amp;amp;quot;.&amp;amp;quot;),i=i.replace(/\/$/,&amp;amp;quot;&amp;amp;quot;);for(var r=0;t.indexOf(i+&amp;amp;quot;/&amp;amp;quot;)!==0;){var n=i.lastIndexOf(&amp;amp;quot;/&amp;amp;quot;);if(n&amp;amp;lt;0||(i=i.slice(0,n),i.match(/^([^\/]+:\/)?\/*$/)))return t;++r}return Array(r+1).join(&amp;amp;quot;../&amp;amp;quot;)+t.substr(i.length+1)}Ut.relative=TE;var _y=function(){var i=Object.create(null);return!(&amp;amp;quot;__proto__&amp;amp;quot;in i)}();function wy(i){return i}function NE(i){return Cy(i)?&amp;amp;quot;$&amp;amp;quot;+i:i}Ut.toSetString=_y?wy:NE;function IE(i){return Cy(i)?i.slice(1):i}Ut.fromSetString=_y?wy:IE;function Cy(i){if(!i)return!1;var t=i.length;if(t&amp;amp;lt;9||i.charCodeAt(t-1)!==95||i.charCodeAt(t-2)!==95||i.charCodeAt(t-3)!==111||i.charCodeAt(t-4)!==116||i.charCodeAt(t-5)!==111||i.charCodeAt(t-6)!==114||i.charCodeAt(t-7)!==112||i.charCodeAt(t-8)!==95||i.charCodeAt(t-9)!==95)return!1;for(var r=t-10;r&amp;amp;gt;=0;r--)if(i.charCodeAt(r)!==36)return!1;return!0}function kE(i,t,r){var n=la(i.source,t.source);return n!==0||(n=i.originalLine-t.originalLine,n!==0)||(n=i.originalColumn-t.originalColumn,n!==0||r)||(n=i.generatedColumn-t.generatedColumn,n!==0)||(n=i.generatedLine-t.generatedLine,n!==0)?n:la(i.name,t.name)}Ut.compareByOriginalPositions=kE;function ME(i,t,r){var n=i.generatedLine-t.generatedLine;return n!==0||(n=i.generatedColumn-t.generatedColumn,n!==0||r)||(n=la(i.source,t.source),n!==0)||(n=i.originalLine-t.originalLine,n!==0)||(n=i.originalColumn-t.originalColumn,n!==0)?n:la(i.name,t.name)}Ut.compareByGeneratedPositionsDeflated=ME;function la(i,t){return i===t?0:i===null?1:t===null?-1:i&amp;amp;gt;t?1:-1}function LE(i,t){var r=i.generatedLine-t.generatedLine;return r!==0||(r=i.generatedColumn-t.generatedColumn,r!==0)||(r=la(i.source,t.source),r!==0)||(r=i.originalLine-t.originalLine,r!==0)||(r=i.originalColumn-t.originalColumn,r!==0)?r:la(i.name,t.name)}Ut.compareByGeneratedPositionsInflated=LE;function RE(i){return JSON.parse(i.replace(/^\)]}&amp;amp;#39;[^\n]*\n/,&amp;amp;quot;&amp;amp;quot;))}Ut.parseSourceMapInput=RE;function BE(i,t,r){if(t=t||&amp;amp;quot;&amp;amp;quot;,i&amp;amp;amp;&amp;amp;amp;(i[i.length-1]!==&amp;amp;quot;/&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t[0]!==&amp;amp;quot;/&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i+=&amp;amp;quot;/&amp;amp;quot;),t=i+t),r){var n=Ho(r);if(!n)throw new Error(&amp;amp;quot;sourceMapURL could not be parsed&amp;amp;quot;);if(n.path){var s=n.path.lastIndexOf(&amp;amp;quot;/&amp;amp;quot;);s&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;(n.path=n.path.substring(0,s+1))}t=by(ua(n),t)}return Up(t)}Ut.computeSourceURL=BE});var jp=ut(Ey=&amp;amp;gt;{var Gp=ha(),zp=Object.prototype.hasOwnProperty,Zn=typeof Map&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;;function Mi(){this._array=[],this._set=Zn?new Map:Object.create(null)}Mi.fromArray=function(t,r){for(var n=new Mi,s=0,a=t.length;s&amp;amp;lt;a;s++)n.add(t[s],r);return n};Mi.prototype.size=function(){return Zn?this._set.size:Object.getOwnPropertyNames(this._set).length};Mi.prototype.add=function(t,r){var n=Zn?t:Gp.toSetString(t),s=Zn?this.has(t):zp.call(this._set,n),a=this._array.length;(!s||r)&amp;amp;amp;&amp;amp;amp;this._array.push(t),s||(Zn?this._set.set(t,a):this._set[n]=a)};Mi.prototype.has=function(t){if(Zn)return this._set.has(t);var r=Gp.toSetString(t);return zp.call(this._set,r)};Mi.prototype.indexOf=function(t){if(Zn){var r=this._set.get(t);if(r&amp;amp;gt;=0)return r}else{var n=Gp.toSetString(t);if(zp.call(this._set,n))return this._set[n]}throw new Error(&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;+t+&amp;amp;#39;&amp;amp;quot; is not in the set.&amp;amp;#39;)};Mi.prototype.at=function(t){if(t&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;this._array.length)return this._array[t];throw new Error(&amp;amp;quot;No element indexed by &amp;amp;quot;+t)};Mi.prototype.toArray=function(){return this._array.slice()};Ey.ArraySet=Mi});var Dy=ut(Ay=&amp;amp;gt;{var Sy=ha();function PE(i,t){var r=i.generatedLine,n=t.generatedLine,s=i.generatedColumn,a=t.generatedColumn;return n&amp;amp;gt;r||n==r&amp;amp;amp;&amp;amp;amp;a&amp;amp;gt;=s||Sy.compareByGeneratedPositionsInflated(i,t)&amp;amp;lt;=0}function Xl(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}Xl.prototype.unsortedForEach=function(t,r){this._array.forEach(t,r)};Xl.prototype.add=function(t){PE(this._last,t)?(this._last=t,this._array.push(t)):(this._sorted=!1,this._array.push(t))};Xl.prototype.toArray=function(){return this._sorted||(this._array.sort(Sy.compareByGeneratedPositionsInflated),this._sorted=!0),this._array};Ay.MappingList=Xl});var $p=ut(Fy=&amp;amp;gt;{var Wo=Vp(),xt=ha(),Kl=jp().ArraySet,OE=Dy().MappingList;function Ir(i){i||(i={}),this._file=xt.getArg(i,&amp;amp;quot;file&amp;amp;quot;,null),this._sourceRoot=xt.getArg(i,&amp;amp;quot;sourceRoot&amp;amp;quot;,null),this._skipValidation=xt.getArg(i,&amp;amp;quot;skipValidation&amp;amp;quot;,!1),this._sources=new Kl,this._names=new Kl,this._mappings=new OE,this._sourcesContents=null}Ir.prototype._version=3;Ir.fromSourceMap=function(t){var r=t.sourceRoot,n=new Ir({file:t.file,sourceRoot:r});return t.eachMapping(function(s){var a={generated:{line:s.generatedLine,column:s.generatedColumn}};s.source!=null&amp;amp;amp;&amp;amp;amp;(a.source=s.source,r!=null&amp;amp;amp;&amp;amp;amp;(a.source=xt.relative(r,a.source)),a.original={line:s.originalLine,column:s.originalColumn},s.name!=null&amp;amp;amp;&amp;amp;amp;(a.name=s.name)),n.addMapping(a)}),t.sources.forEach(function(s){var a=s;r!==null&amp;amp;amp;&amp;amp;amp;(a=xt.relative(r,s)),n._sources.has(a)||n._sources.add(a);var o=t.sourceContentFor(s);o!=null&amp;amp;amp;&amp;amp;amp;n.setSourceContent(s,o)}),n};Ir.prototype.addMapping=function(t){var r=xt.getArg(t,&amp;amp;quot;generated&amp;amp;quot;),n=xt.getArg(t,&amp;amp;quot;original&amp;amp;quot;,null),s=xt.getArg(t,&amp;amp;quot;source&amp;amp;quot;,null),a=xt.getArg(t,&amp;amp;quot;name&amp;amp;quot;,null);this._skipValidation||this._validateMapping(r,n,s,a),s!=null&amp;amp;amp;&amp;amp;amp;(s=String(s),this._sources.has(s)||this._sources.add(s)),a!=null&amp;amp;amp;&amp;amp;amp;(a=String(a),this._names.has(a)||this._names.add(a)),this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&amp;amp;amp;&amp;amp;amp;n.line,originalColumn:n!=null&amp;amp;amp;&amp;amp;amp;n.column,source:s,name:a})};Ir.prototype.setSourceContent=function(t,r){var n=t;this._sourceRoot!=null&amp;amp;amp;&amp;amp;amp;(n=xt.relative(this._sourceRoot,n)),r!=null?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[xt.toSetString(n)]=r):this._sourcesContents&amp;amp;amp;&amp;amp;amp;(delete this._sourcesContents[xt.toSetString(n)],Object.keys(this._sourcesContents).length===0&amp;amp;amp;&amp;amp;amp;(this._sourcesContents=null))};Ir.prototype.applySourceMap=function(t,r,n){var s=r;if(r==null){if(t.file==null)throw new Error(`SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map&amp;amp;#39;s &amp;amp;quot;file&amp;amp;quot; property. Both were omitted.`);s=t.file}var a=this._sourceRoot;a!=null&amp;amp;amp;&amp;amp;amp;(s=xt.relative(a,s));var o=new Kl,u=new Kl;this._mappings.unsortedForEach(function(h){if(h.source===s&amp;amp;amp;&amp;amp;amp;h.originalLine!=null){var l=t.originalPositionFor({line:h.originalLine,column:h.originalColumn});l.source!=null&amp;amp;amp;&amp;amp;amp;(h.source=l.source,n!=null&amp;amp;amp;&amp;amp;amp;(h.source=xt.join(n,h.source)),a!=null&amp;amp;amp;&amp;amp;amp;(h.source=xt.relative(a,h.source)),h.originalLine=l.line,h.originalColumn=l.column,l.name!=null&amp;amp;amp;&amp;amp;amp;(h.name=l.name))}var c=h.source;c!=null&amp;amp;amp;&amp;amp;amp;!o.has(c)&amp;amp;amp;&amp;amp;amp;o.add(c);var p=h.name;p!=null&amp;amp;amp;&amp;amp;amp;!u.has(p)&amp;amp;amp;&amp;amp;amp;u.add(p)},this),this._sources=o,this._names=u,t.sources.forEach(function(h){var l=t.sourceContentFor(h);l!=null&amp;amp;amp;&amp;amp;amp;(n!=null&amp;amp;amp;&amp;amp;amp;(h=xt.join(n,h)),a!=null&amp;amp;amp;&amp;amp;amp;(h=xt.relative(a,h)),this.setSourceContent(h,l))},this)};Ir.prototype._validateMapping=function(t,r,n,s){if(r&amp;amp;amp;&amp;amp;amp;typeof r.line!=&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof r.column!=&amp;amp;quot;number&amp;amp;quot;)throw new Error(&amp;amp;quot;original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.&amp;amp;quot;);if(!(t&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;line&amp;amp;quot;in t&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;column&amp;amp;quot;in t&amp;amp;amp;&amp;amp;amp;t.line&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;t.column&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;!r&amp;amp;amp;&amp;amp;amp;!n&amp;amp;amp;&amp;amp;amp;!s)){if(t&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;line&amp;amp;quot;in t&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;column&amp;amp;quot;in t&amp;amp;amp;&amp;amp;amp;r&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;line&amp;amp;quot;in r&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;column&amp;amp;quot;in r&amp;amp;amp;&amp;amp;amp;t.line&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;t.column&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;r.line&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;r.column&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;n)return;throw new Error(&amp;amp;quot;Invalid mapping: &amp;amp;quot;+JSON.stringify({generated:t,source:n,original:r,name:s}))}};Ir.prototype._serializeMappings=function(){for(var t=0,r=1,n=0,s=0,a=0,o=0,u=&amp;amp;quot;&amp;amp;quot;,h,l,c,p,f=this._mappings.toArray(),d=0,m=f.length;d&amp;amp;lt;m;d++){if(l=f[d],h=&amp;amp;quot;&amp;amp;quot;,l.generatedLine!==r)for(t=0;l.generatedLine!==r;)h+=&amp;amp;quot;;&amp;amp;quot;,r++;else if(d&amp;amp;gt;0){if(!xt.compareByGeneratedPositionsInflated(l,f[d-1]))continue;h+=&amp;amp;quot;,&amp;amp;quot;}h+=Wo.encode(l.generatedColumn-t),t=l.generatedColumn,l.source!=null&amp;amp;amp;&amp;amp;amp;(p=this._sources.indexOf(l.source),h+=Wo.encode(p-o),o=p,h+=Wo.encode(l.originalLine-1-s),s=l.originalLine-1,h+=Wo.encode(l.originalColumn-n),n=l.originalColumn,l.name!=null&amp;amp;amp;&amp;amp;amp;(c=this._names.indexOf(l.name),h+=Wo.encode(c-a),a=c)),u+=h}return u};Ir.prototype._generateSourcesContent=function(t,r){return t.map(function(n){if(!this._sourcesContents)return null;r!=null&amp;amp;amp;&amp;amp;amp;(n=xt.relative(r,n));var s=xt.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,s)?this._sourcesContents[s]:null},this)};Ir.prototype.toJSON=function(){var t={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return this._file!=null&amp;amp;amp;&amp;amp;amp;(t.file=this._file),this._sourceRoot!=null&amp;amp;amp;&amp;amp;amp;(t.sourceRoot=this._sourceRoot),this._sourcesContents&amp;amp;amp;&amp;amp;amp;(t.sourcesContent=this._generateSourcesContent(t.sources,t.sourceRoot)),t};Ir.prototype.toString=function(){return JSON.stringify(this.toJSON())};Fy.SourceMapGenerator=Ir});var Ty=ut(Yn=&amp;amp;gt;{Yn.GREATEST_LOWER_BOUND=1;Yn.LEAST_UPPER_BOUND=2;function Hp(i,t,r,n,s,a){var o=Math.floor((t-i)/2)+i,u=s(r,n[o],!0);return u===0?o:u&amp;amp;gt;0?t-o&amp;amp;gt;1?Hp(o,t,r,n,s,a):a==Yn.LEAST_UPPER_BOUND?t&amp;amp;lt;n.length?t:-1:o:o-i&amp;amp;gt;1?Hp(i,o,r,n,s,a):a==Yn.LEAST_UPPER_BOUND?o:i&amp;amp;lt;0?-1:i}Yn.search=function(t,r,n,s){if(r.length===0)return-1;var a=Hp(-1,r.length,t,r,n,s||Yn.GREATEST_LOWER_BOUND);if(a&amp;amp;lt;0)return-1;for(;a-1&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;n(r[a],r[a-1],!0)===0;)--a;return a}});var Iy=ut(Ny=&amp;amp;gt;{function Wp(i,t,r){var n=i[t];i[t]=i[r],i[r]=n}function VE(i,t){return Math.round(i+Math.random()*(t-i))}function qp(i,t,r,n){if(r&amp;amp;lt;n){var s=VE(r,n),a=r-1;Wp(i,s,n);for(var o=i[n],u=r;u&amp;amp;lt;n;u++)t(i[u],o)&amp;amp;lt;=0&amp;amp;amp;&amp;amp;amp;(a+=1,Wp(i,a,u));Wp(i,a+1,u);var h=a+1;qp(i,t,r,h-1),qp(i,t,h+1,n)}}Ny.quickSort=function(i,t){qp(i,t,0,i.length-1)}});var My=ut(Jl=&amp;amp;gt;{var Fe=ha(),Zp=Ty(),ca=jp().ArraySet,UE=Vp(),qo=Iy().quickSort;function ot(i,t){var r=i;return typeof i==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=Fe.parseSourceMapInput(i)),r.sections!=null?new qr(r,t):new Lt(r,t)}ot.fromSourceMap=function(i,t){return Lt.fromSourceMap(i,t)};ot.prototype._version=3;ot.prototype.__generatedMappings=null;Object.defineProperty(ot.prototype,&amp;amp;quot;_generatedMappings&amp;amp;quot;,{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}});ot.prototype.__originalMappings=null;Object.defineProperty(ot.prototype,&amp;amp;quot;_originalMappings&amp;amp;quot;,{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}});ot.prototype._charIsMappingSeparator=function(t,r){var n=t.charAt(r);return n===&amp;amp;quot;;&amp;amp;quot;||n===&amp;amp;quot;,&amp;amp;quot;};ot.prototype._parseMappings=function(t,r){throw new Error(&amp;amp;quot;Subclasses must implement _parseMappings&amp;amp;quot;)};ot.GENERATED_ORDER=1;ot.ORIGINAL_ORDER=2;ot.GREATEST_LOWER_BOUND=1;ot.LEAST_UPPER_BOUND=2;ot.prototype.eachMapping=function(t,r,n){var s=r||null,a=n||ot.GENERATED_ORDER,o;switch(a){case ot.GENERATED_ORDER:o=this._generatedMappings;break;case ot.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error(&amp;amp;quot;Unknown order of iteration.&amp;amp;quot;)}var u=this.sourceRoot;o.map(function(h){var l=h.source===null?null:this._sources.at(h.source);return l=Fe.computeSourceURL(u,l,this._sourceMapURL),{source:l,generatedLine:h.generatedLine,generatedColumn:h.generatedColumn,originalLine:h.originalLine,originalColumn:h.originalColumn,name:h.name===null?null:this._names.at(h.name)}},this).forEach(t,s)};ot.prototype.allGeneratedPositionsFor=function(t){var r=Fe.getArg(t,&amp;amp;quot;line&amp;amp;quot;),n={source:Fe.getArg(t,&amp;amp;quot;source&amp;amp;quot;),originalLine:r,originalColumn:Fe.getArg(t,&amp;amp;quot;column&amp;amp;quot;,0)};if(n.source=this._findSourceIndex(n.source),n.source&amp;amp;lt;0)return[];var s=[],a=this._findMapping(n,this._originalMappings,&amp;amp;quot;originalLine&amp;amp;quot;,&amp;amp;quot;originalColumn&amp;amp;quot;,Fe.compareByOriginalPositions,Zp.LEAST_UPPER_BOUND);if(a&amp;amp;gt;=0){var o=this._originalMappings[a];if(t.column===void 0)for(var u=o.originalLine;o&amp;amp;amp;&amp;amp;amp;o.originalLine===u;)s.push({line:Fe.getArg(o,&amp;amp;quot;generatedLine&amp;amp;quot;,null),column:Fe.getArg(o,&amp;amp;quot;generatedColumn&amp;amp;quot;,null),lastColumn:Fe.getArg(o,&amp;amp;quot;lastGeneratedColumn&amp;amp;quot;,null)}),o=this._originalMappings[++a];else for(var h=o.originalColumn;o&amp;amp;amp;&amp;amp;amp;o.originalLine===r&amp;amp;amp;&amp;amp;amp;o.originalColumn==h;)s.push({line:Fe.getArg(o,&amp;amp;quot;generatedLine&amp;amp;quot;,null),column:Fe.getArg(o,&amp;amp;quot;generatedColumn&amp;amp;quot;,null),lastColumn:Fe.getArg(o,&amp;amp;quot;lastGeneratedColumn&amp;amp;quot;,null)}),o=this._originalMappings[++a]}return s};Jl.SourceMapConsumer=ot;function Lt(i,t){var r=i;typeof i==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=Fe.parseSourceMapInput(i));var n=Fe.getArg(r,&amp;amp;quot;version&amp;amp;quot;),s=Fe.getArg(r,&amp;amp;quot;sources&amp;amp;quot;),a=Fe.getArg(r,&amp;amp;quot;names&amp;amp;quot;,[]),o=Fe.getArg(r,&amp;amp;quot;sourceRoot&amp;amp;quot;,null),u=Fe.getArg(r,&amp;amp;quot;sourcesContent&amp;amp;quot;,null),h=Fe.getArg(r,&amp;amp;quot;mappings&amp;amp;quot;),l=Fe.getArg(r,&amp;amp;quot;file&amp;amp;quot;,null);if(n!=this._version)throw new Error(&amp;amp;quot;Unsupported version: &amp;amp;quot;+n);o&amp;amp;amp;&amp;amp;amp;(o=Fe.normalize(o)),s=s.map(String).map(Fe.normalize).map(function(c){return o&amp;amp;amp;&amp;amp;amp;Fe.isAbsolute(o)&amp;amp;amp;&amp;amp;amp;Fe.isAbsolute(c)?Fe.relative(o,c):c}),this._names=ca.fromArray(a.map(String),!0),this._sources=ca.fromArray(s,!0),this._absoluteSources=this._sources.toArray().map(function(c){return Fe.computeSourceURL(o,c,t)}),this.sourceRoot=o,this.sourcesContent=u,this._mappings=h,this._sourceMapURL=t,this.file=l}Lt.prototype=Object.create(ot.prototype);Lt.prototype.consumer=ot;Lt.prototype._findSourceIndex=function(i){var t=i;if(this.sourceRoot!=null&amp;amp;amp;&amp;amp;amp;(t=Fe.relative(this.sourceRoot,t)),this._sources.has(t))return this._sources.indexOf(t);var r;for(r=0;r&amp;amp;lt;this._absoluteSources.length;++r)if(this._absoluteSources[r]==i)return r;return-1};Lt.fromSourceMap=function(t,r){var n=Object.create(Lt.prototype),s=n._names=ca.fromArray(t._names.toArray(),!0),a=n._sources=ca.fromArray(t._sources.toArray(),!0);n.sourceRoot=t._sourceRoot,n.sourcesContent=t._generateSourcesContent(n._sources.toArray(),n.sourceRoot),n.file=t._file,n._sourceMapURL=r,n._absoluteSources=n._sources.toArray().map(function(d){return Fe.computeSourceURL(n.sourceRoot,d,r)});for(var o=t._mappings.toArray().slice(),u=n.__generatedMappings=[],h=n.__originalMappings=[],l=0,c=o.length;l&amp;amp;lt;c;l++){var p=o[l],f=new ky;f.generatedLine=p.generatedLine,f.generatedColumn=p.generatedColumn,p.source&amp;amp;amp;&amp;amp;amp;(f.source=a.indexOf(p.source),f.originalLine=p.originalLine,f.originalColumn=p.originalColumn,p.name&amp;amp;amp;&amp;amp;amp;(f.name=s.indexOf(p.name)),h.push(f)),u.push(f)}return qo(n.__originalMappings,Fe.compareByOriginalPositions),n};Lt.prototype._version=3;Object.defineProperty(Lt.prototype,&amp;amp;quot;sources&amp;amp;quot;,{get:function(){return this._absoluteSources.slice()}});function ky(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}Lt.prototype._parseMappings=function(t,r){for(var n=1,s=0,a=0,o=0,u=0,h=0,l=t.length,c=0,p={},f={},d=[],m=[],g,v,w,y,S;c&amp;amp;lt;l;)if(t.charAt(c)===&amp;amp;quot;;&amp;amp;quot;)n++,c++,s=0;else if(t.charAt(c)===&amp;amp;quot;,&amp;amp;quot;)c++;else{for(g=new ky,g.generatedLine=n,y=c;y&amp;amp;lt;l&amp;amp;amp;&amp;amp;amp;!this._charIsMappingSeparator(t,y);y++);if(v=t.slice(c,y),w=p[v],w)c+=v.length;else{for(w=[];c&amp;amp;lt;y;)UE.decode(t,c,f),S=f.value,c=f.rest,w.push(S);if(w.length===2)throw new Error(&amp;amp;quot;Found a source, but no line and column&amp;amp;quot;);if(w.length===3)throw new Error(&amp;amp;quot;Found a source and line, but no column&amp;amp;quot;);p[v]=w}g.generatedColumn=s+w[0],s=g.generatedColumn,w.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(g.source=u+w[1],u+=w[1],g.originalLine=a+w[2],a=g.originalLine,g.originalLine+=1,g.originalColumn=o+w[3],o=g.originalColumn,w.length&amp;amp;gt;4&amp;amp;amp;&amp;amp;amp;(g.name=h+w[4],h+=w[4])),m.push(g),typeof g.originalLine==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;d.push(g)}qo(m,Fe.compareByGeneratedPositionsDeflated),this.__generatedMappings=m,qo(d,Fe.compareByOriginalPositions),this.__originalMappings=d};Lt.prototype._findMapping=function(t,r,n,s,a,o){if(t[n]&amp;amp;lt;=0)throw new TypeError(&amp;amp;quot;Line must be greater than or equal to 1, got &amp;amp;quot;+t[n]);if(t[s]&amp;amp;lt;0)throw new TypeError(&amp;amp;quot;Column must be greater than or equal to 0, got &amp;amp;quot;+t[s]);return Zp.search(t,r,a,o)};Lt.prototype.computeColumnSpans=function(){for(var t=0;t&amp;amp;lt;this._generatedMappings.length;++t){var r=this._generatedMappings[t];if(t+1&amp;amp;lt;this._generatedMappings.length){var n=this._generatedMappings[t+1];if(r.generatedLine===n.generatedLine){r.lastGeneratedColumn=n.generatedColumn-1;continue}}r.lastGeneratedColumn=1/0}};Lt.prototype.originalPositionFor=function(t){var r={generatedLine:Fe.getArg(t,&amp;amp;quot;line&amp;amp;quot;),generatedColumn:Fe.getArg(t,&amp;amp;quot;column&amp;amp;quot;)},n=this._findMapping(r,this._generatedMappings,&amp;amp;quot;generatedLine&amp;amp;quot;,&amp;amp;quot;generatedColumn&amp;amp;quot;,Fe.compareByGeneratedPositionsDeflated,Fe.getArg(t,&amp;amp;quot;bias&amp;amp;quot;,ot.GREATEST_LOWER_BOUND));if(n&amp;amp;gt;=0){var s=this._generatedMappings[n];if(s.generatedLine===r.generatedLine){var a=Fe.getArg(s,&amp;amp;quot;source&amp;amp;quot;,null);a!==null&amp;amp;amp;&amp;amp;amp;(a=this._sources.at(a),a=Fe.computeSourceURL(this.sourceRoot,a,this._sourceMapURL));var o=Fe.getArg(s,&amp;amp;quot;name&amp;amp;quot;,null);return o!==null&amp;amp;amp;&amp;amp;amp;(o=this._names.at(o)),{source:a,line:Fe.getArg(s,&amp;amp;quot;originalLine&amp;amp;quot;,null),column:Fe.getArg(s,&amp;amp;quot;originalColumn&amp;amp;quot;,null),name:o}}}return{source:null,line:null,column:null,name:null}};Lt.prototype.hasContentsOfAllSources=function(){return this.sourcesContent?this.sourcesContent.length&amp;amp;gt;=this._sources.size()&amp;amp;amp;&amp;amp;amp;!this.sourcesContent.some(function(t){return t==null}):!1};Lt.prototype.sourceContentFor=function(t,r){if(!this.sourcesContent)return null;var n=this._findSourceIndex(t);if(n&amp;amp;gt;=0)return this.sourcesContent[n];var s=t;this.sourceRoot!=null&amp;amp;amp;&amp;amp;amp;(s=Fe.relative(this.sourceRoot,s));var a;if(this.sourceRoot!=null&amp;amp;amp;&amp;amp;amp;(a=Fe.urlParse(this.sourceRoot))){var o=s.replace(/^file:\/\//,&amp;amp;quot;&amp;amp;quot;);if(a.scheme==&amp;amp;quot;file&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this._sources.has(o))return this.sourcesContent[this._sources.indexOf(o)];if((!a.path||a.path==&amp;amp;quot;/&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this._sources.has(&amp;amp;quot;/&amp;amp;quot;+s))return this.sourcesContent[this._sources.indexOf(&amp;amp;quot;/&amp;amp;quot;+s)]}if(r)return null;throw new Error(&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;+s+&amp;amp;#39;&amp;amp;quot; is not in the SourceMap.&amp;amp;#39;)};Lt.prototype.generatedPositionFor=function(t){var r=Fe.getArg(t,&amp;amp;quot;source&amp;amp;quot;);if(r=this._findSourceIndex(r),r&amp;amp;lt;0)return{line:null,column:null,lastColumn:null};var n={source:r,originalLine:Fe.getArg(t,&amp;amp;quot;line&amp;amp;quot;),originalColumn:Fe.getArg(t,&amp;amp;quot;column&amp;amp;quot;)},s=this._findMapping(n,this._originalMappings,&amp;amp;quot;originalLine&amp;amp;quot;,&amp;amp;quot;originalColumn&amp;amp;quot;,Fe.compareByOriginalPositions,Fe.getArg(t,&amp;amp;quot;bias&amp;amp;quot;,ot.GREATEST_LOWER_BOUND));if(s&amp;amp;gt;=0){var a=this._originalMappings[s];if(a.source===n.source)return{line:Fe.getArg(a,&amp;amp;quot;generatedLine&amp;amp;quot;,null),column:Fe.getArg(a,&amp;amp;quot;generatedColumn&amp;amp;quot;,null),lastColumn:Fe.getArg(a,&amp;amp;quot;lastGeneratedColumn&amp;amp;quot;,null)}}return{line:null,column:null,lastColumn:null}};Jl.BasicSourceMapConsumer=Lt;function qr(i,t){var r=i;typeof i==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=Fe.parseSourceMapInput(i));var n=Fe.getArg(r,&amp;amp;quot;version&amp;amp;quot;),s=Fe.getArg(r,&amp;amp;quot;sections&amp;amp;quot;);if(n!=this._version)throw new Error(&amp;amp;quot;Unsupported version: &amp;amp;quot;+n);this._sources=new ca,this._names=new ca;var a={line:-1,column:0};this._sections=s.map(function(o){if(o.url)throw new Error(&amp;amp;quot;Support for url field in sections not implemented.&amp;amp;quot;);var u=Fe.getArg(o,&amp;amp;quot;offset&amp;amp;quot;),h=Fe.getArg(u,&amp;amp;quot;line&amp;amp;quot;),l=Fe.getArg(u,&amp;amp;quot;column&amp;amp;quot;);if(h&amp;amp;lt;a.line||h===a.line&amp;amp;amp;&amp;amp;amp;l&amp;amp;lt;a.column)throw new Error(&amp;amp;quot;Section offsets must be ordered and non-overlapping.&amp;amp;quot;);return a=u,{generatedOffset:{generatedLine:h+1,generatedColumn:l+1},consumer:new ot(Fe.getArg(o,&amp;amp;quot;map&amp;amp;quot;),t)}})}qr.prototype=Object.create(ot.prototype);qr.prototype.constructor=ot;qr.prototype._version=3;Object.defineProperty(qr.prototype,&amp;amp;quot;sources&amp;amp;quot;,{get:function(){for(var i=[],t=0;t&amp;amp;lt;this._sections.length;t++)for(var r=0;r&amp;amp;lt;this._sections[t].consumer.sources.length;r++)i.push(this._sections[t].consumer.sources[r]);return i}});qr.prototype.originalPositionFor=function(t){var r={generatedLine:Fe.getArg(t,&amp;amp;quot;line&amp;amp;quot;),generatedColumn:Fe.getArg(t,&amp;amp;quot;column&amp;amp;quot;)},n=Zp.search(r,this._sections,function(a,o){var u=a.generatedLine-o.generatedOffset.generatedLine;return u||a.generatedColumn-o.generatedOffset.generatedColumn}),s=this._sections[n];return s?s.consumer.originalPositionFor({line:r.generatedLine-(s.generatedOffset.generatedLine-1),column:r.generatedColumn-(s.generatedOffset.generatedLine===r.generatedLine?s.generatedOffset.generatedColumn-1:0),bias:t.bias}):{source:null,line:null,column:null,name:null}};qr.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(t){return t.consumer.hasContentsOfAllSources()})};qr.prototype.sourceContentFor=function(t,r){for(var n=0;n&amp;amp;lt;this._sections.length;n++){var s=this._sections[n],a=s.consumer.sourceContentFor(t,!0);if(a)return a}if(r)return null;throw new Error(&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;+t+&amp;amp;#39;&amp;amp;quot; is not in the SourceMap.&amp;amp;#39;)};qr.prototype.generatedPositionFor=function(t){for(var r=0;r&amp;amp;lt;this._sections.length;r++){var n=this._sections[r];if(n.consumer._findSourceIndex(Fe.getArg(t,&amp;amp;quot;source&amp;amp;quot;))!==-1){var s=n.consumer.generatedPositionFor(t);if(s){var a={line:s.line+(n.generatedOffset.generatedLine-1),column:s.column+(n.generatedOffset.generatedLine===s.line?n.generatedOffset.generatedColumn-1:0)};return a}}}return{line:null,column:null}};qr.prototype._parseMappings=function(t,r){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n&amp;amp;lt;this._sections.length;n++)for(var s=this._sections[n],a=s.consumer._generatedMappings,o=0;o&amp;amp;lt;a.length;o++){var u=a[o],h=s.consumer._sources.at(u.source);h=Fe.computeSourceURL(s.consumer.sourceRoot,h,this._sourceMapURL),this._sources.add(h),h=this._sources.indexOf(h);var l=null;u.name&amp;amp;amp;&amp;amp;amp;(l=s.consumer._names.at(u.name),this._names.add(l),l=this._names.indexOf(l));var c={source:h,generatedLine:u.generatedLine+(s.generatedOffset.generatedLine-1),generatedColumn:u.generatedColumn+(s.generatedOffset.generatedLine===u.generatedLine?s.generatedOffset.generatedColumn-1:0),originalLine:u.originalLine,originalColumn:u.originalColumn,name:l};this.__generatedMappings.push(c),typeof c.originalLine==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.__originalMappings.push(c)}qo(this.__generatedMappings,Fe.compareByGeneratedPositionsDeflated),qo(this.__originalMappings,Fe.compareByOriginalPositions)};Jl.IndexedSourceMapConsumer=qr});var Ry=ut(Ly=&amp;amp;gt;{var GE=$p().SourceMapGenerator,Ql=ha(),zE=/(\r?\n)/,jE=10,fa=&amp;amp;quot;$$$isSourceNode$$$&amp;amp;quot;;function mr(i,t,r,n,s){this.children=[],this.sourceContents={},this.line=i??null,this.column=t??null,this.source=r??null,this.name=s??null,this[fa]=!0,n!=null&amp;amp;amp;&amp;amp;amp;this.add(n)}mr.fromStringWithSourceMap=function(t,r,n){var s=new mr,a=t.split(zE),o=0,u=function(){var f=m(),d=m()||&amp;amp;quot;&amp;amp;quot;;return f+d;function m(){return o&amp;amp;lt;a.length?a[o++]:void 0}},h=1,l=0,c=null;return r.eachMapping(function(f){if(c!==null)if(h&amp;amp;lt;f.generatedLine)p(c,u()),h++,l=0;else{var d=a[o]||&amp;amp;quot;&amp;amp;quot;,m=d.substr(0,f.generatedColumn-l);a[o]=d.substr(f.generatedColumn-l),l=f.generatedColumn,p(c,m),c=f;return}for(;h&amp;amp;lt;f.generatedLine;)s.add(u()),h++;if(l&amp;amp;lt;f.generatedColumn){var d=a[o]||&amp;amp;quot;&amp;amp;quot;;s.add(d.substr(0,f.generatedColumn)),a[o]=d.substr(f.generatedColumn),l=f.generatedColumn}c=f},this),o&amp;amp;lt;a.length&amp;amp;amp;&amp;amp;amp;(c&amp;amp;amp;&amp;amp;amp;p(c,u()),s.add(a.splice(o).join(&amp;amp;quot;&amp;amp;quot;))),r.sources.forEach(function(f){var d=r.sourceContentFor(f);d!=null&amp;amp;amp;&amp;amp;amp;(n!=null&amp;amp;amp;&amp;amp;amp;(f=Ql.join(n,f)),s.setSourceContent(f,d))}),s;function p(f,d){if(f===null||f.source===void 0)s.add(d);else{var m=n?Ql.join(n,f.source):f.source;s.add(new mr(f.originalLine,f.originalColumn,m,d,f.name))}}};mr.prototype.add=function(t){if(Array.isArray(t))t.forEach(function(r){this.add(r)},this);else if(t[fa]||typeof t==&amp;amp;quot;string&amp;amp;quot;)t&amp;amp;amp;&amp;amp;amp;this.children.push(t);else throw new TypeError(&amp;amp;quot;Expected a SourceNode, string, or an array of SourceNodes and strings. Got &amp;amp;quot;+t);return this};mr.prototype.prepend=function(t){if(Array.isArray(t))for(var r=t.length-1;r&amp;amp;gt;=0;r--)this.prepend(t[r]);else if(t[fa]||typeof t==&amp;amp;quot;string&amp;amp;quot;)this.children.unshift(t);else throw new TypeError(&amp;amp;quot;Expected a SourceNode, string, or an array of SourceNodes and strings. Got &amp;amp;quot;+t);return this};mr.prototype.walk=function(t){for(var r,n=0,s=this.children.length;n&amp;amp;lt;s;n++)r=this.children[n],r[fa]?r.walk(t):r!==&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t(r,{source:this.source,line:this.line,column:this.column,name:this.name})};mr.prototype.join=function(t){var r,n,s=this.children.length;if(s&amp;amp;gt;0){for(r=[],n=0;n&amp;amp;lt;s-1;n++)r.push(this.children[n]),r.push(t);r.push(this.children[n]),this.children=r}return this};mr.prototype.replaceRight=function(t,r){var n=this.children[this.children.length-1];return n[fa]?n.replaceRight(t,r):typeof n==&amp;amp;quot;string&amp;amp;quot;?this.children[this.children.length-1]=n.replace(t,r):this.children.push(&amp;amp;quot;&amp;amp;quot;.replace(t,r)),this};mr.prototype.setSourceContent=function(t,r){this.sourceContents[Ql.toSetString(t)]=r};mr.prototype.walkSourceContents=function(t){for(var r=0,n=this.children.length;r&amp;amp;lt;n;r++)this.children[r][fa]&amp;amp;amp;&amp;amp;amp;this.children[r].walkSourceContents(t);for(var s=Object.keys(this.sourceContents),r=0,n=s.length;r&amp;amp;lt;n;r++)t(Ql.fromSetString(s[r]),this.sourceContents[s[r]])};mr.prototype.toString=function(){var t=&amp;amp;quot;&amp;amp;quot;;return this.walk(function(r){t+=r}),t};mr.prototype.toStringWithSourceMap=function(t){var r={code:&amp;amp;quot;&amp;amp;quot;,line:1,column:0},n=new GE(t),s=!1,a=null,o=null,u=null,h=null;return this.walk(function(l,c){r.code+=l,c.source!==null&amp;amp;amp;&amp;amp;amp;c.line!==null&amp;amp;amp;&amp;amp;amp;c.column!==null?((a!==c.source||o!==c.line||u!==c.column||h!==c.name)&amp;amp;amp;&amp;amp;amp;n.addMapping({source:c.source,original:{line:c.line,column:c.column},generated:{line:r.line,column:r.column},name:c.name}),a=c.source,o=c.line,u=c.column,h=c.name,s=!0):s&amp;amp;amp;&amp;amp;amp;(n.addMapping({generated:{line:r.line,column:r.column}}),a=null,s=!1);for(var p=0,f=l.length;p&amp;amp;lt;f;p++)l.charCodeAt(p)===jE?(r.line++,r.column=0,p+1===f?(a=null,s=!1):s&amp;amp;amp;&amp;amp;amp;n.addMapping({source:c.source,original:{line:c.line,column:c.column},generated:{line:r.line,column:r.column},name:c.name})):r.column++}),this.walkSourceContents(function(l,c){n.setSourceContent(l,c)}),{code:r.code,map:n}};Ly.SourceNode=mr});var By=ut(eh=&amp;amp;gt;{eh.SourceMapGenerator=$p().SourceMapGenerator;eh.SourceMapConsumer=My().SourceMapConsumer;eh.SourceNode=Ry().SourceNode});var Py=ut((IO,$E)=&amp;amp;gt;{$E.exports={name:&amp;amp;quot;escodegen&amp;amp;quot;,description:&amp;amp;quot;ECMAScript code generator&amp;amp;quot;,homepage:&amp;amp;quot;http://github.com/estools/escodegen&amp;amp;quot;,main:&amp;amp;quot;escodegen.js&amp;amp;quot;,bin:{esgenerate:&amp;amp;quot;./bin/esgenerate.js&amp;amp;quot;,escodegen:&amp;amp;quot;./bin/escodegen.js&amp;amp;quot;},files:[&amp;amp;quot;LICENSE.BSD&amp;amp;quot;,&amp;amp;quot;README.md&amp;amp;quot;,&amp;amp;quot;bin&amp;amp;quot;,&amp;amp;quot;escodegen.js&amp;amp;quot;,&amp;amp;quot;package.json&amp;amp;quot;],version:&amp;amp;quot;2.1.0&amp;amp;quot;,engines:{node:&amp;amp;quot;&amp;amp;gt;=6.0&amp;amp;quot;},maintainers:[{name:&amp;amp;quot;Yusuke Suzuki&amp;amp;quot;,email:&amp;amp;quot;utatane.tea@gmail.com&amp;amp;quot;,web:&amp;amp;quot;http://github.com/Constellation&amp;amp;quot;}],repository:{type:&amp;amp;quot;git&amp;amp;quot;,url:&amp;amp;quot;http://github.com/estools/escodegen.git&amp;amp;quot;},dependencies:{estraverse:&amp;amp;quot;^5.2.0&amp;amp;quot;,esutils:&amp;amp;quot;^2.0.2&amp;amp;quot;,esprima:&amp;amp;quot;^4.0.1&amp;amp;quot;},optionalDependencies:{&amp;amp;quot;source-map&amp;amp;quot;:&amp;amp;quot;~0.6.1&amp;amp;quot;},devDependencies:{acorn:&amp;amp;quot;^8.0.4&amp;amp;quot;,bluebird:&amp;amp;quot;^3.4.7&amp;amp;quot;,&amp;amp;quot;bower-registry-client&amp;amp;quot;:&amp;amp;quot;^1.0.0&amp;amp;quot;,chai:&amp;amp;quot;^4.2.0&amp;amp;quot;,&amp;amp;quot;chai-exclude&amp;amp;quot;:&amp;amp;quot;^2.0.2&amp;amp;quot;,&amp;amp;quot;commonjs-everywhere&amp;amp;quot;:&amp;amp;quot;^0.9.7&amp;amp;quot;,gulp:&amp;amp;quot;^4.0.2&amp;amp;quot;,&amp;amp;quot;gulp-eslint&amp;amp;quot;:&amp;amp;quot;^6.0.0&amp;amp;quot;,&amp;amp;quot;gulp-mocha&amp;amp;quot;:&amp;amp;quot;^7.0.2&amp;amp;quot;,minimist:&amp;amp;quot;^1.2.5&amp;amp;quot;,optionator:&amp;amp;quot;^0.9.1&amp;amp;quot;,semver:&amp;amp;quot;^7.3.4&amp;amp;quot;},license:&amp;amp;quot;BSD-2-Clause&amp;amp;quot;,scripts:{test:&amp;amp;quot;gulp travis&amp;amp;quot;,&amp;amp;quot;unit-test&amp;amp;quot;:&amp;amp;quot;gulp test&amp;amp;quot;,lint:&amp;amp;quot;gulp lint&amp;amp;quot;,release:&amp;amp;quot;node tools/release.js&amp;amp;quot;,&amp;amp;quot;build-min&amp;amp;quot;:&amp;amp;quot;./node_modules/.bin/cjsify -ma path: tools/entry-point.js &amp;amp;gt; escodegen.browser.min.js&amp;amp;quot;,build:&amp;amp;quot;./node_modules/.bin/cjsify -a path: tools/entry-point.js &amp;amp;gt; escodegen.browser.js&amp;amp;quot;}}});var th=ut(Li=&amp;amp;gt;{(function(){&amp;amp;quot;use strict&amp;amp;quot;;var i,t,r,n,s,a,o,u,h,l,c,p,f,d,m,g,v,w,y,S,_,b,I,E,A,C;s=ay(),a=fy(),i=s.Syntax;function T(x){return yt.Expression.hasOwnProperty(x.type)}function D(x){return yt.Statement.hasOwnProperty(x.type)}t={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,Coalesce:3,LogicalOR:4,LogicalAND:5,BitwiseOR:6,BitwiseXOR:7,BitwiseAND:8,Equality:9,Relational:10,BitwiseSHIFT:11,Additive:12,Multiplicative:13,Exponentiation:14,Await:15,Unary:15,Postfix:16,OptionalChaining:17,Call:18,New:19,TaggedTemplate:20,Member:21,Primary:22},r={&amp;amp;quot;??&amp;amp;quot;:t.Coalesce,&amp;amp;quot;||&amp;amp;quot;:t.LogicalOR,&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;:t.LogicalAND,&amp;amp;quot;|&amp;amp;quot;:t.BitwiseOR,&amp;amp;quot;^&amp;amp;quot;:t.BitwiseXOR,&amp;amp;quot;&amp;amp;amp;&amp;amp;quot;:t.BitwiseAND,&amp;amp;quot;==&amp;amp;quot;:t.Equality,&amp;amp;quot;!=&amp;amp;quot;:t.Equality,&amp;amp;quot;===&amp;amp;quot;:t.Equality,&amp;amp;quot;!==&amp;amp;quot;:t.Equality,is:t.Equality,isnt:t.Equality,&amp;amp;quot;&amp;amp;lt;&amp;amp;quot;:t.Relational,&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;:t.Relational,&amp;amp;quot;&amp;amp;lt;=&amp;amp;quot;:t.Relational,&amp;amp;quot;&amp;amp;gt;=&amp;amp;quot;:t.Relational,in:t.Relational,instanceof:t.Relational,&amp;amp;quot;&amp;amp;lt;&amp;amp;lt;&amp;amp;quot;:t.BitwiseSHIFT,&amp;amp;quot;&amp;amp;gt;&amp;amp;gt;&amp;amp;quot;:t.BitwiseSHIFT,&amp;amp;quot;&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;quot;:t.BitwiseSHIFT,&amp;amp;quot;+&amp;amp;quot;:t.Additive,&amp;amp;quot;-&amp;amp;quot;:t.Additive,&amp;amp;quot;*&amp;amp;quot;:t.Multiplicative,&amp;amp;quot;%&amp;amp;quot;:t.Multiplicative,&amp;amp;quot;/&amp;amp;quot;:t.Multiplicative,&amp;amp;quot;**&amp;amp;quot;:t.Exponentiation};var F=1,N=2,B=4,U=8,j=16,W=32,te=64,X=N|B,Z=F|N,G=F|N|B,q=F,J=B,Y=F|B,Q=F,fe=F|W,de=0,me=F|j,ie=F|U;function ee(){return{indent:null,base:null,parse:null,comment:!1,format:{indent:{style:&amp;amp;quot;    &amp;amp;quot;,base:0,adjustMultilineComment:!1},newline:`
   5427 <a href="#l5408" class="line" id="l5408">   5408</a> &lt;a href=&quot;#l5389&quot; class=&quot;line&quot; id=&quot;l5389&quot;&gt;   5389&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-289&amp;quot; id=&amp;quot;h4-0-289&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,space:&amp;amp;quot; &amp;amp;quot;,json:!1,renumber:!1,hexadecimal:!1,quotes:&amp;amp;quot;single&amp;amp;quot;,escapeless:!1,compact:!1,parentheses:!0,semicolons:!0,safeConcatenation:!1,preserveBlankLines:!1},moz:{comprehensionExpressionStartsWithAssignment:!1,starlessGenerator:!1},sourceMap:null,sourceMapRoot:null,sourceMapWithCode:!1,directive:!1,raw:!0,verbatim:null,sourceCode:null}}function se(x,M){var k=&amp;amp;quot;&amp;amp;quot;;for(M|=0;M&amp;amp;gt;0;M&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=1,x+=x)M&amp;amp;amp;1&amp;amp;amp;&amp;amp;amp;(k+=x);return k}function ce(x){return/[\r\n]/g.test(x)}function ue(x){var M=x.length;return M&amp;amp;amp;&amp;amp;amp;a.code.isLineTerminator(x.charCodeAt(M-1))}function pe(x,M){var k;for(k in M)M.hasOwnProperty(k)&amp;amp;amp;&amp;amp;amp;(x[k]=M[k]);return x}function O(x,M){var k,L;function V(re){return typeof re==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;re instanceof Object&amp;amp;amp;&amp;amp;amp;!(re instanceof RegExp)}for(k in M)M.hasOwnProperty(k)&amp;amp;amp;&amp;amp;amp;(L=M[k],V(L)?V(x[k])?O(x[k],L):x[k]=O({},L):x[k]=L);return x}function P(x){var M,k,L,V,re;if(x!==x)throw new Error(&amp;amp;quot;Numeric literal whose value is NaN&amp;amp;quot;);if(x&amp;amp;lt;0||x===0&amp;amp;amp;&amp;amp;amp;1/x&amp;amp;lt;0)throw new Error(&amp;amp;quot;Numeric literal whose value is negative&amp;amp;quot;);if(x===1/0)return h?&amp;amp;quot;null&amp;amp;quot;:l?&amp;amp;quot;1e400&amp;amp;quot;:&amp;amp;quot;1e+400&amp;amp;quot;;if(M=&amp;amp;quot;&amp;amp;quot;+x,!l||M.length&amp;amp;lt;3)return M;for(k=M.indexOf(&amp;amp;quot;.&amp;amp;quot;),!h&amp;amp;amp;&amp;amp;amp;M.charCodeAt(0)===48&amp;amp;amp;&amp;amp;amp;k===1&amp;amp;amp;&amp;amp;amp;(k=0,M=M.slice(1)),L=M,M=M.replace(&amp;amp;quot;e+&amp;amp;quot;,&amp;amp;quot;e&amp;amp;quot;),V=0,(re=L.indexOf(&amp;amp;quot;e&amp;amp;quot;))&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(V=+L.slice(re+1),L=L.slice(0,re)),k&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;(V-=L.length-k-1,L=+(L.slice(0,k)+L.slice(k+1))+&amp;amp;quot;&amp;amp;quot;),re=0;L.charCodeAt(L.length+re-1)===48;)--re;return re!==0&amp;amp;amp;&amp;amp;amp;(V-=re,L=L.slice(0,re)),V!==0&amp;amp;amp;&amp;amp;amp;(L+=&amp;amp;quot;e&amp;amp;quot;+V),(L.length&amp;amp;lt;M.length||c&amp;amp;amp;&amp;amp;amp;x&amp;amp;gt;1e12&amp;amp;amp;&amp;amp;amp;Math.floor(x)===x&amp;amp;amp;&amp;amp;amp;(L=&amp;amp;quot;0x&amp;amp;quot;+x.toString(16)).length&amp;amp;lt;M.length)&amp;amp;amp;&amp;amp;amp;+L===x&amp;amp;amp;&amp;amp;amp;(M=L),M}function z(x,M){return(x&amp;amp;amp;-2)===8232?(M?&amp;amp;quot;u&amp;amp;quot;:&amp;amp;quot;\\u&amp;amp;quot;)+(x===8232?&amp;amp;quot;2028&amp;amp;quot;:&amp;amp;quot;2029&amp;amp;quot;):x===10||x===13?(M?&amp;amp;quot;&amp;amp;quot;:&amp;amp;quot;\\&amp;amp;quot;)+(x===10?&amp;amp;quot;n&amp;amp;quot;:&amp;amp;quot;r&amp;amp;quot;):String.fromCharCode(x)}function $(x){var M,k,L,V,re,ae,he,Ee;if(k=x.toString(),x.source){if(M=k.match(/\/([^/]*)$/),!M)return k;for(L=M[1],k=&amp;amp;quot;&amp;amp;quot;,he=!1,Ee=!1,V=0,re=x.source.length;V&amp;amp;lt;re;++V)ae=x.source.charCodeAt(V),Ee?(k+=z(ae,Ee),Ee=!1):(he?ae===93&amp;amp;amp;&amp;amp;amp;(he=!1):ae===47?k+=&amp;amp;quot;\\&amp;amp;quot;:ae===91&amp;amp;amp;&amp;amp;amp;(he=!0),k+=z(ae,Ee),Ee=ae===92);return&amp;amp;quot;/&amp;amp;quot;+k+&amp;amp;quot;/&amp;amp;quot;+L}return k}function ne(x,M){var k;return x===8?&amp;amp;quot;\\b&amp;amp;quot;:x===12?&amp;amp;quot;\\f&amp;amp;quot;:x===9?&amp;amp;quot;\\t&amp;amp;quot;:(k=x.toString(16).toUpperCase(),h||x&amp;amp;gt;255?&amp;amp;quot;\\u&amp;amp;quot;+&amp;amp;quot;0000&amp;amp;quot;.slice(k.length)+k:x===0&amp;amp;amp;&amp;amp;amp;!a.code.isDecimalDigit(M)?&amp;amp;quot;\\0&amp;amp;quot;:x===11?&amp;amp;quot;\\x0B&amp;amp;quot;:&amp;amp;quot;\\x&amp;amp;quot;+&amp;amp;quot;00&amp;amp;quot;.slice(k.length)+k)}function K(x){if(x===92)return&amp;amp;quot;\\\\&amp;amp;quot;;if(x===10)return&amp;amp;quot;\\n&amp;amp;quot;;if(x===13)return&amp;amp;quot;\\r&amp;amp;quot;;if(x===8232)return&amp;amp;quot;\\u2028&amp;amp;quot;;if(x===8233)return&amp;amp;quot;\\u2029&amp;amp;quot;;throw new Error(&amp;amp;quot;Incorrectly classified character&amp;amp;quot;)}function ve(x){var M,k,L,V;for(V=p===&amp;amp;quot;double&amp;amp;quot;?&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;:&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;,M=0,k=x.length;M&amp;amp;lt;k;++M)if(L=x.charCodeAt(M),L===39){V=&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;;break}else if(L===34){V=&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;;break}else L===92&amp;amp;amp;&amp;amp;amp;++M;return V+x+V}function ge(x){var M=&amp;amp;quot;&amp;amp;quot;,k,L,V,re=0,ae=0,he,Ee;for(k=0,L=x.length;k&amp;amp;lt;L;++k){if(V=x.charCodeAt(k),V===39)++re;else if(V===34)++ae;else if(V===47&amp;amp;amp;&amp;amp;amp;h)M+=&amp;amp;quot;\\&amp;amp;quot;;else if(a.code.isLineTerminator(V)||V===92){M+=K(V);continue}else if(!a.code.isIdentifierPartES5(V)&amp;amp;amp;&amp;amp;amp;(h&amp;amp;amp;&amp;amp;amp;V&amp;amp;lt;32||!h&amp;amp;amp;&amp;amp;amp;!f&amp;amp;amp;&amp;amp;amp;(V&amp;amp;lt;32||V&amp;amp;gt;126))){M+=ne(V,x.charCodeAt(k+1));continue}M+=String.fromCharCode(V)}if(he=!(p===&amp;amp;quot;double&amp;amp;quot;||p===&amp;amp;quot;auto&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;ae&amp;amp;lt;re),Ee=he?&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;:&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;,!(he?re:ae))return Ee+M+Ee;for(x=M,M=Ee,k=0,L=x.length;k&amp;amp;lt;L;++k)V=x.charCodeAt(k),(V===39&amp;amp;amp;&amp;amp;amp;he||V===34&amp;amp;amp;&amp;amp;amp;!he)&amp;amp;amp;&amp;amp;amp;(M+=&amp;amp;quot;\\&amp;amp;quot;),M+=String.fromCharCode(V);return M+Ee}function Te(x){var M,k,L,V=&amp;amp;quot;&amp;amp;quot;;for(M=0,k=x.length;M&amp;amp;lt;k;++M)L=x[M],V+=Array.isArray(L)?Te(L):L;return V}function xe(x,M){if(!b)return Array.isArray(x)?Te(x):x;if(M==null){if(x instanceof n)return x;M={}}return M.loc==null?new n(null,null,b,x,M.name||null):new n(M.loc.start.line,M.loc.start.column,b===!0?M.loc.source||null:b,x,M.name||null)}function Ie(){return m||&amp;amp;quot; &amp;amp;quot;}function Ce(x,M){var k,L,V,re;return k=xe(x).toString(),k.length===0?[M]:(L=xe(M).toString(),L.length===0?[x]:(V=k.charCodeAt(k.length-1),re=L.charCodeAt(0),(V===43||V===45)&amp;amp;amp;&amp;amp;amp;V===re||a.code.isIdentifierPartES5(V)&amp;amp;amp;&amp;amp;amp;a.code.isIdentifierPartES5(re)||V===47&amp;amp;amp;&amp;amp;amp;re===105?[x,Ie(),M]:a.code.isWhiteSpace(V)||a.code.isLineTerminator(V)||a.code.isWhiteSpace(re)||a.code.isLineTerminator(re)?[x,M]:[x,m,M]))}function Ge(x){return[o,x]}function Me(x){var M;M=o,o+=u,x(o),o=M}function nt(x){var M;for(M=x.length-1;M&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;!a.code.isLineTerminator(x.charCodeAt(M));--M);return x.length-1-M}function Gt(x,M){var k,L,V,re,ae,he,Ee,qe;for(k=x.split(/\r\n|[\r\n]/),he=Number.MAX_VALUE,L=1,V=k.length;L&amp;amp;lt;V;++L){for(re=k[L],ae=0;ae&amp;amp;lt;re.length&amp;amp;amp;&amp;amp;amp;a.code.isWhiteSpace(re.charCodeAt(ae));)++ae;he&amp;amp;gt;ae&amp;amp;amp;&amp;amp;amp;(he=ae)}for(typeof M&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(Ee=o,k[1][he]===&amp;amp;quot;*&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(M+=&amp;amp;quot; &amp;amp;quot;),o=M):(he&amp;amp;amp;1&amp;amp;amp;&amp;amp;amp;--he,Ee=o),L=1,V=k.length;L&amp;amp;lt;V;++L)qe=xe(Ge(k[L].slice(he))),k[L]=b?qe.join(&amp;amp;quot;&amp;amp;quot;):qe;return o=Ee,k.join(`
   5428 <a href="#l5409" class="line" id="l5409">   5409</a> &lt;a href=&quot;#l5390&quot; class=&quot;line&quot; id=&quot;l5390&quot;&gt;   5390&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-290&amp;quot; id=&amp;quot;h4-0-290&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)}function ft(x,M){if(x.type===&amp;amp;quot;Line&amp;amp;quot;){if(ue(x.value))return&amp;amp;quot;//&amp;amp;quot;+x.value;var k=&amp;amp;quot;//&amp;amp;quot;+x.value;return E||(k+=`
   5429 <a href="#l5410" class="line" id="l5410">   5410</a> &lt;a href=&quot;#l5391&quot; class=&quot;line&quot; id=&quot;l5391&quot;&gt;   5391&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-291&amp;quot; id=&amp;quot;h4-0-291&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),k}return S.format.indent.adjustMultilineComment&amp;amp;amp;&amp;amp;amp;/[\n\r]/.test(x.value)?Gt(&amp;amp;quot;/*&amp;amp;quot;+x.value+&amp;amp;quot;*/&amp;amp;quot;,M):&amp;amp;quot;/*&amp;amp;quot;+x.value+&amp;amp;quot;*/&amp;amp;quot;}function Ri(x,M){var k,L,V,re,ae,he,Ee,qe,_t,un,Xn,Jp,Qp,Zr;if(x.leadingComments&amp;amp;amp;&amp;amp;amp;x.leadingComments.length&amp;amp;gt;0){if(re=M,E){for(V=x.leadingComments[0],M=[],qe=V.extendedRange,_t=V.range,Xn=I.substring(qe[0],_t[0]),Zr=(Xn.match(/\n/g)||[]).length,Zr&amp;amp;gt;0?(M.push(se(`
   5430 <a href="#l5411" class="line" id="l5411">   5411</a> &lt;a href=&quot;#l5392&quot; class=&quot;line&quot; id=&quot;l5392&quot;&gt;   5392&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-292&amp;quot; id=&amp;quot;h4-0-292&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Zr)),M.push(Ge(ft(V)))):(M.push(Xn),M.push(ft(V))),un=_t,k=1,L=x.leadingComments.length;k&amp;amp;lt;L;k++)V=x.leadingComments[k],_t=V.range,Jp=I.substring(un[1],_t[0]),Zr=(Jp.match(/\n/g)||[]).length,M.push(se(`
   5431 <a href="#l5412" class="line" id="l5412">   5412</a> &lt;a href=&quot;#l5393&quot; class=&quot;line&quot; id=&quot;l5393&quot;&gt;   5393&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-293&amp;quot; id=&amp;quot;h4-0-293&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Zr)),M.push(Ge(ft(V))),un=_t;Qp=I.substring(_t[1],qe[1]),Zr=(Qp.match(/\n/g)||[]).length,M.push(se(`
   5432 <a href="#l5413" class="line" id="l5413">   5413</a> &lt;a href=&quot;#l5394&quot; class=&quot;line&quot; id=&quot;l5394&quot;&gt;   5394&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-294&amp;quot; id=&amp;quot;h4-0-294&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Zr))}else for(V=x.leadingComments[0],M=[],w&amp;amp;amp;&amp;amp;amp;x.type===i.Program&amp;amp;amp;&amp;amp;amp;x.body.length===0&amp;amp;amp;&amp;amp;amp;M.push(`
   5433 <a href="#l5414" class="line" id="l5414">   5414</a> &lt;a href=&quot;#l5395&quot; class=&quot;line&quot; id=&quot;l5395&quot;&gt;   5395&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-295&amp;quot; id=&amp;quot;h4-0-295&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),M.push(ft(V)),ue(xe(M).toString())||M.push(`
   5434 <a href="#l5415" class="line" id="l5415">   5415</a> &lt;a href=&quot;#l5396&quot; class=&quot;line&quot; id=&quot;l5396&quot;&gt;   5396&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-296&amp;quot; id=&amp;quot;h4-0-296&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),k=1,L=x.leadingComments.length;k&amp;amp;lt;L;++k)V=x.leadingComments[k],Ee=[ft(V)],ue(xe(Ee).toString())||Ee.push(`
   5435 <a href="#l5416" class="line" id="l5416">   5416</a> &lt;a href=&quot;#l5397&quot; class=&quot;line&quot; id=&quot;l5397&quot;&gt;   5397&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-297&amp;quot; id=&amp;quot;h4-0-297&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),M.push(Ge(Ee));M.push(Ge(re))}if(x.trailingComments)if(E)V=x.trailingComments[0],qe=V.extendedRange,_t=V.range,Xn=I.substring(qe[0],_t[0]),Zr=(Xn.match(/\n/g)||[]).length,Zr&amp;amp;gt;0?(M.push(se(`
   5436 <a href="#l5417" class="line" id="l5417">   5417</a> &lt;a href=&quot;#l5398&quot; class=&quot;line&quot; id=&quot;l5398&quot;&gt;   5398&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-298&amp;quot; id=&amp;quot;h4-0-298&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Zr)),M.push(Ge(ft(V)))):(M.push(Xn),M.push(ft(V)));else for(ae=!ue(xe(M).toString()),he=se(&amp;amp;quot; &amp;amp;quot;,nt(xe([o,M,u]).toString())),k=0,L=x.trailingComments.length;k&amp;amp;lt;L;++k)V=x.trailingComments[k],ae?(k===0?M=[M,u]:M=[M,he],M.push(ft(V,he))):M=[M,Ge(ft(V))],k!==L-1&amp;amp;amp;&amp;amp;amp;!ue(xe(M).toString())&amp;amp;amp;&amp;amp;amp;(M=[M,`
   5437 <a href="#l5418" class="line" id="l5418">   5418</a> &lt;a href=&quot;#l5399&quot; class=&quot;line&quot; id=&quot;l5399&quot;&gt;   5399&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-299&amp;quot; id=&amp;quot;h4-0-299&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`]);return M}function Bi(x,M,k){var L,V=0;for(L=x;L&amp;amp;lt;M;L++)I[L]===`
   5438 <a href="#l5419" class="line" id="l5419">   5419</a> &lt;a href=&quot;#l5400&quot; class=&quot;line&quot; id=&quot;l5400&quot;&gt;   5400&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-300&amp;quot; id=&amp;quot;h4-0-300&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`&amp;amp;amp;&amp;amp;amp;V++;for(L=1;L&amp;amp;lt;V;L++)k.push(d)}function bt(x,M,k){return M&amp;amp;lt;k?[&amp;amp;quot;(&amp;amp;quot;,x,&amp;amp;quot;)&amp;amp;quot;]:x}function Xp(x){var M,k,L;for(L=x.split(/\r\n|\n/),M=1,k=L.length;M&amp;amp;lt;k;M++)L[M]=d+o+L[M];return L}function $y(x,M){var k,L,V;return k=x[S.verbatim],typeof k==&amp;amp;quot;string&amp;amp;quot;?L=bt(Xp(k),t.Sequence,M):(L=Xp(k.content),V=k.precedence!=null?k.precedence:t.Sequence,L=bt(L,V,M)),xe(L,x)}function yt(){}yt.prototype.maybeBlock=function(x,M){var k,L,V=this;return L=!S.comment||!x.leadingComments,x.type===i.BlockStatement&amp;amp;amp;&amp;amp;amp;L?[m,this.generateStatement(x,M)]:x.type===i.EmptyStatement&amp;amp;amp;&amp;amp;amp;L?&amp;amp;quot;;&amp;amp;quot;:(Me(function(){k=[d,Ge(V.generateStatement(x,M))]}),k)},yt.prototype.maybeBlockSuffix=function(x,M){var k=ue(xe(M).toString());return x.type===i.BlockStatement&amp;amp;amp;&amp;amp;amp;(!S.comment||!x.leadingComments)&amp;amp;amp;&amp;amp;amp;!k?[M,m]:k?[M,o]:[M,d,o]};function tr(x){return xe(x.name,x)}function pa(x,M){return x.async?&amp;amp;quot;async&amp;amp;quot;+(M?Ie():m):&amp;amp;quot;&amp;amp;quot;}function Zo(x){var M=x.generator&amp;amp;amp;&amp;amp;amp;!S.moz.starlessGenerator;return M?&amp;amp;quot;*&amp;amp;quot;+m:&amp;amp;quot;&amp;amp;quot;}function Kp(x){var M=x.value,k=&amp;amp;quot;&amp;amp;quot;;return M.async&amp;amp;amp;&amp;amp;amp;(k+=pa(M,!x.computed)),M.generator&amp;amp;amp;&amp;amp;amp;(k+=Zo(M)?&amp;amp;quot;*&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;),k}yt.prototype.generatePattern=function(x,M,k){return x.type===i.Identifier?tr(x):this.generateExpression(x,M,k)},yt.prototype.generateFunctionParams=function(x){var M,k,L,V;if(V=!1,x.type===i.ArrowFunctionExpression&amp;amp;amp;&amp;amp;amp;!x.rest&amp;amp;amp;&amp;amp;amp;(!x.defaults||x.defaults.length===0)&amp;amp;amp;&amp;amp;amp;x.params.length===1&amp;amp;amp;&amp;amp;amp;x.params[0].type===i.Identifier)L=[pa(x,!0),tr(x.params[0])];else{for(L=x.type===i.ArrowFunctionExpression?[pa(x,!1)]:[],L.push(&amp;amp;quot;(&amp;amp;quot;),x.defaults&amp;amp;amp;&amp;amp;amp;(V=!0),M=0,k=x.params.length;M&amp;amp;lt;k;++M)V&amp;amp;amp;&amp;amp;amp;x.defaults[M]?L.push(this.generateAssignment(x.params[M],x.defaults[M],&amp;amp;quot;=&amp;amp;quot;,t.Assignment,G)):L.push(this.generatePattern(x.params[M],t.Assignment,G)),M+1&amp;amp;lt;k&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot;,&amp;amp;quot;+m);x.rest&amp;amp;amp;&amp;amp;amp;(x.params.length&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot;,&amp;amp;quot;+m),L.push(&amp;amp;quot;...&amp;amp;quot;),L.push(tr(x.rest))),L.push(&amp;amp;quot;)&amp;amp;quot;)}return L},yt.prototype.generateFunctionBody=function(x){var M,k;return M=this.generateFunctionParams(x),x.type===i.ArrowFunctionExpression&amp;amp;amp;&amp;amp;amp;(M.push(m),M.push(&amp;amp;quot;=&amp;amp;gt;&amp;amp;quot;)),x.expression?(M.push(m),k=this.generateExpression(x.body,t.Assignment,G),k.toString().charAt(0)===&amp;amp;quot;{&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(k=[&amp;amp;quot;(&amp;amp;quot;,k,&amp;amp;quot;)&amp;amp;quot;]),M.push(k)):M.push(this.maybeBlock(x.body,ie)),M},yt.prototype.generateIterationForStatement=function(x,M,k){var L=[&amp;amp;quot;for&amp;amp;quot;+(M.await?Ie()+&amp;amp;quot;await&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;)+m+&amp;amp;quot;(&amp;amp;quot;],V=this;return Me(function(){M.left.type===i.VariableDeclaration?Me(function(){L.push(M.left.kind+Ie()),L.push(V.generateStatement(M.left.declarations[0],de))}):L.push(V.generateExpression(M.left,t.Call,G)),L=Ce(L,x),L=[Ce(L,V.generateExpression(M.right,t.Assignment,G)),&amp;amp;quot;)&amp;amp;quot;]}),L.push(this.maybeBlock(M.body,k)),L},yt.prototype.generatePropertyKey=function(x,M){var k=[];return M&amp;amp;amp;&amp;amp;amp;k.push(&amp;amp;quot;[&amp;amp;quot;),k.push(this.generateExpression(x,t.Assignment,G)),M&amp;amp;amp;&amp;amp;amp;k.push(&amp;amp;quot;]&amp;amp;quot;),k},yt.prototype.generateAssignment=function(x,M,k,L,V){return t.Assignment&amp;amp;lt;L&amp;amp;amp;&amp;amp;amp;(V|=F),bt([this.generateExpression(x,t.Call,V),m+k+m,this.generateExpression(M,t.Assignment,V)],t.Assignment,L)},yt.prototype.semicolon=function(x){return!v&amp;amp;amp;&amp;amp;amp;x&amp;amp;amp;W?&amp;amp;quot;&amp;amp;quot;:&amp;amp;quot;;&amp;amp;quot;},yt.Statement={BlockStatement:function(x,M){var k,L,V=[&amp;amp;quot;{&amp;amp;quot;,d],re=this;return Me(function(){x.body.length===0&amp;amp;amp;&amp;amp;amp;E&amp;amp;amp;&amp;amp;amp;(k=x.range,k[1]-k[0]&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;(L=I.substring(k[0]+1,k[1]-1),L[0]===`
   5439 <a href="#l5420" class="line" id="l5420">   5420</a> &lt;a href=&quot;#l5401&quot; class=&quot;line&quot; id=&quot;l5401&quot;&gt;   5401&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-301&amp;quot; id=&amp;quot;h4-0-301&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`&amp;amp;amp;&amp;amp;amp;(V=[&amp;amp;quot;{&amp;amp;quot;]),V.push(L)));var ae,he,Ee,qe;for(qe=Q,M&amp;amp;amp;U&amp;amp;amp;&amp;amp;amp;(qe|=j),ae=0,he=x.body.length;ae&amp;amp;lt;he;++ae)E&amp;amp;amp;&amp;amp;amp;(ae===0&amp;amp;amp;&amp;amp;amp;(x.body[0].leadingComments&amp;amp;amp;&amp;amp;amp;(k=x.body[0].leadingComments[0].extendedRange,L=I.substring(k[0],k[1]),L[0]===`
   5440 <a href="#l5421" class="line" id="l5421">   5421</a> &lt;a href=&quot;#l5402&quot; class=&quot;line&quot; id=&quot;l5402&quot;&gt;   5402&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-302&amp;quot; id=&amp;quot;h4-0-302&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`&amp;amp;amp;&amp;amp;amp;(V=[&amp;amp;quot;{&amp;amp;quot;])),x.body[0].leadingComments||Bi(x.range[0],x.body[0].range[0],V)),ae&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;!x.body[ae-1].trailingComments&amp;amp;amp;&amp;amp;amp;!x.body[ae].leadingComments&amp;amp;amp;&amp;amp;amp;Bi(x.body[ae-1].range[1],x.body[ae].range[0],V)),ae===he-1&amp;amp;amp;&amp;amp;amp;(qe|=W),x.body[ae].leadingComments&amp;amp;amp;&amp;amp;amp;E?Ee=re.generateStatement(x.body[ae],qe):Ee=Ge(re.generateStatement(x.body[ae],qe)),V.push(Ee),ue(xe(Ee).toString())||E&amp;amp;amp;&amp;amp;amp;ae&amp;amp;lt;he-1&amp;amp;amp;&amp;amp;amp;x.body[ae+1].leadingComments||V.push(d),E&amp;amp;amp;&amp;amp;amp;ae===he-1&amp;amp;amp;&amp;amp;amp;(x.body[ae].trailingComments||Bi(x.body[ae].range[1],x.range[1],V))}),V.push(Ge(&amp;amp;quot;}&amp;amp;quot;)),V},BreakStatement:function(x,M){return x.label?&amp;amp;quot;break &amp;amp;quot;+x.label.name+this.semicolon(M):&amp;amp;quot;break&amp;amp;quot;+this.semicolon(M)},ContinueStatement:function(x,M){return x.label?&amp;amp;quot;continue &amp;amp;quot;+x.label.name+this.semicolon(M):&amp;amp;quot;continue&amp;amp;quot;+this.semicolon(M)},ClassBody:function(x,M){var k=[&amp;amp;quot;{&amp;amp;quot;,d],L=this;return Me(function(V){var re,ae;for(re=0,ae=x.body.length;re&amp;amp;lt;ae;++re)k.push(V),k.push(L.generateExpression(x.body[re],t.Sequence,G)),re+1&amp;amp;lt;ae&amp;amp;amp;&amp;amp;amp;k.push(d)}),ue(xe(k).toString())||k.push(d),k.push(o),k.push(&amp;amp;quot;}&amp;amp;quot;),k},ClassDeclaration:function(x,M){var k,L;return k=[&amp;amp;quot;class&amp;amp;quot;],x.id&amp;amp;amp;&amp;amp;amp;(k=Ce(k,this.generateExpression(x.id,t.Sequence,G))),x.superClass&amp;amp;amp;&amp;amp;amp;(L=Ce(&amp;amp;quot;extends&amp;amp;quot;,this.generateExpression(x.superClass,t.Unary,G)),k=Ce(k,L)),k.push(m),k.push(this.generateStatement(x.body,fe)),k},DirectiveStatement:function(x,M){return S.raw&amp;amp;amp;&amp;amp;amp;x.raw?x.raw+this.semicolon(M):ve(x.directive)+this.semicolon(M)},DoWhileStatement:function(x,M){var k=Ce(&amp;amp;quot;do&amp;amp;quot;,this.maybeBlock(x.body,Q));return k=this.maybeBlockSuffix(x.body,k),Ce(k,[&amp;amp;quot;while&amp;amp;quot;+m+&amp;amp;quot;(&amp;amp;quot;,this.generateExpression(x.test,t.Sequence,G),&amp;amp;quot;)&amp;amp;quot;+this.semicolon(M)])},CatchClause:function(x,M){var k,L=this;return Me(function(){var V;x.param?(k=[&amp;amp;quot;catch&amp;amp;quot;+m+&amp;amp;quot;(&amp;amp;quot;,L.generateExpression(x.param,t.Sequence,G),&amp;amp;quot;)&amp;amp;quot;],x.guard&amp;amp;amp;&amp;amp;amp;(V=L.generateExpression(x.guard,t.Sequence,G),k.splice(2,0,&amp;amp;quot; if &amp;amp;quot;,V))):k=[&amp;amp;quot;catch&amp;amp;quot;]}),k.push(this.maybeBlock(x.body,Q)),k},DebuggerStatement:function(x,M){return&amp;amp;quot;debugger&amp;amp;quot;+this.semicolon(M)},EmptyStatement:function(x,M){return&amp;amp;quot;;&amp;amp;quot;},ExportDefaultDeclaration:function(x,M){var k=[&amp;amp;quot;export&amp;amp;quot;],L;return L=M&amp;amp;amp;W?fe:Q,k=Ce(k,&amp;amp;quot;default&amp;amp;quot;),D(x.declaration)?k=Ce(k,this.generateStatement(x.declaration,L)):k=Ce(k,this.generateExpression(x.declaration,t.Assignment,G)+this.semicolon(M)),k},ExportNamedDeclaration:function(x,M){var k=[&amp;amp;quot;export&amp;amp;quot;],L,V=this;return L=M&amp;amp;amp;W?fe:Q,x.declaration?Ce(k,this.generateStatement(x.declaration,L)):(x.specifiers&amp;amp;amp;&amp;amp;amp;(x.specifiers.length===0?k=Ce(k,&amp;amp;quot;{&amp;amp;quot;+m+&amp;amp;quot;}&amp;amp;quot;):x.specifiers[0].type===i.ExportBatchSpecifier?k=Ce(k,this.generateExpression(x.specifiers[0],t.Sequence,G)):(k=Ce(k,&amp;amp;quot;{&amp;amp;quot;),Me(function(re){var ae,he;for(k.push(d),ae=0,he=x.specifiers.length;ae&amp;amp;lt;he;++ae)k.push(re),k.push(V.generateExpression(x.specifiers[ae],t.Sequence,G)),ae+1&amp;amp;lt;he&amp;amp;amp;&amp;amp;amp;k.push(&amp;amp;quot;,&amp;amp;quot;+d)}),ue(xe(k).toString())||k.push(d),k.push(o+&amp;amp;quot;}&amp;amp;quot;)),x.source?k=Ce(k,[&amp;amp;quot;from&amp;amp;quot;+m,this.generateExpression(x.source,t.Sequence,G),this.semicolon(M)]):k.push(this.semicolon(M))),k)},ExportAllDeclaration:function(x,M){return[&amp;amp;quot;export&amp;amp;quot;+m,&amp;amp;quot;*&amp;amp;quot;+m,&amp;amp;quot;from&amp;amp;quot;+m,this.generateExpression(x.source,t.Sequence,G),this.semicolon(M)]},ExpressionStatement:function(x,M){var k,L;function V(he){var Ee;return he.slice(0,5)!==&amp;amp;quot;class&amp;amp;quot;?!1:(Ee=he.charCodeAt(5),Ee===123||a.code.isWhiteSpace(Ee)||a.code.isLineTerminator(Ee))}function re(he){var Ee;return he.slice(0,8)!==&amp;amp;quot;function&amp;amp;quot;?!1:(Ee=he.charCodeAt(8),Ee===40||a.code.isWhiteSpace(Ee)||Ee===42||a.code.isLineTerminator(Ee))}function ae(he){var Ee,qe,_t;if(he.slice(0,5)!==&amp;amp;quot;async&amp;amp;quot;||!a.code.isWhiteSpace(he.charCodeAt(5)))return!1;for(qe=6,_t=he.length;qe&amp;amp;lt;_t&amp;amp;amp;&amp;amp;amp;a.code.isWhiteSpace(he.charCodeAt(qe));++qe);return qe===_t||he.slice(qe,qe+8)!==&amp;amp;quot;function&amp;amp;quot;?!1:(Ee=he.charCodeAt(qe+8),Ee===40||a.code.isWhiteSpace(Ee)||Ee===42||a.code.isLineTerminator(Ee))}return k=[this.generateExpression(x.expression,t.Sequence,G)],L=xe(k).toString(),L.charCodeAt(0)===123||V(L)||re(L)||ae(L)||y&amp;amp;amp;&amp;amp;amp;M&amp;amp;amp;j&amp;amp;amp;&amp;amp;amp;x.expression.type===i.Literal&amp;amp;amp;&amp;amp;amp;typeof x.expression.value==&amp;amp;quot;string&amp;amp;quot;?k=[&amp;amp;quot;(&amp;amp;quot;,k,&amp;amp;quot;)&amp;amp;quot;+this.semicolon(M)]:k.push(this.semicolon(M)),k},ImportDeclaration:function(x,M){var k,L,V=this;return x.specifiers.length===0?[&amp;amp;quot;import&amp;amp;quot;,m,this.generateExpression(x.source,t.Sequence,G),this.semicolon(M)]:(k=[&amp;amp;quot;import&amp;amp;quot;],L=0,x.specifiers[L].type===i.ImportDefaultSpecifier&amp;amp;amp;&amp;amp;amp;(k=Ce(k,[this.generateExpression(x.specifiers[L],t.Sequence,G)]),++L),x.specifiers[L]&amp;amp;amp;&amp;amp;amp;(L!==0&amp;amp;amp;&amp;amp;amp;k.push(&amp;amp;quot;,&amp;amp;quot;),x.specifiers[L].type===i.ImportNamespaceSpecifier?k=Ce(k,[m,this.generateExpression(x.specifiers[L],t.Sequence,G)]):(k.push(m+&amp;amp;quot;{&amp;amp;quot;),x.specifiers.length-L===1?(k.push(m),k.push(this.generateExpression(x.specifiers[L],t.Sequence,G)),k.push(m+&amp;amp;quot;}&amp;amp;quot;+m)):(Me(function(re){var ae,he;for(k.push(d),ae=L,he=x.specifiers.length;ae&amp;amp;lt;he;++ae)k.push(re),k.push(V.generateExpression(x.specifiers[ae],t.Sequence,G)),ae+1&amp;amp;lt;he&amp;amp;amp;&amp;amp;amp;k.push(&amp;amp;quot;,&amp;amp;quot;+d)}),ue(xe(k).toString())||k.push(d),k.push(o+&amp;amp;quot;}&amp;amp;quot;+m)))),k=Ce(k,[&amp;amp;quot;from&amp;amp;quot;+m,this.generateExpression(x.source,t.Sequence,G),this.semicolon(M)]),k)},VariableDeclarator:function(x,M){var k=M&amp;amp;amp;F?G:X;return x.init?[this.generateExpression(x.id,t.Assignment,k),m,&amp;amp;quot;=&amp;amp;quot;,m,this.generateExpression(x.init,t.Assignment,k)]:this.generatePattern(x.id,t.Assignment,k)},VariableDeclaration:function(x,M){var k,L,V,re,ae,he=this;k=[x.kind],ae=M&amp;amp;amp;F?Q:de;function Ee(){for(re=x.declarations[0],S.comment&amp;amp;amp;&amp;amp;amp;re.leadingComments?(k.push(`
   5441 <a href="#l5422" class="line" id="l5422">   5422</a> &lt;a href=&quot;#l5403&quot; class=&quot;line&quot; id=&quot;l5403&quot;&gt;   5403&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-303&amp;quot; id=&amp;quot;h4-0-303&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),k.push(Ge(he.generateStatement(re,ae)))):(k.push(Ie()),k.push(he.generateStatement(re,ae))),L=1,V=x.declarations.length;L&amp;amp;lt;V;++L)re=x.declarations[L],S.comment&amp;amp;amp;&amp;amp;amp;re.leadingComments?(k.push(&amp;amp;quot;,&amp;amp;quot;+d),k.push(Ge(he.generateStatement(re,ae)))):(k.push(&amp;amp;quot;,&amp;amp;quot;+m),k.push(he.generateStatement(re,ae)))}return x.declarations.length&amp;amp;gt;1?Me(Ee):Ee(),k.push(this.semicolon(M)),k},ThrowStatement:function(x,M){return[Ce(&amp;amp;quot;throw&amp;amp;quot;,this.generateExpression(x.argument,t.Sequence,G)),this.semicolon(M)]},TryStatement:function(x,M){var k,L,V,re;if(k=[&amp;amp;quot;try&amp;amp;quot;,this.maybeBlock(x.block,Q)],k=this.maybeBlockSuffix(x.block,k),x.handlers)for(L=0,V=x.handlers.length;L&amp;amp;lt;V;++L)k=Ce(k,this.generateStatement(x.handlers[L],Q)),(x.finalizer||L+1!==V)&amp;amp;amp;&amp;amp;amp;(k=this.maybeBlockSuffix(x.handlers[L].body,k));else{for(re=x.guardedHandlers||[],L=0,V=re.length;L&amp;amp;lt;V;++L)k=Ce(k,this.generateStatement(re[L],Q)),(x.finalizer||L+1!==V)&amp;amp;amp;&amp;amp;amp;(k=this.maybeBlockSuffix(re[L].body,k));if(x.handler)if(Array.isArray(x.handler))for(L=0,V=x.handler.length;L&amp;amp;lt;V;++L)k=Ce(k,this.generateStatement(x.handler[L],Q)),(x.finalizer||L+1!==V)&amp;amp;amp;&amp;amp;amp;(k=this.maybeBlockSuffix(x.handler[L].body,k));else k=Ce(k,this.generateStatement(x.handler,Q)),x.finalizer&amp;amp;amp;&amp;amp;amp;(k=this.maybeBlockSuffix(x.handler.body,k))}return x.finalizer&amp;amp;amp;&amp;amp;amp;(k=Ce(k,[&amp;amp;quot;finally&amp;amp;quot;,this.maybeBlock(x.finalizer,Q)])),k},SwitchStatement:function(x,M){var k,L,V,re,ae,he=this;if(Me(function(){k=[&amp;amp;quot;switch&amp;amp;quot;+m+&amp;amp;quot;(&amp;amp;quot;,he.generateExpression(x.discriminant,t.Sequence,G),&amp;amp;quot;)&amp;amp;quot;+m+&amp;amp;quot;{&amp;amp;quot;+d]}),x.cases)for(ae=Q,V=0,re=x.cases.length;V&amp;amp;lt;re;++V)V===re-1&amp;amp;amp;&amp;amp;amp;(ae|=W),L=Ge(this.generateStatement(x.cases[V],ae)),k.push(L),ue(xe(L).toString())||k.push(d);return k.push(Ge(&amp;amp;quot;}&amp;amp;quot;)),k},SwitchCase:function(x,M){var k,L,V,re,ae,he=this;return Me(function(){for(x.test?k=[Ce(&amp;amp;quot;case&amp;amp;quot;,he.generateExpression(x.test,t.Sequence,G)),&amp;amp;quot;:&amp;amp;quot;]:k=[&amp;amp;quot;default:&amp;amp;quot;],V=0,re=x.consequent.length,re&amp;amp;amp;&amp;amp;amp;x.consequent[0].type===i.BlockStatement&amp;amp;amp;&amp;amp;amp;(L=he.maybeBlock(x.consequent[0],Q),k.push(L),V=1),V!==re&amp;amp;amp;&amp;amp;amp;!ue(xe(k).toString())&amp;amp;amp;&amp;amp;amp;k.push(d),ae=Q;V&amp;amp;lt;re;++V)V===re-1&amp;amp;amp;&amp;amp;amp;M&amp;amp;amp;W&amp;amp;amp;&amp;amp;amp;(ae|=W),L=Ge(he.generateStatement(x.consequent[V],ae)),k.push(L),V+1!==re&amp;amp;amp;&amp;amp;amp;!ue(xe(L).toString())&amp;amp;amp;&amp;amp;amp;k.push(d)}),k},IfStatement:function(x,M){var k,L,V,re=this;return Me(function(){k=[&amp;amp;quot;if&amp;amp;quot;+m+&amp;amp;quot;(&amp;amp;quot;,re.generateExpression(x.test,t.Sequence,G),&amp;amp;quot;)&amp;amp;quot;]}),V=M&amp;amp;amp;W,L=Q,V&amp;amp;amp;&amp;amp;amp;(L|=W),x.alternate?(k.push(this.maybeBlock(x.consequent,Q)),k=this.maybeBlockSuffix(x.consequent,k),x.alternate.type===i.IfStatement?k=Ce(k,[&amp;amp;quot;else &amp;amp;quot;,this.generateStatement(x.alternate,L)]):k=Ce(k,Ce(&amp;amp;quot;else&amp;amp;quot;,this.maybeBlock(x.alternate,L)))):k.push(this.maybeBlock(x.consequent,L)),k},ForStatement:function(x,M){var k,L=this;return Me(function(){k=[&amp;amp;quot;for&amp;amp;quot;+m+&amp;amp;quot;(&amp;amp;quot;],x.init?x.init.type===i.VariableDeclaration?k.push(L.generateStatement(x.init,de)):(k.push(L.generateExpression(x.init,t.Sequence,X)),k.push(&amp;amp;quot;;&amp;amp;quot;)):k.push(&amp;amp;quot;;&amp;amp;quot;),x.test&amp;amp;amp;&amp;amp;amp;(k.push(m),k.push(L.generateExpression(x.test,t.Sequence,G))),k.push(&amp;amp;quot;;&amp;amp;quot;),x.update&amp;amp;amp;&amp;amp;amp;(k.push(m),k.push(L.generateExpression(x.update,t.Sequence,G))),k.push(&amp;amp;quot;)&amp;amp;quot;)}),k.push(this.maybeBlock(x.body,M&amp;amp;amp;W?fe:Q)),k},ForInStatement:function(x,M){return this.generateIterationForStatement(&amp;amp;quot;in&amp;amp;quot;,x,M&amp;amp;amp;W?fe:Q)},ForOfStatement:function(x,M){return this.generateIterationForStatement(&amp;amp;quot;of&amp;amp;quot;,x,M&amp;amp;amp;W?fe:Q)},LabeledStatement:function(x,M){return[x.label.name+&amp;amp;quot;:&amp;amp;quot;,this.maybeBlock(x.body,M&amp;amp;amp;W?fe:Q)]},Program:function(x,M){var k,L,V,re,ae;for(re=x.body.length,k=[w&amp;amp;amp;&amp;amp;amp;re&amp;amp;gt;0?`
   5442 <a href="#l5423" class="line" id="l5423">   5423</a> &lt;a href=&quot;#l5404&quot; class=&quot;line&quot; id=&quot;l5404&quot;&gt;   5404&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-304&amp;quot; id=&amp;quot;h4-0-304&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`:&amp;amp;quot;&amp;amp;quot;],ae=me,V=0;V&amp;amp;lt;re;++V)!w&amp;amp;amp;&amp;amp;amp;V===re-1&amp;amp;amp;&amp;amp;amp;(ae|=W),E&amp;amp;amp;&amp;amp;amp;(V===0&amp;amp;amp;&amp;amp;amp;(x.body[0].leadingComments||Bi(x.range[0],x.body[V].range[0],k)),V&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;!x.body[V-1].trailingComments&amp;amp;amp;&amp;amp;amp;!x.body[V].leadingComments&amp;amp;amp;&amp;amp;amp;Bi(x.body[V-1].range[1],x.body[V].range[0],k)),L=Ge(this.generateStatement(x.body[V],ae)),k.push(L),V+1&amp;amp;lt;re&amp;amp;amp;&amp;amp;amp;!ue(xe(L).toString())&amp;amp;amp;&amp;amp;amp;(E&amp;amp;amp;&amp;amp;amp;x.body[V+1].leadingComments||k.push(d)),E&amp;amp;amp;&amp;amp;amp;V===re-1&amp;amp;amp;&amp;amp;amp;(x.body[V].trailingComments||Bi(x.body[V].range[1],x.range[1],k));return k},FunctionDeclaration:function(x,M){return[pa(x,!0),&amp;amp;quot;function&amp;amp;quot;,Zo(x)||Ie(),x.id?tr(x.id):&amp;amp;quot;&amp;amp;quot;,this.generateFunctionBody(x)]},ReturnStatement:function(x,M){return x.argument?[Ce(&amp;amp;quot;return&amp;amp;quot;,this.generateExpression(x.argument,t.Sequence,G)),this.semicolon(M)]:[&amp;amp;quot;return&amp;amp;quot;+this.semicolon(M)]},WhileStatement:function(x,M){var k,L=this;return Me(function(){k=[&amp;amp;quot;while&amp;amp;quot;+m+&amp;amp;quot;(&amp;amp;quot;,L.generateExpression(x.test,t.Sequence,G),&amp;amp;quot;)&amp;amp;quot;]}),k.push(this.maybeBlock(x.body,M&amp;amp;amp;W?fe:Q)),k},WithStatement:function(x,M){var k,L=this;return Me(function(){k=[&amp;amp;quot;with&amp;amp;quot;+m+&amp;amp;quot;(&amp;amp;quot;,L.generateExpression(x.object,t.Sequence,G),&amp;amp;quot;)&amp;amp;quot;]}),k.push(this.maybeBlock(x.body,M&amp;amp;amp;W?fe:Q)),k}},pe(yt.prototype,yt.Statement),yt.Expression={SequenceExpression:function(x,M,k){var L,V,re;for(t.Sequence&amp;amp;lt;M&amp;amp;amp;&amp;amp;amp;(k|=F),L=[],V=0,re=x.expressions.length;V&amp;amp;lt;re;++V)L.push(this.generateExpression(x.expressions[V],t.Assignment,k)),V+1&amp;amp;lt;re&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot;,&amp;amp;quot;+m);return bt(L,t.Sequence,M)},AssignmentExpression:function(x,M,k){return this.generateAssignment(x.left,x.right,x.operator,M,k)},ArrowFunctionExpression:function(x,M,k){return bt(this.generateFunctionBody(x),t.ArrowFunction,M)},ConditionalExpression:function(x,M,k){return t.Conditional&amp;amp;lt;M&amp;amp;amp;&amp;amp;amp;(k|=F),bt([this.generateExpression(x.test,t.Coalesce,k),m+&amp;amp;quot;?&amp;amp;quot;+m,this.generateExpression(x.consequent,t.Assignment,k),m+&amp;amp;quot;:&amp;amp;quot;+m,this.generateExpression(x.alternate,t.Assignment,k)],t.Conditional,M)},LogicalExpression:function(x,M,k){return x.operator===&amp;amp;quot;??&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(k|=te),this.BinaryExpression(x,M,k)},BinaryExpression:function(x,M,k){var L,V,re,ae,he,Ee;return ae=r[x.operator],V=x.operator===&amp;amp;quot;**&amp;amp;quot;?t.Postfix:ae,re=x.operator===&amp;amp;quot;**&amp;amp;quot;?ae:ae+1,ae&amp;amp;lt;M&amp;amp;amp;&amp;amp;amp;(k|=F),he=this.generateExpression(x.left,V,k),Ee=he.toString(),Ee.charCodeAt(Ee.length-1)===47&amp;amp;amp;&amp;amp;amp;a.code.isIdentifierPartES5(x.operator.charCodeAt(0))?L=[he,Ie(),x.operator]:L=Ce(he,x.operator),he=this.generateExpression(x.right,re,k),x.operator===&amp;amp;quot;/&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;he.toString().charAt(0)===&amp;amp;quot;/&amp;amp;quot;||x.operator.slice(-1)===&amp;amp;quot;&amp;amp;lt;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;he.toString().slice(0,3)===&amp;amp;quot;!--&amp;amp;quot;?(L.push(Ie()),L.push(he)):L=Ce(L,he),x.operator===&amp;amp;quot;in&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!(k&amp;amp;amp;F)?[&amp;amp;quot;(&amp;amp;quot;,L,&amp;amp;quot;)&amp;amp;quot;]:(x.operator===&amp;amp;quot;||&amp;amp;quot;||x.operator===&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;k&amp;amp;amp;te?[&amp;amp;quot;(&amp;amp;quot;,L,&amp;amp;quot;)&amp;amp;quot;]:bt(L,ae,M)},CallExpression:function(x,M,k){var L,V,re;for(L=[this.generateExpression(x.callee,t.Call,Z)],x.optional&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot;?.&amp;amp;quot;),L.push(&amp;amp;quot;(&amp;amp;quot;),V=0,re=x.arguments.length;V&amp;amp;lt;re;++V)L.push(this.generateExpression(x.arguments[V],t.Assignment,G)),V+1&amp;amp;lt;re&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot;,&amp;amp;quot;+m);return L.push(&amp;amp;quot;)&amp;amp;quot;),k&amp;amp;amp;N?bt(L,t.Call,M):[&amp;amp;quot;(&amp;amp;quot;,L,&amp;amp;quot;)&amp;amp;quot;]},ChainExpression:function(x,M,k){t.OptionalChaining&amp;amp;lt;M&amp;amp;amp;&amp;amp;amp;(k|=N);var L=this.generateExpression(x.expression,t.OptionalChaining,k);return bt(L,t.OptionalChaining,M)},NewExpression:function(x,M,k){var L,V,re,ae,he;if(V=x.arguments.length,he=k&amp;amp;amp;B&amp;amp;amp;&amp;amp;amp;!g&amp;amp;amp;&amp;amp;amp;V===0?Y:q,L=Ce(&amp;amp;quot;new&amp;amp;quot;,this.generateExpression(x.callee,t.New,he)),!(k&amp;amp;amp;B)||g||V&amp;amp;gt;0){for(L.push(&amp;amp;quot;(&amp;amp;quot;),re=0,ae=V;re&amp;amp;lt;ae;++re)L.push(this.generateExpression(x.arguments[re],t.Assignment,G)),re+1&amp;amp;lt;ae&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot;,&amp;amp;quot;+m);L.push(&amp;amp;quot;)&amp;amp;quot;)}return bt(L,t.New,M)},MemberExpression:function(x,M,k){var L,V;return L=[this.generateExpression(x.object,t.Call,k&amp;amp;amp;N?Z:q)],x.computed?(x.optional&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot;?.&amp;amp;quot;),L.push(&amp;amp;quot;[&amp;amp;quot;),L.push(this.generateExpression(x.property,t.Sequence,k&amp;amp;amp;N?G:Y)),L.push(&amp;amp;quot;]&amp;amp;quot;)):(!x.optional&amp;amp;amp;&amp;amp;amp;x.object.type===i.Literal&amp;amp;amp;&amp;amp;amp;typeof x.object.value==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(V=xe(L).toString(),V.indexOf(&amp;amp;quot;.&amp;amp;quot;)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;!/[eExX]/.test(V)&amp;amp;amp;&amp;amp;amp;a.code.isDecimalDigit(V.charCodeAt(V.length-1))&amp;amp;amp;&amp;amp;amp;!(V.length&amp;amp;gt;=2&amp;amp;amp;&amp;amp;amp;V.charCodeAt(0)===48)&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot; &amp;amp;quot;)),L.push(x.optional?&amp;amp;quot;?.&amp;amp;quot;:&amp;amp;quot;.&amp;amp;quot;),L.push(tr(x.property))),bt(L,t.Member,M)},MetaProperty:function(x,M,k){var L;return L=[],L.push(typeof x.meta==&amp;amp;quot;string&amp;amp;quot;?x.meta:tr(x.meta)),L.push(&amp;amp;quot;.&amp;amp;quot;),L.push(typeof x.property==&amp;amp;quot;string&amp;amp;quot;?x.property:tr(x.property)),bt(L,t.Member,M)},UnaryExpression:function(x,M,k){var L,V,re,ae,he;return V=this.generateExpression(x.argument,t.Unary,G),m===&amp;amp;quot;&amp;amp;quot;?L=Ce(x.operator,V):(L=[x.operator],x.operator.length&amp;amp;gt;2?L=Ce(L,V):(ae=xe(L).toString(),he=ae.charCodeAt(ae.length-1),re=V.toString().charCodeAt(0),((he===43||he===45)&amp;amp;amp;&amp;amp;amp;he===re||a.code.isIdentifierPartES5(he)&amp;amp;amp;&amp;amp;amp;a.code.isIdentifierPartES5(re))&amp;amp;amp;&amp;amp;amp;L.push(Ie()),L.push(V))),bt(L,t.Unary,M)},YieldExpression:function(x,M,k){var L;return x.delegate?L=&amp;amp;quot;yield*&amp;amp;quot;:L=&amp;amp;quot;yield&amp;amp;quot;,x.argument&amp;amp;amp;&amp;amp;amp;(L=Ce(L,this.generateExpression(x.argument,t.Yield,G))),bt(L,t.Yield,M)},AwaitExpression:function(x,M,k){var L=Ce(x.all?&amp;amp;quot;await*&amp;amp;quot;:&amp;amp;quot;await&amp;amp;quot;,this.generateExpression(x.argument,t.Await,G));return bt(L,t.Await,M)},UpdateExpression:function(x,M,k){return x.prefix?bt([x.operator,this.generateExpression(x.argument,t.Unary,G)],t.Unary,M):bt([this.generateExpression(x.argument,t.Postfix,G),x.operator],t.Postfix,M)},FunctionExpression:function(x,M,k){var L=[pa(x,!0),&amp;amp;quot;function&amp;amp;quot;];return x.id?(L.push(Zo(x)||Ie()),L.push(tr(x.id))):L.push(Zo(x)||m),L.push(this.generateFunctionBody(x)),L},ArrayPattern:function(x,M,k){return this.ArrayExpression(x,M,k,!0)},ArrayExpression:function(x,M,k,L){var V,re,ae=this;return x.elements.length?(re=L?!1:x.elements.length&amp;amp;gt;1,V=[&amp;amp;quot;[&amp;amp;quot;,re?d:&amp;amp;quot;&amp;amp;quot;],Me(function(he){var Ee,qe;for(Ee=0,qe=x.elements.length;Ee&amp;amp;lt;qe;++Ee)x.elements[Ee]?(V.push(re?he:&amp;amp;quot;&amp;amp;quot;),V.push(ae.generateExpression(x.elements[Ee],t.Assignment,G))):(re&amp;amp;amp;&amp;amp;amp;V.push(he),Ee+1===qe&amp;amp;amp;&amp;amp;amp;V.push(&amp;amp;quot;,&amp;amp;quot;)),Ee+1&amp;amp;lt;qe&amp;amp;amp;&amp;amp;amp;V.push(&amp;amp;quot;,&amp;amp;quot;+(re?d:m))}),re&amp;amp;amp;&amp;amp;amp;!ue(xe(V).toString())&amp;amp;amp;&amp;amp;amp;V.push(d),V.push(re?o:&amp;amp;quot;&amp;amp;quot;),V.push(&amp;amp;quot;]&amp;amp;quot;),V):&amp;amp;quot;[]&amp;amp;quot;},RestElement:function(x,M,k){return&amp;amp;quot;...&amp;amp;quot;+this.generatePattern(x.argument)},ClassExpression:function(x,M,k){var L,V;return L=[&amp;amp;quot;class&amp;amp;quot;],x.id&amp;amp;amp;&amp;amp;amp;(L=Ce(L,this.generateExpression(x.id,t.Sequence,G))),x.superClass&amp;amp;amp;&amp;amp;amp;(V=Ce(&amp;amp;quot;extends&amp;amp;quot;,this.generateExpression(x.superClass,t.Unary,G)),L=Ce(L,V)),L.push(m),L.push(this.generateStatement(x.body,fe)),L},MethodDefinition:function(x,M,k){var L,V;return x.static?L=[&amp;amp;quot;static&amp;amp;quot;+m]:L=[],x.kind===&amp;amp;quot;get&amp;amp;quot;||x.kind===&amp;amp;quot;set&amp;amp;quot;?V=[Ce(x.kind,this.generatePropertyKey(x.key,x.computed)),this.generateFunctionBody(x.value)]:V=[Kp(x),this.generatePropertyKey(x.key,x.computed),this.generateFunctionBody(x.value)],Ce(L,V)},Property:function(x,M,k){return x.kind===&amp;amp;quot;get&amp;amp;quot;||x.kind===&amp;amp;quot;set&amp;amp;quot;?[x.kind,Ie(),this.generatePropertyKey(x.key,x.computed),this.generateFunctionBody(x.value)]:x.shorthand?x.value.type===&amp;amp;quot;AssignmentPattern&amp;amp;quot;?this.AssignmentPattern(x.value,t.Sequence,G):this.generatePropertyKey(x.key,x.computed):x.method?[Kp(x),this.generatePropertyKey(x.key,x.computed),this.generateFunctionBody(x.value)]:[this.generatePropertyKey(x.key,x.computed),&amp;amp;quot;:&amp;amp;quot;+m,this.generateExpression(x.value,t.Assignment,G)]},ObjectExpression:function(x,M,k){var L,V,re,ae=this;return x.properties.length?(L=x.properties.length&amp;amp;gt;1,Me(function(){re=ae.generateExpression(x.properties[0],t.Sequence,G)}),!L&amp;amp;amp;&amp;amp;amp;!ce(xe(re).toString())?[&amp;amp;quot;{&amp;amp;quot;,m,re,m,&amp;amp;quot;}&amp;amp;quot;]:(Me(function(he){var Ee,qe;if(V=[&amp;amp;quot;{&amp;amp;quot;,d,he,re],L)for(V.push(&amp;amp;quot;,&amp;amp;quot;+d),Ee=1,qe=x.properties.length;Ee&amp;amp;lt;qe;++Ee)V.push(he),V.push(ae.generateExpression(x.properties[Ee],t.Sequence,G)),Ee+1&amp;amp;lt;qe&amp;amp;amp;&amp;amp;amp;V.push(&amp;amp;quot;,&amp;amp;quot;+d)}),ue(xe(V).toString())||V.push(d),V.push(o),V.push(&amp;amp;quot;}&amp;amp;quot;),V)):&amp;amp;quot;{}&amp;amp;quot;},AssignmentPattern:function(x,M,k){return this.generateAssignment(x.left,x.right,&amp;amp;quot;=&amp;amp;quot;,M,k)},ObjectPattern:function(x,M,k){var L,V,re,ae,he,Ee=this;if(!x.properties.length)return&amp;amp;quot;{}&amp;amp;quot;;if(ae=!1,x.properties.length===1)he=x.properties[0],he.type===i.Property&amp;amp;amp;&amp;amp;amp;he.value.type!==i.Identifier&amp;amp;amp;&amp;amp;amp;(ae=!0);else for(V=0,re=x.properties.length;V&amp;amp;lt;re;++V)if(he=x.properties[V],he.type===i.Property&amp;amp;amp;&amp;amp;amp;!he.shorthand){ae=!0;break}return L=[&amp;amp;quot;{&amp;amp;quot;,ae?d:&amp;amp;quot;&amp;amp;quot;],Me(function(qe){var _t,un;for(_t=0,un=x.properties.length;_t&amp;amp;lt;un;++_t)L.push(ae?qe:&amp;amp;quot;&amp;amp;quot;),L.push(Ee.generateExpression(x.properties[_t],t.Sequence,G)),_t+1&amp;amp;lt;un&amp;amp;amp;&amp;amp;amp;L.push(&amp;amp;quot;,&amp;amp;quot;+(ae?d:m))}),ae&amp;amp;amp;&amp;amp;amp;!ue(xe(L).toString())&amp;amp;amp;&amp;amp;amp;L.push(d),L.push(ae?o:&amp;amp;quot;&amp;amp;quot;),L.push(&amp;amp;quot;}&amp;amp;quot;),L},ThisExpression:function(x,M,k){return&amp;amp;quot;this&amp;amp;quot;},Super:function(x,M,k){return&amp;amp;quot;super&amp;amp;quot;},Identifier:function(x,M,k){return tr(x)},ImportDefaultSpecifier:function(x,M,k){return tr(x.id||x.local)},ImportNamespaceSpecifier:function(x,M,k){var L=[&amp;amp;quot;*&amp;amp;quot;],V=x.id||x.local;return V&amp;amp;amp;&amp;amp;amp;L.push(m+&amp;amp;quot;as&amp;amp;quot;+Ie()+tr(V)),L},ImportSpecifier:function(x,M,k){var L=x.imported,V=[L.name],re=x.local;return re&amp;amp;amp;&amp;amp;amp;re.name!==L.name&amp;amp;amp;&amp;amp;amp;V.push(Ie()+&amp;amp;quot;as&amp;amp;quot;+Ie()+tr(re)),V},ExportSpecifier:function(x,M,k){var L=x.local,V=[L.name],re=x.exported;return re&amp;amp;amp;&amp;amp;amp;re.name!==L.name&amp;amp;amp;&amp;amp;amp;V.push(Ie()+&amp;amp;quot;as&amp;amp;quot;+Ie()+tr(re)),V},Literal:function(x,M,k){var L;if(x.hasOwnProperty(&amp;amp;quot;raw&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;_&amp;amp;amp;&amp;amp;amp;S.raw)try{if(L=_(x.raw).body[0].expression,L.type===i.Literal&amp;amp;amp;&amp;amp;amp;L.value===x.value)return x.raw}catch{}return x.regex?&amp;amp;quot;/&amp;amp;quot;+x.regex.pattern+&amp;amp;quot;/&amp;amp;quot;+x.regex.flags:typeof x.value==&amp;amp;quot;bigint&amp;amp;quot;?x.value.toString()+&amp;amp;quot;n&amp;amp;quot;:x.bigint?x.bigint+&amp;amp;quot;n&amp;amp;quot;:x.value===null?&amp;amp;quot;null&amp;amp;quot;:typeof x.value==&amp;amp;quot;string&amp;amp;quot;?ge(x.value):typeof x.value==&amp;amp;quot;number&amp;amp;quot;?P(x.value):typeof x.value==&amp;amp;quot;boolean&amp;amp;quot;?x.value?&amp;amp;quot;true&amp;amp;quot;:&amp;amp;quot;false&amp;amp;quot;:$(x.value)},GeneratorExpression:function(x,M,k){return this.ComprehensionExpression(x,M,k)},ComprehensionExpression:function(x,M,k){var L,V,re,ae,he=this;return L=x.type===i.GeneratorExpression?[&amp;amp;quot;(&amp;amp;quot;]:[&amp;amp;quot;[&amp;amp;quot;],S.moz.comprehensionExpressionStartsWithAssignment&amp;amp;amp;&amp;amp;amp;(ae=this.generateExpression(x.body,t.Assignment,G),L.push(ae)),x.blocks&amp;amp;amp;&amp;amp;amp;Me(function(){for(V=0,re=x.blocks.length;V&amp;amp;lt;re;++V)ae=he.generateExpression(x.blocks[V],t.Sequence,G),V&amp;amp;gt;0||S.moz.comprehensionExpressionStartsWithAssignment?L=Ce(L,ae):L.push(ae)}),x.filter&amp;amp;amp;&amp;amp;amp;(L=Ce(L,&amp;amp;quot;if&amp;amp;quot;+m),ae=this.generateExpression(x.filter,t.Sequence,G),L=Ce(L,[&amp;amp;quot;(&amp;amp;quot;,ae,&amp;amp;quot;)&amp;amp;quot;])),S.moz.comprehensionExpressionStartsWithAssignment||(ae=this.generateExpression(x.body,t.Assignment,G),L=Ce(L,ae)),L.push(x.type===i.GeneratorExpression?&amp;amp;quot;)&amp;amp;quot;:&amp;amp;quot;]&amp;amp;quot;),L},ComprehensionBlock:function(x,M,k){var L;return x.left.type===i.VariableDeclaration?L=[x.left.kind,Ie(),this.generateStatement(x.left.declarations[0],de)]:L=this.generateExpression(x.left,t.Call,G),L=Ce(L,x.of?&amp;amp;quot;of&amp;amp;quot;:&amp;amp;quot;in&amp;amp;quot;),L=Ce(L,this.generateExpression(x.right,t.Sequence,G)),[&amp;amp;quot;for&amp;amp;quot;+m+&amp;amp;quot;(&amp;amp;quot;,L,&amp;amp;quot;)&amp;amp;quot;]},SpreadElement:function(x,M,k){return[&amp;amp;quot;...&amp;amp;quot;,this.generateExpression(x.argument,t.Assignment,G)]},TaggedTemplateExpression:function(x,M,k){var L=Z;k&amp;amp;amp;N||(L=q);var V=[this.generateExpression(x.tag,t.Call,L),this.generateExpression(x.quasi,t.Primary,J)];return bt(V,t.TaggedTemplate,M)},TemplateElement:function(x,M,k){return x.value.raw},TemplateLiteral:function(x,M,k){var L,V,re;for(L=[&amp;amp;quot;`&amp;amp;quot;],V=0,re=x.quasis.length;V&amp;amp;lt;re;++V)L.push(this.generateExpression(x.quasis[V],t.Primary,G)),V+1&amp;amp;lt;re&amp;amp;amp;&amp;amp;amp;(L.push(&amp;amp;quot;${&amp;amp;quot;+m),L.push(this.generateExpression(x.expressions[V],t.Sequence,G)),L.push(m+&amp;amp;quot;}&amp;amp;quot;));return L.push(&amp;amp;quot;`&amp;amp;quot;),L},ModuleSpecifier:function(x,M,k){return this.Literal(x,M,k)},ImportExpression:function(x,M,k){return bt([&amp;amp;quot;import(&amp;amp;quot;,this.generateExpression(x.source,t.Assignment,G),&amp;amp;quot;)&amp;amp;quot;],t.Call,M)}},pe(yt.prototype,yt.Expression),yt.prototype.generateExpression=function(x,M,k){var L,V;return V=x.type||i.Property,S.verbatim&amp;amp;amp;&amp;amp;amp;x.hasOwnProperty(S.verbatim)?$y(x,M):(L=this[V](x,M,k),S.comment&amp;amp;amp;&amp;amp;amp;(L=Ri(x,L)),xe(L,x))},yt.prototype.generateStatement=function(x,M){var k,L;return k=this[x.type](x,M),S.comment&amp;amp;amp;&amp;amp;amp;(k=Ri(x,k)),L=xe(k).toString(),x.type===i.Program&amp;amp;amp;&amp;amp;amp;!w&amp;amp;amp;&amp;amp;amp;d===&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;L.charAt(L.length-1)===`
   5443 <a href="#l5424" class="line" id="l5424">   5424</a> &lt;a href=&quot;#l5405&quot; class=&quot;line&quot; id=&quot;l5405&quot;&gt;   5405&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-305&amp;quot; id=&amp;quot;h4-0-305&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`&amp;amp;amp;&amp;amp;amp;(k=b?xe(k).replaceRight(/\s+$/,&amp;amp;quot;&amp;amp;quot;):L.replace(/\s+$/,&amp;amp;quot;&amp;amp;quot;)),xe(k,x)};function Hy(x){var M;if(M=new yt,D(x))return M.generateStatement(x,Q);if(T(x))return M.generateExpression(x,t.Sequence,G);throw new Error(&amp;amp;quot;Unknown node type: &amp;amp;quot;+x.type)}function Wy(x,M){var k=ee(),L,V;return M!=null?(typeof M.indent==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(k.format.indent.style=M.indent),typeof M.base==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(k.format.indent.base=M.base),M=O(k,M),u=M.format.indent.style,typeof M.base==&amp;amp;quot;string&amp;amp;quot;?o=M.base:o=se(u,M.format.indent.base)):(M=k,u=M.format.indent.style,o=se(u,M.format.indent.base)),h=M.format.json,l=M.format.renumber,c=h?!1:M.format.hexadecimal,p=h?&amp;amp;quot;double&amp;amp;quot;:M.format.quotes,f=M.format.escapeless,d=M.format.newline,m=M.format.space,M.format.compact&amp;amp;amp;&amp;amp;amp;(d=m=u=o=&amp;amp;quot;&amp;amp;quot;),g=M.format.parentheses,v=M.format.semicolons,w=M.format.safeConcatenation,y=M.directive,_=h?null:M.parse,b=M.sourceMap,I=M.sourceCode,E=M.format.preserveBlankLines&amp;amp;amp;&amp;amp;amp;I!==null,S=M,b&amp;amp;amp;&amp;amp;amp;(Li.browser?n=global.sourceMap.SourceNode:n=By().SourceNode),L=Hy(x),b?(V=L.toStringWithSourceMap({file:M.file,sourceRoot:M.sourceMapRoot}),M.sourceContent&amp;amp;amp;&amp;amp;amp;V.map.setSourceContent(M.sourceMap,M.sourceContent),M.sourceMapWithCode?V:V.map.toString()):(V={code:L.toString(),map:null},M.sourceMapWithCode?V:V.code)}A={indent:{style:&amp;amp;quot;&amp;amp;quot;,base:0},renumber:!0,hexadecimal:!0,quotes:&amp;amp;quot;auto&amp;amp;quot;,escapeless:!0,compact:!0,parentheses:!1,semicolons:!1},C=ee().format,Li.version=Py().version,Li.generate=Wy,Li.attachComments=s.attachComments,Li.Precedence=O({},t),Li.browser=!1,Li.FORMAT_MINIFY=A,Li.FORMAT_DEFAULTS=C})()});var hn=Math.PI,rh=&amp;amp;quot;2.0.3&amp;amp;quot;,Yr=&amp;amp;quot;p2d&amp;amp;quot;,ev=&amp;amp;quot;p2d-hdr&amp;amp;quot;,kr=&amp;amp;quot;webgl&amp;amp;quot;,pt=&amp;amp;quot;webgl2&amp;amp;quot;,ih=&amp;amp;quot;default&amp;amp;quot;,Xo=&amp;amp;quot;simple&amp;amp;quot;,Ko=&amp;amp;quot;full&amp;amp;quot;,nh=&amp;amp;quot;crosshair&amp;amp;quot;,sh=&amp;amp;quot;pointer&amp;amp;quot;,ah=&amp;amp;quot;move&amp;amp;quot;,oh=&amp;amp;quot;text&amp;amp;quot;,uh=&amp;amp;quot;wait&amp;amp;quot;,Pi=hn/2,Jo=hn,tv=hn/4,rv=hn*2,wt=hn*2,Oi=hn/180,Vi=180/hn,Ct=&amp;amp;quot;corner&amp;amp;quot;,Ui=&amp;amp;quot;corners&amp;amp;quot;,Gi=&amp;amp;quot;radius&amp;amp;quot;,Kn=&amp;amp;quot;right&amp;amp;quot;,lh=&amp;amp;quot;left&amp;amp;quot;,Et=&amp;amp;quot;center&amp;amp;quot;,iv=&amp;amp;quot;top&amp;amp;quot;,Qo=&amp;amp;quot;bottom&amp;amp;quot;,hh=&amp;amp;quot;alphabetic&amp;amp;quot;,Jn=0,ci=1,nv=3,sv=2,fi=4,cn=6,zi=5,pn=&amp;amp;quot;quads&amp;amp;quot;,ji=&amp;amp;quot;quad_strip&amp;amp;quot;,av=&amp;amp;quot;tess&amp;amp;quot;,dn=7,rr=8,mn=&amp;amp;quot;close&amp;amp;quot;,Xr=&amp;amp;quot;open&amp;amp;quot;,Qn=&amp;amp;quot;chord&amp;amp;quot;,gn=&amp;amp;quot;pie&amp;amp;quot;,da=&amp;amp;quot;square&amp;amp;quot;,ma=&amp;amp;quot;butt&amp;amp;quot;,Mr=&amp;amp;quot;round&amp;amp;quot;,ga=&amp;amp;quot;bevel&amp;amp;quot;,ya=&amp;amp;quot;miter&amp;amp;quot;,ch=&amp;amp;quot;auto&amp;amp;quot;,ov=&amp;amp;quot;Alt&amp;amp;quot;,uv=&amp;amp;quot;Backspace&amp;amp;quot;,lv=&amp;amp;quot;Control&amp;amp;quot;,hv=&amp;amp;quot;Delete&amp;amp;quot;,cv=&amp;amp;quot;ArrowDown&amp;amp;quot;,fv=&amp;amp;quot;Enter&amp;amp;quot;,pv=&amp;amp;quot;Escape&amp;amp;quot;,dv=&amp;amp;quot;ArrowLeft&amp;amp;quot;,mv=&amp;amp;quot;Alt&amp;amp;quot;,gv=&amp;amp;quot;Enter&amp;amp;quot;,yv=&amp;amp;quot;ArrowRight&amp;amp;quot;,vv=&amp;amp;quot;Shift&amp;amp;quot;,xv=&amp;amp;quot;Tab&amp;amp;quot;,bv=&amp;amp;quot;ArrowUp&amp;amp;quot;,St=&amp;amp;quot;source-over&amp;amp;quot;,pi=&amp;amp;quot;destination-out&amp;amp;quot;,yn=&amp;amp;quot;lighter&amp;amp;quot;,es=&amp;amp;quot;darken&amp;amp;quot;,ts=&amp;amp;quot;lighten&amp;amp;quot;,fh=&amp;amp;quot;difference&amp;amp;quot;,rs=&amp;amp;quot;subtract&amp;amp;quot;,is=&amp;amp;quot;exclusion&amp;amp;quot;,ns=&amp;amp;quot;multiply&amp;amp;quot;,ss=&amp;amp;quot;screen&amp;amp;quot;,as=&amp;amp;quot;copy&amp;amp;quot;,va=&amp;amp;quot;overlay&amp;amp;quot;,xa=&amp;amp;quot;hard-light&amp;amp;quot;,ba=&amp;amp;quot;soft-light&amp;amp;quot;,_a=&amp;amp;quot;color-dodge&amp;amp;quot;,wa=&amp;amp;quot;color-burn&amp;amp;quot;,vn=&amp;amp;quot;threshold&amp;amp;quot;,Ca=&amp;amp;quot;gray&amp;amp;quot;,Ea=&amp;amp;quot;opaque&amp;amp;quot;,Sa=&amp;amp;quot;invert&amp;amp;quot;,xn=&amp;amp;quot;posterize&amp;amp;quot;,Aa=&amp;amp;quot;dilate&amp;amp;quot;,Da=&amp;amp;quot;erode&amp;amp;quot;,di=&amp;amp;quot;blur&amp;amp;quot;,ir=&amp;amp;quot;normal&amp;amp;quot;,_v=&amp;amp;quot;italic&amp;amp;quot;,wv=&amp;amp;quot;bold&amp;amp;quot;,Cv=&amp;amp;quot;bold italic&amp;amp;quot;,Ev=&amp;amp;quot;CHAR&amp;amp;quot;,ph=&amp;amp;quot;WORD&amp;amp;quot;,Sv=&amp;amp;quot;#000000&amp;amp;quot;,Av=1.25,Dv=&amp;amp;quot;middle&amp;amp;quot;,eu=&amp;amp;quot;linear&amp;amp;quot;,Fv=&amp;amp;quot;quadratic&amp;amp;quot;,Tv=&amp;amp;quot;bezier&amp;amp;quot;,Nv=&amp;amp;quot;curve&amp;amp;quot;,Iv=&amp;amp;quot;stroke&amp;amp;quot;,Fa=&amp;amp;quot;fill&amp;amp;quot;,os=&amp;amp;quot;texture&amp;amp;quot;,kv=&amp;amp;quot;immediate&amp;amp;quot;,us=&amp;amp;quot;image&amp;amp;quot;,dh=&amp;amp;quot;nearest&amp;amp;quot;,tu=&amp;amp;quot;repeat&amp;amp;quot;,ru=&amp;amp;quot;clamp&amp;amp;quot;,iu=&amp;amp;quot;mirror&amp;amp;quot;,mh=&amp;amp;quot;flat&amp;amp;quot;,gh=&amp;amp;quot;smooth&amp;amp;quot;,Mv=&amp;amp;quot;landscape&amp;amp;quot;,Lv=&amp;amp;quot;portrait&amp;amp;quot;,yh=&amp;amp;quot;#000000&amp;amp;quot;,vh=&amp;amp;quot;#FFFFFF&amp;amp;quot;,xh=&amp;amp;quot;grid&amp;amp;quot;,bh=&amp;amp;quot;axes&amp;amp;quot;,Rv=&amp;amp;quot;label&amp;amp;quot;,Bv=&amp;amp;quot;fallback&amp;amp;quot;,_h=&amp;amp;quot;contain&amp;amp;quot;,wh=&amp;amp;quot;cover&amp;amp;quot;,mi=&amp;amp;quot;unsigned-byte&amp;amp;quot;,ls=&amp;amp;quot;unsigned-int&amp;amp;quot;,zt=&amp;amp;quot;float&amp;amp;quot;,bn=&amp;amp;quot;half-float&amp;amp;quot;,$i=Symbol(&amp;amp;quot;include&amp;amp;quot;),_n=Symbol(&amp;amp;quot;exclude&amp;amp;quot;),nu=Symbol(&amp;amp;quot;join&amp;amp;quot;),gr=Object.freeze({__proto__:null,ADD:yn,ALT:ov,ARROW:ih,AUTO:ch,AXES:bh,BACKSPACE:uv,BASELINE:hh,BEVEL:ga,BEZIER:Tv,BLEND:St,BLUR:di,BOLD:wv,BOLDITALIC:Cv,BOTTOM:Qo,BURN:wa,CENTER:Et,CHAR:Ev,CHORD:Qn,CLAMP:ru,CLOSE:mn,CONTAIN:_h,CONTROL:lv,CORNER:Ct,CORNERS:Ui,COVER:wh,CROSS:nh,CURVE:Nv,DARKEST:es,DEG_TO_RAD:Oi,DELETE:hv,DIFFERENCE:fh,DILATE:Aa,DODGE:_a,DOWN_ARROW:cv,EMPTY_PATH:dn,ENTER:fv,ERODE:Da,ESCAPE:pv,EXCLUDE:_n,EXCLUSION:is,FALLBACK:Bv,FILL:Fa,FLAT:mh,FLOAT:zt,FULL:Ko,GRAY:Ca,GRID:xh,HALF_FLOAT:bn,HALF_PI:Pi,HAND:sh,HARD_LIGHT:xa,IMAGE:us,IMMEDIATE:kv,INCLUDE:$i,INVERT:Sa,ITALIC:_v,JOIN:nu,LABEL:Rv,LANDSCAPE:Mv,LEFT:lh,LEFT_ARROW:dv,LIGHTEST:ts,LINEAR:eu,LINES:ci,LINE_LOOP:sv,LINE_STRIP:nv,MIRROR:iu,MITER:ya,MOVE:ah,MULTIPLY:ns,NEAREST:dh,NORMAL:ir,OPAQUE:Ea,OPEN:Xr,OPTION:mv,OVERLAY:va,P2D:Yr,P2DHDR:ev,PATH:rr,PI:Jo,PIE:gn,POINTS:Jn,PORTRAIT:Lv,POSTERIZE:xn,PROJECT:da,QUADRATIC:Fv,QUADS:pn,QUAD_STRIP:ji,QUARTER_PI:tv,RADIUS:Gi,RAD_TO_DEG:Vi,REMOVE:pi,REPEAT:tu,REPLACE:as,RETURN:gv,RIGHT:Kn,RIGHT_ARROW:yv,ROUND:Mr,SCREEN:ss,SHIFT:vv,SIMPLE:Xo,SMOOTH:gh,SOFT_LIGHT:ba,SQUARE:ma,STROKE:Iv,SUBTRACT:rs,TAB:xv,TAU:rv,TESS:av,TEXT:oh,TEXTURE:os,THRESHOLD:vn,TOP:iv,TRIANGLES:fi,TRIANGLE_FAN:cn,TRIANGLE_STRIP:zi,TWO_PI:wt,UNSIGNED_BYTE:mi,UNSIGNED_INT:ls,UP_ARROW:bv,VERSION:rh,WAIT:uh,WEBGL:kr,WEBGL2:pt,WORD:ph,_CTX_MIDDLE:Dv,_DEFAULT_FILL:vh,_DEFAULT_LEADMULT:Av,_DEFAULT_STROKE:yh,_DEFAULT_TEXT_FILL:Sv});function Ta(i,t){t.applyMatrix=function(...r){let n=r[0]instanceof Object.getPrototypeOf(Uint8Array);return Array.isArray(r[0])||n?this._renderer.applyMatrix(...r[0]):this._renderer.applyMatrix(...r),this},t.resetMatrix=function(){return this._renderer.resetMatrix(),this},t.rotate=function(r,n){return this._renderer.rotate(this._toRadians(r),n),this},t.rotateX=function(r){return this._assert3d(&amp;amp;quot;rotateX&amp;amp;quot;),this._renderer.rotateX(this._toRadians(r)),this},t.rotateY=function(r){return this._assert3d(&amp;amp;quot;rotateY&amp;amp;quot;),this._renderer.rotateY(this._toRadians(r)),this},t.rotateZ=function(r){return this._assert3d(&amp;amp;quot;rotateZ&amp;amp;quot;),this._renderer.rotateZ(this._toRadians(r)),this},t.scale=function(r,n,s){if(r instanceof i.Vector){let a=r;r=a.x,n=a.y,s=a.z}else if(Array.isArray(r)){let a=r;r=a[0],n=a[1],s=a[2]||1}return isNaN(n)?n=s=r:isNaN(s)&amp;amp;amp;&amp;amp;amp;(s=1),this._renderer.scale(r,n,s),this},t.shearX=function(r){let n=this._toRadians(r);return this._renderer.applyMatrix(1,0,Math.tan(n),1,0,0),this},t.shearY=function(r){let n=this._toRadians(r);return this._renderer.applyMatrix(1,Math.tan(n),0,1,0,0),this},t.translate=function(r,n,s){return this._renderer.isP3D?this._renderer.translate(r,n,s):this._renderer.translate(r,n),this},t.push=function(){this._renderer.push()},t.pop=function(){this._renderer.pop()}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ta(p5,p5.prototype);function Ch(i,t){t.noLoop=function(){this._loop=!1},t.loop=function(){this._loop||(this._loop=!0,this._setupDone&amp;amp;amp;&amp;amp;amp;this._draw())},t.isLooping=function(){return this._loop},t.redraw=async function(r){if(this._inUserDraw||!this._setupDone)return;let n=parseInt(r);(isNaN(n)||n&amp;amp;lt;1)&amp;amp;amp;&amp;amp;amp;(n=1);let s=this._isGlobal?window:this;if(typeof s.draw==&amp;amp;quot;function&amp;amp;quot;){typeof s.setup&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.scale(s._pixelDensity,s._pixelDensity);for(let a=0;a&amp;amp;lt;n;a++){s.resetMatrix(),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._updateAccsOutput(),this._renderer.isP3D&amp;amp;amp;&amp;amp;amp;this._renderer._update(),this.frameCount=s.frameCount+1,await this._runLifecycleHook(&amp;amp;quot;predraw&amp;amp;quot;),this._inUserDraw=!0;try{await s.draw()}finally{this._inUserDraw=!1}await this._runLifecycleHook(&amp;amp;quot;postdraw&amp;amp;quot;)}}}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ch(p5,p5.prototype);var td=function(i,t){return i!==0&amp;amp;amp;&amp;amp;amp;(this.x=this.x%i),t!==0&amp;amp;amp;&amp;amp;amp;(this.y=this.y%t),this},Eh=function(i,t,r){return i!==0&amp;amp;amp;&amp;amp;amp;(this.x=this.x%i),t!==0&amp;amp;amp;&amp;amp;amp;(this.y=this.y%t),r!==0&amp;amp;amp;&amp;amp;amp;(this.z=this.z%r),this},H=class i{constructor(...t){let r=t.map(s=&amp;amp;gt;s||0);typeof t[0]==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.isPInst=!0,this._fromRadians=t[0],this._toRadians=t[1],r=t.slice(2).map(s=&amp;amp;gt;s||0));let n=r.length;n===0?(this.dimensions=2,this._values=[0,0,0]):(this.dimensions=n,this._values=r)}get values(){return this._values}set values(t){let r=t.length;r===0?(this.dimensions=2,this._values=[0,0,0]):(this.dimensions=r,this._values=t.slice())}get x(){return this._values[0]||0}getValue(t){if(t&amp;amp;lt;this._values.length)return this._values[t];p5._friendlyError(&amp;amp;quot;The index parameter is trying to set a value outside the bounds of the vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.setValue&amp;amp;quot;)}setValue(t,r){t&amp;amp;lt;this._values.length?this._values[t]=r:p5._friendlyError(&amp;amp;quot;The index parameter is trying to set a value outside the bounds of the vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.setValue&amp;amp;quot;)}get y(){return this._values[1]||0}get z(){return this._values[2]||0}get w(){return this._values[3]||0}set x(t){this._values.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(this._values[0]=t)}set y(t){this._values.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(this._values[1]=t)}set z(t){this._values.length&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;(this._values[2]=t)}set w(t){this._values.length&amp;amp;gt;3&amp;amp;amp;&amp;amp;amp;(this._values[3]=t)}toString(){return`[${this.values.join(&amp;amp;quot;, &amp;amp;quot;)}]`}set(...t){return t[0]instanceof i?this.values=t[0].values.slice():Array.isArray(t[0])?this.values=t[0].map(r=&amp;amp;gt;r||0):this.values=t.map(r=&amp;amp;gt;r||0),this.dimensions=this.values.length,this}copy(){return this.isPInst?new i(this._fromRadians,this._toRadians,...this.values):new i(...this.values)}add(...t){return t[0]instanceof i?t=t[0].values:Array.isArray(t[0])&amp;amp;amp;&amp;amp;amp;(t=t[0]),t.forEach((r,n)=&amp;amp;gt;{this.values[n]=(this.values[n]||0)+(r||0)}),this}rem(t,r,n){if(t instanceof i){if([t.x,t.y,t.z].every(Number.isFinite)){let s=parseFloat(t.x),a=parseFloat(t.y),o=parseFloat(t.z);return Eh.call(this,s,a,o)}}else if(Array.isArray(t)){if(t.every(s=&amp;amp;gt;Number.isFinite(s))){if(t.length===2)return td.call(this,t[0],t[1]);if(t.length===3)return Eh.call(this,t[0],t[1],t[2])}}else if(arguments.length===1){if(Number.isFinite(arguments[0])&amp;amp;amp;&amp;amp;amp;arguments[0]!==0)return this.x=this.x%arguments[0],this.y=this.y%arguments[0],this.z=this.z%arguments[0],this}else if(arguments.length===2){let s=[...arguments];if(s.every(a=&amp;amp;gt;Number.isFinite(a))&amp;amp;amp;&amp;amp;amp;s.length===2)return td.call(this,s[0],s[1])}else if(arguments.length===3){let s=[...arguments];if(s.every(a=&amp;amp;gt;Number.isFinite(a))&amp;amp;amp;&amp;amp;amp;s.length===3)return Eh.call(this,s[0],s[1],s[2])}}sub(...t){return t[0]instanceof i?t[0].values.forEach((r,n)=&amp;amp;gt;{this.values[n]-=r||0}):Array.isArray(t[0])?t[0].forEach((r,n)=&amp;amp;gt;{this.values[n]-=r||0}):t.forEach((r,n)=&amp;amp;gt;{this.values[n]-=r||0}),this}mult(...t){if(t.length===1&amp;amp;amp;&amp;amp;amp;t[0]instanceof i){let r=t[0],n=Math.min(this.values.length,r.values.length);for(let s=0;s&amp;amp;lt;n;s++)if(Number.isFinite(r.values[s])&amp;amp;amp;&amp;amp;amp;typeof r.values[s]==&amp;amp;quot;number&amp;amp;quot;)this._values[s]*=r.values[s];else return console.warn(&amp;amp;quot;p5.Vector.prototype.mult:&amp;amp;quot;,&amp;amp;quot;v contains components that are either undefined or not finite numbers&amp;amp;quot;),this}else if(t.length===1&amp;amp;amp;&amp;amp;amp;Array.isArray(t[0])){let r=t[0],n=Math.min(this.values.length,r.length);for(let s=0;s&amp;amp;lt;n;s++)if(Number.isFinite(r[s])&amp;amp;amp;&amp;amp;amp;typeof r[s]==&amp;amp;quot;number&amp;amp;quot;)this._values[s]*=r[s];else return console.warn(&amp;amp;quot;p5.Vector.prototype.mult:&amp;amp;quot;,&amp;amp;quot;arr contains elements that are either undefined or not finite numbers&amp;amp;quot;),this}else if(t.length===1&amp;amp;amp;&amp;amp;amp;typeof t[0]==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Number.isFinite(t[0]))for(let r=0;r&amp;amp;lt;this._values.length;r++)this._values[r]*=t[0];return this}div(...t){if(t.length===0)return this;if(t.length===1&amp;amp;amp;&amp;amp;amp;t[0]instanceof i){let r=t[0];if(r._values.every(n=&amp;amp;gt;Number.isFinite(n)&amp;amp;amp;&amp;amp;amp;typeof n==&amp;amp;quot;number&amp;amp;quot;)){if(r._values.some(n=&amp;amp;gt;n===0))return console.warn(&amp;amp;quot;p5.Vector.prototype.div:&amp;amp;quot;,&amp;amp;quot;divide by 0&amp;amp;quot;),this;this._values=this._values.map((n,s)=&amp;amp;gt;n/r._values[s])}else console.warn(&amp;amp;quot;p5.Vector.prototype.div:&amp;amp;quot;,&amp;amp;quot;vector contains components that are either undefined or not finite numbers&amp;amp;quot;);return this}if(t.length===1&amp;amp;amp;&amp;amp;amp;Array.isArray(t[0])){let r=t[0];if(r.every(n=&amp;amp;gt;Number.isFinite(n)&amp;amp;amp;&amp;amp;amp;typeof n==&amp;amp;quot;number&amp;amp;quot;)){if(r.some(n=&amp;amp;gt;n===0))return console.warn(&amp;amp;quot;p5.Vector.prototype.div:&amp;amp;quot;,&amp;amp;quot;divide by 0&amp;amp;quot;),this;this._values=this._values.map((n,s)=&amp;amp;gt;n/r[s])}else console.warn(&amp;amp;quot;p5.Vector.prototype.div:&amp;amp;quot;,&amp;amp;quot;array contains components that are either undefined or not finite numbers&amp;amp;quot;);return this}if(t.every(r=&amp;amp;gt;Number.isFinite(r)&amp;amp;amp;&amp;amp;amp;typeof r==&amp;amp;quot;number&amp;amp;quot;)){if(t.some(r=&amp;amp;gt;r===0))return console.warn(&amp;amp;quot;p5.Vector.prototype.div:&amp;amp;quot;,&amp;amp;quot;divide by 0&amp;amp;quot;),this;this._values=this._values.map((r,n)=&amp;amp;gt;r/t[0])}else console.warn(&amp;amp;quot;p5.Vector.prototype.div:&amp;amp;quot;,&amp;amp;quot;arguments contain components that are either undefined or not finite numbers&amp;amp;quot;);return this}mag(){return Math.sqrt(this.magSq())}magSq(){return this._values.reduce((t,r)=&amp;amp;gt;t+r*r,0)}dot(...t){return t[0]instanceof i?this.dot(...t[0]._values):this._values.reduce((r,n,s)=&amp;amp;gt;r+n*(t[s]||0),0)}cross(t){let r=this.y*t.z-this.z*t.y,n=this.z*t.x-this.x*t.z,s=this.x*t.y-this.y*t.x;return this.isPInst?new i(this._fromRadians,this._toRadians,r,n,s):new i(r,n,s)}dist(t){return t.copy().sub(this).mag()}normalize(){let t=this.mag();return t!==0&amp;amp;amp;&amp;amp;amp;this.mult(1/t),this}limit(t){let r=this.magSq();return r&amp;amp;gt;t*t&amp;amp;amp;&amp;amp;amp;this.div(Math.sqrt(r)).mult(t),this}setMag(t){return this.normalize().mult(t)}heading(){let t=Math.atan2(this.y,this.x);return this.isPInst?this._fromRadians(t):t}setHeading(t){this.isPInst&amp;amp;amp;&amp;amp;amp;(t=this._toRadians(t));let r=this.mag();return this.x=r*Math.cos(t),this.y=r*Math.sin(t),this}rotate(t){let r=this.heading()+t;this.isPInst&amp;amp;amp;&amp;amp;amp;(r=this._toRadians(r));let n=this.mag();return this.x=Math.cos(r)*n,this.y=Math.sin(r)*n,this}angleBetween(t){if(this.magSq()*t.magSq()===0)return NaN;let n=this.cross(t),s=Math.atan2(n.mag(),this.dot(t))*Math.sign(n.z||1);return this.isPInst&amp;amp;amp;&amp;amp;amp;(s=this._fromRadians(s)),s}lerp(t,r,n,s){return t instanceof i?this.lerp(t.x,t.y,t.z,r):(this.x+=(t-this.x)*s||0,this.y+=(r-this.y)*s||0,this.z+=(n-this.z)*s||0,this)}slerp(t,r){if(r===0)return this;if(r===1)return this.set(t);let n=this.mag(),s=t.mag();if(n*s===0)return this.mult(1-r).add(t.x*r,t.y*r,t.z*r),this;let o=this.cross(t),u=o.mag(),h=Math.atan2(u,this.dot(t));if(u&amp;amp;gt;0)o.x/=u,o.y/=u,o.z/=u;else{if(h&amp;amp;lt;Math.PI*.5)return this.mult(1-r).add(t.x*r,t.y*r,t.z*r),this;this.z===0&amp;amp;amp;&amp;amp;amp;t.z===0?o.set(0,0,1):this.x!==0?o.set(this.y,-this.x,0).normalize():o.set(1,0,0)}let l=o.cross(this),c=1-r+r*s/n,p=c*Math.cos(r*h),f=c*Math.sin(r*h);return this.x=this.x*p+l.x*f,this.y=this.y*p+l.y*f,this.z=this.z*p+l.z*f,this}reflect(t){let r=i.normalize(t);return this.sub(r.mult(2*this.dot(r)))}array(){return[this.x||0,this.y||0,this.z||0]}equals(...t){let r;t[0]instanceof i?r=t[0]._values:Array.isArray(t[0])?r=t[0]:r=t;for(let n=0;n&amp;amp;lt;this._values.length;n++)if(this._values[n]!==(r[n]||0))return!1;return!0}clampToZero(){for(let t=0;t&amp;amp;lt;this._values.length;t++)this._values[t]=this._clampToZero(this._values[t]);return this}_clampToZero(t){return Math.abs((t||0)-0)&amp;amp;lt;=Number.EPSILON?0:t}static fromAngle(t,r){return typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=1),new i(r*Math.cos(t),r*Math.sin(t),0)}static fromAngles(t,r,n){typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=1);let s=Math.cos(r),a=Math.sin(r),o=Math.cos(t),u=Math.sin(t);return new i(n*u*a,-n*o,n*u*s)}static random2D(){return this.fromAngle(Math.random()*wt)}static random3D(){let t=Math.random()*wt,r=Math.random()*2-1,n=Math.sqrt(1-r*r),s=n*Math.cos(t),a=n*Math.sin(t);return new i(s,a,r)}static copy(t){return t.copy(t)}static add(t,r,n){return n?n.set(t):(n=t.copy(),arguments.length===3&amp;amp;amp;&amp;amp;amp;p5._friendlyError(&amp;amp;quot;The target parameter is undefined, it should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.add&amp;amp;quot;)),n.add(r),n}static rem(t,r){if(t instanceof i&amp;amp;amp;&amp;amp;amp;r instanceof i){let n=t.copy();return n.rem(r),n}}static sub(t,r,n){return n?n.set(t):(n=t.copy(),arguments.length===3&amp;amp;amp;&amp;amp;amp;p5._friendlyError(&amp;amp;quot;The target parameter is undefined, it should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.sub&amp;amp;quot;)),n.sub(r),n}static mult(t,r,n){return n?n.set(t):(n=t.copy(),arguments.length===3&amp;amp;amp;&amp;amp;amp;p5._friendlyError(&amp;amp;quot;The target parameter is undefined, it should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.mult&amp;amp;quot;)),n.mult(r),n}static rotate(t,r,n){return arguments.length===2?n=t.copy():(n instanceof i||p5._friendlyError(&amp;amp;quot;The target parameter should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.rotate&amp;amp;quot;),n.set(t)),n.rotate(r),n}static div(t,r,n){return n?n.set(t):(n=t.copy(),arguments.length===3&amp;amp;amp;&amp;amp;amp;p5._friendlyError(&amp;amp;quot;The target parameter is undefined, it should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.div&amp;amp;quot;)),n.div(r),n}static dot(t,r){return t.dot(r)}static cross(t,r){return t.cross(r)}static dist(t,r){return t.dist(r)}static lerp(t,r,n,s){return s?s.set(t):(s=t.copy(),arguments.length===4&amp;amp;amp;&amp;amp;amp;p5._friendlyError(&amp;amp;quot;The target parameter is undefined, it should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.lerp&amp;amp;quot;)),s.lerp(r,n),s}static slerp(t,r,n,s){return s?s.set(t):(s=t.copy(),arguments.length===4&amp;amp;amp;&amp;amp;amp;p5._friendlyError(&amp;amp;quot;The target parameter is undefined, it should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.slerp&amp;amp;quot;)),s.slerp(r,n),s}static mag(t){return t.mag()}static magSq(t){return t.magSq()}static normalize(t,r){return arguments.length&amp;amp;lt;2?r=t.copy():(r instanceof i||p5._friendlyError(&amp;amp;quot;The target parameter should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.normalize&amp;amp;quot;),r.set(t)),r.normalize()}static limit(t,r,n){return arguments.length&amp;amp;lt;3?n=t.copy():(n instanceof i||p5._friendlyError(&amp;amp;quot;The target parameter should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.limit&amp;amp;quot;),n.set(t)),n.limit(r)}static setMag(t,r,n){return arguments.length&amp;amp;lt;3?n=t.copy():(n instanceof i||p5._friendlyError(&amp;amp;quot;The target parameter should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.setMag&amp;amp;quot;),n.set(t)),n.setMag(r)}static heading(t){return t.heading()}static angleBetween(t,r){return t.angleBetween(r)}static reflect(t,r,n){return arguments.length&amp;amp;lt;3?n=t.copy():(n instanceof i||p5._friendlyError(&amp;amp;quot;The target parameter should be of type p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.reflect&amp;amp;quot;),n.set(t)),n.reflect(r)}static array(t){return t.array()}static equals(t,r){let n;return t instanceof i?n=t:t instanceof Array?n=new i().set(t):p5._friendlyError(&amp;amp;quot;The v1 parameter should be of type Array or p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector.equals&amp;amp;quot;),n.equals(r)}};function Sh(i,t){i.Vector=H}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Sh(p5,p5.prototype);function Ah(i,t){let r=[ih,nh,sh,ah,oh,uh];t._frameRate=0,t._lastFrameTime=window.performance.now(),t._targetFrameRate=60;let n=window.print,s=!1;t.print=function(...l){l.length?console.log(...l):s||(n(),window.confirm(&amp;amp;quot;You just tried to print the webpage. Do you want to prevent this from running again?&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(s=!0))},t.frameCount=0,t.deltaTime=0,t.focused=document.hasFocus(),t.cursor=function(l,c,p){let f=&amp;amp;quot;auto&amp;amp;quot;,d=this._curElement.elt;if(r.includes(l))f=l;else if(typeof l==&amp;amp;quot;string&amp;amp;quot;){let m=&amp;amp;quot;&amp;amp;quot;;c&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;typeof c==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof p==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(m=`${c} ${p}`),l.substring(0,7)===&amp;amp;quot;http://&amp;amp;quot;||l.substring(0,8)===&amp;amp;quot;https://&amp;amp;quot;?f=`url(${l}) ${m}, auto`:/\.(cur|jpg|jpeg|gif|png|CUR|JPG|JPEG|GIF|PNG)$/.test(l)?f=`url(${l}) ${m}, auto`:f=l}d.style.cursor=f},t.frameRate=function(l){return typeof l!=&amp;amp;quot;number&amp;amp;quot;||l&amp;amp;lt;0?this._frameRate:(this._targetFrameRate=l,l===0&amp;amp;amp;&amp;amp;amp;(this._frameRate=l),this)},t.getFrameRate=function(){return this.frameRate()},t.setFrameRate=function(l){return this.frameRate(l)},t.getTargetFrameRate=function(){return this._targetFrameRate},t.noCursor=function(){this._curElement.elt.style.cursor=&amp;amp;quot;none&amp;amp;quot;},t.webglVersion=Yr,t.displayWidth=screen.width,t.displayHeight=screen.height,t.windowWidth=0,t.windowHeight=0,t._onresize=function(l){this.windowWidth=a(),this.windowHeight=o();let c=this._isGlobal?window:this,p;typeof c.windowResized==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(p=c.windowResized(l),p!==void 0&amp;amp;amp;&amp;amp;amp;!p&amp;amp;amp;&amp;amp;amp;l.preventDefault())};function a(){return window.innerWidth||document.documentElement&amp;amp;amp;&amp;amp;amp;document.documentElement.clientWidth||document.body&amp;amp;amp;&amp;amp;amp;document.body.clientWidth||0}function o(){return window.innerHeight||document.documentElement&amp;amp;amp;&amp;amp;amp;document.documentElement.clientHeight||document.body&amp;amp;amp;&amp;amp;amp;document.body.clientHeight||0}t._updateWindowSize=function(){this.windowWidth=a(),this.windowHeight=o()},Object.defineProperty(t,&amp;amp;quot;width&amp;amp;quot;,{get(){return this._renderer.width}}),Object.defineProperty(t,&amp;amp;quot;height&amp;amp;quot;,{get(){return this._renderer.height}}),t.fullscreen=function(l){if(typeof l&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement;l?u(document.documentElement):h()},t.pixelDensity=function(l){let c;return typeof l==&amp;amp;quot;number&amp;amp;quot;?(l!==this._renderer._pixelDensity&amp;amp;amp;&amp;amp;amp;(this._renderer._pixelDensity=l),c=this,this.resizeCanvas(this.width,this.height,!0)):c=this._renderer._pixelDensity,c},t.displayDensity=()=&amp;amp;gt;window.devicePixelRatio;function u(l){if(!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled))throw new Error(&amp;amp;quot;Fullscreen not enabled in this browser.&amp;amp;quot;);l.requestFullscreen?l.requestFullscreen():l.mozRequestFullScreen?l.mozRequestFullScreen():l.webkitRequestFullscreen?l.webkitRequestFullscreen():l.msRequestFullscreen&amp;amp;amp;&amp;amp;amp;l.msRequestFullscreen()}function h(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&amp;amp;amp;&amp;amp;amp;document.msExitFullscreen()}t.getURL=()=&amp;amp;gt;location.href,t.getURLPath=()=&amp;amp;gt;location.pathname.split(&amp;amp;quot;/&amp;amp;quot;).filter(l=&amp;amp;gt;l!==&amp;amp;quot;&amp;amp;quot;),t.getURLParams=function(){let l=/[?&amp;amp;amp;]([^&amp;amp;amp;=]+)(?:[&amp;amp;amp;=])([^&amp;amp;amp;=]+)/gim,c,p={};for(;(c=l.exec(location.search))!=null;)c.index===l.lastIndex&amp;amp;amp;&amp;amp;amp;l.lastIndex++,p[c[1]]=c[2];return p},t.worldToScreen=function(l){return typeof l==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l=this.createVector(...arguments)),this._renderer.getWorldToScreenMatrix().multiplyAndNormalizePoint(l)},t.screenToWorld=function(l){typeof l==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l=this.createVector(...arguments));let c=this._renderer.getWorldToScreenMatrix();if(l.dimensions==2){let d=c.mat4[14]/c.mat4[15];l=this.createVector(l.x,l.y,d)}return c.invert(c).multiplyAndNormalizePoint(l)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ah(p5,p5.prototype);function tt(i,t){let r=i.length;Array.isArray(i[0])||(i=[i]),Array.isArray(t[0])||(t=t.map(o=&amp;amp;gt;[o]));let n=t[0].length,s=t[0].map((o,u)=&amp;amp;gt;t.map(h=&amp;amp;gt;h[u])),a=i.map(o=&amp;amp;gt;s.map(u=&amp;amp;gt;{let h=0;if(!Array.isArray(o)){for(let l of u)h+=o*l;return h}for(let l=0;l&amp;amp;lt;o.length;l++)h+=o[l]*(u[l]||0);return h}));return r===1&amp;amp;amp;&amp;amp;amp;(a=a[0]),n===1?a.map(o=&amp;amp;gt;o[0]):a}function su(i){return gi(i)===&amp;amp;quot;string&amp;amp;quot;}function gi(i){return(Object.prototype.toString.call(i).match(/^\[object\s+(.*?)\]$/)[1]||&amp;amp;quot;&amp;amp;quot;).toLowerCase()}function Na(i,{precision:t,unit:r}){return au(i)?&amp;amp;quot;none&amp;amp;quot;:Pv(i,t)+(r??&amp;amp;quot;&amp;amp;quot;)}function au(i){return Number.isNaN(i)||i instanceof Number&amp;amp;amp;&amp;amp;amp;i?.none}function Pv(i,t){if(i===0)return 0;let r=~~i,n=0;r&amp;amp;amp;&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;(n=~~Math.log10(Math.abs(r))+1);let s=10**(t-n);return Math.floor(i*s+.5)/s}var Ov={deg:1,grad:.9,rad:180/Math.PI,turn:360};function rd(i){if(!i)return;i=i.trim();let t=/^([a-z]+)\((.+?)\)$/i,r=/^-?[\d.]+$/,n=/%|deg|g?rad|turn$/,s=/\/?\s*(none|[-\w.]+(?:%|deg|g?rad|turn)?)/g,a=i.match(t);if(a){let o=[];return a[2].replace(s,(u,h)=&amp;amp;gt;{let l=h.match(n),c=h;if(l){let p=l[0],f=c.slice(0,-p.length);p===&amp;amp;quot;%&amp;amp;quot;?(c=new Number(f/100),c.type=&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;):(c=new Number(f*Ov[p]),c.type=&amp;amp;quot;&amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;,c.unit=p)}else r.test(c)?(c=new Number(c),c.type=&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;):c===&amp;amp;quot;none&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(c=new Number(NaN),c.none=!0);u.startsWith(&amp;amp;quot;/&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(c=c instanceof Number?c:new Number(c),c.alpha=!0),typeof c==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;c instanceof Number&amp;amp;amp;&amp;amp;amp;(c.raw=h),o.push(c)}),{name:a[1].toLowerCase(),rawName:a[1],rawArgs:a[2],args:o}}}function id(i){return i[i.length-1]}function hs(i,t,r){return isNaN(i)?t:isNaN(t)?i:i+(t-i)*r}function Vv(i,t,r){return(r-i)/(t-i)}function ou(i,t,r){return hs(t[0],t[1],Vv(i[0],i[1],r))}function nd(i){return i.map(t=&amp;amp;gt;t.split(&amp;amp;quot;|&amp;amp;quot;).map(r=&amp;amp;gt;{r=r.trim();let n=r.match(/^(&amp;amp;lt;[a-z]+&amp;amp;gt;)\[(-?[.\d]+),\s*(-?[.\d]+)\]?$/);if(n){let s=new String(n[1]);return s.range=[+n[2],+n[3]],s}return r}))}function sd(i,t,r){return Math.max(Math.min(r,t),i)}function uu(i,t){return Math.sign(i)===Math.sign(t)?i:-i}function Kr(i,t){return uu(Math.abs(i)**t,i)}function Dh(i,t){return t===0?0:i/t}function ad(i,t,r=0,n=i.length){for(;r&amp;amp;lt;n;){let s=r+n&amp;amp;gt;&amp;amp;gt;1;i[s]&amp;amp;lt;t?r=s+1:n=s}return r}var Th=class{add(t,r,n){if(typeof arguments[0]!=&amp;amp;quot;string&amp;amp;quot;){for(var t in arguments[0])this.add(t,arguments[0][t],arguments[1]);return}(Array.isArray(t)?t:[t]).forEach(function(s){this[s]=this[s]||[],r&amp;amp;amp;&amp;amp;amp;this[s][n?&amp;amp;quot;unshift&amp;amp;quot;:&amp;amp;quot;push&amp;amp;quot;](r)},this)}run(t,r){this[t]=this[t]||[],this[t].forEach(function(n){n.call(r&amp;amp;amp;&amp;amp;amp;r.context?r.context:r,r)})}},Uv=new Th,wn=Uv;var nr={D50:[.3457/.3585,1,(1-.3457-.3585)/.3585],D65:[.3127/.329,1,(1-.3127-.329)/.329]};function lu(i){return Array.isArray(i)?i:nr[i]}function Cn(i,t,r,n={}){if(i=lu(i),t=lu(t),!i||!t)throw new TypeError(`Missing white point to convert ${i?&amp;amp;quot;&amp;amp;quot;:&amp;amp;quot;from&amp;amp;quot;}${!i&amp;amp;amp;&amp;amp;amp;!t?&amp;amp;quot;/&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;}${t?&amp;amp;quot;&amp;amp;quot;:&amp;amp;quot;to&amp;amp;quot;}`);if(i===t)return r;let s={W1:i,W2:t,XYZ:r,options:n};if(wn.run(&amp;amp;quot;chromatic-adaptation-start&amp;amp;quot;,s),s.M||(s.W1===nr.D65&amp;amp;amp;&amp;amp;amp;s.W2===nr.D50?s.M=[[1.0479297925449969,.022946870601609652,-.05019226628920524],[.02962780877005599,.9904344267538799,-.017073799063418826],[-.009243040646204504,.015055191490298152,.7518742814281371]]:s.W1===nr.D50&amp;amp;amp;&amp;amp;amp;s.W2===nr.D65&amp;amp;amp;&amp;amp;amp;(s.M=[[.955473421488075,-.02309845494876471,.06325924320057072],[-.0283697093338637,1.0099953980813041,.021041441191917323],[.012314014864481998,-.020507649298898964,1.330365926242124]])),wn.run(&amp;amp;quot;chromatic-adaptation-end&amp;amp;quot;,s),s.M)return tt(s.M,s.XYZ);throw new TypeError(&amp;amp;quot;Only Bradford CAT with white points D50 and D65 supported for now.&amp;amp;quot;)}var yr={gamut_mapping:&amp;amp;quot;css&amp;amp;quot;,precision:5,deltaE:&amp;amp;quot;76&amp;amp;quot;,verbose:globalThis?.process?.env?.NODE_ENV?.toLowerCase()!==&amp;amp;quot;test&amp;amp;quot;,warn:function(t){this.verbose&amp;amp;amp;&amp;amp;amp;globalThis?.console?.warn?.(t)}};var Gv=new Set([&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;]);function od(i,t,r,n){return Object.entries(i.coords).map(([a,o],u)=&amp;amp;gt;{let h=t.coordGrammar[u],l=n[u],c=l?.type,p;if(l.none?p=h.find(m=&amp;amp;gt;Gv.has(m)):p=h.find(m=&amp;amp;gt;m==c),!p){let m=o.name||a;throw new TypeError(`${c??l.raw} not allowed for ${m} in ${r}()`)}let f=p.range;c===&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(f||=[0,1]);let d=o.range||o.refRange;return f&amp;amp;amp;&amp;amp;amp;d&amp;amp;amp;&amp;amp;amp;(n[u]=ou(f,d,n[u])),p})}function cs(i,{meta:t}={}){let r={str:String(i)?.trim()};if(wn.run(&amp;amp;quot;parse-start&amp;amp;quot;,r),r.color)return r.color;if(r.parsed=rd(r.str),r.parsed){let n=r.parsed.name;if(n===&amp;amp;quot;color&amp;amp;quot;){let s=r.parsed.args.shift(),a=s.startsWith(&amp;amp;quot;--&amp;amp;quot;)?s.substring(2):`--${s}`,o=[s,a],u=r.parsed.rawArgs.indexOf(&amp;amp;quot;/&amp;amp;quot;)&amp;amp;gt;0?r.parsed.args.pop():1;for(let c of be.all){let p=c.getFormat(&amp;amp;quot;color&amp;amp;quot;);if(p&amp;amp;amp;&amp;amp;amp;(o.includes(p.id)||p.ids?.filter(f=&amp;amp;gt;o.includes(f)).length)){let f=Object.keys(c.coords).map((m,g)=&amp;amp;gt;r.parsed.args[g]||0),d;return p.coordGrammar&amp;amp;amp;&amp;amp;amp;(d=od(c,p,&amp;amp;quot;color&amp;amp;quot;,f)),t&amp;amp;amp;&amp;amp;amp;Object.assign(t,{formatId:&amp;amp;quot;color&amp;amp;quot;,types:d}),p.id.startsWith(&amp;amp;quot;--&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!s.startsWith(&amp;amp;quot;--&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;yr.warn(`${c.name} is a non-standard space and not currently supported in the CSS spec. Use prefixed color(${p.id}) instead of color(${s}).`),s.startsWith(&amp;amp;quot;--&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!p.id.startsWith(&amp;amp;quot;--&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;yr.warn(`${c.name} is a standard space and supported in the CSS spec. Use color(${p.id}) instead of prefixed color(${s}).`),{spaceId:c.id,coords:f,alpha:u}}}let h=&amp;amp;quot;&amp;amp;quot;,l=s in be.registry?s:a;if(l in be.registry){let c=be.registry[l].formats?.color?.id;c&amp;amp;amp;&amp;amp;amp;(h=`Did you mean color(${c})?`)}throw new TypeError(`Cannot parse color(${s}). `+(h||&amp;amp;quot;Missing a plugin?&amp;amp;quot;))}else for(let s of be.all){let a=s.getFormat(n);if(a&amp;amp;amp;&amp;amp;amp;a.type===&amp;amp;quot;function&amp;amp;quot;){let o=1;(a.lastAlpha||id(r.parsed.args).alpha)&amp;amp;amp;&amp;amp;amp;(o=r.parsed.args.pop());let u=r.parsed.args,h;return a.coordGrammar&amp;amp;amp;&amp;amp;amp;(h=od(s,a,n,u)),t&amp;amp;amp;&amp;amp;amp;Object.assign(t,{formatId:a.name,types:h}),{spaceId:s.id,coords:u,alpha:o}}}}else for(let n of be.all)for(let s in n.formats){let a=n.formats[s];if(a.type!==&amp;amp;quot;custom&amp;amp;quot;||a.test&amp;amp;amp;&amp;amp;amp;!a.test(r.str))continue;let o=a.parse(r.str);if(o)return o.alpha??=1,t&amp;amp;amp;&amp;amp;amp;(t.formatId=s),o}throw new TypeError(`Could not parse ${i} as a color. Missing a plugin?`)}function je(i){if(Array.isArray(i))return i.map(je);if(!i)throw new TypeError(&amp;amp;quot;Empty color reference&amp;amp;quot;);su(i)&amp;amp;amp;&amp;amp;amp;(i=cs(i));let t=i.space||i.spaceId;return t instanceof be||(i.space=be.get(t)),i.alpha===void 0&amp;amp;amp;&amp;amp;amp;(i.alpha=1),i}var zv=75e-6,be=class i{constructor(t){this.id=t.id,this.name=t.name,this.base=t.base?i.get(t.base):null,this.aliases=t.aliases,this.base&amp;amp;amp;&amp;amp;amp;(this.fromBase=t.fromBase,this.toBase=t.toBase);let r=t.coords??this.base.coords;for(let s in r)&amp;amp;quot;name&amp;amp;quot;in r[s]||(r[s].name=s);this.coords=r;let n=t.white??this.base.white??&amp;amp;quot;D65&amp;amp;quot;;this.white=lu(n),this.formats=t.formats??{};for(let s in this.formats){let a=this.formats[s];a.type||=&amp;amp;quot;function&amp;amp;quot;,a.name||=s}this.formats.color?.id||(this.formats.color={...this.formats.color??{},id:t.cssId||this.id}),t.gamutSpace?this.gamutSpace=t.gamutSpace===&amp;amp;quot;self&amp;amp;quot;?this:i.get(t.gamutSpace):this.isPolar?this.gamutSpace=this.base:this.gamutSpace=this,this.gamutSpace.isUnbounded&amp;amp;amp;&amp;amp;amp;(this.inGamut=(s,a)=&amp;amp;gt;!0),this.referred=t.referred,Object.defineProperty(this,&amp;amp;quot;path&amp;amp;quot;,{value:jv(this).reverse(),writable:!1,enumerable:!0,configurable:!0}),wn.run(&amp;amp;quot;colorspace-init-end&amp;amp;quot;,this)}inGamut(t,{epsilon:r=zv}={}){if(!this.equals(this.gamutSpace))return t=this.to(this.gamutSpace,t),this.gamutSpace.inGamut(t,{epsilon:r});let n=Object.values(this.coords);return t.every((s,a)=&amp;amp;gt;{let o=n[a];if(o.type!==&amp;amp;quot;angle&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o.range){if(Number.isNaN(s))return!0;let[u,h]=o.range;return(u===void 0||s&amp;amp;gt;=u-r)&amp;amp;amp;&amp;amp;amp;(h===void 0||s&amp;amp;lt;=h+r)}return!0})}get isUnbounded(){return Object.values(this.coords).every(t=&amp;amp;gt;!(&amp;amp;quot;range&amp;amp;quot;in t))}get cssId(){return this.formats?.color?.id||this.id}get isPolar(){for(let t in this.coords)if(this.coords[t].type===&amp;amp;quot;angle&amp;amp;quot;)return!0;return!1}getFormat(t){if(typeof t==&amp;amp;quot;object&amp;amp;quot;)return t=ud(t,this),t;let r;return t===&amp;amp;quot;default&amp;amp;quot;?r=Object.values(this.formats)[0]:r=this.formats[t],r?(r=ud(r,this),r):null}equals(t){return t?this===t||this.id===t||this.id===t.id:!1}to(t,r){if(arguments.length===1){let u=je(t);[t,r]=[u.space,u.coords]}if(t=i.get(t),this.equals(t))return r;r=r.map(u=&amp;amp;gt;Number.isNaN(u)?0:u);let n=this.path,s=t.path,a,o;for(let u=0;u&amp;amp;lt;n.length&amp;amp;amp;&amp;amp;amp;n[u].equals(s[u]);u++)a=n[u],o=u;if(!a)throw new Error(`Cannot convert between color spaces ${this} and ${t}: no connection space was found`);for(let u=n.length-1;u&amp;amp;gt;o;u--)r=n[u].toBase(r);for(let u=o+1;u&amp;amp;lt;s.length;u++)r=s[u].fromBase(r);return r}from(t,r){if(arguments.length===1){let n=je(t);[t,r]=[n.space,n.coords]}return t=i.get(t),t.to(this,r)}toString(){return`${this.name} (${this.id})`}getMinCoords(){let t=[];for(let r in this.coords){let n=this.coords[r],s=n.range||n.refRange;t.push(s?.min??0)}return t}static registry={};static get all(){return[...new Set(Object.values(i.registry))]}static register(t,r){if(arguments.length===1&amp;amp;amp;&amp;amp;amp;(r=arguments[0],t=r.id),r=this.get(r),this.registry[t]&amp;amp;amp;&amp;amp;amp;this.registry[t]!==r)throw new Error(`Duplicate color space registration: &amp;amp;#39;${t}&amp;amp;#39;`);if(this.registry[t]=r,arguments.length===1&amp;amp;amp;&amp;amp;amp;r.aliases)for(let n of r.aliases)this.register(n,r);return r}static get(t,...r){if(!t||t instanceof i)return t;if(gi(t)===&amp;amp;quot;string&amp;amp;quot;){let s=i.registry[t.toLowerCase()];if(!s)throw new TypeError(`No color space found with id = &amp;amp;quot;${t}&amp;amp;quot;`);return s}if(r.length)return i.get(...r);throw new TypeError(`${t} is not a valid color space`)}static resolveCoord(t,r){let n=gi(t),s,a;if(n===&amp;amp;quot;string&amp;amp;quot;?t.includes(&amp;amp;quot;.&amp;amp;quot;)?[s,a]=t.split(&amp;amp;quot;.&amp;amp;quot;):[s,a]=[,t]:Array.isArray(t)?[s,a]=t:(s=t.space,a=t.coordId),s=i.get(s),s||(s=r),!s)throw new TypeError(`Cannot resolve coordinate reference ${t}: No color space specified and relative references are not allowed here`);if(n=gi(a),n===&amp;amp;quot;number&amp;amp;quot;||n===&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a&amp;amp;gt;=0){let h=Object.entries(s.coords)[a];if(h)return{space:s,id:h[0],index:a,...h[1]}}s=i.get(s);let o=a.toLowerCase(),u=0;for(let h in s.coords){let l=s.coords[h];if(h.toLowerCase()===o||l.name?.toLowerCase()===o)return{space:s,id:h,index:u,...l};u++}throw new TypeError(`No &amp;amp;quot;${a}&amp;amp;quot; coordinate found in ${s.name}. Its coordinates are: ${Object.keys(s.coords).join(&amp;amp;quot;, &amp;amp;quot;)}`)}static DEFAULT_FORMAT={type:&amp;amp;quot;functions&amp;amp;quot;,name:&amp;amp;quot;color&amp;amp;quot;}};function jv(i){let t=[i];for(let r=i;r=r.base;)t.push(r);return t}function ud(i,{coords:t}={}){if(i.coords&amp;amp;amp;&amp;amp;amp;!i.coordGrammar){i.type||=&amp;amp;quot;function&amp;amp;quot;,i.name||=&amp;amp;quot;color&amp;amp;quot;,i.coordGrammar=nd(i.coords);let r=Object.entries(t).map(([n,s],a)=&amp;amp;gt;{let o=i.coordGrammar[a][0],u=s.range||s.refRange,h=o.range,l=&amp;amp;quot;&amp;amp;quot;;return o==&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;?(h=[0,100],l=&amp;amp;quot;%&amp;amp;quot;):o==&amp;amp;quot;&amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l=&amp;amp;quot;deg&amp;amp;quot;),{fromRange:u,toRange:h,suffix:l}});i.serializeCoords=(n,s)=&amp;amp;gt;n.map((a,o)=&amp;amp;gt;{let{fromRange:u,toRange:h,suffix:l}=r[o];return u&amp;amp;amp;&amp;amp;amp;h&amp;amp;amp;&amp;amp;amp;(a=ou(u,h,a)),a=Na(a,{precision:s,unit:l}),a})}return i}var Yt=new be({id:&amp;amp;quot;xyz-d65&amp;amp;quot;,name:&amp;amp;quot;XYZ D65&amp;amp;quot;,coords:{x:{name:&amp;amp;quot;X&amp;amp;quot;},y:{name:&amp;amp;quot;Y&amp;amp;quot;},z:{name:&amp;amp;quot;Z&amp;amp;quot;}},white:&amp;amp;quot;D65&amp;amp;quot;,formats:{color:{ids:[&amp;amp;quot;xyz-d65&amp;amp;quot;,&amp;amp;quot;xyz&amp;amp;quot;]}},aliases:[&amp;amp;quot;xyz&amp;amp;quot;]});var Lr=class extends be{constructor(t){t.coords||(t.coords={r:{range:[0,1],name:&amp;amp;quot;Red&amp;amp;quot;},g:{range:[0,1],name:&amp;amp;quot;Green&amp;amp;quot;},b:{range:[0,1],name:&amp;amp;quot;Blue&amp;amp;quot;}}),t.base||(t.base=Yt),t.toXYZ_M&amp;amp;amp;&amp;amp;amp;t.fromXYZ_M&amp;amp;amp;&amp;amp;amp;(t.toBase??=r=&amp;amp;gt;{let n=tt(t.toXYZ_M,r);return this.white!==this.base.white&amp;amp;amp;&amp;amp;amp;(n=Cn(this.white,this.base.white,n)),n},t.fromBase??=r=&amp;amp;gt;(r=Cn(this.base.white,this.white,r),tt(t.fromXYZ_M,r))),t.referred??=&amp;amp;quot;display&amp;amp;quot;,super(t)}};function Ia(i,t){return i=je(i),!t||i.space.equals(t)?i.coords.slice():(t=be.get(t),t.from(i))}function Rr(i,t){i=je(i);let{space:r,index:n}=be.resolveCoord(t,i.space);return Ia(i,r)[n]}function hu(i,t,r){return i=je(i),t=be.get(t),i.coords=t.to(i.space,r),i}hu.returns=&amp;amp;quot;color&amp;amp;quot;;function Hi(i,t,r){if(i=je(i),arguments.length===2&amp;amp;amp;&amp;amp;amp;gi(arguments[1])===&amp;amp;quot;object&amp;amp;quot;){let n=arguments[1];for(let s in n)Hi(i,s,n[s])}else{typeof r==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=r(Rr(i,t)));let{space:n,index:s}=be.resolveCoord(t,i.space),a=Ia(i,n);a[s]=r,hu(i,n,a)}return i}Hi.returns=&amp;amp;quot;color&amp;amp;quot;;var ld=new be({id:&amp;amp;quot;xyz-d50&amp;amp;quot;,name:&amp;amp;quot;XYZ D50&amp;amp;quot;,white:&amp;amp;quot;D50&amp;amp;quot;,base:Yt,fromBase:i=&amp;amp;gt;Cn(Yt.white,&amp;amp;quot;D50&amp;amp;quot;,i),toBase:i=&amp;amp;gt;Cn(&amp;amp;quot;D50&amp;amp;quot;,Yt.white,i)});var $v=216/24389,hd=24/116,cu=24389/27,Nh=nr.D50,Rt=new be({id:&amp;amp;quot;lab&amp;amp;quot;,name:&amp;amp;quot;Lab&amp;amp;quot;,coords:{l:{refRange:[0,100],name:&amp;amp;quot;Lightness&amp;amp;quot;},a:{refRange:[-125,125]},b:{refRange:[-125,125]}},white:Nh,base:ld,fromBase(i){let r=i.map((n,s)=&amp;amp;gt;n/Nh[s]).map(n=&amp;amp;gt;n&amp;amp;gt;$v?Math.cbrt(n):(cu*n+16)/116);return[116*r[1]-16,500*(r[0]-r[1]),200*(r[1]-r[2])]},toBase(i){let t=[];return t[1]=(i[0]+16)/116,t[0]=i[1]/500+t[1],t[2]=t[1]-i[2]/200,[t[0]&amp;amp;gt;hd?Math.pow(t[0],3):(116*t[0]-16)/cu,i[0]&amp;amp;gt;8?Math.pow((i[0]+16)/116,3):i[0]/cu,t[2]&amp;amp;gt;hd?Math.pow(t[2],3):(116*t[2]-16)/cu].map((n,s)=&amp;amp;gt;n*Nh[s])},formats:{lab:{coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;[-1,1]&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;[-1,1]&amp;amp;quot;]}}});function Xt(i){return(i%360+360)%360}function cd(i,t){if(i===&amp;amp;quot;raw&amp;amp;quot;)return t;let[r,n]=t.map(Xt),s=n-r;return i===&amp;amp;quot;increasing&amp;amp;quot;?s&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(n+=360):i===&amp;amp;quot;decreasing&amp;amp;quot;?s&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(r+=360):i===&amp;amp;quot;longer&amp;amp;quot;?-180&amp;amp;lt;s&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;180&amp;amp;amp;&amp;amp;amp;(s&amp;amp;gt;0?r+=360:n+=360):i===&amp;amp;quot;shorter&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s&amp;amp;gt;180?r+=360:s&amp;amp;lt;-180&amp;amp;amp;&amp;amp;amp;(n+=360)),[r,n]}var Jr=new be({id:&amp;amp;quot;lch&amp;amp;quot;,name:&amp;amp;quot;LCH&amp;amp;quot;,coords:{l:{refRange:[0,100],name:&amp;amp;quot;Lightness&amp;amp;quot;},c:{refRange:[0,150],name:&amp;amp;quot;Chroma&amp;amp;quot;},h:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;}},base:Rt,fromBase(i){let[t,r,n]=i,s,a=.02;return Math.abs(r)&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;Math.abs(n)&amp;amp;lt;a?s=NaN:s=Math.atan2(n,r)*180/Math.PI,[t,Math.sqrt(r**2+n**2),Xt(s)]},toBase(i){let[t,r,n]=i;return r&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(r=0),isNaN(n)&amp;amp;amp;&amp;amp;amp;(n=0),[t,r*Math.cos(n*Math.PI/180),r*Math.sin(n*Math.PI/180)]},formats:{lch:{coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;]}}});var fd=25**7,fu=Math.PI,pd=180/fu,fs=fu/180;function dd(i){let t=i*i;return t*t*t*i}function pu(i,t,{kL:r=1,kC:n=1,kH:s=1}={}){[i,t]=je([i,t]);let[a,o,u]=Rt.from(i),h=Jr.from(Rt,[a,o,u])[1],[l,c,p]=Rt.from(t),f=Jr.from(Rt,[l,c,p])[1];h&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(h=0),f&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(f=0);let d=(h+f)/2,m=dd(d),g=.5*(1-Math.sqrt(m/(m+fd))),v=(1+g)*o,w=(1+g)*c,y=Math.sqrt(v**2+u**2),S=Math.sqrt(w**2+p**2),_=v===0&amp;amp;amp;&amp;amp;amp;u===0?0:Math.atan2(u,v),b=w===0&amp;amp;amp;&amp;amp;amp;p===0?0:Math.atan2(p,w);_&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(_+=2*fu),b&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(b+=2*fu),_*=pd,b*=pd;let I=l-a,E=S-y,A=b-_,C=_+b,T=Math.abs(A),D;y*S===0?D=0:T&amp;amp;lt;=180?D=A:A&amp;amp;gt;180?D=A-360:A&amp;amp;lt;-180?D=A+360:yr.warn(&amp;amp;quot;the unthinkable has happened&amp;amp;quot;);let F=2*Math.sqrt(S*y)*Math.sin(D*fs/2),N=(a+l)/2,B=(y+S)/2,U=dd(B),j;y*S===0?j=C:T&amp;amp;lt;=180?j=C/2:C&amp;amp;lt;360?j=(C+360)/2:j=(C-360)/2;let W=(N-50)**2,te=1+.015*W/Math.sqrt(20+W),X=1+.045*B,Z=1;Z-=.17*Math.cos((j-30)*fs),Z+=.24*Math.cos(2*j*fs),Z+=.32*Math.cos((3*j+6)*fs),Z-=.2*Math.cos((4*j-63)*fs);let G=1+.015*B*Z,q=30*Math.exp(-1*((j-275)/25)**2),J=2*Math.sqrt(U/(U+fd)),Y=-1*Math.sin(2*q*fs)*J,Q=(I/(r*te))**2;return Q+=(E/(n*X))**2,Q+=(F/(s*G))**2,Q+=Y*(E/(n*X))*(F/(s*G)),Math.sqrt(Q)}var Wv=[[.819022437996703,.3619062600528904,-.1288737815209879],[.0329836539323885,.9292868615863434,.0361446663506424],[.0481771893596242,.2642395317527308,.6335478284694309]],qv=[[1.2268798758459243,-.5578149944602171,.2813910456659647],[-.0405757452148008,1.112286803280317,-.0717110580655164],[-.0763729366746601,-.4214933324022432,1.5869240198367816]],Zv=[[.210454268309314,.7936177747023054,-.0040720430116193],[1.9779985324311684,-2.42859224204858,.450593709617411],[.0259040424655478,.7827717124575296,-.8086757549230774]],Yv=[[1,.3963377773761749,.2158037573099136],[1,-.1055613458156586,-.0638541728258133],[1,-.0894841775298119,-1.2914855480194092]],vr=new be({id:&amp;amp;quot;oklab&amp;amp;quot;,name:&amp;amp;quot;Oklab&amp;amp;quot;,coords:{l:{refRange:[0,1],name:&amp;amp;quot;Lightness&amp;amp;quot;},a:{refRange:[-.4,.4]},b:{refRange:[-.4,.4]}},white:&amp;amp;quot;D65&amp;amp;quot;,base:Yt,fromBase(i){let r=tt(Wv,i).map(n=&amp;amp;gt;Math.cbrt(n));return tt(Zv,r)},toBase(i){let r=tt(Yv,i).map(n=&amp;amp;gt;n**3);return tt(qv,r)},formats:{oklab:{coords:[&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;[-1,1]&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;[-1,1]&amp;amp;quot;]}}});function ka(i,t){[i,t]=je([i,t]);let[r,n,s]=vr.from(i),[a,o,u]=vr.from(t),h=r-a,l=n-o,c=s-u;return Math.sqrt(h**2+l**2+c**2)}var Xv=75e-6;function yi(i,t,{epsilon:r=Xv}={}){i=je(i),t||(t=i.space),t=be.get(t);let n=i.coords;return t!==i.space&amp;amp;amp;&amp;amp;amp;(n=t.from(i)),t.inGamut(n,{epsilon:r})}function vi(i){return{space:i.space,coords:i.coords.slice(),alpha:i.alpha}}function Ih(i,t,r=&amp;amp;quot;lab&amp;amp;quot;){r=be.get(r);let n=r.from(i),s=r.from(t);return Math.sqrt(n.reduce((a,o,u)=&amp;amp;gt;{let h=s[u];return isNaN(o)||isNaN(h)?a:a+(h-o)**2},0))}function kh(i,t){return Ih(i,t,&amp;amp;quot;lab&amp;amp;quot;)}var Kv=Math.PI,md=Kv/180;function gd(i,t,{l:r=2,c:n=1}={}){[i,t]=je([i,t]);let[s,a,o]=Rt.from(i),[,u,h]=Jr.from(Rt,[s,a,o]),[l,c,p]=Rt.from(t),f=Jr.from(Rt,[l,c,p])[1];u&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(u=0),f&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(f=0);let d=s-l,m=u-f,g=a-c,v=o-p,w=g**2+v**2-m**2,y=.511;s&amp;amp;gt;=16&amp;amp;amp;&amp;amp;amp;(y=.040975*s/(1+.01765*s));let S=.0638*u/(1+.0131*u)+.638,_;Number.isNaN(h)&amp;amp;amp;&amp;amp;amp;(h=0),h&amp;amp;gt;=164&amp;amp;amp;&amp;amp;amp;h&amp;amp;lt;=345?_=.56+Math.abs(.2*Math.cos((h+168)*md)):_=.36+Math.abs(.4*Math.cos((h+35)*md));let b=Math.pow(u,4),I=Math.sqrt(b/(b+1900)),E=S*(I*_+1-I),A=(d/(r*y))**2;return A+=(m/(n*S))**2,A+=w/E**2,Math.sqrt(A)}var yd=203,du=new be({id:&amp;amp;quot;xyz-abs-d65&amp;amp;quot;,cssId:&amp;amp;quot;--xyz-abs-d65&amp;amp;quot;,name:&amp;amp;quot;Absolute XYZ D65&amp;amp;quot;,coords:{x:{refRange:[0,9504.7],name:&amp;amp;quot;Xa&amp;amp;quot;},y:{refRange:[0,1e4],name:&amp;amp;quot;Ya&amp;amp;quot;},z:{refRange:[0,10888.3],name:&amp;amp;quot;Za&amp;amp;quot;}},base:Yt,fromBase(i){return i.map(t=&amp;amp;gt;Math.max(t*yd,0))},toBase(i){return i.map(t=&amp;amp;gt;Math.max(t/yd,0))}});var mu=1.15,gu=.66,vd=2610/2**14,Jv=2**14/2610,xd=3424/2**12,bd=2413/2**7,_d=2392/2**7,Qv=1.7*2523/2**5,wd=2**5/(1.7*2523),yu=-.56,Mh=16295499532821565e-27,ex=[[.41478972,.579999,.014648],[-.20151,1.120649,.0531008],[-.0166008,.2648,.6684799]],tx=[[1.9242264357876067,-1.0047923125953657,.037651404030618],[.35031676209499907,.7264811939316552,-.06538442294808501],[-.09098281098284752,-.3127282905230739,1.5227665613052603]],rx=[[.5,.5,0],[3.524,-4.066708,.542708],[.199076,1.096799,-1.295875]],ix=[[1,.1386050432715393,.05804731615611886],[.9999999999999999,-.1386050432715393,-.05804731615611886],[.9999999999999998,-.09601924202631895,-.8118918960560388]],Cd=new be({id:&amp;amp;quot;jzazbz&amp;amp;quot;,name:&amp;amp;quot;Jzazbz&amp;amp;quot;,coords:{jz:{refRange:[0,1],name:&amp;amp;quot;Jz&amp;amp;quot;},az:{refRange:[-.5,.5]},bz:{refRange:[-.5,.5]}},base:du,fromBase(i){let[t,r,n]=i,s=mu*t-(mu-1)*n,a=gu*r-(gu-1)*t,u=tt(ex,[s,a,n]).map(function(f){let d=xd+bd*(f/1e4)**vd,m=1+_d*(f/1e4)**vd;return(d/m)**Qv}),[h,l,c]=tt(rx,u);return[(1+yu)*h/(1+yu*h)-Mh,l,c]},toBase(i){let[t,r,n]=i,s=(t+Mh)/(1+yu-yu*(t+Mh)),o=tt(ix,[s,r,n]).map(function(f){let d=xd-f**wd,m=_d*f**wd-bd;return 1e4*(d/m)**Jv}),[u,h,l]=tt(tx,o),c=(u+(mu-1)*l)/mu,p=(h+(gu-1)*c)/gu;return[c,p,l]},formats:{color:{coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;[-1,1]&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;[-1,1]&amp;amp;quot;]}}});var Lh=new be({id:&amp;amp;quot;jzczhz&amp;amp;quot;,name:&amp;amp;quot;JzCzHz&amp;amp;quot;,coords:{jz:{refRange:[0,1],name:&amp;amp;quot;Jz&amp;amp;quot;},cz:{refRange:[0,1],name:&amp;amp;quot;Chroma&amp;amp;quot;},hz:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;}},base:Cd,fromBase(i){let[t,r,n]=i,s,a=2e-4;return Math.abs(r)&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;Math.abs(n)&amp;amp;lt;a?s=NaN:s=Math.atan2(n,r)*180/Math.PI,[t,Math.sqrt(r**2+n**2),Xt(s)]},toBase(i){return[i[0],i[1]*Math.cos(i[2]*Math.PI/180),i[1]*Math.sin(i[2]*Math.PI/180)]}});function Ed(i,t){[i,t]=je([i,t]);let[r,n,s]=Lh.from(i),[a,o,u]=Lh.from(t),h=r-a,l=n-o;Number.isNaN(s)&amp;amp;amp;&amp;amp;amp;Number.isNaN(u)?(s=0,u=0):Number.isNaN(s)?s=u:Number.isNaN(u)&amp;amp;amp;&amp;amp;amp;(u=s);let c=s-u,p=2*Math.sqrt(n*o)*Math.sin(c/2*(Math.PI/180));return Math.sqrt(h**2+l**2+p**2)}var Dd=3424/4096,Fd=2413/128,Td=2392/128,Sd=2610/16384,nx=2523/32,sx=16384/2610,Ad=32/2523,ax=[[.3592832590121217,.6976051147779502,-.035891593232029],[-.1920808463704993,1.100476797037432,.0753748658519118],[.0070797844607479,.0748396662186362,.8433265453898765]],ox=[[2048/4096,2048/4096,0],[6610/4096,-13613/4096,7003/4096],[17933/4096,-17390/4096,-543/4096]],ux=[[.9999999999999998,.0086090370379328,.111029625003026],[.9999999999999998,-.0086090370379328,-.1110296250030259],[.9999999999999998,.5600313357106791,-.3206271749873188]],lx=[[2.0701522183894223,-1.3263473389671563,.2066510476294053],[.3647385209748072,.6805660249472273,-.0453045459220347],[-.0497472075358123,-.0492609666966131,1.1880659249923042]],Rh=new be({id:&amp;amp;quot;ictcp&amp;amp;quot;,name:&amp;amp;quot;ICTCP&amp;amp;quot;,coords:{i:{refRange:[0,1],name:&amp;amp;quot;I&amp;amp;quot;},ct:{refRange:[-.5,.5],name:&amp;amp;quot;CT&amp;amp;quot;},cp:{refRange:[-.5,.5],name:&amp;amp;quot;CP&amp;amp;quot;}},base:du,fromBase(i){let t=tt(ax,i);return hx(t)},toBase(i){let t=cx(i);return tt(lx,t)}});function hx(i){let t=i.map(function(r){let n=Dd+Fd*(r/1e4)**Sd,s=1+Td*(r/1e4)**Sd;return(n/s)**nx});return tt(ox,t)}function cx(i){return tt(ux,i).map(function(n){let s=Math.max(n**Ad-Dd,0),a=Fd-Td*n**Ad;return 1e4*(s/a)**sx})}function Nd(i,t){[i,t]=je([i,t]);let[r,n,s]=Rh.from(i),[a,o,u]=Rh.from(t);return 720*Math.sqrt((r-a)**2+.25*(n-o)**2+(s-u)**2)}var fx=nr.D65,Ld=.42,Id=1/Ld,Bh=2*Math.PI,Rd=[[.401288,.650173,-.051461],[-.250268,1.204414,.045854],[-.002079,.048952,.953127]],px=[[1.8620678550872327,-1.0112546305316843,.14918677544445175],[.38752654323613717,.6214474419314753,-.008973985167612518],[-.015841498849333856,-.03412293802851557,1.0499644368778496]],dx=[[460,451,288],[460,-891,-261],[460,-220,-6300]],mx={dark:[.8,.525,.8],dim:[.9,.59,.9],average:[1,.69,1]},En={h:[20.14,90,164.25,237.53,380.14],e:[.8,.7,1,1.2,.8],H:[0,100,200,300,400]},gx=180/Math.PI,kd=Math.PI/180;function Bd(i,t){return i.map(n=&amp;amp;gt;{let s=Kr(t*Math.abs(n)*.01,Ld);return 400*uu(s,n)/(s+27.13)})}function yx(i,t){let r=100/t*27.13**Id;return i.map(n=&amp;amp;gt;{let s=Math.abs(n);return uu(r*Kr(s/(400-s),Id),n)})}function vx(i){let t=Xt(i);t&amp;amp;lt;=En.h[0]&amp;amp;amp;&amp;amp;amp;(t+=360);let r=ad(En.h,t)-1,[n,s]=En.h.slice(r,r+2),[a,o]=En.e.slice(r,r+2),u=En.H[r],h=(t-n)/a;return u+100*h/(h+(s-t)/o)}function xx(i){let t=(i%400+400)%400,r=Math.floor(.01*t);t=t%100;let[n,s]=En.h.slice(r,r+2),[a,o]=En.e.slice(r,r+2);return Xt((t*(o*n-a*s)-100*n*o)/(t*(o-a)-100*o))}function Ph(i,t,r,n,s){let a={};a.discounting=s,a.refWhite=i,a.surround=n;let o=i.map(g=&amp;amp;gt;g*100);a.la=t,a.yb=r;let u=o[1],h=tt(Rd,o);n=mx[a.surround];let l=n[0];a.c=n[1],a.nc=n[2];let p=(1/(5*a.la+1))**4;a.fl=p*a.la+.1*(1-p)*(1-p)*Math.cbrt(5*a.la),a.flRoot=a.fl**.25,a.n=a.yb/u,a.z=1.48+Math.sqrt(a.n),a.nbb=.725*a.n**-.2,a.ncb=a.nbb;let f=s?1:Math.max(Math.min(l*(1-1/3.6*Math.exp((-a.la-42)/92)),1),0);a.dRgb=h.map(g=&amp;amp;gt;hs(1,u/g,f)),a.dRgbInv=a.dRgb.map(g=&amp;amp;gt;1/g);let d=h.map((g,v)=&amp;amp;gt;g*a.dRgb[v]),m=Bd(d,a.fl);return a.aW=a.nbb*(2*m[0]+m[1]+.05*m[2]),a}var Md=Ph(fx,64/Math.PI*.2,20,&amp;amp;quot;average&amp;amp;quot;,!1);function vu(i,t){if(!(i.J!==void 0^i.Q!==void 0))throw new Error(&amp;amp;quot;Conversion requires one and only one: &amp;amp;#39;J&amp;amp;#39; or &amp;amp;#39;Q&amp;amp;#39;&amp;amp;quot;);if(!(i.C!==void 0^i.M!==void 0^i.s!==void 0))throw new Error(&amp;amp;quot;Conversion requires one and only one: &amp;amp;#39;C&amp;amp;#39;, &amp;amp;#39;M&amp;amp;#39; or &amp;amp;#39;s&amp;amp;#39;&amp;amp;quot;);if(!(i.h!==void 0^i.H!==void 0))throw new Error(&amp;amp;quot;Conversion requires one and only one: &amp;amp;#39;h&amp;amp;#39; or &amp;amp;#39;H&amp;amp;#39;&amp;amp;quot;);if(i.J===0||i.Q===0)return[0,0,0];let r=0;i.h!==void 0?r=Xt(i.h)*kd:r=xx(i.H)*kd;let n=Math.cos(r),s=Math.sin(r),a=0;i.J!==void 0?a=Kr(i.J,1/2)*.1:i.Q!==void 0&amp;amp;amp;&amp;amp;amp;(a=.25*t.c*i.Q/((t.aW+4)*t.flRoot));let o=0;i.C!==void 0?o=i.C/a:i.M!==void 0?o=i.M/t.flRoot/a:i.s!==void 0&amp;amp;amp;&amp;amp;amp;(o=4e-4*i.s**2*(t.aW+4)/t.c);let u=Kr(o*Math.pow(1.64-Math.pow(.29,t.n),-.73),10/9),h=.25*(Math.cos(r+2)+3.8),l=t.aW*Kr(a,2/t.c/t.z),c=5e4/13*t.nc*t.ncb*h,p=l/t.nbb,f=23*(p+.305)*Dh(u,23*c+u*(11*n+108*s)),d=f*n,m=f*s,g=yx(tt(dx,[p,d,m]).map(v=&amp;amp;gt;v*1/1403),t.fl);return tt(px,g.map((v,w)=&amp;amp;gt;v*t.dRgbInv[w])).map(v=&amp;amp;gt;v/100)}function Oh(i,t){let r=i.map(S=&amp;amp;gt;S*100),n=Bd(tt(Rd,r).map((S,_)=&amp;amp;gt;S*t.dRgb[_]),t.fl),s=n[0]+(-12*n[1]+n[2])/11,a=(n[0]+n[1]-2*n[2])/9,o=(Math.atan2(a,s)%Bh+Bh)%Bh,u=.25*(Math.cos(o+2)+3.8),h=5e4/13*t.nc*t.ncb*Dh(u*Math.sqrt(s**2+a**2),n[0]+n[1]+1.05*n[2]+.305),l=Kr(h,.9)*Math.pow(1.64-Math.pow(.29,t.n),.73),c=t.nbb*(2*n[0]+n[1]+.05*n[2]),p=Kr(c/t.aW,.5*t.c*t.z),f=100*Kr(p,2),d=4/t.c*p*(t.aW+4)*t.flRoot,m=l*p,g=m*t.flRoot,v=Xt(o*gx),w=vx(v),y=50*Kr(t.c*l/(t.aW+4),1/2);return{J:f,C:m,h:v,s:y,Q:d,M:g,H:w}}var QA=new be({id:&amp;amp;quot;cam16-jmh&amp;amp;quot;,cssId:&amp;amp;quot;--cam16-jmh&amp;amp;quot;,name:&amp;amp;quot;CAM16-JMh&amp;amp;quot;,coords:{j:{refRange:[0,100],name:&amp;amp;quot;J&amp;amp;quot;},m:{refRange:[0,105],name:&amp;amp;quot;Colorfulness&amp;amp;quot;},h:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;}},base:Yt,fromBase(i){let t=Oh(i,Md);return[t.J,t.M,t.h]},toBase(i){return vu({J:i[0],M:i[1],h:i[2]},Md)}});var bx=nr.D65,_x=216/24389,Pd=24389/27;function wx(i){return 116*(i&amp;amp;gt;_x?Math.cbrt(i):(Pd*i+16)/116)-16}function Vh(i){return i&amp;amp;gt;8?Math.pow((i+16)/116,3):i/Pd}function Cx(i,t){let[r,n,s]=i,a=[],o=0;if(s===0)return[0,0,0];let u=Vh(s);s&amp;amp;gt;0?o=.00379058511492914*s**2+.608983189401032*s+.9155088574762233:o=9514440756550361e-21*s**2+.08693057439788597*s-21.928975842194614;let h=2e-12,l=15,c=0,p=1/0,f=o;for(;c&amp;amp;lt;=l;){a=vu({J:o,C:n,h:r},t);let d=Math.abs(a[1]-u);if(d&amp;amp;lt;p){if(d&amp;amp;lt;=h)return a;f=o,p=d}o=o-(a[1]-u)*o/(2*a[1]),c+=1}return vu({J:o,C:n,h:r},t)}function Ex(i,t){let r=wx(i[1]);if(r===0)return[0,0,0];let n=Oh(i,Ma);return[Xt(n.h),n.C,r]}var Ma=Ph(bx,200/Math.PI*Vh(50),Vh(50)*100,&amp;amp;quot;average&amp;amp;quot;,!1),La=new be({id:&amp;amp;quot;hct&amp;amp;quot;,name:&amp;amp;quot;HCT&amp;amp;quot;,coords:{h:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;},c:{refRange:[0,145],name:&amp;amp;quot;Colorfulness&amp;amp;quot;},t:{refRange:[0,100],name:&amp;amp;quot;Tone&amp;amp;quot;}},base:Yt,fromBase(i){return Ex(i,Ma)},toBase(i){return Cx(i,Ma)},formats:{color:{id:&amp;amp;quot;--hct&amp;amp;quot;,coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;]}}});var hD=180/Math.PI,Sx=Math.PI/180,Od=[1,.007,.0228];function Vd(i){i[1]&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(i=La.fromBase(La.toBase(i)));let t=Math.log(Math.max(1+Od[2]*i[1]*Ma.flRoot,1))/Od[2],r=i[0]*Sx,n=t*Math.cos(r),s=t*Math.sin(r);return[i[2],n,s]}function Ud(i,t){[i,t]=je([i,t]);let[r,n,s]=Vd(La.from(i)),[a,o,u]=Vd(La.from(t));return Math.sqrt((r-a)**2+(n-o)**2+(s-u)**2)}var Uh={deltaE76:kh,deltaECMC:gd,deltaE2000:pu,deltaEJz:Ed,deltaEITP:Nd,deltaEOK:ka,deltaEHCT:Ud};function Ax(i){let t=i?Math.floor(Math.log10(Math.abs(i))):0;return Math.max(parseFloat(`1e${t-2}`),1e-6)}var Gd={hct:{method:&amp;amp;quot;hct.c&amp;amp;quot;,jnd:2,deltaEMethod:&amp;amp;quot;hct&amp;amp;quot;,blackWhiteClamp:{}},&amp;amp;quot;hct-tonal&amp;amp;quot;:{method:&amp;amp;quot;hct.c&amp;amp;quot;,jnd:0,deltaEMethod:&amp;amp;quot;hct&amp;amp;quot;,blackWhiteClamp:{channel:&amp;amp;quot;hct.t&amp;amp;quot;,min:0,max:100}}};function Br(i,{method:t=yr.gamut_mapping,space:r=void 0,deltaEMethod:n=&amp;amp;quot;&amp;amp;quot;,jnd:s=2,blackWhiteClamp:a={}}={}){if(i=je(i),su(arguments[1])?r=arguments[1]:r||(r=i.space),r=be.get(r),yi(i,r,{epsilon:0}))return i;let o;if(t===&amp;amp;quot;css&amp;amp;quot;)o=Dx(i,{space:r});else{if(t!==&amp;amp;quot;clip&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!yi(i,r)){Object.prototype.hasOwnProperty.call(Gd,t)&amp;amp;amp;&amp;amp;amp;({method:t,jnd:s,deltaEMethod:n,blackWhiteClamp:a}=Gd[t]);let u=pu;if(n!==&amp;amp;quot;&amp;amp;quot;){for(let l in Uh)if(&amp;amp;quot;deltae&amp;amp;quot;+n.toLowerCase()===l.toLowerCase()){u=Uh[l];break}}let h=Br(Ve(i,r),{method:&amp;amp;quot;clip&amp;amp;quot;,space:r});if(u(i,h)&amp;amp;gt;s){if(Object.keys(a).length===3){let y=be.resolveCoord(a.channel),S=Rr(Ve(i,y.space),y.id);if(au(S)&amp;amp;amp;&amp;amp;amp;(S=0),S&amp;amp;gt;=a.max)return Ve({space:&amp;amp;quot;xyz-d65&amp;amp;quot;,coords:nr.D65},i.space);if(S&amp;amp;lt;=a.min)return Ve({space:&amp;amp;quot;xyz-d65&amp;amp;quot;,coords:[0,0,0]},i.space)}let l=be.resolveCoord(t),c=l.space,p=l.id,f=Ve(i,c);f.coords.forEach((y,S)=&amp;amp;gt;{au(y)&amp;amp;amp;&amp;amp;amp;(f.coords[S]=0)});let m=(l.range||l.refRange)[0],g=Ax(s),v=m,w=Rr(f,p);for(;w-v&amp;amp;gt;g;){let y=vi(f);y=Br(y,{space:r,method:&amp;amp;quot;clip&amp;amp;quot;}),u(f,y)-s&amp;amp;lt;g?v=Rr(f,p):w=Rr(f,p),Hi(f,p,(v+w)/2)}o=Ve(f,r)}else o=h}else o=Ve(i,r);if(t===&amp;amp;quot;clip&amp;amp;quot;||!yi(o,r,{epsilon:0})){let u=Object.values(r.coords).map(h=&amp;amp;gt;h.range||[]);o.coords=o.coords.map((h,l)=&amp;amp;gt;{let[c,p]=u[l];return c!==void 0&amp;amp;amp;&amp;amp;amp;(h=Math.max(c,h)),p!==void 0&amp;amp;amp;&amp;amp;amp;(h=Math.min(h,p)),h})}}return r!==i.space&amp;amp;amp;&amp;amp;amp;(o=Ve(o,i.space)),i.coords=o.coords,i}Br.returns=&amp;amp;quot;color&amp;amp;quot;;var zd={WHITE:{space:vr,coords:[1,0,0]},BLACK:{space:vr,coords:[0,0,0]}};function Dx(i,{space:t}={}){i=je(i),t||(t=i.space),t=be.get(t);let s=be.get(&amp;amp;quot;oklch&amp;amp;quot;);if(t.isUnbounded)return Ve(i,t);let a=Ve(i,s),o=a.coords[0];if(o&amp;amp;gt;=1){let m=Ve(zd.WHITE,t);return m.alpha=i.alpha,Ve(m,t)}if(o&amp;amp;lt;=0){let m=Ve(zd.BLACK,t);return m.alpha=i.alpha,Ve(m,t)}if(yi(a,t,{epsilon:0}))return Ve(a,t);function u(m){let g=Ve(m,t),v=Object.values(t.coords);return g.coords=g.coords.map((w,y)=&amp;amp;gt;{if(&amp;amp;quot;range&amp;amp;quot;in v[y]){let[S,_]=v[y].range;return sd(S,w,_)}return w}),g}let h=0,l=a.coords[1],c=!0,p=vi(a),f=u(p),d=ka(f,p);if(d&amp;amp;lt;.02)return f;for(;l-h&amp;amp;gt;1e-4;){let m=(h+l)/2;if(p.coords[1]=m,c&amp;amp;amp;&amp;amp;amp;yi(p,t,{epsilon:0}))h=m;else if(f=u(p),d=ka(f,p),d&amp;amp;lt;.02){if(.02-d&amp;amp;lt;1e-4)break;c=!1,h=m}else l=m}return f}function Ve(i,t,{inGamut:r}={}){i=je(i),t=be.get(t);let n=t.from(i),s={space:t,coords:n,alpha:i.alpha};return r&amp;amp;amp;&amp;amp;amp;(s=Br(s,r===!0?void 0:r)),s}Ve.returns=&amp;amp;quot;color&amp;amp;quot;;function xu(i,{precision:t=yr.precision,format:r=&amp;amp;quot;default&amp;amp;quot;,inGamut:n=!0,...s}={}){let a;i=je(i);let o=r;r=i.space.getFormat(r)??i.space.getFormat(&amp;amp;quot;default&amp;amp;quot;)??be.DEFAULT_FORMAT;let u=i.coords.slice();if(n||=r.toGamut,n&amp;amp;amp;&amp;amp;amp;!yi(i)&amp;amp;amp;&amp;amp;amp;(u=Br(vi(i),n===!0?void 0:n).coords),r.type===&amp;amp;quot;custom&amp;amp;quot;)if(s.precision=t,r.serialize)a=r.serialize(u,i.alpha,s);else throw new TypeError(`format ${o} can only be used to parse colors, not for serialization`);else{let h=r.name||&amp;amp;quot;color&amp;amp;quot;;r.serializeCoords?u=r.serializeCoords(u,t):t!==null&amp;amp;amp;&amp;amp;amp;(u=u.map(f=&amp;amp;gt;Na(f,{precision:t})));let l=[...u];if(h===&amp;amp;quot;color&amp;amp;quot;){let f=r.id||r.ids?.[0]||i.space.id;l.unshift(f)}let c=i.alpha;t!==null&amp;amp;amp;&amp;amp;amp;(c=Na(c,{precision:t}));let p=i.alpha&amp;amp;gt;=1||r.noAlpha?&amp;amp;quot;&amp;amp;quot;:`${r.commas?&amp;amp;quot;,&amp;amp;quot;:&amp;amp;quot; /&amp;amp;quot;} ${c}`;a=`${h}(${l.join(r.commas?&amp;amp;quot;, &amp;amp;quot;:&amp;amp;quot; &amp;amp;quot;)}${p})`}return a}var Fx=[[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],Tx=[[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],jd=new Lr({id:&amp;amp;quot;p3-linear&amp;amp;quot;,cssId:&amp;amp;quot;--display-p3-linear&amp;amp;quot;,name:&amp;amp;quot;Linear P3&amp;amp;quot;,white:&amp;amp;quot;D65&amp;amp;quot;,toXYZ_M:Fx,fromXYZ_M:Tx});var Nx=[[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],Ix=[[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],$d=new Lr({id:&amp;amp;quot;srgb-linear&amp;amp;quot;,name:&amp;amp;quot;Linear sRGB&amp;amp;quot;,white:&amp;amp;quot;D65&amp;amp;quot;,toXYZ_M:Nx,fromXYZ_M:Ix});var Gh={aliceblue:[240/255,248/255,1],antiquewhite:[250/255,235/255,215/255],aqua:[0,1,1],aquamarine:[127/255,1,212/255],azure:[240/255,1,1],beige:[245/255,245/255,220/255],bisque:[1,228/255,196/255],black:[0,0,0],blanchedalmond:[1,235/255,205/255],blue:[0,0,1],blueviolet:[138/255,43/255,226/255],brown:[165/255,42/255,42/255],burlywood:[222/255,184/255,135/255],cadetblue:[95/255,158/255,160/255],chartreuse:[127/255,1,0],chocolate:[210/255,105/255,30/255],coral:[1,127/255,80/255],cornflowerblue:[100/255,149/255,237/255],cornsilk:[1,248/255,220/255],crimson:[220/255,20/255,60/255],cyan:[0,1,1],darkblue:[0,0,139/255],darkcyan:[0,139/255,139/255],darkgoldenrod:[184/255,134/255,11/255],darkgray:[169/255,169/255,169/255],darkgreen:[0,100/255,0],darkgrey:[169/255,169/255,169/255],darkkhaki:[189/255,183/255,107/255],darkmagenta:[139/255,0,139/255],darkolivegreen:[85/255,107/255,47/255],darkorange:[1,140/255,0],darkorchid:[153/255,50/255,204/255],darkred:[139/255,0,0],darksalmon:[233/255,150/255,122/255],darkseagreen:[143/255,188/255,143/255],darkslateblue:[72/255,61/255,139/255],darkslategray:[47/255,79/255,79/255],darkslategrey:[47/255,79/255,79/255],darkturquoise:[0,206/255,209/255],darkviolet:[148/255,0,211/255],deeppink:[1,20/255,147/255],deepskyblue:[0,191/255,1],dimgray:[105/255,105/255,105/255],dimgrey:[105/255,105/255,105/255],dodgerblue:[30/255,144/255,1],firebrick:[178/255,34/255,34/255],floralwhite:[1,250/255,240/255],forestgreen:[34/255,139/255,34/255],fuchsia:[1,0,1],gainsboro:[220/255,220/255,220/255],ghostwhite:[248/255,248/255,1],gold:[1,215/255,0],goldenrod:[218/255,165/255,32/255],gray:[128/255,128/255,128/255],green:[0,128/255,0],greenyellow:[173/255,1,47/255],grey:[128/255,128/255,128/255],honeydew:[240/255,1,240/255],hotpink:[1,105/255,180/255],indianred:[205/255,92/255,92/255],indigo:[75/255,0,130/255],ivory:[1,1,240/255],khaki:[240/255,230/255,140/255],lavender:[230/255,230/255,250/255],lavenderblush:[1,240/255,245/255],lawngreen:[124/255,252/255,0],lemonchiffon:[1,250/255,205/255],lightblue:[173/255,216/255,230/255],lightcoral:[240/255,128/255,128/255],lightcyan:[224/255,1,1],lightgoldenrodyellow:[250/255,250/255,210/255],lightgray:[211/255,211/255,211/255],lightgreen:[144/255,238/255,144/255],lightgrey:[211/255,211/255,211/255],lightpink:[1,182/255,193/255],lightsalmon:[1,160/255,122/255],lightseagreen:[32/255,178/255,170/255],lightskyblue:[135/255,206/255,250/255],lightslategray:[119/255,136/255,153/255],lightslategrey:[119/255,136/255,153/255],lightsteelblue:[176/255,196/255,222/255],lightyellow:[1,1,224/255],lime:[0,1,0],limegreen:[50/255,205/255,50/255],linen:[250/255,240/255,230/255],magenta:[1,0,1],maroon:[128/255,0,0],mediumaquamarine:[102/255,205/255,170/255],mediumblue:[0,0,205/255],mediumorchid:[186/255,85/255,211/255],mediumpurple:[147/255,112/255,219/255],mediumseagreen:[60/255,179/255,113/255],mediumslateblue:[123/255,104/255,238/255],mediumspringgreen:[0,250/255,154/255],mediumturquoise:[72/255,209/255,204/255],mediumvioletred:[199/255,21/255,133/255],midnightblue:[25/255,25/255,112/255],mintcream:[245/255,1,250/255],mistyrose:[1,228/255,225/255],moccasin:[1,228/255,181/255],navajowhite:[1,222/255,173/255],navy:[0,0,128/255],oldlace:[253/255,245/255,230/255],olive:[128/255,128/255,0],olivedrab:[107/255,142/255,35/255],orange:[1,165/255,0],orangered:[1,69/255,0],orchid:[218/255,112/255,214/255],palegoldenrod:[238/255,232/255,170/255],palegreen:[152/255,251/255,152/255],paleturquoise:[175/255,238/255,238/255],palevioletred:[219/255,112/255,147/255],papayawhip:[1,239/255,213/255],peachpuff:[1,218/255,185/255],peru:[205/255,133/255,63/255],pink:[1,192/255,203/255],plum:[221/255,160/255,221/255],powderblue:[176/255,224/255,230/255],purple:[128/255,0,128/255],rebeccapurple:[102/255,51/255,153/255],red:[1,0,0],rosybrown:[188/255,143/255,143/255],royalblue:[65/255,105/255,225/255],saddlebrown:[139/255,69/255,19/255],salmon:[250/255,128/255,114/255],sandybrown:[244/255,164/255,96/255],seagreen:[46/255,139/255,87/255],seashell:[1,245/255,238/255],sienna:[160/255,82/255,45/255],silver:[192/255,192/255,192/255],skyblue:[135/255,206/255,235/255],slateblue:[106/255,90/255,205/255],slategray:[112/255,128/255,144/255],slategrey:[112/255,128/255,144/255],snow:[1,250/255,250/255],springgreen:[0,1,127/255],steelblue:[70/255,130/255,180/255],tan:[210/255,180/255,140/255],teal:[0,128/255,128/255],thistle:[216/255,191/255,216/255],tomato:[1,99/255,71/255],turquoise:[64/255,224/255,208/255],violet:[238/255,130/255,238/255],wheat:[245/255,222/255,179/255],white:[1,1,1],whitesmoke:[245/255,245/255,245/255],yellow:[1,1,0],yellowgreen:[154/255,205/255,50/255]};var Hd=Array(3).fill(&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;[0, 255]&amp;amp;quot;),Wd=Array(3).fill(&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt;[0, 255]&amp;amp;quot;),Pr=new Lr({id:&amp;amp;quot;srgb&amp;amp;quot;,name:&amp;amp;quot;sRGB&amp;amp;quot;,base:$d,fromBase:i=&amp;amp;gt;i.map(t=&amp;amp;gt;{let r=t&amp;amp;lt;0?-1:1,n=t*r;return n&amp;amp;gt;.0031308?r*(1.055*n**(1/2.4)-.055):12.92*t}),toBase:i=&amp;amp;gt;i.map(t=&amp;amp;gt;{let r=t&amp;amp;lt;0?-1:1,n=t*r;return n&amp;amp;lt;=.04045?t/12.92:r*((n+.055)/1.055)**2.4}),formats:{rgb:{coords:Hd},rgb_number:{name:&amp;amp;quot;rgb&amp;amp;quot;,commas:!0,coords:Wd,noAlpha:!0},color:{},rgba:{coords:Hd,commas:!0,lastAlpha:!0},rgba_number:{name:&amp;amp;quot;rgba&amp;amp;quot;,commas:!0,coords:Wd},hex:{type:&amp;amp;quot;custom&amp;amp;quot;,toGamut:!0,test:i=&amp;amp;gt;/^#([a-f0-9]{3,4}){1,2}$/i.test(i),parse(i){i.length&amp;amp;lt;=5&amp;amp;amp;&amp;amp;amp;(i=i.replace(/[a-f0-9]/gi,&amp;amp;quot;$&amp;amp;amp;$&amp;amp;amp;&amp;amp;quot;));let t=[];return i.replace(/[a-f0-9]{2}/gi,r=&amp;amp;gt;{t.push(parseInt(r,16)/255)}),{spaceId:&amp;amp;quot;srgb&amp;amp;quot;,coords:t.slice(0,3),alpha:t.slice(3)[0]}},serialize:(i,t,{collapse:r=!0}={})=&amp;amp;gt;{t&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;i.push(t),i=i.map(a=&amp;amp;gt;Math.round(a*255));let n=r&amp;amp;amp;&amp;amp;amp;i.every(a=&amp;amp;gt;a%17===0);return&amp;amp;quot;#&amp;amp;quot;+i.map(a=&amp;amp;gt;n?(a/17).toString(16):a.toString(16).padStart(2,&amp;amp;quot;0&amp;amp;quot;)).join(&amp;amp;quot;&amp;amp;quot;)}},keyword:{type:&amp;amp;quot;custom&amp;amp;quot;,test:i=&amp;amp;gt;/^[a-z]+$/i.test(i),parse(i){i=i.toLowerCase();let t={spaceId:&amp;amp;quot;srgb&amp;amp;quot;,coords:null,alpha:1};if(i===&amp;amp;quot;transparent&amp;amp;quot;?(t.coords=Gh.black,t.alpha=0):t.coords=Gh[i],t.coords)return t}}}});var bu=new Lr({id:&amp;amp;quot;p3&amp;amp;quot;,cssId:&amp;amp;quot;display-p3&amp;amp;quot;,name:&amp;amp;quot;P3&amp;amp;quot;,base:jd,fromBase:Pr.fromBase,toBase:Pr.toBase});function _u(i,t,r={}){if(qd(i)){let[h,l]=[i,t];return _u(...h.rangeArgs.colors,{...h.rangeArgs.options,...l})}let{space:n,outputSpace:s,progression:a,premultiplied:o}=r;i=je(i),t=je(t),i=vi(i),t=vi(t);let u={colors:[i,t],options:r};if(n?n=be.get(n):n=be.registry[yr.interpolationSpace]||i.space,s=s?be.get(s):n,i=Ve(i,n),t=Ve(t,n),i=Br(i),t=Br(t),n.coords.h&amp;amp;amp;&amp;amp;amp;n.coords.h.type===&amp;amp;quot;angle&amp;amp;quot;){let h=r.hue=r.hue||&amp;amp;quot;shorter&amp;amp;quot;,l=[n,&amp;amp;quot;h&amp;amp;quot;],[c,p]=[Rr(i,l),Rr(t,l)];isNaN(c)&amp;amp;amp;&amp;amp;amp;!isNaN(p)?c=p:isNaN(p)&amp;amp;amp;&amp;amp;amp;!isNaN(c)&amp;amp;amp;&amp;amp;amp;(p=c),[c,p]=cd(h,[c,p]),Hi(i,l,c),Hi(t,l,p)}return o&amp;amp;amp;&amp;amp;amp;(i.coords=i.coords.map(h=&amp;amp;gt;h*i.alpha),t.coords=t.coords.map(h=&amp;amp;gt;h*t.alpha)),Object.assign(h=&amp;amp;gt;{h=a?a(h):h;let l=i.coords.map((f,d)=&amp;amp;gt;{let m=t.coords[d];return hs(f,m,h)}),c=hs(i.alpha,t.alpha,h),p={space:n,coords:l,alpha:c};return o&amp;amp;amp;&amp;amp;amp;(p.coords=p.coords.map(f=&amp;amp;gt;f/c)),s!==n&amp;amp;amp;&amp;amp;amp;(p=Ve(p,s)),p},{rangeArgs:u})}function qd(i){return gi(i)===&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!!i.rangeArgs}yr.interpolationSpace=&amp;amp;quot;lab&amp;amp;quot;;var ps=new be({id:&amp;amp;quot;hsl&amp;amp;quot;,name:&amp;amp;quot;HSL&amp;amp;quot;,coords:{h:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;},s:{range:[0,100],name:&amp;amp;quot;Saturation&amp;amp;quot;},l:{range:[0,100],name:&amp;amp;quot;Lightness&amp;amp;quot;}},base:Pr,fromBase:i=&amp;amp;gt;{let t=Math.max(...i),r=Math.min(...i),[n,s,a]=i,[o,u,h]=[NaN,0,(r+t)/2],l=t-r;if(l!==0){switch(u=h===0||h===1?0:(t-h)/Math.min(h,1-h),t){case n:o=(s-a)/l+(s&amp;amp;lt;a?6:0);break;case s:o=(a-n)/l+2;break;case a:o=(n-s)/l+4}o=o*60}return u&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(o+=180,u=Math.abs(u)),o&amp;amp;gt;=360&amp;amp;amp;&amp;amp;amp;(o-=360),[o,u*100,h*100]},toBase:i=&amp;amp;gt;{let[t,r,n]=i;t=t%360,t&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(t+=360),r/=100,n/=100;function s(a){let o=(a+t/30)%12,u=r*Math.min(n,1-n);return n-u*Math.max(-1,Math.min(o-3,9-o,1))}return[s(0),s(8),s(4)]},formats:{hsl:{coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;]},hsla:{coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;],commas:!0,lastAlpha:!0}}});var Zd=new be({id:&amp;amp;quot;hsv&amp;amp;quot;,name:&amp;amp;quot;HSV&amp;amp;quot;,coords:{h:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;},s:{range:[0,100],name:&amp;amp;quot;Saturation&amp;amp;quot;},v:{range:[0,100],name:&amp;amp;quot;Value&amp;amp;quot;}},base:ps,fromBase(i){let[t,r,n]=i;r/=100,n/=100;let s=n+r*Math.min(n,1-n);return[t,s===0?0:200*(1-n/s),100*s]},toBase(i){let[t,r,n]=i;r/=100,n/=100;let s=n*(1-r/2);return[t,s===0||s===1?0:(n-s)/Math.min(s,1-s)*100,s*100]},formats:{color:{id:&amp;amp;quot;--hsv&amp;amp;quot;,coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;]}}});var wu=new be({id:&amp;amp;quot;hwb&amp;amp;quot;,name:&amp;amp;quot;HWB&amp;amp;quot;,coords:{h:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;},w:{range:[0,100],name:&amp;amp;quot;Whiteness&amp;amp;quot;},b:{range:[0,100],name:&amp;amp;quot;Blackness&amp;amp;quot;}},base:Zd,fromBase(i){let[t,r,n]=i;return[t,n*(100-r)/100,100-n]},toBase(i){let[t,r,n]=i;r/=100,n/=100;let s=r+n;if(s&amp;amp;gt;=1){let u=r/s;return[t,0,u*100]}let a=1-n,o=a===0?0:1-r/a;return[t,o*100,a*100]},formats:{hwb:{coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;]}}});var Cu=new be({id:&amp;amp;quot;oklch&amp;amp;quot;,name:&amp;amp;quot;Oklch&amp;amp;quot;,coords:{l:{refRange:[0,1],name:&amp;amp;quot;Lightness&amp;amp;quot;},c:{refRange:[0,.4],name:&amp;amp;quot;Chroma&amp;amp;quot;},h:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;}},white:&amp;amp;quot;D65&amp;amp;quot;,base:vr,fromBase(i){let[t,r,n]=i,s,a=2e-4;return Math.abs(r)&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;Math.abs(n)&amp;amp;lt;a?s=NaN:s=Math.atan2(n,r)*180/Math.PI,[t,Math.sqrt(r**2+n**2),Xt(s)]},toBase(i){let[t,r,n]=i,s,a;return isNaN(n)?(s=0,a=0):(s=r*Math.cos(n*Math.PI/180),a=r*Math.sin(n*Math.PI/180)),[t,s,a]},formats:{oklch:{coords:[&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt; | &amp;amp;lt;number&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;percentage&amp;amp;gt;[0,1]&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;]}}});var zh=new be({id:&amp;amp;quot;hsb&amp;amp;quot;,name:&amp;amp;quot;HSB&amp;amp;quot;,coords:{h:{refRange:[0,360],type:&amp;amp;quot;angle&amp;amp;quot;,name:&amp;amp;quot;Hue&amp;amp;quot;},s:{range:[0,100],name:&amp;amp;quot;Saturation&amp;amp;quot;},b:{range:[0,100],name:&amp;amp;quot;Brightness&amp;amp;quot;}},base:Pr,fromBase:i=&amp;amp;gt;{let t=Math.max(...i),r=t-Math.min(...i),[n,s,a]=i,o,u;return r===0?(o=0,u=0):(u=r/t,n===t?o=(s-a)/r:s===t?o=2+(a-n)/r:a===t&amp;amp;amp;&amp;amp;amp;(o=4+(n-s)/r),o&amp;amp;lt;0?o+=6:o&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;(o-=6)),[o/6*360,u*100,t*100]},toBase:Yd,formats:{default:{type:&amp;amp;quot;custom&amp;amp;quot;,serialize:(i,t)=&amp;amp;gt;{let r=Yd(i),n=`rgb(${Math.round(r[0]*100*100)/100}% ${Math.round(r[1]*100*100)/100}% ${Math.round(r[2]*100*100)/100}%`;return t&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;(n+=` / ${t}`),n+=&amp;amp;quot;)&amp;amp;quot;,n}},hsb:{coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;]},hsba:{coords:[&amp;amp;quot;&amp;amp;lt;number&amp;amp;gt; | &amp;amp;lt;angle&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;percentage&amp;amp;gt;&amp;amp;quot;],commans:!0,lastAlpha:!0}}});function Yd(i){let t=i[0]/360*6,r=i[1]/100,n=i[2]/100,s=[];if(r===0)s=[n,n,n];else{let a=Math.floor(t),o=n*(1-r),u=n*(1-r*(t-a)),h=n*(1-r*(1+a-t)),l,c,p;a===1?(l=u,c=n,p=o):a===2?(l=o,c=n,p=h):a===3?(l=o,c=u,p=n):a===4?(l=h,c=o,p=n):a===5?(l=n,c=o,p=u):(l=n,c=h,p=o),s=[l,c,p]}return s}var rt=(i,t,r,n,s,a)=&amp;amp;gt;{let o=(i-t)/(r-t)*(s-n)+n;return a&amp;amp;amp;&amp;amp;amp;(o=Math.max(o,Math.min(n,s)),o=Math.min(o,Math.max(n,s))),o},Xd={},Qe=class i{_color;mode;static colorMap={};static#e={};static#t={};static addColorMode(t,r){be.register(r),i.colorMap[t]=r.id,i.#e[t]=Object.values(r.coords).reduce((n,s)=&amp;amp;gt;(n.push(s.refRange||s.range),n),[]),i.#e[t].push([0,1]),i.#t[t]=r.fromGray}constructor(t,r,n,{clamp:s=!1}={}){if(this.mode=r||et,t instanceof i){let a=r?i.colorMap[r]:i.colorMap[t.mode];this._color=Ve(t._color,a),this.mode=a}else if(typeof t==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!Array.isArray(t)&amp;amp;amp;&amp;amp;amp;t!==null){let a=r?i.colorMap[r]:t.spaceId;this._color=Ve(t,a),this.mode=r||Object.entries(i.colorMap).find(([o,u])=&amp;amp;gt;u===this._color.spaceId)}else if(typeof t[0]==&amp;amp;quot;string&amp;amp;quot;)try{this._color=cs(t[0]);let[a]=Object.entries(i.colorMap).find(([o,u])=&amp;amp;gt;u===this._color.spaceId);this.mode=a,this._color=Ve(this._color,this._color.spaceId)}catch{throw new Error(&amp;amp;quot;Invalid color string&amp;amp;quot;)}else{let a;if(n)if(t.length===4)a=i.mapColorRange(t,this.mode,n,s);else if(t.length===3)a=i.mapColorRange([t[0],t[1],t[2]],this.mode,n,s),a.push(1);else if(t.length===2){i.#t[this.mode]?a=i.#t[this.mode](t[0],n,s):a=i.mapColorRange([t[0],t[0],t[0]],this.mode,n,s);let l=Array.isArray(n[n.length-1])?n[n.length-1]:[0,n[n.length-1]];a.push(rt(t[1],l[0],l[1],0,1,s))}else if(t.length===1)i.#t[this.mode]?a=i.#t[this.mode](t[0],n,s):a=i.mapColorRange([t[0],t[0],t[0]],this.mode,n,s),a.push(1);else throw new Error(&amp;amp;quot;Invalid color&amp;amp;quot;);else a=t;let o=i.colorMap[this.mode]||console.error(&amp;amp;quot;Invalid color mode&amp;amp;quot;),u=a.slice(0,3),h={space:o,coords:u,alpha:a[3]};this._color=Ve(h,o)}}static mapColorRange(t,r,n,s){let a=n.map(u=&amp;amp;gt;Array.isArray(u)?u:[0,u]),o=i.#e[r];return t.map((u,h)=&amp;amp;gt;rt(u,a[h][0],a[h][1],o[h][0],o[h][1],s))}static unmapColorRange(t,r,n){let s=n.map(o=&amp;amp;gt;Array.isArray(o)?o:[0,o]),a=i.#e[r];return t.map((o,u)=&amp;amp;gt;rt(o,a[u][0],a[u][1],s[u][0],s[u][1]))}#r(t){return new i(this._color,t)}get _array(){return this._getRGBA()}array(){return this._array}lerp(t,r,n){let s=-1;for(;(s+1&amp;amp;lt;this._color.space.path.length||s+1&amp;amp;lt;t._color.space.path.length)&amp;amp;amp;&amp;amp;amp;this._color.space.path[s+1]===t._color.space.path[s+1];)s+=1;if(s===-1)throw new Error(&amp;amp;quot;Cannot lerp colors. No common color space found&amp;amp;quot;);let a=_u(this._color,t._color,{space:this._color.space.path[s].id})(r);return new i(a,n||this.mode)}toString(t){let r=`${this._color.space.id}-${this._color.coords.join(&amp;amp;quot;,&amp;amp;quot;)}-${this._color.alpha}-${t}`,n=Xd[r];return n||(n=xu(this._color,{format:t}),Xd[r]=n),n}setRed(t,r=[0,1]){Array.isArray(r)||(r=[0,r]);let n=i.#e[et][0],s=rt(t,r[0],r[1],n[0],n[1]);if(this.mode===et||this.mode===It)this._color.coords[0]=s;else{let a=this._color.space.id,o=Ve(this._color,&amp;amp;quot;srgb&amp;amp;quot;);o.coords[0]=s,this._color=Ve(o,a)}}setGreen(t,r=[0,1]){Array.isArray(r)||(r=[0,r]);let n=i.#e[et][1],s=rt(t,r[0],r[1],n[0],n[1]);if(this.mode===et||this.mode===It)this._color.coords[1]=s;else{let a=this._color.space.id,o=Ve(this._color,&amp;amp;quot;srgb&amp;amp;quot;);o.coords[1]=s,this._color=Ve(o,a)}}setBlue(t,r=[0,1]){Array.isArray(r)||(r=[0,r]);let n=i.#e[et][2],s=rt(t,r[0],r[1],n[0],n[1]);if(this.mode===et||this.mode===It)this._color.coords[2]=s;else{let a=this._color.space.id,o=Ve(this._color,&amp;amp;quot;srgb&amp;amp;quot;);o.coords[2]=s,this._color=Ve(o,a)}}setAlpha(t,r=[0,1]){Array.isArray(r)||(r=[0,r]);let n=i.#e[this.mode][3],s=rt(t,r[0],r[1],n[0],n[1]);this._color.alpha=s}_getRGBA(t=[1,1,1,1]){let r=i.#e[et],n=structuredClone(Ve(this._color,&amp;amp;quot;srgb&amp;amp;quot;).coords);n.push(this._color.alpha);let s=t.map(a=&amp;amp;gt;Array.isArray(a)?a:[0,a]);return n=n.map((a,o)=&amp;amp;gt;rt(a,r[o][0],r[o][1],s[o][0],s[o][1])),n}_getMode(){return this.mode}_getRed(t=[0,1]){if(Array.isArray(t)||(t=[0,t]),this.mode===et||this.mode===It){let r=i.#e[this.mode][0];return rt(this._color.coords[0],r[0],r[1],t[0],t[1])}else{let r=i.#e[et][0];return rt(Ve(this._color,&amp;amp;quot;srgb&amp;amp;quot;).coords[0],r[0],r[1],t[0],t[1])}}_getGreen(t=[0,1]){if(Array.isArray(t)||(t=[0,t]),this.mode===et||this.mode===It){let r=i.#e[this.mode][1];return rt(this._color.coords[1],r[0],r[1],t[0],t[1])}else{let r=i.#e[et][1];return rt(Ve(this._color,&amp;amp;quot;srgb&amp;amp;quot;).coords[1],r[0],r[1],t[0],t[1])}}_getBlue(t=[0,1]){if(Array.isArray(t)||(t=[0,t]),this.mode===et||this.mode===It){let r=i.#e[this.mode][2];return rt(this._color.coords[2],r[0],r[1],t[0],t[1])}else{let r=i.#e[et][2];return rt(Ve(this._color,&amp;amp;quot;srgb&amp;amp;quot;).coords[2],r[0],r[1],t[0],t[1])}}_getAlpha(t=[0,1]){Array.isArray(t)||(t=[0,t]);let r=i.#e[this.mode][3];return rt(this._color.alpha,r[0],r[1],t[0],t[1])}_getHue(t=[0,360]){if(Array.isArray(t)||(t=[0,t]),this.mode===sr||this.mode===jt){let r=i.#e[this.mode][0];return rt(this._color.coords[0],r[0],r[1],t[0],t[1])}else{let r=i.#e[jt][0];return rt(Ve(this._color,&amp;amp;quot;hsl&amp;amp;quot;).coords[0],r[0],r[1],t[0],t[1])}}_getSaturation(t=[0,100]){if(Array.isArray(t)||(t=[0,t]),this.mode===sr||this.mode===jt){let r=i.#e[this.mode][1];return rt(this._color.coords[1],r[0],r[1],t[0],t[1])}else{let r=i.#e[jt][1];return rt(Ve(this._color,&amp;amp;quot;hsl&amp;amp;quot;).coords[1],r[0],r[1],t[0],t[1])}}_getBrightness(t=[0,100]){if(Array.isArray(t)||(t=[0,t]),this.mode===sr){let r=i.#e[this.mode][2];return rt(this._color.coords[2],r[0],r[1],t[0],t[1])}else{let r=i.#e[sr][2];return rt(Ve(this._color,&amp;amp;quot;hsb&amp;amp;quot;).coords[2],r[0],r[1],t[0],t[1])}}_getLightness(t=[0,100]){if(Array.isArray(t)||(t=[0,t]),this.mode===jt){let r=i.#e[this.mode][2];return rt(this._color.coords[2],r[0],r[1],t[0],t[1])}else{let r=i.#e[jt][2];return rt(Ve(this._color,&amp;amp;quot;hsl&amp;amp;quot;).coords[2],r[0],r[1],t[0],t[1])}}};function jh(i,t,r){i.Color=Qe,Pr.fromGray=bu.fromGray=function(n,s,a){let o=s.map(h=&amp;amp;gt;Array.isArray(h)?h:[0,h]),u=rt(n,o[2][0],o[2][1],0,1,a);return[u,u,u]},zh.fromGray=ps.fromGray=function(n,s,a){let o=s.map(h=&amp;amp;gt;Array.isArray(h)?h:[0,h]);return[0,0,rt(n,o[2][0],o[2][1],0,100,a)]},wu.fromGray=function(n,s,a){let o=s.map(p=&amp;amp;gt;Array.isArray(p)?p:[0,p]),u=Math.abs(o[1][0]-o[1][1])/2+Math.abs(o[2][0]-o[2][1])/2,h=rt(n,0,u,0,100),l,c;return h&amp;amp;lt;50?(c=h,l=100-h):h&amp;amp;gt;=50&amp;amp;amp;&amp;amp;amp;(l=h,c=100-h),[0,l,c]},Rt.fromGray=Jr.fromGray=vr.fromGray=Cu.fromGray=function(n,s,a){let o=s.map(h=&amp;amp;gt;Array.isArray(h)?h:[0,h]);return[rt(n,o[0][0],o[0][1],0,100,a),0,0]},i.Color.addColorMode(et,Pr),i.Color.addColorMode(It,bu),i.Color.addColorMode(sr,zh),i.Color.addColorMode(jt,ps),i.Color.addColorMode(Sn,wu),i.Color.addColorMode(ds,Rt),i.Color.addColorMode(An,Jr),i.Color.addColorMode(ms,vr),i.Color.addColorMode(Dn,Cu),r.presetup=function(){let n=this,s=[&amp;amp;quot;Red&amp;amp;quot;,&amp;amp;quot;Green&amp;amp;quot;,&amp;amp;quot;Blue&amp;amp;quot;,&amp;amp;quot;Alpha&amp;amp;quot;];for(let o in s){let u=s[o],h=i.Color.prototype[&amp;amp;quot;set&amp;amp;quot;+u];i.Color.prototype[&amp;amp;quot;set&amp;amp;quot;+u]=function(l,c){return c=c||n?._renderer?.states?.colorMaxes?.[et][o],h.call(this,l,c)}}function a(o,u){let h=i.Color.prototype[&amp;amp;quot;_get&amp;amp;quot;+o];i.Color.prototype[&amp;amp;quot;_get&amp;amp;quot;+o]=function(l){if(Object.keys(u).includes(this.mode))l=l||n?._renderer?.states?.colorMaxes?.[this.mode][u[this.mode]];else{let c=Object.keys(u)[0];l=l||n?._renderer?.states?.colorMaxes?.[c][u[c]]}return h.call(this,l)}}a(&amp;amp;quot;Red&amp;amp;quot;,{[et]:0,[It]:0}),a(&amp;amp;quot;Green&amp;amp;quot;,{[et]:1,[It]:1}),a(&amp;amp;quot;Blue&amp;amp;quot;,{[et]:2,[It]:2}),a(&amp;amp;quot;Alpha&amp;amp;quot;,{[et]:3,[It]:3,[sr]:3,[jt]:3,[Sn]:3,[ds]:3,[An]:3,[ms]:3,[Dn]:3}),a(&amp;amp;quot;Hue&amp;amp;quot;,{[jt]:0,[sr]:0,[Sn]:0,[An]:2,[Dn]:2}),a(&amp;amp;quot;Saturation&amp;amp;quot;,{[jt]:1,[sr]:1}),a(&amp;amp;quot;Brightness&amp;amp;quot;,{[sr]:2}),a(&amp;amp;quot;Lightness&amp;amp;quot;,{[jt]:2})}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;jh(p5,p5.prototype);var et=&amp;amp;quot;rgb&amp;amp;quot;,It=&amp;amp;quot;rgbhdr&amp;amp;quot;,sr=&amp;amp;quot;hsb&amp;amp;quot;,jt=&amp;amp;quot;hsl&amp;amp;quot;,Sn=&amp;amp;quot;hwb&amp;amp;quot;,ds=&amp;amp;quot;lab&amp;amp;quot;,An=&amp;amp;quot;lch&amp;amp;quot;,ms=&amp;amp;quot;oklab&amp;amp;quot;,Dn=&amp;amp;quot;oklch&amp;amp;quot;,Ra=&amp;amp;quot;rgba&amp;amp;quot;;function Ba(i,t){t.RGB=et,t.RGBHDR=It,t.HSB=sr,t.HSL=jt,t.HWB=Sn,t.LAB=ds,t.LCH=An,t.OKLAB=ms,t.OKLCH=Dn,t.RGBA=Ra,i.Renderer.states.colorMode=et,i.Renderer.states.colorMaxes={[et]:[255,255,255,255],[It]:[255,255,255,255],[sr]:[360,100,100,1],[jt]:[360,100,100,1],[Sn]:[360,100,100,1],[ds]:[100,[-125,125],[-125,125],1],[An]:[100,150,360,1],[ms]:[100,[-125,125],[-125,125],1],[Dn]:[100,150,360,1],clone:function(){let r={...this};for(let n in r)r[n]instanceof Array&amp;amp;amp;&amp;amp;amp;(r[n]=[...r[n]]);return r}},t.color=function(...r){if(r[0]instanceof Qe)return r[0];let n=Array.isArray(r[0])?r[0]:r;return new Qe(n,this._renderer.states.colorMode,this._renderer.states.colorMaxes[this._renderer.states.colorMode],{clamp:!0})},t.red=function(r){return this.color(r)._getRed()},t.green=function(r){return this.color(r)._getGreen()},t.blue=function(r){return this.color(r)._getBlue()},t.alpha=function(r){return this.color(r)._getAlpha()},t.hue=function(r){return this.color(r)._getHue()},t.saturation=function(r){return this.color(r)._getSaturation()},t.brightness=function(r){return this.color(r)._getBrightness()},t.lightness=function(r){return this.color(r)._getLightness()},t.lerpColor=function(r,n,s){return r.lerp(n,s,this._renderer.states.colorMode)},t.paletteLerp=function(r,n){let s=r[0];if(n&amp;amp;lt;s[1])return this.color(s[0]);for(let a=1;a&amp;amp;lt;r.length;a++){let o=r[a];if(n&amp;amp;lt;o[1]){let u=r[a-1];return this.lerpColor(this.color(u[0]),this.color(o[0]),(n-u[1])/(o[1]-u[1]))}}return this.color(r[r.length-1][0])}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ba(p5,p5.prototype);var gs=class i{constructor(t){if(t)this.DOM=t;else{let r=document.implementation.createDocument(null,&amp;amp;quot;doc&amp;amp;quot;);this.DOM=r.createElement(&amp;amp;quot;root&amp;amp;quot;)}}getParent(){return new i(this.DOM.parentElement)}getName(){return this.DOM.tagName}setName(t){let r=this.DOM.innerHTML,n=this.DOM.attributes,a=document.implementation.createDocument(null,&amp;amp;quot;default&amp;amp;quot;).createElement(t);a.innerHTML=r;for(let o=0;o&amp;amp;lt;n.length;o++)a.setAttribute(n[o].nodeName,n[o].nodeValue);this.DOM=a}hasChildren(){return this.DOM.children.length&amp;amp;gt;0}listChildren(){let t=[];for(let r=0;r&amp;amp;lt;this.DOM.childNodes.length;r++)t.push(this.DOM.childNodes[r].nodeName);return t}getChildren(t){return Kd(t?this.DOM.getElementsByTagName(t):this.DOM.children)}getChild(t){if(typeof t==&amp;amp;quot;string&amp;amp;quot;){for(let r of this.DOM.children)if(r.tagName===t)return new i(r)}else return new i(this.DOM.children[t])}addChild(t){t instanceof i&amp;amp;amp;&amp;amp;amp;this.DOM.appendChild(t.DOM)}removeChild(t){let r=-1;if(typeof t==&amp;amp;quot;string&amp;amp;quot;){for(let n=0;n&amp;amp;lt;this.DOM.children.length;n++)if(this.DOM.children[n].tagName===t){r=n;break}}else r=t;r!==-1&amp;amp;amp;&amp;amp;amp;this.DOM.removeChild(this.DOM.children[r])}getAttributeCount(){return this.DOM.attributes.length}listAttributes(){let t=[];for(let r of this.DOM.attributes)t.push(r.nodeName);return t}hasAttribute(t){let r={};for(let n of this.DOM.attributes)r[n.nodeName]=n.nodeValue;return!!r[t]}getNum(t,r){let n={};for(let s of this.DOM.attributes)n[s.nodeName]=s.nodeValue;return Number(n[t])||r||0}getString(t,r){let n={};for(let s of this.DOM.attributes)n[s.nodeName]=s.nodeValue;return n[t]?String(n[t]):r||null}setAttribute(t,r){this.DOM.setAttribute(t,r)}getContent(t){let r;return r=this.DOM.textContent,r=r.replace(/\s\s+/g,&amp;amp;quot;,&amp;amp;quot;),r||t||null}setContent(t){this.DOM.children.length||(this.DOM.textContent=t)}serialize(){return new XMLSerializer().serializeToString(this.DOM)}};function Kd(i){let t=[];for(let r=0;r&amp;amp;lt;i.length;r++)t.push(new gs(i[r]));return t}function $h(i,t){i.XML=gs}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;$h(p5,p5.prototype);var Fn=class i{constructor(t,r){this.file=t,this._pInst=r;let n=t.type.split(&amp;amp;quot;/&amp;amp;quot;);this.type=n[0],this.subtype=n[1],this.name=t.name,this.size=t.size,this.data=void 0}static _createLoader(t,r){let n=new FileReader;return n.onload=function(s){let a=new i(t);if(a.file.type===&amp;amp;quot;application/json&amp;amp;quot;)a.data=JSON.parse(s.target.result);else if(a.file.type===&amp;amp;quot;text/xml&amp;amp;quot;){let u=new DOMParser().parseFromString(s.target.result,&amp;amp;quot;text/xml&amp;amp;quot;);a.data=new gs(u.documentElement)}else a.data=s.target.result;r(a)},n}static _load(t,r){if(/^text\//.test(t.type)||t.type===&amp;amp;quot;application/json&amp;amp;quot;)i._createLoader(t,r).readAsText(t);else if(!/^(video|audio)\//.test(t.type))i._createLoader(t,r).readAsDataURL(t);else{let n=new i(t);n.data=URL.createObjectURL(t),r(n)}}};function Hh(i,t){i.File=Fn}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Hh(p5,p5.prototype);var st=class i{width;height;elt;constructor(t,r){this.elt=t,this._pInst=this._pixelsState=r,this._events={},this.width=this.elt.offsetWidth,this.height=this.elt.offsetHeight}remove(){if(this.stop){this.stop();let r=this.elt.srcObject;r!==null&amp;amp;amp;&amp;amp;amp;r.getTracks().forEach(s=&amp;amp;gt;{s.stop()})}let t=this._pInst._elements.indexOf(this);t!==-1&amp;amp;amp;&amp;amp;amp;this._pInst._elements.splice(t,1);for(let r in this._events)this.elt.removeEventListener(r,this._events[r]);this.elt&amp;amp;amp;&amp;amp;amp;this.elt.parentNode&amp;amp;amp;&amp;amp;amp;this.elt.parentNode.removeChild(this.elt)}parent(t){return typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?this.elt.parentNode:(typeof t==&amp;amp;quot;string&amp;amp;quot;?(t[0]===&amp;amp;quot;#&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t=t.substring(1)),t=document.getElementById(t)):t instanceof i&amp;amp;amp;&amp;amp;amp;(t=t.elt),t.appendChild(this.elt),this)}child(t){return typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?this.elt.childNodes:(typeof t==&amp;amp;quot;string&amp;amp;quot;?(t[0]===&amp;amp;quot;#&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t=t.substring(1)),t=document.getElementById(t)):t instanceof i&amp;amp;amp;&amp;amp;amp;(t=t.elt),t instanceof HTMLElement&amp;amp;amp;&amp;amp;amp;this.elt.appendChild(t),this)}html(...t){return t.length===0?this.elt.innerHTML:t[1]?(this.elt.insertAdjacentHTML(&amp;amp;quot;beforeend&amp;amp;quot;,t[0]),this):(this.elt.innerHTML=t[0],this)}id(t){return typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?this.elt.id:(this.elt.id=t,this.width=this.elt.offsetWidth,this.height=this.elt.offsetHeight,this)}class(t){return typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?this.elt.className:(this.elt.className=t,this)}addClass(t){return this.elt.className?this.hasClass(t)||(this.elt.className=this.elt.className+&amp;amp;quot; &amp;amp;quot;+t):this.elt.className=t,this}removeClass(t){return this.elt.classList.remove(t),this}hasClass(t){return this.elt.classList.contains(t)}toggleClass(t){return this.elt.classList.contains(t)?this.elt.classList.remove(t):this.elt.classList.add(t),this}center(t){let r=this.elt.style.display,n=this.elt.style.display===&amp;amp;quot;none&amp;amp;quot;,s=this.parent().style.display===&amp;amp;quot;none&amp;amp;quot;,a={x:this.elt.offsetLeft,y:this.elt.offsetTop};n&amp;amp;amp;&amp;amp;amp;this.show(),s&amp;amp;amp;&amp;amp;amp;this.parent().show(),this.elt.style.display=&amp;amp;quot;block&amp;amp;quot;,this.position(0,0);let o=Math.abs(this.parent().offsetWidth-this.elt.offsetWidth),u=Math.abs(this.parent().offsetHeight-this.elt.offsetHeight);return t===&amp;amp;quot;both&amp;amp;quot;||t===void 0?this.position(o/2+this.parent().offsetLeft,u/2+this.parent().offsetTop):t===&amp;amp;quot;horizontal&amp;amp;quot;?this.position(o/2+this.parent().offsetLeft,a.y):t===&amp;amp;quot;vertical&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.position(a.x,u/2+this.parent().offsetTop),this.style(&amp;amp;quot;display&amp;amp;quot;,r),n&amp;amp;amp;&amp;amp;amp;this.hide(),s&amp;amp;amp;&amp;amp;amp;this.parent().hide(),this}position(...t){if(t.length===0)return{x:this.elt.offsetLeft,y:this.elt.offsetTop};{let r=&amp;amp;quot;absolute&amp;amp;quot;;return(t[2]===&amp;amp;quot;static&amp;amp;quot;||t[2]===&amp;amp;quot;fixed&amp;amp;quot;||t[2]===&amp;amp;quot;relative&amp;amp;quot;||t[2]===&amp;amp;quot;sticky&amp;amp;quot;||t[2]===&amp;amp;quot;initial&amp;amp;quot;||t[2]===&amp;amp;quot;inherit&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(r=t[2]),this.elt.style.position=r,this.elt.style.left=t[0]+&amp;amp;quot;px&amp;amp;quot;,this.elt.style.top=t[1]+&amp;amp;quot;px&amp;amp;quot;,this.x=t[0],this.y=t[1],this}}show(){return this.elt.style.display=&amp;amp;quot;block&amp;amp;quot;,this}hide(){return this.elt.style.display=&amp;amp;quot;none&amp;amp;quot;,this}size(t,r){if(arguments.length===0)return{width:this.elt.offsetWidth,height:this.elt.offsetHeight};{let n=t,s=r,a=ch;if(n!==a||s!==a){if(n===a?n=r*this.width/this.height:s===a&amp;amp;amp;&amp;amp;amp;(s=t*this.height/this.width),this.elt instanceof HTMLCanvasElement){let o={},u=this.elt.getContext(&amp;amp;quot;2d&amp;amp;quot;),h;for(h in u)o[h]=u[h];this.elt.setAttribute(&amp;amp;quot;width&amp;amp;quot;,n*this._pInst._pixelDensity),this.elt.setAttribute(&amp;amp;quot;height&amp;amp;quot;,s*this._pInst._pixelDensity),this.elt.style.width=n+&amp;amp;quot;px&amp;amp;quot;,this.elt.style.height=s+&amp;amp;quot;px&amp;amp;quot;,this._pInst.scale(this._pInst._pixelDensity,this._pInst._pixelDensity);for(h in o)this.elt.getContext(&amp;amp;quot;2d&amp;amp;quot;)[h]=o[h]}else this.elt.style.width=n+&amp;amp;quot;px&amp;amp;quot;,this.elt.style.height=s+&amp;amp;quot;px&amp;amp;quot;,this.elt.width=n,this.elt.height=s;this.width=n,this.height=s,this._pInst&amp;amp;amp;&amp;amp;amp;this._pInst._curElement&amp;amp;amp;&amp;amp;amp;this._pInst._curElement.elt===this.elt&amp;amp;amp;&amp;amp;amp;(this._pInst.width=n,this._pInst.height=s)}return this}}style(t,r){let n=this;if(r instanceof Qe&amp;amp;amp;&amp;amp;amp;(r=r.toString()),typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;){if(t.indexOf(&amp;amp;quot;:&amp;amp;quot;)===-1)return window.getComputedStyle(n.elt).getPropertyValue(t);{let s=t.split(&amp;amp;quot;;&amp;amp;quot;);for(let a=0;a&amp;amp;lt;s.length;a++){let o=s[a].split(&amp;amp;quot;:&amp;amp;quot;);o[0]&amp;amp;amp;&amp;amp;amp;o[1]&amp;amp;amp;&amp;amp;amp;(this.elt.style[o[0].trim()]=o[1].trim())}}}else if(this.elt.style[t]=r,t===&amp;amp;quot;width&amp;amp;quot;||t===&amp;amp;quot;height&amp;amp;quot;||t===&amp;amp;quot;left&amp;amp;quot;||t===&amp;amp;quot;top&amp;amp;quot;){let o=window.getComputedStyle(n.elt).getPropertyValue(t).replace(/[^\d.]/g,&amp;amp;quot;&amp;amp;quot;);this[t]=Math.round(parseFloat(o,10))}return this}_translate(...t){this.elt.style.position=&amp;amp;quot;absolute&amp;amp;quot;;let r=&amp;amp;quot;&amp;amp;quot;;return this.elt.style.transform&amp;amp;amp;&amp;amp;amp;(r=this.elt.style.transform.replace(/translate3d\(.*\)/g,&amp;amp;quot;&amp;amp;quot;),r=r.replace(/translate[X-Z]?\(.*\)/g,&amp;amp;quot;&amp;amp;quot;)),t.length===2?this.elt.style.transform=&amp;amp;quot;translate(&amp;amp;quot;+t[0]+&amp;amp;quot;px, &amp;amp;quot;+t[1]+&amp;amp;quot;px)&amp;amp;quot;:t.length&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;(this.elt.style.transform=&amp;amp;quot;translate3d(&amp;amp;quot;+t[0]+&amp;amp;quot;px,&amp;amp;quot;+t[1]+&amp;amp;quot;px,&amp;amp;quot;+t[2]+&amp;amp;quot;px)&amp;amp;quot;,t.length===3?this.elt.parentElement.style.perspective=&amp;amp;quot;1000px&amp;amp;quot;:this.elt.parentElement.style.perspective=t[3]+&amp;amp;quot;px&amp;amp;quot;),this.elt.style.transform+=r,this}_rotate(...t){let r=&amp;amp;quot;&amp;amp;quot;;return this.elt.style.transform&amp;amp;amp;&amp;amp;amp;(r=this.elt.style.transform.replace(/rotate3d\(.*\)/g,&amp;amp;quot;&amp;amp;quot;),r=r.replace(/rotate[X-Z]?\(.*\)/g,&amp;amp;quot;&amp;amp;quot;)),t.length===1?this.elt.style.transform=&amp;amp;quot;rotate(&amp;amp;quot;+t[0]+&amp;amp;quot;deg)&amp;amp;quot;:t.length===2?this.elt.style.transform=&amp;amp;quot;rotate(&amp;amp;quot;+t[0]+&amp;amp;quot;deg, &amp;amp;quot;+t[1]+&amp;amp;quot;deg)&amp;amp;quot;:t.length===3&amp;amp;amp;&amp;amp;amp;(this.elt.style.transform=&amp;amp;quot;rotateX(&amp;amp;quot;+t[0]+&amp;amp;quot;deg)&amp;amp;quot;,this.elt.style.transform+=&amp;amp;quot;rotateY(&amp;amp;quot;+t[1]+&amp;amp;quot;deg)&amp;amp;quot;,this.elt.style.transform+=&amp;amp;quot;rotateZ(&amp;amp;quot;+t[2]+&amp;amp;quot;deg)&amp;amp;quot;),this.elt.style.transform+=r,this}attribute(t,r){if(this.elt.firstChild!=null&amp;amp;amp;&amp;amp;amp;(this.elt.firstChild.type===&amp;amp;quot;checkbox&amp;amp;quot;||this.elt.firstChild.type===&amp;amp;quot;radio&amp;amp;quot;)){if(typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return this.elt.firstChild.getAttribute(t);for(let n=0;n&amp;amp;lt;this.elt.childNodes.length;n++)this.elt.childNodes[n].setAttribute(t,r)}else return typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?this.elt.getAttribute(t):(this.elt.setAttribute(t,r),this)}removeAttribute(t){if(this.elt.firstChild!=null&amp;amp;amp;&amp;amp;amp;(this.elt.firstChild.type===&amp;amp;quot;checkbox&amp;amp;quot;||this.elt.firstChild.type===&amp;amp;quot;radio&amp;amp;quot;))for(let r=0;r&amp;amp;lt;this.elt.childNodes.length;r++)this.elt.childNodes[r].removeAttribute(t);return this.elt.removeAttribute(t),this}value(...t){return t.length&amp;amp;gt;0?(this.elt.value=t[0],this):this.elt.type===&amp;amp;quot;range&amp;amp;quot;?parseFloat(this.elt.value):this.elt.value}mousePressed(t){let r=function(n){return this._pInst.mouseIsPressed=!0,this._pInst._activePointers.set(n.pointerId,n),this._pInst._setMouseButton(n),this._pInst._updatePointerCoords(n),t.call(this,n)};return i._adjustListener(&amp;amp;quot;pointerdown&amp;amp;quot;,r,this),this}doubleClicked(t){return i._adjustListener(&amp;amp;quot;dblclick&amp;amp;quot;,t,this),this}mouseWheel(t){return i._adjustListener(&amp;amp;quot;wheel&amp;amp;quot;,t,this),this}mouseReleased(t){return i._adjustListener(&amp;amp;quot;pointerup&amp;amp;quot;,t,this),this}mouseClicked(t){return i._adjustListener(&amp;amp;quot;click&amp;amp;quot;,t,this),this}mouseMoved(t){return i._adjustListener(&amp;amp;quot;pointermove&amp;amp;quot;,t,this),this}mouseOver(t){return i._adjustListener(&amp;amp;quot;pointerover&amp;amp;quot;,t,this),this}mouseOut(t){return i._adjustListener(&amp;amp;quot;pointerout&amp;amp;quot;,t,this),this}dragOver(t){return i._adjustListener(&amp;amp;quot;dragover&amp;amp;quot;,t,this),this}dragLeave(t){return i._adjustListener(&amp;amp;quot;dragleave&amp;amp;quot;,t,this),this}changed(t){return i._adjustListener(&amp;amp;quot;change&amp;amp;quot;,t,this),this}input(t){return i._adjustListener(&amp;amp;quot;input&amp;amp;quot;,t,this),this}drop(t,r){if(window.File&amp;amp;amp;&amp;amp;amp;window.FileReader&amp;amp;amp;&amp;amp;amp;window.FileList&amp;amp;amp;&amp;amp;amp;window.Blob){if(!this._dragDisabled){this._dragDisabled=!0;let n=function(s){s.preventDefault()};this.elt.addEventListener(&amp;amp;quot;dragover&amp;amp;quot;,n),this.elt.addEventListener(&amp;amp;quot;dragleave&amp;amp;quot;,n)}i._attachListener(&amp;amp;quot;drop&amp;amp;quot;,function(n){n.preventDefault(),typeof r==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r.call(this,n);let s=n.dataTransfer.files;for(let a of s)Fn._load(a,t)},this)}else console.log(&amp;amp;quot;The File APIs are not fully supported in this browser.&amp;amp;quot;);return this}draggable(t){let r=&amp;amp;quot;ontouchstart&amp;amp;quot;in window,n=0,s=0,a=0,o=0,u,h=r?&amp;amp;quot;touchstart&amp;amp;quot;:&amp;amp;quot;mousedown&amp;amp;quot;,l=r?&amp;amp;quot;touchend&amp;amp;quot;:&amp;amp;quot;mouseup&amp;amp;quot;,c=r?&amp;amp;quot;touchmove&amp;amp;quot;:&amp;amp;quot;mousemove&amp;amp;quot;;t===void 0?(t=this.elt,u=t):t!==this.elt&amp;amp;amp;&amp;amp;amp;t.elt!==this.elt&amp;amp;amp;&amp;amp;amp;(t=t.elt,u=this.elt),u.addEventListener(h,p,!1),u.style.cursor=&amp;amp;quot;move&amp;amp;quot;;function p(m){if(m=m||window.event,r){let g=m.changedTouches;a=parseInt(g[0].clientX),o=parseInt(g[0].clientY)}else a=parseInt(m.clientX),o=parseInt(m.clientY);return document.addEventListener(l,d,!1),document.addEventListener(c,f,!1),!1}function f(m){if(m=m||window.event,r){let g=m.changedTouches;n=a-parseInt(g[0].clientX),s=o-parseInt(g[0].clientY),a=parseInt(g[0].clientX),o=parseInt(g[0].clientY)}else n=a-parseInt(m.clientX),s=o-parseInt(m.clientY),a=parseInt(m.clientX),o=parseInt(m.clientY);t.style.left=t.offsetLeft-n+&amp;amp;quot;px&amp;amp;quot;,t.style.top=t.offsetTop-s+&amp;amp;quot;px&amp;amp;quot;}function d(){document.removeEventListener(l,d,!1),document.removeEventListener(c,f,!1)}return this}static _adjustListener(t,r,n){return r===!1?i._detachListener(t,n):i._attachListener(t,r,n),this}static _attachListener(t,r,n){n._events[t]&amp;amp;amp;&amp;amp;amp;i._detachListener(t,n);let s=r.bind(n);n.elt.addEventListener(t,s,!1),n._events[t]=s}static _detachListener(t,r){let n=r._events[t];r.elt.removeEventListener(t,n,!1),r._events[t]=null}};function Wh(i,t){i.Element=st}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Wh(p5,p5.prototype);var Xe={_toPixels(i){if(i instanceof ImageData)return i.data;if(i.getContext(&amp;amp;quot;2d&amp;amp;quot;))return i.getContext(&amp;amp;quot;2d&amp;amp;quot;).getImageData(0,0,i.width,i.height).data;if(i.getContext(&amp;amp;quot;webgl&amp;amp;quot;)){let t=i.getContext(&amp;amp;quot;webgl&amp;amp;quot;),r=t.drawingBufferWidth*t.drawingBufferHeight*4,n=new Uint8Array(r);return t.readPixels(0,0,i.width,i.height,t.RGBA,t.UNSIGNED_BYTE,n),n}},_getARGB(i,t){let r=t*4;return i[r+3]&amp;amp;lt;&amp;amp;lt;24&amp;amp;amp;4278190080|i[r]&amp;amp;lt;&amp;amp;lt;16&amp;amp;amp;16711680|i[r+1]&amp;amp;lt;&amp;amp;lt;8&amp;amp;amp;65280|i[r+2]&amp;amp;amp;255},_setPixels(i,t){let r=0;for(let n=0,s=i.length;n&amp;amp;lt;s;n++)r=n*4,i[r+0]=(t[n]&amp;amp;amp;16711680)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16,i[r+1]=(t[n]&amp;amp;amp;65280)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8,i[r+2]=t[n]&amp;amp;amp;255,i[r+3]=(t[n]&amp;amp;amp;4278190080)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24},_toImageData(i){return i instanceof ImageData?i:i.getContext(&amp;amp;quot;2d&amp;amp;quot;).getImageData(0,0,i.width,i.height)},_createImageData(i,t){return Xe._tmpCanvas=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),Xe._tmpCtx=Xe._tmpCanvas.getContext(&amp;amp;quot;2d&amp;amp;quot;),this._tmpCtx.createImageData(i,t)},apply(i,t,r){let n=i.getContext(&amp;amp;quot;2d&amp;amp;quot;),s=n.getImageData(0,0,i.width,i.height),a=t(s,r);a instanceof ImageData?n.putImageData(a,0,0,0,0,i.width,i.height):n.putImageData(s,0,0,0,0,i.width,i.height)},threshold(i,t=.5){let r=Xe._toPixels(i),n=Math.floor(t*255);for(let s=0;s&amp;amp;lt;r.length;s+=4){let a=r[s],o=r[s+1],u=r[s+2],h=.2126*a+.7152*o+.0722*u,l;h&amp;amp;gt;=n?l=255:l=0,r[s]=r[s+1]=r[s+2]=l}},gray(i){let t=Xe._toPixels(i);for(let r=0;r&amp;amp;lt;t.length;r+=4){let n=t[r],s=t[r+1],a=t[r+2],o=.2126*n+.7152*s+.0722*a;t[r]=t[r+1]=t[r+2]=o}},opaque(i){let t=Xe._toPixels(i);for(let r=0;r&amp;amp;lt;t.length;r+=4)t[r+3]=255;return t},invert(i){let t=Xe._toPixels(i);for(let r=0;r&amp;amp;lt;t.length;r+=4)t[r]=255-t[r],t[r+1]=255-t[r+1],t[r+2]=255-t[r+2]},posterize(i,t=4){let r=Xe._toPixels(i);if(t&amp;amp;lt;2||t&amp;amp;gt;255)throw new Error(&amp;amp;quot;Level must be greater than 2 and less than 255 for posterize&amp;amp;quot;);let n=t-1;for(let s=0;s&amp;amp;lt;r.length;s+=4){let a=r[s],o=r[s+1],u=r[s+2];r[s]=(a*t&amp;amp;gt;&amp;amp;gt;8)*255/n,r[s+1]=(o*t&amp;amp;gt;&amp;amp;gt;8)*255/n,r[s+2]=(u*t&amp;amp;gt;&amp;amp;gt;8)*255/n}},dilate(i){let t=Xe._toPixels(i),r=0,n=t.length?t.length/4:0,s=new Int32Array(n),a,o,u,h,l,c,p,f,d,m,g,v,w,y,S,_,b;for(;r&amp;amp;lt;n;)for(a=r,o=r+i.width;r&amp;amp;lt;o;)u=h=Xe._getARGB(t,r),p=r-1,c=r+1,f=r-i.width,d=r+i.width,p&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;(p=r),c&amp;amp;gt;=o&amp;amp;amp;&amp;amp;amp;(c=r),f&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(f=0),d&amp;amp;gt;=n&amp;amp;amp;&amp;amp;amp;(d=r),v=Xe._getARGB(t,f),g=Xe._getARGB(t,p),w=Xe._getARGB(t,d),m=Xe._getARGB(t,c),l=77*(u&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(u&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(u&amp;amp;amp;255),S=77*(g&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(g&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(g&amp;amp;amp;255),y=77*(m&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(m&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(m&amp;amp;amp;255),_=77*(v&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(v&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(v&amp;amp;amp;255),b=77*(w&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(w&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(w&amp;amp;amp;255),S&amp;amp;gt;l&amp;amp;amp;&amp;amp;amp;(h=g,l=S),y&amp;amp;gt;l&amp;amp;amp;&amp;amp;amp;(h=m,l=y),_&amp;amp;gt;l&amp;amp;amp;&amp;amp;amp;(h=v,l=_),b&amp;amp;gt;l&amp;amp;amp;&amp;amp;amp;(h=w,l=b),s[r++]=h;Xe._setPixels(t,s)},erode(i){let t=Xe._toPixels(i),r=0,n=t.length?t.length/4:0,s=new Int32Array(n),a,o,u,h,l,c,p,f,d,m,g,v,w,y,S,_,b;for(;r&amp;amp;lt;n;)for(a=r,o=r+i.width;r&amp;amp;lt;o;)u=h=Xe._getARGB(t,r),p=r-1,c=r+1,f=r-i.width,d=r+i.width,p&amp;amp;lt;a&amp;amp;amp;&amp;amp;amp;(p=r),c&amp;amp;gt;=o&amp;amp;amp;&amp;amp;amp;(c=r),f&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(f=0),d&amp;amp;gt;=n&amp;amp;amp;&amp;amp;amp;(d=r),v=Xe._getARGB(t,f),g=Xe._getARGB(t,p),w=Xe._getARGB(t,d),m=Xe._getARGB(t,c),l=77*(u&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(u&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(u&amp;amp;amp;255),S=77*(g&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(g&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(g&amp;amp;amp;255),y=77*(m&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(m&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(m&amp;amp;amp;255),_=77*(v&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(v&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(v&amp;amp;amp;255),b=77*(w&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+151*(w&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+28*(w&amp;amp;amp;255),S&amp;amp;lt;l&amp;amp;amp;&amp;amp;amp;(h=g,l=S),y&amp;amp;lt;l&amp;amp;amp;&amp;amp;amp;(h=m,l=y),_&amp;amp;lt;l&amp;amp;amp;&amp;amp;amp;(h=v,l=_),b&amp;amp;lt;l&amp;amp;amp;&amp;amp;amp;(h=w,l=b),s[r++]=h;Xe._setPixels(t,s)},blur(i,t){Mx(i,t)}},Pa,ys,vs,Tn;function kx(i){let t=i*3.5|0;if(t=t&amp;amp;lt;1?1:t&amp;amp;lt;248?t:248,Pa!==t){Pa=t,ys=1+Pa&amp;amp;lt;&amp;amp;lt;1,vs=new Int32Array(ys),Tn=new Array(ys);for(let o=0;o&amp;amp;lt;ys;o++)Tn[o]=new Int32Array(256);let r,n,s,a;for(let o=1,u=t-1;o&amp;amp;lt;t;o++){vs[t+o]=vs[u]=n=u*u,s=Tn[t+o],a=Tn[u--];for(let h=0;h&amp;amp;lt;256;h++)s[h]=a[h]=n*h}r=vs[t]=t*t,s=Tn[t];for(let o=0;o&amp;amp;lt;256;o++)s[o]=r*o}}function Mx(i,t){let r=Xe._toPixels(i),n=i.width,s=i.height,a=n*s,o=new Int32Array(a);for(let T=0;T&amp;amp;lt;a;T++)o[T]=Xe._getARGB(r,T);let u,h,l,c,p,f,d,m,g,v,w=new Int32Array(a),y=new Int32Array(a),S=new Int32Array(a),_=new Int32Array(a),b=0;kx(t);let I,E,A,C;for(E=0;E&amp;amp;lt;s;E++){for(I=0;I&amp;amp;lt;n;I++){if(c=l=h=p=u=0,f=I-Pa,f&amp;amp;lt;0)v=-f,f=0;else{if(f&amp;amp;gt;=n)break;v=0}for(A=v;A&amp;amp;lt;ys&amp;amp;amp;&amp;amp;amp;!(f&amp;amp;gt;=n);A++){let T=o[f+b];C=Tn[A],p+=C[(T&amp;amp;amp;-16777216)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24],h+=C[(T&amp;amp;amp;16711680)&amp;amp;gt;&amp;amp;gt;16],l+=C[(T&amp;amp;amp;65280)&amp;amp;gt;&amp;amp;gt;8],c+=C[T&amp;amp;amp;255],u+=vs[A],f++}d=b+I,w[d]=p/u,y[d]=h/u,S[d]=l/u,_[d]=c/u}b+=n}for(b=0,m=-Pa,g=m*n,E=0;E&amp;amp;lt;s;E++){for(I=0;I&amp;amp;lt;n;I++){if(c=l=h=p=u=0,m&amp;amp;lt;0)v=d=-m,f=I;else{if(m&amp;amp;gt;=s)break;v=0,d=m,f=I+g}for(A=v;A&amp;amp;lt;ys&amp;amp;amp;&amp;amp;amp;!(d&amp;amp;gt;=s);A++)C=Tn[A],p+=C[w[f]],h+=C[y[f]],l+=C[S[f]],c+=C[_[f]],u+=vs[A],d++,f+=n;o[I+b]=p/u&amp;amp;lt;&amp;amp;lt;24|h/u&amp;amp;lt;&amp;amp;lt;16|l/u&amp;amp;lt;&amp;amp;lt;8|c/u}b+=n,g+=n,m++}Xe._setPixels(r,o)}function Jd(i){let t=0;for(let r=1;r&amp;amp;lt;i.length;r++)t+=i[r-1].position.dist(i[r].position);return t}var Eu=class{constructor(t){for(let[r,n]of Object.entries(t))this[r]=n}},xr=class i{vertices;_shape=null;_primitivesIndex=null;_contoursIndex=null;isClosing=!1;constructor(...t){if(this.constructor===i)throw new Error(&amp;amp;quot;ShapePrimitive is an abstract class: it cannot be instantiated.&amp;amp;quot;);if(t.length&amp;amp;gt;0)this.vertices=t;else throw new Error(&amp;amp;quot;At least one vertex must be passed to the constructor.&amp;amp;quot;)}get vertexCount(){return this.vertices.length}get vertexCapacity(){throw new Error(&amp;amp;quot;Getter vertexCapacity must be implemented.&amp;amp;quot;)}get _firstInterpolatedVertex(){return this.startVertex()}get canOverrideAnchor(){return!1}accept(t){throw new Error(&amp;amp;quot;Method accept() must be implemented.&amp;amp;quot;)}addToShape(t){let r=t.at(-1);if(r.primitives.length===0)r.primitives.push(this);else{let s=t.at(-1,-1),a=s instanceof this.constructor,o=s.vertexCapacity-s.vertexCount,u,h;a&amp;amp;amp;&amp;amp;amp;o&amp;amp;gt;0?(u=this.vertices.splice(0,o),h=this.vertices,s.vertices.push(...u),h.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;r.primitives.push(this)):r.primitives.push(this)}if(this.vertices.length&amp;amp;gt;0){let s=t.at(-1);this._primitivesIndex=s.primitives.length-1,this._contoursIndex=t.contours.length-1,this._shape=t}return t.at(-1,-1)}get _nextPrimitive(){return this._belongsToShape?this._shape.at(this._contoursIndex,this._primitivesIndex+1):null}get _belongsToShape(){return this._shape!==null}handlesClose(){return!1}close(t){throw new Error(&amp;amp;quot;Unimplemented!&amp;amp;quot;)}},Su=class{#e;primitives;constructor(t=rr){this.#e=t,this.primitives=[]}get kind(){let t=this.primitives.length===0,r=this.#e===rr;return t&amp;amp;amp;&amp;amp;amp;r?dn:this.#e}accept(t){for(let r of this.primitives)r.accept(t)}},xs=class extends xr{#e=1;get vertexCapacity(){return this.#e}accept(t){t.visitAnchor(this)}getEndVertex(){return this.vertices[0]}},Nn=class i extends xr{constructor(...t){if(super(...t),this.constructor===i)throw new Error(&amp;amp;quot;Segment is an abstract class: it cannot be instantiated.&amp;amp;quot;)}get _previousPrimitive(){return this._belongsToShape?this._shape.at(this._contoursIndex,this._primitivesIndex-1):null}getStartVertex(){return this._previousPrimitive.getEndVertex()}getEndVertex(){return this.vertices.at(-1)}},Au=class extends Nn{#e=1;get vertexCapacity(){return this.#e}accept(t){t.visitLineSegment(this)}},Du=class extends Nn{#e;#t;constructor(t,...r){super(...r);let n=Array.isArray(t)?t[0]:t;this.#e=n,this.#t=n}get order(){return this.#e}get vertexCapacity(){return this.#t}#r;hullLength(){return this.#r===void 0&amp;amp;amp;&amp;amp;amp;(this.#r=Jd([this.getStartVertex(),...this.vertices])),this.#r}accept(t){t.visitBezierSegment(this)}},Fu=class extends Nn{#e=1/0;_splineProperties={ends:$i,tightness:0};get vertexCapacity(){return this.#e}accept(t){t.visitSplineSegment(this)}get _comesAfterSegment(){return this._previousPrimitive instanceof Nn}get canOverrideAnchor(){return this._splineProperties.ends===_n}get _firstInterpolatedVertex(){return this._splineProperties.ends===_n?this._comesAfterSegment?this.vertices[1]:this.vertices[0]:this.getStartVertex()}get _chainedToSegment(){if(this._belongsToShape&amp;amp;amp;&amp;amp;amp;this._comesAfterSegment){let t=this._firstInterpolatedVertex.position;return this.getStartVertex().position.equals(t)}else return!1}addToShape(t){let r=super.addToShape(t);if(this._splineProperties.ends=t._splineProperties.ends,this._splineProperties.tightness=t._splineProperties.tightness,this._splineProperties.ends!==_n)return r;let n=!this._belongsToShape,s=t.at(-1,-1),a=(o,u)=&amp;amp;gt;`Spline does not start where previous path segment ends:
   5444 <a href="#l5425" class="line" id="l5425">   5425</a> &lt;a href=&quot;#l5406&quot; class=&quot;line&quot; id=&quot;l5406&quot;&gt;   5406&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-306&amp;quot; id=&amp;quot;h4-0-306&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      second spline vertex at (${o})
   5445 <a href="#l5426" class="line" id="l5426">   5426</a> &lt;a href=&quot;#l5407&quot; class=&quot;line&quot; id=&quot;l5407&quot;&gt;   5407&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-307&amp;quot; id=&amp;quot;h4-0-307&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      expected to be at (${u}).`;if(n&amp;amp;amp;&amp;amp;amp;s.vertices.length===2&amp;amp;amp;&amp;amp;amp;s._comesAfterSegment&amp;amp;amp;&amp;amp;amp;!s._chainedToSegment){let o=s._firstInterpolatedVertex.position,u=s.getStartVertex().position;console.warn(a(o.array(),u.array()))}return r}getEndVertex(){return this._splineProperties.ends===$i?super.getEndVertex():this._splineProperties.ends===_n?this.vertices.at(-2):this.getStartVertex()}getControlPoints(){let t=[];this._comesAfterSegment&amp;amp;amp;&amp;amp;amp;t.push(this.getStartVertex()),t.push(this.getStartVertex());for(let n of this.vertices)t.push(n);let r=this.getStartVertex();return this._splineProperties.ends===$i?(t.unshift(r),t.push(this.vertices.at(-1))):this._splineProperties.ends===nu&amp;amp;amp;&amp;amp;amp;(t.unshift(this.vertices.at(-1)),t.push(r,this.vertices.at(0))),t}handlesClose(){return this._belongsToShape?this._shape.at(this._contoursIndex).primitives.length===2&amp;amp;amp;&amp;amp;amp;this._primitivesIndex===1:!1}close(){this._splineProperties.ends=nu}},Tu=class extends xr{#e=1;get vertexCapacity(){return this.#e}accept(t){t.visitPoint(this)}},Nu=class extends xr{#e=2;get vertexCapacity(){return this.#e}accept(t){t.visitLine(this)}},Iu=class extends xr{#e=3;get vertexCapacity(){return this.#e}accept(t){t.visitTriangle(this)}},ku=class extends xr{#e=4;get vertexCapacity(){return this.#e}accept(t){t.visitQuad(this)}},Mu=class extends xr{#e=1/0;get vertexCapacity(){return this.#e}accept(t){t.visitTriangleFan(this)}},Lu=class extends xr{#e=1/0;get vertexCapacity(){return this.#e}accept(t){t.visitTriangleStrip(this)}},Ru=class extends xr{#e=1/0;get vertexCapacity(){return this.#e}accept(t){t.visitQuadStrip(this)}},qh=class{creators;constructor(){let t=new Map;t.set(`vertex-${dn}`,(...r)=&amp;amp;gt;new xs(...r)),t.set(`vertex-${rr}`,(...r)=&amp;amp;gt;new Au(...r)),t.set(`vertex-${Jn}`,(...r)=&amp;amp;gt;new Tu(...r)),t.set(`vertex-${ci}`,(...r)=&amp;amp;gt;new Nu(...r)),t.set(`vertex-${fi}`,(...r)=&amp;amp;gt;new Iu(...r)),t.set(`vertex-${pn}`,(...r)=&amp;amp;gt;new ku(...r)),t.set(`vertex-${cn}`,(...r)=&amp;amp;gt;new Mu(...r)),t.set(`vertex-${zi}`,(...r)=&amp;amp;gt;new Lu(...r)),t.set(`vertex-${ji}`,(...r)=&amp;amp;gt;new Ru(...r)),t.set(`bezierVertex-${dn}`,(r,...n)=&amp;amp;gt;new xs(...n)),t.set(`bezierVertex-${rr}`,(r,...n)=&amp;amp;gt;new Du(r,...n)),t.set(`splineVertex-${dn}`,(...r)=&amp;amp;gt;new xs(...r)),t.set(`splineVertex-${rr}`,(...r)=&amp;amp;gt;new Fu(...r)),this.creators=t}get(t,r){let n=`${t}-${r}`;return this.creators.get(n)}set(t,r,n){let s=`${t}-${r}`;this.creators.set(s,n)}clear(){this.creators.clear()}},Oa=class{#e;#t;#r;#n=3;kind=null;contours=[];_splineProperties={tightness:0,ends:$i};userVertexProperties=null;constructor(t,r=new qh){this.#t=t,this.#e=t,this.#r=r;for(let n in this.#e)n!==&amp;amp;quot;position&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!==&amp;amp;quot;textureCoordinates&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this[n]=function(s){this.#e[n]=s})}serializeToArray(t){if(t==null)return[];if(t instanceof Number)return[t];if(t instanceof Array)return t;if(t.array instanceof Function)return t.array();throw new Error(`Can&amp;amp;#39;t convert ${t} to array!`)}vertexToArray(t){let r=[];for(let n in this.#e){if(this.userVertexProperties&amp;amp;amp;&amp;amp;amp;n in this.userVertexProperties)continue;let s=t[n];r.push(...this.serializeToArray(s))}for(let n in this.userVertexProperties)n in t?r.push(...this.serializeToArray(t[n])):r.push(...new Array(this.userVertexProperties[n]).fill(0));return r}hydrateValue(t,r){if(r===null)return null;if(r instanceof Number)return t.shift();if(r instanceof Array){let n=[];for(let s=0;s&amp;amp;lt;r.length;s++)n.push(t.shift());return n}else{if(r instanceof H)return new H(t.shift(),t.shift(),t.shift());if(r instanceof Qe){let n=[t.shift(),t.shift(),t.shift(),t.shift()];return new Qe(n)}}}arrayToVertex(t){let r={},n=[...t];for(let s in this.#e){if(this.userVertexProperties&amp;amp;amp;&amp;amp;amp;s in this.userVertexProperties)continue;let a=this.#e[s];r[s]=this.hydrateValue(n,a)}for(let s in this.userVertexProperties){let a=this.#e[s];r[s]=this.hydrateValue(n,a)}return r}arrayScale(t,r){return t.map(n=&amp;amp;gt;n*r)}arraySum(t,...r){return t.map((n,s)=&amp;amp;gt;{let a=n;for(let o=0;o&amp;amp;lt;r.length;o++)a+=r[o][s];return a})}arrayMinus(t,r){return t.map((n,s)=&amp;amp;gt;n-r[s])}evaluateCubicBezier([t,r,n,s],a){return this.arraySum(this.arrayScale(t,Math.pow(1-a,3)),this.arrayScale(r,3*Math.pow(1-a,2)*a),this.arrayScale(n,3*(1-a)*Math.pow(a,2)),this.arrayScale(s,Math.pow(a,3)))}evaluateQuadraticBezier([t,r,n],s){return this.arraySum(this.arrayScale(t,Math.pow(1-s,2)),this.arrayScale(r,2*(1-s)*s),this.arrayScale(n,s*s))}catmullRomToBezier(t,r){let n=1-r,s=[];for(let a=0;a+3&amp;amp;lt;t.length;a++){let[o,u,h,l]=t.slice(a,a+4),c=this.arraySum(u,this.arrayScale(this.arrayMinus(h,o),n/6)),p=this.arraySum(h,this.arrayScale(this.arrayMinus(u,l),n/6)),f=h;s.push([c,p,f])}return s}at(t,r,n){let s,a;switch(s=this.contours.at(t),arguments.length){case 1:return s;case 2:return s.primitives.at(r);case 3:return a=s.primitives.at(r),a.vertices.at(n)}}reset(){this.#e={...this.#t},this.kind=null,this.contours=[],this.userVertexProperties=null}vertexProperty(t,r){this.userVertexProperties=this.userVertexProperties||{};let n=this.vertexPropertyKey(t),s=Array.isArray(r)?r:[r];this.userVertexProperties[n]||(this.userVertexProperties[n]=s.length),this.#e[n]=s}vertexPropertyName(t){return t.replace(/Src$/,&amp;amp;quot;&amp;amp;quot;)}vertexPropertyKey(t){return t+&amp;amp;quot;Src&amp;amp;quot;}bezierOrder(...t){this.#n=t}splineProperty(t,r){this._splineProperties[t]=r}splineProperties(t){if(t)for(let r in t)this.splineProperty(r,t[r]);else return this._splineProperties}#s(t,r){return this.#e.position=t,r!==void 0&amp;amp;amp;&amp;amp;amp;(this.#e.textureCoordinates=r),new Eu(this.#e)}#a(t,r,...n){let s=this.#r.get(t,r);return t===&amp;amp;quot;bezierVertex&amp;amp;quot;?s(this.#n,...n):s(...n)}#i(t,r,n){let s=t,a=this.at(-1).kind,o=this.#s(r,n);return this.#a(s,a,o).addToShape(this)}vertex(t,r,{isClosing:n=!1}={}){let s=this.#i(&amp;amp;quot;vertex&amp;amp;quot;,t,r);s.isClosing=n}bezierVertex(t,r){this.#i(&amp;amp;quot;bezierVertex&amp;amp;quot;,t,r)}splineVertex(t,r){this.#i(&amp;amp;quot;splineVertex&amp;amp;quot;,t,r)}arcVertex(t,r){this.#i(&amp;amp;quot;arcVertex&amp;amp;quot;,t,r)}beginContour(t=rr){this.at(-1)?.kind===dn&amp;amp;amp;&amp;amp;amp;this.contours.pop(),this.contours.push(new Su(t))}endContour(t=Xr,r=this.contours.length-1){let n=this.at(r);if(t===mn){let s=n.kind===rr,a=this.at(r,0,0),o=Object.hasOwn(a,&amp;amp;quot;position&amp;amp;quot;),u=this.at(r,-1);if(s&amp;amp;amp;&amp;amp;amp;o)if(u.handlesClose())u.close(a);else{let h=this.contours.splice(r+1,this.contours.length-r-1),l=this.#e;this.#e={...l};for(let c in a)[&amp;amp;quot;position&amp;amp;quot;,&amp;amp;quot;textureCoordinates&amp;amp;quot;].includes(c)||(this.#e[c]=a[c]);this.vertex(a.position,a.textureCoordinates,{isClosing:!0}),this.#e=l,this.contours.push(...h)}}}beginShape(t=rr){this.kind=t,this.beginContour(t)}endShape(t=Xr){t===mn&amp;amp;amp;&amp;amp;amp;this.endContour(t,0)}accept(t){for(let r of this.contours)r.accept(t)}},bs=class i{constructor(){if(this.constructor===i)throw new Error(&amp;amp;quot;PrimitiveVisitor is an abstract class: it cannot be instantiated.&amp;amp;quot;)}visitAnchor(t){throw new Error(&amp;amp;quot;Method visitAnchor() has not been implemented.&amp;amp;quot;)}visitLineSegment(t){throw new Error(&amp;amp;quot;Method visitLineSegment() has not been implemented.&amp;amp;quot;)}visitBezierSegment(t){throw new Error(&amp;amp;quot;Method visitBezierSegment() has not been implemented.&amp;amp;quot;)}visitSplineSegment(t){throw new Error(&amp;amp;quot;Method visitSplineSegment() has not been implemented.&amp;amp;quot;)}visitArcSegment(t){throw new Error(&amp;amp;quot;Method visitArcSegment() has not been implemented.&amp;amp;quot;)}visitPoint(t){throw new Error(&amp;amp;quot;Method visitPoint() has not been implemented.&amp;amp;quot;)}visitLine(t){throw new Error(&amp;amp;quot;Method visitLine() has not been implemented.&amp;amp;quot;)}visitTriangle(t){throw new Error(&amp;amp;quot;Method visitTriangle() has not been implemented.&amp;amp;quot;)}visitQuad(t){throw new Error(&amp;amp;quot;Method visitQuad() has not been implemented.&amp;amp;quot;)}visitTriangleFan(t){throw new Error(&amp;amp;quot;Method visitTriangleFan() has not been implemented.&amp;amp;quot;)}visitTriangleStrip(t){throw new Error(&amp;amp;quot;Method visitTriangleStrip() has not been implemented.&amp;amp;quot;)}visitQuadStrip(t){throw new Error(&amp;amp;quot;Method visitQuadStrip() has not been implemented.&amp;amp;quot;)}},Va=class extends bs{path=new Path2D;strokeWeight;constructor({strokeWeight:t}){super(),this.strokeWeight=t}visitAnchor(t){let r=t.getEndVertex();this.path.moveTo(r.position.x,r.position.y)}visitLineSegment(t){if(t.isClosing)this.path.closePath();else{let r=t.getEndVertex();this.path.lineTo(r.position.x,r.position.y)}}visitBezierSegment(t){let[r,n,s]=t.vertices;switch(t.order){case 2:this.path.quadraticCurveTo(r.position.x,r.position.y,n.position.x,n.position.y);break;case 3:this.path.bezierCurveTo(r.position.x,r.position.y,n.position.x,n.position.y,s.position.x,s.position.y);break}}visitSplineSegment(t){let r=t._shape;if(t._splineProperties.ends===_n&amp;amp;amp;&amp;amp;amp;!t._comesAfterSegment){let a=t._firstInterpolatedVertex;this.path.moveTo(a.position.x,a.position.y)}let n=t.getControlPoints().map(a=&amp;amp;gt;r.vertexToArray(a)),s=r.catmullRomToBezier(n,t._splineProperties.tightness).map(a=&amp;amp;gt;a.map(o=&amp;amp;gt;r.arrayToVertex(o)));for(let a of s){let o=a.flatMap(u=&amp;amp;gt;[u.position.x,u.position.y]);this.path.bezierCurveTo(...o)}}visitPoint(t){let{x:r,y:n}=t.vertices[0].position;this.path.moveTo(r,n),this.path.lineTo(r+1e-5,n)}visitLine(t){let{x:r,y:n}=t.vertices[0].position,{x:s,y:a}=t.vertices[1].position;this.path.moveTo(r,n),this.path.lineTo(s,a)}visitTriangle(t){let[r,n,s]=t.vertices;this.path.moveTo(r.position.x,r.position.y),this.path.lineTo(n.position.x,n.position.y),this.path.lineTo(s.position.x,s.position.y),this.path.closePath()}visitQuad(t){let[r,n,s,a]=t.vertices;this.path.moveTo(r.position.x,r.position.y),this.path.lineTo(n.position.x,n.position.y),this.path.lineTo(s.position.x,s.position.y),this.path.lineTo(a.position.x,a.position.y),this.path.closePath()}visitTriangleFan(t){let[r,...n]=t.vertices;for(let s=0;s&amp;amp;lt;n.length-1;s++){let a=n[s],o=n[s+1];this.path.moveTo(r.position.x,r.position.y),this.path.lineTo(a.position.x,a.position.y),this.path.lineTo(o.position.x,o.position.y),this.path.closePath()}}visitTriangleStrip(t){for(let r=0;r&amp;amp;lt;t.vertices.length-2;r++){let n=t.vertices[r],s=t.vertices[r+1],a=t.vertices[r+2];this.path.moveTo(n.position.x,n.position.y),this.path.lineTo(s.position.x,s.position.y),this.path.lineTo(a.position.x,a.position.y),this.path.closePath()}}visitQuadStrip(t){for(let r=0;r&amp;amp;lt;t.vertices.length-3;r+=2){let n=t.vertices[r],s=t.vertices[r+1],a=t.vertices[r+2],o=t.vertices[r+3];this.path.moveTo(n.position.x,n.position.y),this.path.lineTo(s.position.x,s.position.y),this.path.lineTo(o.position.x,o.position.y),this.path.lineTo(a.position.x,a.position.y),this.path.closePath()}}},Ua=class extends bs{contours=[];curveDetail;constructor({curveDetail:t=1}={}){super(),this.curveDetail=t}lastContour(){return this.contours[this.contours.length-1]}visitAnchor(t){this.contours.push([]);let r=t._nextPrimitive;r?.canOverrideAnchor?this.lastContour().push(r._firstInterpolatedVertex):this.lastContour().push(t.getEndVertex())}visitLineSegment(t){this.lastContour().push(t.getEndVertex())}visitBezierSegment(t){let r=this.lastContour(),n=Math.max(1,Math.ceil(t.hullLength()*this.curveDetail)),s=[t.getStartVertex(),...t.vertices].map(a=&amp;amp;gt;t._shape.vertexToArray(a));for(let a=0;a&amp;amp;lt;n;a++){let o=(a+1)/n;r.push(t._shape.arrayToVertex(t.order===3?t._shape.evaluateCubicBezier(s,o):t._shape.evaluateQuadraticBezier(s,o)))}}visitSplineSegment(t){let r=t._shape,n=this.lastContour(),s=t.getControlPoints().map(u=&amp;amp;gt;r.vertexToArray(u)),a=r.catmullRomToBezier(s,t._splineProperties.tightness),o=r.vertexToArray(t._firstInterpolatedVertex);for(let u of a){let h=[o,...u],l=Math.max(1,Math.ceil(Jd(h.map(c=&amp;amp;gt;r.arrayToVertex(c)))*this.curveDetail));for(let c=0;c&amp;amp;lt;l;c++){let p=(c+1)/l;n.push(r.arrayToVertex(r.evaluateCubicBezier(h,p)))}o=u[2]}}visitPoint(t){this.contours.push(t.vertices.slice())}visitLine(t){this.contours.push(t.vertices.slice())}visitTriangle(t){this.contours.push(t.vertices.slice())}visitQuad(t){this.contours.push(t.vertices.slice())}visitTriangleFan(t){this.contours.push(t.vertices.slice())}visitTriangleStrip(t){this.contours.push(t.vertices.slice())}visitQuadStrip(t){this.contours.push(t.vertices.slice())}},Zh=class extends bs{constructor(){super()}};function Ga(i,t){i.Shape=Oa,i.Contour=Su,i.ShapePrimitive=xr,i.Vertex=Eu,i.Anchor=xs,i.Segment=Nn,i.LineSegment=Au,i.BezierSegment=Du,i.SplineSegment=Fu,i.Point=Tu,i.Line=Nu,i.Triangle=Iu,i.Quad=ku,i.TriangleFan=Mu,i.TriangleStrip=Lu,i.QuadStrip=Ru,i.PrimitiveVisitor=bs,i.PrimitiveToPath2DConverter=Va,i.PrimitiveToVerticesConverter=Ua,i.PointAtLengthGetter=Zh,t.bezierOrder=function(r){return this._renderer.bezierOrder(r)},t.splineVertex=function(...r){let n=0,s=0,a=0,o=0,u=0;r.length===2?[n,s]=r:r.length===4?[n,s,o,u]=r:r.length===3?[n,s,a]=r:r.length===5&amp;amp;amp;&amp;amp;amp;([n,s,a,o,u]=r),this._renderer.splineVertex(n,s,a,o,u)},t.splineProperty=function(r,n){return this._renderer.splineProperty(r,n)},t.splineProperties=function(r){return this._renderer.splineProperties(r)},t.vertex=function(r,n){let s,a,o;s=a=o=0,arguments.length===3?s=arguments[2]:arguments.length===4?(a=arguments[2],o=arguments[3]):arguments.length===5&amp;amp;amp;&amp;amp;amp;(s=arguments[2],a=arguments[3],o=arguments[4]),this._renderer.vertex(r,n,s,a,o)},t.beginContour=function(r){this._renderer.beginContour(r)},t.endContour=function(r=Xr){this._renderer.endContour(r)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ga(p5,p5.prototype);var Bu=class{#e={};constructor(t){for(let r in t)this[r]=t[r]}setValue(t,r){t in this.#e||(this.#e[t]=this[t]),this[t]=r}getDiff(){let t=this.#e;return this.#e={},t}getModified(){return this.#e}applyDiff(t){for(let r in this.#e)this[r]=this.#e[r];this.#e=t}};var em=Se(Bt());function za(i,t,r){let s=_s(t,r)[0],a=i;a instanceof Blob||(a=new Blob([i])),em.saveAs(a,s)}function _s(i,t){(!t||t===!0||t===&amp;amp;quot;true&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(t=&amp;amp;quot;&amp;amp;quot;),i||(i=&amp;amp;quot;untitled&amp;amp;quot;);let r=&amp;amp;quot;&amp;amp;quot;;return i&amp;amp;amp;&amp;amp;amp;i.includes(&amp;amp;quot;.&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(r=i.split(&amp;amp;quot;.&amp;amp;quot;).pop()),t&amp;amp;amp;&amp;amp;amp;r!==t&amp;amp;amp;&amp;amp;amp;(r=t,i=`${i}.${r}`),[i,r]}var ar=class i{constructor(t,r){this.width=t,this.height=r,this.canvas=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),this.canvas.width=this.width,this.canvas.height=this.height,this.drawingContext=this.canvas.getContext(&amp;amp;quot;2d&amp;amp;quot;),this._pixelsState=this,this._pixelDensity=1,this.gifProperties=null,this._modified=!1,this.pixels=[]}pixelDensity(t){return typeof t&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(t&amp;amp;lt;=0&amp;amp;amp;&amp;amp;amp;(t=1),this._pixelDensity=t,this.width/=t,this.height/=t,this):this._pixelDensity}_animateGif(t){let r=this.gifProperties,n=t._lastRealFrameTime||window.performance.now();if(r.lastChangeTime===0&amp;amp;amp;&amp;amp;amp;(r.lastChangeTime=n),r.playing){r.timeDisplayed=n-r.lastChangeTime;let s=r.frames[r.displayIndex].delay;if(r.timeDisplayed&amp;amp;gt;=s){let a=Math.floor(r.timeDisplayed/s);if(r.timeDisplayed=0,r.lastChangeTime=n,r.displayIndex+=a,r.loopCount=Math.floor(r.displayIndex/r.numFrames),r.loopLimit!==null&amp;amp;amp;&amp;amp;amp;r.loopCount&amp;amp;gt;=r.loopLimit)r.playing=!1;else{let o=r.displayIndex%r.numFrames;this.drawingContext.putImageData(r.frames[o].image,0,0),r.displayIndex=o,this.setModified(!0)}}}}loadPixels(){let t=this._pixelsState,r=this._pixelDensity,n=this.width*r,s=this.height*r,a=this.drawingContext.getImageData(0,0,n,s);t.imageData=a,this.pixels=t.pixels=a.data,this.setModified(!0)}updatePixels(t,r,n,s){let a=this._pixelsState,o=this._pixelDensity;t===void 0&amp;amp;amp;&amp;amp;amp;r===void 0&amp;amp;amp;&amp;amp;amp;n===void 0&amp;amp;amp;&amp;amp;amp;s===void 0&amp;amp;amp;&amp;amp;amp;(t=0,r=0,n=this.width,s=this.height),t*=o,r*=o,n*=o,s*=o,this.gifProperties&amp;amp;amp;&amp;amp;amp;(this.gifProperties.frames[this.gifProperties.displayIndex].image=a.imageData),this.drawingContext.putImageData(a.imageData,t,r,0,0,n,s),this.setModified(!0)}get(t,r,n,s){let a=this._pixelsState,o=this._pixelDensity,u=this.canvas;if(typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)t=r=0,n=a.width,s=a.height;else if(t*=o,r*=o,typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return t&amp;amp;lt;0||r&amp;amp;lt;0||t&amp;amp;gt;=u.width||r&amp;amp;gt;=u.height?[0,0,0,0]:this._getPixel(t,r);let h=new i(n*o,s*o);return h.pixelDensity(o),h.canvas.getContext(&amp;amp;quot;2d&amp;amp;quot;).drawImage(u,t,r,n*o,s*o,0,0,n*o,s*o),h}_getPixel(t,r){let n,s;return n=this.drawingContext.getImageData(t,r,1,1).data,s=0,[n[s+0],n[s+1],n[s+2],n[s+3]]}set(t,r,n){t=Math.floor(t),r=Math.floor(r);let s=this._pixelsState;if(n instanceof i)this.drawingContext.save(),this.drawingContext.setTransform(1,0,0,1,0,0),this.drawingContext.scale(this._pixelDensity,this._pixelDensity),this.drawingContext.clearRect(t,r,n.width,n.height),this.drawingContext.drawImage(n.canvas,t,r),this.drawingContext.restore();else{let a=0,o=0,u=0,h=0,l=4*(r*this._pixelDensity*(this.width*this._pixelDensity)+t*this._pixelDensity);if(s.imageData||s.loadPixels(),typeof n==&amp;amp;quot;number&amp;amp;quot;)l&amp;amp;lt;s.pixels.length&amp;amp;amp;&amp;amp;amp;(a=n,o=n,u=n,h=255);else if(Array.isArray(n)){if(n.length&amp;amp;lt;4)throw new Error(&amp;amp;quot;pixel array must be of the form [R, G, B, A]&amp;amp;quot;);l&amp;amp;lt;s.pixels.length&amp;amp;amp;&amp;amp;amp;(a=n[0],o=n[1],u=n[2],h=n[3])}else n instanceof p5.Color&amp;amp;amp;&amp;amp;amp;l&amp;amp;lt;s.pixels.length&amp;amp;amp;&amp;amp;amp;([a,o,u,h]=n._getRGBA([255,255,255,255]));for(let c=0;c&amp;amp;lt;this._pixelDensity;c++)for(let p=0;p&amp;amp;lt;this._pixelDensity;p++)l=4*((r*this._pixelDensity+p)*this.width*this._pixelDensity+(t*this._pixelDensity+c)),s.pixels[l]=a,s.pixels[l+1]=o,s.pixels[l+2]=u,s.pixels[l+3]=h}this.setModified(!0)}resize(t,r){t===0&amp;amp;amp;&amp;amp;amp;r===0?(t=this.canvas.width,r=this.canvas.height):t===0?t=this.canvas.width*r/this.canvas.height:r===0&amp;amp;amp;&amp;amp;amp;(r=this.canvas.height*t/this.canvas.width),t=Math.floor(t),r=Math.floor(r);let n=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;);if(n.width=t,n.height=r,this.gifProperties){let s=this.gifProperties,a=(o,u)=&amp;amp;gt;{let h=0;for(let l=0;l&amp;amp;lt;u.height;l++)for(let c=0;c&amp;amp;lt;u.width;c++){let p=Math.floor(c*o.width/u.width),d=(Math.floor(l*o.height/u.height)*o.width+p)*4;u.data[h++]=o.data[d++],u.data[h++]=o.data[d++],u.data[h++]=o.data[d++],u.data[h++]=o.data[d++]}};for(let o=0;o&amp;amp;lt;s.numFrames;o++){let u=this.drawingContext.createImageData(t,r);a(s.frames[o].image,u),s.frames[o].image=u}}n.getContext(&amp;amp;quot;2d&amp;amp;quot;).drawImage(this.canvas,0,0,this.canvas.width,this.canvas.height,0,0,n.width,n.height),this.canvas.width=this.width=t,this.canvas.height=this.height=r,this.drawingContext.drawImage(n,0,0,t,r,0,0,t,r),this.pixels.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.loadPixels(),this.setModified(!0)}copy(...t){let r,n,s,a,o,u,h,l,c;if(t.length===9)r=t[0],n=t[1],s=t[2],a=t[3],o=t[4],u=t[5],h=t[6],l=t[7],c=t[8];else if(t.length===8)r=this,n=t[0],s=t[1],a=t[2],o=t[3],u=t[4],h=t[5],l=t[6],c=t[7];else throw new Error(&amp;amp;quot;Signature not supported&amp;amp;quot;);this._copyHelper(this,r,n,s,a,o,u,h,l,c)}_copyHelper(t,r,n,s,a,o,u,h,l,c){let p=r.canvas.width/r.width,f=0,d=0;r._renderer&amp;amp;amp;&amp;amp;amp;r._renderer.isP3D&amp;amp;amp;&amp;amp;amp;(f=r.width/2,d=r.height/2),t._renderer&amp;amp;amp;&amp;amp;amp;t._renderer.isP3D?(t.push(),t.resetMatrix(),t.noLights(),t.blendMode(t.BLEND),t.imageMode(t.CORNER),t._renderer.image(r,n+f,s+d,a,o,u,h,l,c),t.pop()):t.drawingContext.drawImage(r.canvas,p*(n+f),p*(s+d),p*a,p*o,u,h,l,c)}mask(t){t===void 0&amp;amp;amp;&amp;amp;amp;(t=this);let r=this.drawingContext.globalCompositeOperation,n=this._pixelDensity,s=1;t instanceof ke&amp;amp;amp;&amp;amp;amp;(s=t._pInst._renderer._pixelDensity);let a=[t,0,0,s*t.width,s*t.height,0,0,n*this.width,n*this.height];if(this.drawingContext.globalCompositeOperation=&amp;amp;quot;destination-in&amp;amp;quot;,this.gifProperties){for(let o=0;o&amp;amp;lt;this.gifProperties.frames.length;o++)this.drawingContext.putImageData(this.gifProperties.frames[o].image,0,0),this.copy(...a),this.gifProperties.frames[o].image=this.drawingContext.getImageData(0,0,n*this.width,n*this.height);this.drawingContext.putImageData(this.gifProperties.frames[this.gifProperties.displayIndex].image,0,0)}else this.copy(...a);this.drawingContext.globalCompositeOperation=r,this.setModified(!0)}filter(t,r){Xe.apply(this.canvas,Xe[t],r),this.setModified(!0)}blend(...t){let r=this.drawingContext.globalCompositeOperation,n=t[t.length-1],s=Array.prototype.slice.call(t,0,t.length-1);this.drawingContext.globalCompositeOperation=n,this.copy(...s),this.drawingContext.globalCompositeOperation=r,this.setModified(!0)}setModified(t){this._modified=t}isModified(){return this._modified}save(t,r){if(this.gifProperties)Lx(this,t);else{let n=this.canvas;r=r||_s(t,r)[1]||&amp;amp;quot;png&amp;amp;quot;;let s;switch(r){default:s=&amp;amp;quot;image/png&amp;amp;quot;;break;case&amp;amp;quot;webp&amp;amp;quot;:s=&amp;amp;quot;image/webp&amp;amp;quot;;break;case&amp;amp;quot;jpeg&amp;amp;quot;:case&amp;amp;quot;jpg&amp;amp;quot;:s=&amp;amp;quot;image/jpeg&amp;amp;quot;;break}n.toBlob(a=&amp;amp;gt;{za(a,t,r)},s)}}async toBlob(){return new Promise(t=&amp;amp;gt;{this.canvas.toBlob(t)})}reset(){if(this.gifProperties){let t=this.gifProperties;t.playing=!0,t.timeSinceStart=0,t.timeDisplayed=0,t.lastChangeTime=0,t.loopCount=0,t.displayIndex=0,this.drawingContext.putImageData(t.frames[0].image,0,0)}}getCurrentFrame(){if(this.gifProperties){let t=this.gifProperties;return t.displayIndex%t.numFrames}}setFrame(t){if(this.gifProperties){let r=this.gifProperties;t&amp;amp;lt;r.numFrames&amp;amp;amp;&amp;amp;amp;t&amp;amp;gt;=0?(r.timeDisplayed=0,r.lastChangeTime=0,r.displayIndex=t,this.drawingContext.putImageData(r.frames[t].image,0,0)):console.log(&amp;amp;quot;Cannot set GIF to a frame number that is higher than total number of frames or below zero.&amp;amp;quot;)}}numFrames(){if(this.gifProperties)return this.gifProperties.numFrames}play(){this.gifProperties&amp;amp;amp;&amp;amp;amp;(this.gifProperties.playing=!0)}pause(){this.gifProperties&amp;amp;amp;&amp;amp;amp;(this.gifProperties.playing=!1)}delay(t,r){if(this.gifProperties){let n=this.gifProperties;if(r&amp;amp;lt;n.numFrames&amp;amp;amp;&amp;amp;amp;r&amp;amp;gt;=0)n.frames[r].delay=t;else for(let s of n.frames)s.delay=t}}};function Lx(i,t){let r=i.gifProperties,n=r.loopLimit;n===1?n=null:n===null&amp;amp;amp;&amp;amp;amp;(n=0);let s=new Uint8Array(i.width*i.height*r.numFrames),a=[],o={};for(let y=0;y&amp;amp;lt;r.numFrames;y++){let S=new Set,_=r.frames[y].image.data,b=_.length,I=new Uint32Array(i.width*i.height);for(let A=0,C=0;A&amp;amp;lt;b;A+=4,C++){let T=_[A+0],D=_[A+1],F=_[A+2],N=T&amp;amp;lt;&amp;amp;lt;16|D&amp;amp;lt;&amp;amp;lt;8|F&amp;amp;lt;&amp;amp;lt;0;S.add(N),I[C]=N}let E=[...S].sort().toString();o[E]===void 0?o[E]={freq:1,frames:[y]}:(o[E].freq+=1,o[E].frames.push(y)),a.push(I)}let u=[],h=Object.keys(o).sort(function(y,S){return o[S].freq-o[y].freq}),l=h[0].split(&amp;amp;quot;,&amp;amp;quot;).map(y=&amp;amp;gt;parseInt(y));u=u.concat(o[l].frames);let c=new Set(l);for(let y=1;y&amp;amp;lt;h.length;y++){let _=h[y].split(&amp;amp;quot;,&amp;amp;quot;).map(b=&amp;amp;gt;parseInt(b)).filter(b=&amp;amp;gt;!c.has(b));if(l.length+_.length&amp;amp;lt;=256){for(let b=0;b&amp;amp;lt;_.length;b++)l.push(_[b]),c.add(_[b]);u=u.concat(o[h[y]].frames)}}u=new Set(u);let p={};for(let y=0;y&amp;amp;lt;l.length;y++)p[l[y]]||(p[l[y]]=y);let f=1;for(;f&amp;amp;lt;l.length;)f&amp;amp;lt;&amp;amp;lt;=1;l.length=f;let d={loop:n,palette:new Uint32Array(l)},m=new omggif.GifWriter(s,i.width,i.height,d),g={};for(let y=0;y&amp;amp;lt;r.numFrames;y++){let S=!u.has(y),_=S?[]:l,b=new Uint8Array(i.width*i.height),I={},E=new Set;a[y].forEach((T,D)=&amp;amp;gt;{S?(I[T]===void 0&amp;amp;amp;&amp;amp;amp;(I[T]=_.length,_.push(T)),b[D]=I[T]):b[D]=p[T],y&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;a[y-1][D]!==T&amp;amp;amp;&amp;amp;amp;E.add(T)});let A={},C=_.filter(T=&amp;amp;gt;!E.has(T));if(C.length&amp;amp;gt;0){let T=C[0],D=S?I[T]:p[T];if(y&amp;amp;gt;0){for(let F=0;F&amp;amp;lt;a[y].length;F++)a[y-1][F]===a[y][F]&amp;amp;amp;&amp;amp;amp;(b[F]=D);A.transparent=D,g.frameOpts.disposal=1}}if(A.delay=r.frames[y].delay/10,S){let T=1;for(;T&amp;amp;lt;_.length;)T&amp;amp;lt;&amp;amp;lt;=1;_.length=T,A.palette=new Uint32Array(_)}y&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;m.addFrame(0,0,i.width,i.height,g.pixelPaletteIndex,g.frameOpts),g={pixelPaletteIndex:b,frameOpts:A}}g.frameOpts.disposal=1,m.addFrame(0,0,i.width,i.height,g.pixelPaletteIndex,g.frameOpts);let v=&amp;amp;quot;gif&amp;amp;quot;,w=new Blob([s.slice(0,m.end())],{type:&amp;amp;quot;image/gif&amp;amp;quot;});za(w,t,v)}function Kh(i,t){i.Image=ar}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Kh(p5,p5.prototype);var Xh=class i{constructor(t={}){for(let r in t)this[r]=t[r]}clone(){return new i(this)}},ke=class i{static states={strokeColor:null,strokeSet:!1,fillColor:null,fillSet:!1,tint:null,imageMode:Ct,rectMode:Ct,ellipseMode:Et,strokeWeight:1,textFont:{family:&amp;amp;quot;sans-serif&amp;amp;quot;},textLeading:15,leadingSet:!1,textSize:12,textAlign:lh,textBaseline:hh,bezierOrder:3,splineProperties:new Xh({ends:$i,tightness:0}),textWrap:ph,fontStyle:ir,fontStretch:ir,fontWeight:ir,lineHeight:ir,fontVariant:ir,direction:&amp;amp;quot;inherit&amp;amp;quot;};constructor(t,r,n,s){this._pInst=t,this._isMainCanvas=s,this.pixels=[],this._pixelDensity=Math.ceil(window.devicePixelRatio)||1,this.width=r,this.height=n,this._events={},s&amp;amp;amp;&amp;amp;amp;(this._isMainCanvas=!0),this.states=new Bu(i.states),this.states.strokeColor=new Qe([0,0,0]),this.states.fillColor=new Qe([1,1,1]),this._pushPopStack=[],this._pushPopDepth=0,this._clipping=!1,this._clipInvert=!1,this._currentShape=void 0}get currentShape(){return this._currentShape||(this._currentShape=new Oa(this.getCommonVertexProperties())),this._currentShape}remove(){}pixelDensity(t){let r;return typeof t==&amp;amp;quot;number&amp;amp;quot;?(t!==this._pixelDensity&amp;amp;amp;&amp;amp;amp;(this._pixelDensity=t),r=this,this.resize(this.width,this.height)):r=this._pixelDensity,r}push(){this._pushPopDepth++,this._pushPopStack.push(this.states.getDiff())}pop(){this._pushPopDepth--;let t=this._pushPopStack.pop()||{},r=this.states.getModified();this.states.applyDiff(t),this.updateShapeVertexProperties(r),this.updateShapeProperties(r)}bezierOrder(t){if(t===void 0)return this.states.bezierOrder;this.states.setValue(&amp;amp;quot;bezierOrder&amp;amp;quot;,t),this.updateShapeProperties()}bezierVertex(t,r,n=0,s=0,a=0){let o=new H(t,r,n),u=this.getSupportedIndividualVertexProperties().textureCoordinates?new H(s,a):void 0;this.currentShape.bezierVertex(o,u)}splineProperty(t,r){if(r===void 0)return this.states.splineProperties[t];this.states.setValue(&amp;amp;quot;splineProperties&amp;amp;quot;,this.states.splineProperties.clone()),this.states.splineProperties[t]=r,this.updateShapeProperties()}splineProperties(t){if(t)for(let r in t)this.splineProperty(r,t[r]);else return{...this.states.splineProperties}}splineVertex(t,r,n=0,s=0,a=0){let o=new H(t,r,n),u=this.getSupportedIndividualVertexProperties().textureCoordinates?new H(s,a):void 0;this.currentShape.splineVertex(o,u)}curveDetail(t){if(t===void 0)return this.states.curveDetail;this.states.setValue(&amp;amp;quot;curveDetail&amp;amp;quot;,t)}beginShape(...t){this.currentShape.reset(),this.updateShapeVertexProperties(),this.currentShape.beginShape(...t)}endShape(...t){this.currentShape.endShape(...t),this.drawShape(this.currentShape)}beginContour(t){this.currentShape.beginContour(t)}endContour(t){this.currentShape.endContour(t)}drawShape(t,r){throw new Error(&amp;amp;quot;Unimplemented&amp;amp;quot;)}vertex(t,r,n=0,s=0,a=0){let o=new H(t,r,n),u=this.getSupportedIndividualVertexProperties().textureCoordinates?new H(s,a):void 0;this.currentShape.vertex(o,u)}bezier(t,r,n,s,a,o,u,h){let l=this._pInst.bezierOrder();return this._pInst.bezierOrder(l),this._pInst.beginShape(),this._pInst.bezierVertex(t,r),this._pInst.bezierVertex(n,s),this._pInst.bezierVertex(a,o),this._pInst.bezierVertex(u,h),this._pInst.endShape(),this}spline(...t){if(t.length===8){let[r,n,s,a,o,u,h,l]=t;this._pInst.beginShape(),this._pInst.splineVertex(r,n),this._pInst.splineVertex(s,a),this._pInst.splineVertex(o,u),this._pInst.splineVertex(h,l),this._pInst.endShape()}else if(t.length===12){let[r,n,s,a,o,u,h,l,c,p,f,d]=t;this._pInst.beginShape(),this._pInst.splineVertex(r,n,s),this._pInst.splineVertex(a,o,u),this._pInst.splineVertex(h,l,c),this._pInst.splineVertex(p,f,d),this._pInst.endShape()}return this}beginClip(t={}){if(this._clipping)throw new Error(&amp;amp;quot;It looks like you&amp;amp;#39;re trying to clip while already in the middle of clipping. Did you forget to endClip()?&amp;amp;quot;);this._clipping=!0,this._clipInvert=t.invert}endClip(){if(!this._clipping)throw new Error(&amp;amp;quot;It looks like you&amp;amp;#39;ve called endClip() without beginClip(). Did you forget to call beginClip() first?&amp;amp;quot;);this._clipping=!1}resize(t,r){this.width=t,this.height=r}get(t,r,n,s){let a=this._pixelDensity,o=this.canvas;if(typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)t=r=0,n=this.width,s=this.height;else if(t*=a,r*=a,typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof s&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return t&amp;amp;lt;0||r&amp;amp;lt;0||t&amp;amp;gt;=o.width||r&amp;amp;gt;=o.height?[0,0,0,0]:this._getPixel(t,r);let u=new ar(n*a,s*a);return u.pixelDensity(a),u.canvas.getContext(&amp;amp;quot;2d&amp;amp;quot;).drawImage(o,t,r,n*a,s*a,0,0,n*a,s*a),u}scale(t,r){}fill(...t){this.states.setValue(&amp;amp;quot;fillSet&amp;amp;quot;,!0),this.states.setValue(&amp;amp;quot;fillColor&amp;amp;quot;,this._pInst.color(...t)),this.updateShapeVertexProperties()}noFill(){this.states.setValue(&amp;amp;quot;fillColor&amp;amp;quot;,null)}strokeWeight(t){if(t===void 0)return this.states.strokeWeight;this.states.setValue(&amp;amp;quot;strokeWeight&amp;amp;quot;,t)}stroke(...t){this.states.setValue(&amp;amp;quot;strokeSet&amp;amp;quot;,!0),this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,this._pInst.color(...t)),this.updateShapeVertexProperties()}noStroke(){this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null)}getCommonVertexProperties(){return{}}getSupportedIndividualVertexProperties(){return{textureCoordinates:!1}}updateShapeProperties(t){if(!t||t.bezierOrder||t.splineProperties){let r=this.currentShape;r.bezierOrder(this.states.bezierOrder),r.splineProperty(&amp;amp;quot;ends&amp;amp;quot;,this.states.splineProperties.ends),r.splineProperty(&amp;amp;quot;tightness&amp;amp;quot;,this.states.splineProperties.tightness)}}updateShapeVertexProperties(t){let r=this.getCommonVertexProperties();if(!t||Object.keys(t).some(n=&amp;amp;gt;n in r)){let n=this.currentShape;for(let s in r)n[s](r[s])}}_applyDefaults(){return this}};function tm(i,t){i.Renderer=ke}var xi=class extends st{constructor(t,r){super(t,r);let n=this;this.elt.crossOrigin=&amp;amp;quot;anonymous&amp;amp;quot;,this._prevTime=0,this._cueIDCounter=0,this._cues=[],this.pixels=[],this._pixelsState=this,this._pixelDensity=1,this._modified=!1,this._frameOnCanvas=-1,Object.defineProperty(n,&amp;amp;quot;src&amp;amp;quot;,{get(){let s=n.elt.children[0].src,a=n.elt.src===window.location.href?&amp;amp;quot;&amp;amp;quot;:n.elt.src;return s===window.location.href?a:s},set(s){for(let o=0;o&amp;amp;lt;n.elt.children.length;o++)n.elt.removeChild(n.elt.children[o]);let a=document.createElement(&amp;amp;quot;source&amp;amp;quot;);a.src=s,t.appendChild(a),n.elt.src=s,n.modified=!0}}),n._onended=function(){},n.elt.onended=function(){n._onended(n)}}play(){this.elt.currentTime===this.elt.duration&amp;amp;amp;&amp;amp;amp;(this.elt.currentTime=0);let t;return this.elt.readyState&amp;amp;gt;1?t=this.elt.play():(this.elt.load(),t=this.elt.play()),t&amp;amp;amp;&amp;amp;amp;t.catch&amp;amp;amp;&amp;amp;amp;t.catch(r=&amp;amp;gt;{r.name===&amp;amp;quot;NotAllowedError&amp;amp;quot;?typeof IS_MINIFIED&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?p5._friendlyAutoplayError(this.src):console.error(r):console.error(&amp;amp;quot;Media play method encountered an unexpected error&amp;amp;quot;,r)}),this}stop(){return this.elt.pause(),this.elt.currentTime=0,this}pause(){return this.elt.pause(),this}loop(){return this.elt.setAttribute(&amp;amp;quot;loop&amp;amp;quot;,!0),this.play(),this}noLoop(){return this.elt.removeAttribute(&amp;amp;quot;loop&amp;amp;quot;),this}_setupAutoplayFailDetection(){let t=setTimeout(()=&amp;amp;gt;{typeof IS_MINIFIED&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?p5._friendlyAutoplayError(this.src):console.error(e)},500);this.elt.addEventListener(&amp;amp;quot;play&amp;amp;quot;,()=&amp;amp;gt;clearTimeout(t),{passive:!0,once:!0})}autoplay(t){let r=this.elt.getAttribute(&amp;amp;quot;autoplay&amp;amp;quot;);if(this.elt.setAttribute(&amp;amp;quot;autoplay&amp;amp;quot;,t),t&amp;amp;amp;&amp;amp;amp;!r){let n=()=&amp;amp;gt;this._setupAutoplayFailDetection();this.elt.readyState===4?n():this.elt.addEventListener(&amp;amp;quot;canplay&amp;amp;quot;,n,{passive:!0,once:!0})}return this}volume(t){if(typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return this.elt.volume;this.elt.volume=t}speed(t){if(typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return this.presetPlaybackRate||this.elt.playbackRate;this.loadedmetadata?this.elt.playbackRate=t:this.presetPlaybackRate=t}time(t){return typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?this.elt.currentTime:(this.elt.currentTime=t,this)}duration(){return this.elt.duration}_ensureCanvas(){this.canvas||(this.canvas=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),this.drawingContext=this.canvas.getContext(&amp;amp;quot;2d&amp;amp;quot;),this.setModified(!0));let t=this._frameOnCanvas!==this._pInst.frameCount;this.loadedmetadata&amp;amp;amp;&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;(this.canvas.width!==this.elt.width&amp;amp;amp;&amp;amp;amp;(this.canvas.width=this.elt.width,this.canvas.height=this.elt.height,this.width=this.canvas.width,this.height=this.canvas.height),this.drawingContext.clearRect(0,0,this.canvas.width,this.canvas.height),this.flipped===!0&amp;amp;amp;&amp;amp;amp;(this.drawingContext.save(),this.drawingContext.scale(-1,1),this.drawingContext.translate(-this.canvas.width,0)),this.drawingContext.drawImage(this.elt,0,0,this.canvas.width,this.canvas.height),this.flipped===!0&amp;amp;amp;&amp;amp;amp;this.drawingContext.restore(),this.setModified(!0),this._frameOnCanvas=this._pInst.frameCount)}loadPixels(...t){return this._ensureCanvas(),p5.Renderer2D.prototype.loadPixels.apply(this,t)}updatePixels(t,r,n,s){return this.loadedmetadata&amp;amp;amp;&amp;amp;amp;(this._ensureCanvas(),p5.Renderer2D.prototype.updatePixels.call(this,t,r,n,s)),this.setModified(!0),this}get(...t){return this._ensureCanvas(),p5.Renderer2D.prototype.get.apply(this,t)}_getPixel(...t){return this.loadPixels(),p5.Renderer2D.prototype._getPixel.apply(this,t)}set(t,r,n){this.loadedmetadata&amp;amp;amp;&amp;amp;amp;(this._ensureCanvas(),p5.Renderer2D.prototype.set.call(this,t,r,n),this.setModified(!0))}copy(...t){this._ensureCanvas(),fn.copy.apply(this,t)}mask(...t){this.loadPixels(),this.setModified(!0),p5.Image.prototype.mask.apply(this,t)}isModified(){return this._modified}setModified(t){this._modified=t}onended(t){return this._onended=t,this}connect(t){let r,n;if(typeof fn.getAudioContext==&amp;amp;quot;function&amp;amp;quot;)r=fn.getAudioContext(),n=p5.soundOut.input;else try{r=t.context,n=r.destination}catch{throw&amp;amp;quot;connect() is meant to be used with Web Audio API or p5.sound.js&amp;amp;quot;}this.audioSourceNode||(this.audioSourceNode=r.createMediaElementSource(this.elt),this.audioSourceNode.connect(n)),t?t.input?this.audioSourceNode.connect(t.input):this.audioSourceNode.connect(t):this.audioSourceNode.connect(n)}disconnect(){if(this.audioSourceNode)this.audioSourceNode.disconnect();else throw&amp;amp;quot;nothing to disconnect&amp;amp;quot;}showControls(){this.elt.style[&amp;amp;quot;text-align&amp;amp;quot;]=&amp;amp;quot;inherit&amp;amp;quot;,this.elt.controls=!0}hideControls(){this.elt.controls=!1}addCue(t,r,n){let s=this._cueIDCounter++,a=new Jh(r,t,s,n);return this._cues.push(a),this.elt.ontimeupdate||(this.elt.ontimeupdate=this._onTimeUpdate.bind(this)),s}removeCue(t){for(let r=0;r&amp;amp;lt;this._cues.length;r++)this._cues[r].id===t&amp;amp;amp;&amp;amp;amp;(console.log(t),this._cues.splice(r,1));this._cues.length===0&amp;amp;amp;&amp;amp;amp;(this.elt.ontimeupdate=null)}clearCues(){this._cues=[],this.elt.ontimeupdate=null}_onTimeUpdate(){let t=this.time();for(let r=0;r&amp;amp;lt;this._cues.length;r++){let n=this._cues[r].time,s=this._cues[r].val;this._prevTime&amp;amp;lt;n&amp;amp;amp;&amp;amp;amp;n&amp;amp;lt;=t&amp;amp;amp;&amp;amp;amp;this._cues[r].callback(s)}this._prevTime=t}},Jh=class{constructor(t,r,n,s){this.callback=t,this.time=r,this.id=n,this.val=s}};function Qh(i,t){function r(s,a,o){(a._userNode?a._userNode:document.body).appendChild(s);let h=o?new xi(s,a):new st(s,a);return a._elements.push(h),h}function n(s,a,o,u){let h=document.createElement(a);o=o||&amp;amp;quot;&amp;amp;quot;,typeof o==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=[o]);for(let c of o){let p=document.createElement(&amp;amp;quot;source&amp;amp;quot;);p.setAttribute(&amp;amp;quot;src&amp;amp;quot;,c),h.appendChild(p)}if(typeof u==&amp;amp;quot;function&amp;amp;quot;){let c=()=&amp;amp;gt;{u(),h.removeEventListener(&amp;amp;quot;canplaythrough&amp;amp;quot;,c)};h.addEventListener(&amp;amp;quot;canplaythrough&amp;amp;quot;,c)}let l=r(h,s,!0);return l.loadedmetadata=!1,h.addEventListener(&amp;amp;quot;loadedmetadata&amp;amp;quot;,()=&amp;amp;gt;{l.width=h.videoWidth,l.height=h.videoHeight,l.elt.width===0&amp;amp;amp;&amp;amp;amp;(l.elt.width=h.videoWidth),l.elt.height===0&amp;amp;amp;&amp;amp;amp;(l.elt.height=h.videoHeight),l.presetPlaybackRate&amp;amp;amp;&amp;amp;amp;(l.elt.playbackRate=l.presetPlaybackRate,delete l.presetPlaybackRate),l.loadedmetadata=!0}),l}t.createVideo=function(s,a){return n(this,&amp;amp;quot;video&amp;amp;quot;,s,a)},t.createAudio=function(s,a){return n(this,&amp;amp;quot;audio&amp;amp;quot;,s,a)},t.VIDEO=&amp;amp;quot;video&amp;amp;quot;,t.AUDIO=&amp;amp;quot;audio&amp;amp;quot;,navigator.mediaDevices===void 0&amp;amp;amp;&amp;amp;amp;(navigator.mediaDevices={}),navigator.mediaDevices.getUserMedia===void 0&amp;amp;amp;&amp;amp;amp;(navigator.mediaDevices.getUserMedia=function(s){let a=navigator.webkitGetUserMedia||navigator.mozGetUserMedia;return a?new Promise(function(o,u){a.call(navigator,s,o,u)}):Promise.reject(new Error(&amp;amp;quot;getUserMedia is not implemented in this browser&amp;amp;quot;))}),t.createCapture=function(...s){if(!(navigator.mediaDevices&amp;amp;amp;&amp;amp;amp;navigator.mediaDevices.getUserMedia))throw new DOMException(&amp;amp;quot;getUserMedia not supported in this browser&amp;amp;quot;);let a=!0,o=!0,u,h,l=!1;for(let d of s)d===t.VIDEO?o=!1:d===t.AUDIO?a=!1:typeof d==&amp;amp;quot;object&amp;amp;quot;?(d.flipped!==void 0&amp;amp;amp;&amp;amp;amp;(l=d.flipped,delete d.flipped),u=Object.assign({},u,d)):typeof d==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(h=d);u=Object.assign({},{video:a,audio:o},u);let p=document.createElement(&amp;amp;quot;video&amp;amp;quot;);p.setAttribute(&amp;amp;quot;playsinline&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;),navigator.mediaDevices.getUserMedia(u).then(function(d){try{&amp;amp;quot;srcObject&amp;amp;quot;in p?p.srcObject=d:p.src=window.URL.createObjectURL(d)}catch{p.src=d}}).catch(d=&amp;amp;gt;{d.name===&amp;amp;quot;NotFoundError&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i._friendlyError(&amp;amp;quot;No webcam found on this device&amp;amp;quot;,&amp;amp;quot;createCapture&amp;amp;quot;),d.name===&amp;amp;quot;NotAllowedError&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i._friendlyError(&amp;amp;quot;Access to the camera was denied&amp;amp;quot;,&amp;amp;quot;createCapture&amp;amp;quot;),console.error(d)});let f=r(p,this,!0);return f.loadedmetadata=!1,p.addEventListener(&amp;amp;quot;loadedmetadata&amp;amp;quot;,function(){p.play(),p.width?(f.width=p.width,f.height=p.height,l&amp;amp;amp;&amp;amp;amp;(f.elt.style.transform=&amp;amp;quot;scaleX(-1)&amp;amp;quot;)):(f.width=f.elt.width=p.videoWidth,f.height=f.elt.height=p.videoHeight),f.loadedmetadata=!0,h&amp;amp;amp;&amp;amp;amp;h(p.srcObject)}),f.flipped=l,f},i.MediaElement=xi}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Qh(p5,p5.prototype);function Rx(i,t,r,n,s){let a;return s===Ct?a={x:i,y:t,w:Math.abs(r),h:Math.abs(n)}:s===Ui?a={x:Math.min(i,r),y:Math.min(t,n),w:Math.abs(r-i),h:Math.abs(n-t)}:s===Gi?(r=Math.abs(r),n=Math.abs(n),a={x:i-r,y:t-n,w:2*r,h:2*n}):s===Et&amp;amp;amp;&amp;amp;amp;(r=Math.abs(r),n=Math.abs(n),a={x:i-r*.5,y:t-n*.5,w:r,h:n}),a}var ws={modeAdjust:Rx};function ja(i,t){t._normalizeArcAngles=(r,n,s,a,o)=&amp;amp;gt;{let h;return r=r-wt*Math.floor(r/wt),n=n-wt*Math.floor(n/wt),h=Math.min(Math.abs(r-n),wt-Math.abs(r-n)),o&amp;amp;amp;&amp;amp;amp;(r&amp;amp;lt;=Pi?r=Math.atan(s/a*Math.tan(r)):r&amp;amp;gt;Pi&amp;amp;amp;&amp;amp;amp;r&amp;amp;lt;=3*Pi?r=Math.atan(s/a*Math.tan(r))+Jo:r=Math.atan(s/a*Math.tan(r))+wt,n&amp;amp;lt;=Pi?n=Math.atan(s/a*Math.tan(n)):n&amp;amp;gt;Pi&amp;amp;amp;&amp;amp;amp;n&amp;amp;lt;=3*Pi?n=Math.atan(s/a*Math.tan(n))+Jo:n=Math.atan(s/a*Math.tan(n))+wt),r&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;(n+=wt),{start:r,stop:n,correspondToSamePoint:h&amp;amp;lt;1e-5}},t.arc=function(r,n,s,a,o,u,h,l){if(!this._renderer.states.strokeColor&amp;amp;amp;&amp;amp;amp;!this._renderer.states.fillColor)return this;if(o===u)return this;o=this._toRadians(o),u=this._toRadians(u);let c=ws.modeAdjust(r,n,s,a,this._renderer.states.ellipseMode),p=this._normalizeArcAngles(o,u,c.w,c.h,!0);return p.correspondToSamePoint?this._renderer.ellipse([c.x,c.y,c.w,c.h,l]):(this._renderer.arc(c.x,c.y,c.w,c.h,p.start,p.stop,h,l),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._accsOutput(&amp;amp;quot;arc&amp;amp;quot;,[c.x,c.y,c.w,c.h,p.start,p.stop,h])),this},t.ellipse=function(r,n,s,a,o){return this._renderEllipse(...arguments)},t.circle=function(...r){let n=r.slice(0,2);return n.push(r[2],r[2]),this._renderEllipse(...n)},t._renderEllipse=function(r,n,s,a,o){if(!this._renderer.states.strokeColor&amp;amp;amp;&amp;amp;amp;!this._renderer.states.fillColor)return this;typeof a&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a=s);let u=ws.modeAdjust(r,n,s,a,this._renderer.states.ellipseMode);return this._renderer.ellipse([u.x,u.y,u.w,u.h,o]),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._accsOutput(&amp;amp;quot;ellipse&amp;amp;quot;,[u.x,u.y,u.w,u.h]),this},t.line=function(...r){return this._renderer.states.strokeColor&amp;amp;amp;&amp;amp;amp;this._renderer.line(...r),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._accsOutput(&amp;amp;quot;line&amp;amp;quot;,r),this},t.point=function(...r){return this._renderer.states.strokeColor&amp;amp;amp;&amp;amp;amp;(r.length===1&amp;amp;amp;&amp;amp;amp;r[0]instanceof i.Vector?this._renderer.point.call(this._renderer,r[0].x,r[0].y,r[0].z):(this._renderer.point(...r),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._accsOutput(&amp;amp;quot;point&amp;amp;quot;,r))),this},t.quad=function(...r){return(this._renderer.states.strokeColor||this._renderer.states.fillColor)&amp;amp;amp;&amp;amp;amp;(this._renderer.isP3D&amp;amp;amp;&amp;amp;amp;r.length&amp;amp;lt;12?this._renderer.quad.call(this._renderer,r[0],r[1],0,r[2],r[3],0,r[4],r[5],0,r[6],r[7],0,r[8],r[9]):(this._renderer.quad(...r),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._accsOutput(&amp;amp;quot;quadrilateral&amp;amp;quot;,r))),this},t.rect=function(...r){return this._renderRect(...r)},t.square=function(r,n,s,a,o,u,h){return this._renderRect.call(this,r,n,s,s,a,o,u,h)},t._renderRect=function(){if(this._renderer.states.strokeColor||this._renderer.states.fillColor){arguments.length===3&amp;amp;amp;&amp;amp;amp;(arguments[3]=arguments[2]);let r=ws.modeAdjust(arguments[0],arguments[1],arguments[2],arguments[3],this._renderer.states.rectMode);this._renderer.states.rectMode===Ct&amp;amp;amp;&amp;amp;amp;(r.w=arguments[2],r.h=arguments[3]);let n=[r.x,r.y,r.w,r.h];for(let s=4;s&amp;amp;lt;arguments.length;s++)n[s]=arguments[s];this._renderer.rect(n),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._accsOutput(&amp;amp;quot;rectangle&amp;amp;quot;,[r.x,r.y,r.w,r.h])}return this},t.triangle=function(...r){return(this._renderer.states.strokeColor||this._renderer.states.fillColor)&amp;amp;amp;&amp;amp;amp;this._renderer.triangle(r),(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._accsOutput(&amp;amp;quot;triangle&amp;amp;quot;,r),this}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;ja(p5,p5.prototype);function $a(i,t){t.ellipseMode=function(r){return(r===Ct||r===Ui||r===Gi||r===Et)&amp;amp;amp;&amp;amp;amp;this._renderer.states.setValue(&amp;amp;quot;ellipseMode&amp;amp;quot;,r),this},t.noSmooth=function(){return this._renderer.isP3D?this.setAttributes(&amp;amp;quot;antialias&amp;amp;quot;,!1):&amp;amp;quot;imageSmoothingEnabled&amp;amp;quot;in this.drawingContext&amp;amp;amp;&amp;amp;amp;(this.drawingContext.imageSmoothingEnabled=!1),this},t.rectMode=function(r){return(r===Ct||r===Ui||r===Gi||r===Et)&amp;amp;amp;&amp;amp;amp;this._renderer.states.setValue(&amp;amp;quot;rectMode&amp;amp;quot;,r),this},t.smooth=function(){return this._renderer.isP3D?this.setAttributes(&amp;amp;quot;antialias&amp;amp;quot;,!0):&amp;amp;quot;imageSmoothingEnabled&amp;amp;quot;in this.drawingContext&amp;amp;amp;&amp;amp;amp;(this.drawingContext.imageSmoothingEnabled=!0),this},t.strokeCap=function(r){return(r===Mr||r===ma||r===da)&amp;amp;amp;&amp;amp;amp;this._renderer.strokeCap(r),this},t.strokeJoin=function(r){return(r===Mr||r===ga||r===ya)&amp;amp;amp;&amp;amp;amp;this._renderer.strokeJoin(r),this},t.strokeWeight=function(r){return this._renderer.strokeWeight(r),this}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;$a(p5,p5.prototype);function Ha(i,t){t.bezier=function(...r){return!this._renderer.states.strokeColor&amp;amp;amp;&amp;amp;amp;!this._renderer.states.fillColor?this:(this._renderer.bezier(...r),this)},t.bezierPoint=function(r,n,s,a,o){let u=1-o;return Math.pow(u,3)*r+3*Math.pow(u,2)*o*n+3*u*Math.pow(o,2)*s+Math.pow(o,3)*a},t.bezierTangent=function(r,n,s,a,o){let u=1-o;return 3*a*Math.pow(o,2)-3*s*Math.pow(o,2)+6*s*u*o-6*n*u*o+3*n*Math.pow(u,2)-3*r*Math.pow(u,2)},t.spline=function(...r){return!this._renderer.states.strokeColor&amp;amp;amp;&amp;amp;amp;!this._renderer.states.fillColor?this:(this._renderer.spline(...r),this)},t.splinePoint=function(r,n,s,a,o){let u=this._renderer.states.splineProperties.tightness,h=o*o*o,l=o*o,c=(u-1)/2*h+(1-u)*l+(u-1)/2*o,p=(u+3)/2*h+(-5-u)/2*l+1,f=(-3-u)/2*h+(u+2)*l+(1-u)/2*o,d=(1-u)/2*h+(u-1)/2*l;return r*c+n*p+s*f+a*d},t.splineTangent=function(r,n,s,a,o){let u=this._renderer.states.splineProperties.tightness,h=o*o*3,l=o*2,c=(u-1)/2*h+(1-u)*l+(u-1)/2,p=(u+3)/2*h+(-5-u)/2*l,f=(-3-u)/2*h+(u+2)*l+(1-u)/2,d=(1-u)/2*h+(u-1)/2*l;return r*c+n*p+s*f+a*d}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ha(p5,p5.prototype);function Wa(i,t){t.beginShape=function(r){this._renderer.beginShape(...arguments)},t.bezierVertex=function(...r){this._renderer.bezierVertex(...r)},t.endShape=function(r,n=1){n&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;(console.log(&amp;amp;quot;\u{1F338} p5.js says: You can not have less than one instance&amp;amp;quot;),n=1),this._renderer.endShape(r,n)},t.normal=function(r,n,s){return this._assert3d(&amp;amp;quot;normal&amp;amp;quot;),this._renderer.normal(...arguments),this},t.vertexProperty=function(r,n){this._renderer.vertexProperty(r,n)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Wa(p5,p5.prototype);function qa(i,t){t.beginClip=function(r={}){this._renderer.beginClip(r)},t.endClip=function(){this._renderer.endClip()},t.clip=function(r,n){this._renderer.beginClip(n),r(),this._renderer.endClip(n)},t.background=function(...r){return this._renderer.background(...r),this},t.clear=function(...r){let n=r[0]||0,s=r[1]||0,a=r[2]||0,o=r[3]||0;return this._renderer.clear(n,s,a,o),this},t.colorMode=function(r,n,s,a,o){if([et,It,sr,jt,Sn,ds,An,ms,Dn].includes(r)){this._renderer.states.setValue(&amp;amp;quot;colorMode&amp;amp;quot;,r),this._renderer.states.setValue(&amp;amp;quot;colorMaxes&amp;amp;quot;,this._renderer.states.colorMaxes.clone());let u=this._renderer.states.colorMaxes[r];arguments.length===2?(u[0]=n,u[1]=n,u[2]=n,u[3]=n):arguments.length===4?(u[0]=n,u[1]=s,u[2]=a):arguments.length===5&amp;amp;amp;&amp;amp;amp;(u[0]=n,u[1]=s,u[2]=a,u[3]=o)}return this._renderer.states.colorMode},t.fill=function(...r){return this._renderer.fill(...r),this},t.noFill=function(){return this._renderer.noFill(),this},t.noStroke=function(){return this._renderer.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this},t.stroke=function(...r){return this._renderer.stroke(...r),this},t.erase=function(r=255,n=255){return this._renderer.erase(r,n),this},t.noErase=function(){return this._renderer.noErase(),this},t.blendMode=function(r){r===ir&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;NORMAL has been deprecated for use in blendMode. defaulting to BLEND instead.&amp;amp;quot;),r=St),this._renderer.blendMode(r)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;qa(p5,p5.prototype);var nl=Se(or());function im(i,t,r=n=&amp;amp;gt;n){let n=Object.create(null);if(n.options=t||{},n.reviver=r,n.value=&amp;amp;quot;&amp;amp;quot;,n.entry=[],n.output=[],n.col=1,n.row=1,n.options.delimiter=n.options.delimiter===void 0?&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;:t.delimiter,n.options.delimiter.length&amp;amp;gt;1||n.options.delimiter.length===0)throw Error(`CSVError: delimiter must be one character [${n.options.separator}]`);if(n.options.separator=n.options.separator===void 0?&amp;amp;quot;,&amp;amp;quot;:t.separator,n.options.separator.length&amp;amp;gt;1||n.options.separator.length===0)throw Error(`CSVError: separator must be one character [${n.options.separator}]`);let s=new RegExp(`${Cs(n.options.delimiter)}|${Cs(n.options.separator)}|\r
   5446 <a href="#l5427" class="line" id="l5427">   5427</a> &lt;a href=&quot;#l5408&quot; class=&quot;line&quot; id=&quot;l5408&quot;&gt;   5408&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-308&amp;quot; id=&amp;quot;h4-0-308&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+|
   5447 <a href="#l5428" class="line" id="l5428">   5428</a> &lt;a href=&quot;#l5409&quot; class=&quot;line&quot; id=&quot;l5409&quot;&gt;   5409&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-309&amp;quot; id=&amp;quot;h4-0-309&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+|\r|[^${Cs(n.options.delimiter)}${Cs(n.options.separator)}\r
   5448 <a href="#l5429" class="line" id="l5429">   5429</a> &lt;a href=&quot;#l5410&quot; class=&quot;line&quot; id=&quot;l5410&quot;&gt;   5410&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-310&amp;quot; id=&amp;quot;h4-0-310&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+]+`,&amp;amp;quot;y&amp;amp;quot;),a=/^(\r\n|\n|\r)$/,o=[],u=&amp;amp;quot;&amp;amp;quot;,h=0;for(;(o=s.exec(i))!==null;)switch(u=o[0],h){case 0:switch(!0){case u===n.options.delimiter:h=3;break;case u===n.options.separator:h=0,In(n);break;case a.test(u):h=0,In(n),Ou(n);break;default:n.value+=u,h=2;break}break;case 2:switch(!0){case u===n.options.separator:h=0,In(n);break;case a.test(u):h=0,In(n),Ou(n);break;default:throw h=4,Error(`CSVError: Illegal state [row:${n.row}, col:${n.col}]`)}break;case 3:switch(!0){case u===n.options.delimiter:h=4;break;default:h=3,n.value+=u;break}break;case 4:switch(!0){case u===n.options.delimiter:h=3,n.value+=u;break;case u===n.options.separator:h=0,In(n);break;case a.test(u):h=0,In(n),Ou(n);break;default:throw Error(`CSVError: Illegal state [row:${n.row}, col:${n.col}]`)}break}return n.entry.length!==0&amp;amp;amp;&amp;amp;amp;(In(n),Ou(n)),n.output}function nm(i,t={},r=n=&amp;amp;gt;n){let n=Object.create(null);if(n.options=t,n.options.eof=n.options.eof!==void 0?n.options.eof:!0,n.row=1,n.col=1,n.output=&amp;amp;quot;&amp;amp;quot;,n.options.delimiter=n.options.delimiter===void 0?&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;:t.delimiter,n.options.delimiter.length&amp;amp;gt;1||n.options.delimiter.length===0)throw Error(`CSVError: delimiter must be one character [${n.options.separator}]`);if(n.options.separator=n.options.separator===void 0?&amp;amp;quot;,&amp;amp;quot;:t.separator,n.options.separator.length&amp;amp;gt;1||n.options.separator.length===0)throw Error(`CSVError: separator must be one character [${n.options.separator}]`);let s=new RegExp(`${Cs(n.options.delimiter)}|${Cs(n.options.separator)}|\r
   5449 <a href="#l5430" class="line" id="l5430">   5430</a> &lt;a href=&quot;#l5411&quot; class=&quot;line&quot; id=&quot;l5411&quot;&gt;   5411&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-311&amp;quot; id=&amp;quot;h4-0-311&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+|
   5450 <a href="#l5431" class="line" id="l5431">   5431</a> &lt;a href=&quot;#l5412&quot; class=&quot;line&quot; id=&quot;l5412&quot;&gt;   5412&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-312&amp;quot; id=&amp;quot;h4-0-312&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+|\r`);return i.forEach((a,o)=&amp;amp;gt;{let u=&amp;amp;quot;&amp;amp;quot;;switch(n.col=1,a.forEach((h,l)=&amp;amp;gt;{typeof h==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(h=h.replace(new RegExp(n.options.delimiter,&amp;amp;quot;g&amp;amp;quot;),`${n.options.delimiter}${n.options.delimiter}`),h=s.test(h)?`${n.options.delimiter}${h}${n.options.delimiter}`:h),u+=r(h,n.row,n.col),l!==a.length-1&amp;amp;amp;&amp;amp;amp;(u+=n.options.separator),n.col++}),!0){case n.options.eof:case(!n.options.eof&amp;amp;amp;&amp;amp;amp;o!==i.length-1):n.output+=`${u}
   5451 <a href="#l5432" class="line" id="l5432">   5432</a> &lt;a href=&quot;#l5413&quot; class=&quot;line&quot; id=&quot;l5413&quot;&gt;   5413&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-313&amp;quot; id=&amp;quot;h4-0-313&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`;break;default:n.output+=`${u}`;break}n.row++}),n.output}function In(i){let t=i.options.typed?Vx(i.value):i.value;i.entry.push(i.reviver(t,i.row,i.col)),i.value=&amp;amp;quot;&amp;amp;quot;,i.col++}function Ou(i){i.output.push(i.entry),i.entry=[],i.row++,i.col=1}function Vx(i){let t=/.\./;switch(!0){case i===&amp;amp;quot;true&amp;amp;quot;:case i===&amp;amp;quot;false&amp;amp;quot;:return i===&amp;amp;quot;true&amp;amp;quot;;case t.test(i):return parseFloat(i);case isFinite(i):return parseInt(i);default:return i}}function Cs(i){return i.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,&amp;amp;quot;\\$&amp;amp;amp;&amp;amp;quot;)}var Ns=Se(ur());function Ya(i,t){t.blend=function(...n){this._renderer?this._renderer.blend(...n):i.Renderer2D.prototype.blend.apply(this,n)},t.copy=function(...n){let s,a,o,u,h,l,c,p,f;if(n.length===9)s=n[0],a=n[1],o=n[2],u=n[3],h=n[4],l=n[5],c=n[6],p=n[7],f=n[8];else if(n.length===8)s=this,a=n[0],o=n[1],u=n[2],h=n[3],l=n[4],c=n[5],p=n[6],f=n[7];else throw new Error(&amp;amp;quot;Signature not supported&amp;amp;quot;);t._copyHelper(this,s,a,o,u,h,l,c,p,f)},t._copyHelper=(n,s,a,o,u,h,l,c,p,f)=&amp;amp;gt;{let d=s.canvas.width/s.width,m=0,g=0;s._renderer&amp;amp;amp;&amp;amp;amp;s._renderer.isP3D&amp;amp;amp;&amp;amp;amp;(m=s.width/2,g=s.height/2),n._renderer&amp;amp;amp;&amp;amp;amp;n._renderer.isP3D?(n.push(),n.resetMatrix(),n.noLights(),n.blendMode(n.BLEND),n.imageMode(n.CORNER),n._renderer.image(s,a+m,o+g,u,h,l,c,p,f),n.pop()):n.drawingContext.drawImage(s.canvas,d*(a+m),d*(o+g),d*u,d*h,l,c,p,f)},t.getFilterGraphicsLayer=function(){return this._renderer.getFilterGraphicsLayer()},t.filter=function(...n){let{shader:s,operation:a,value:o,useWebGL:u}=r(...n);if(this._renderer.isP3D&amp;amp;amp;&amp;amp;amp;s){this._renderer.filter(s);return}if(!u&amp;amp;amp;&amp;amp;amp;!this._renderer.isP3D){this.canvas!==void 0?Xe.apply(this.canvas,Xe[a],o):Xe.apply(this.elt,Xe[a],o);return}!u&amp;amp;amp;&amp;amp;amp;this._renderer.isP3D&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;filter() with useWebGL=false is not supported in WEBGL&amp;amp;quot;),this._renderer.isP3D?this._renderer.filter(a,o):(s?this._renderer.filterRenderer.setOperation(a,o,s):this._renderer.filterRenderer.setOperation(a,o),this._renderer.filterRenderer.applyFilter())};function r(...n){let s={shader:void 0,operation:void 0,value:void 0,useWebGL:!0};return n[0]instanceof i.Shader?(s.shader=n[0],s):(s.operation=n[0],n.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;typeof n[1]==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s.value=n[1]),n[n.length-1]===!1&amp;amp;amp;&amp;amp;amp;(s.useWebGL=!1),s)}t.get=function(n,s,a,o){return this._renderer.get(...arguments)},t.loadPixels=function(...n){this._renderer.loadPixels()},t.set=function(n,s,a){this._renderer.set(n,s,a)},t.updatePixels=function(n,s,a,o){this.pixels.length!==0&amp;amp;amp;&amp;amp;amp;this._renderer.updatePixels(n,s,a,o)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ya(p5,p5.prototype);var ob=Array,ub=i=&amp;amp;gt;Array.isArray(i);typeof Float32Array&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(ob=Float32Array,ub=i=&amp;amp;gt;Array.isArray(i)||i instanceof Float32Array);var zu=class i{#e=null;constructor(...t){if(this.constructor===i)throw new Error(&amp;amp;quot;Class is of abstract type and can&amp;amp;#39;t be instantiated&amp;amp;quot;);[&amp;amp;quot;add&amp;amp;quot;,&amp;amp;quot;setElement&amp;amp;quot;,&amp;amp;quot;reset&amp;amp;quot;,&amp;amp;quot;set&amp;amp;quot;,&amp;amp;quot;get&amp;amp;quot;,&amp;amp;quot;copy&amp;amp;quot;,&amp;amp;quot;clone&amp;amp;quot;,&amp;amp;quot;diagonal&amp;amp;quot;,&amp;amp;quot;row&amp;amp;quot;,&amp;amp;quot;column&amp;amp;quot;,&amp;amp;quot;transpose&amp;amp;quot;,&amp;amp;quot;mult&amp;amp;quot;,&amp;amp;quot;multiplyVec&amp;amp;quot;,&amp;amp;quot;invert&amp;amp;quot;,&amp;amp;quot;createSubMatrix3x3&amp;amp;quot;,&amp;amp;quot;inverseTranspose4x4&amp;amp;quot;,&amp;amp;quot;apply&amp;amp;quot;,&amp;amp;quot;scale&amp;amp;quot;,&amp;amp;quot;rotate4x4&amp;amp;quot;,&amp;amp;quot;translate&amp;amp;quot;,&amp;amp;quot;rotateX&amp;amp;quot;,&amp;amp;quot;rotateY&amp;amp;quot;,&amp;amp;quot;rotateZ&amp;amp;quot;,&amp;amp;quot;perspective&amp;amp;quot;,&amp;amp;quot;ortho&amp;amp;quot;,&amp;amp;quot;multiplyVec4&amp;amp;quot;,&amp;amp;quot;multiplyPoint&amp;amp;quot;,&amp;amp;quot;multiplyAndNormalizePoint&amp;amp;quot;,&amp;amp;quot;multiplyDirection&amp;amp;quot;,&amp;amp;quot;multiplyVec3&amp;amp;quot;].forEach(n=&amp;amp;gt;{if(this[n]===void 0)throw new Error(`${n}() method must be implemented`)})}};var sc=i=&amp;amp;gt;{if(Math.sqrt(Array.from(i).length)%1!==0)throw new Error(&amp;amp;quot;Array length must be a perfect square.&amp;amp;quot;);return!0},bi=Array,Mn=i=&amp;amp;gt;Array.isArray(i);typeof Float32Array&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(bi=Float32Array,Mn=i=&amp;amp;gt;Array.isArray(i)||i instanceof Float32Array);var at=class i extends zu{matrix;#e;constructor(...t){if(super(...t),Mn(t[0])&amp;amp;amp;&amp;amp;amp;sc(t[0])){let r=Math.sqrt(Array.from(t[0]).length);this.#e=r,this.matrix=bi.from(t[0])}else typeof t[0]==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.#e=Number(t[0]),this.matrix=this.#t(t[0]));return this}get mat3(){if(this.#e===3)return this.matrix}get mat4(){if(this.#e===4)return this.matrix}add(t){if(this.matrix.length!==t.matrix.length)throw new Error(&amp;amp;quot;Matrices must be of the same dimension to add.&amp;amp;quot;);for(let r=0;r&amp;amp;lt;this.matrix.length;r++)this.matrix[r]+=t.matrix[r];return this}setElement(t,r){return t&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;this.matrix.length&amp;amp;amp;&amp;amp;amp;(this.matrix[t]=r),this}reset(){return this.matrix=this.#t(this.#e),this}set(t){let r=bi.from([...arguments]);return t instanceof i?r=bi.from(t.matrix):Mn(t)&amp;amp;amp;&amp;amp;amp;(r=bi.from(t)),r.length!==this.matrix.length?(p5._friendlyError(`Expected same dimensions values but received different ${r.length}.`,&amp;amp;quot;p5.Matrix.set&amp;amp;quot;),this):(this.matrix=r,this)}get(){return new i(this.matrix)}copy(){return new i(this.matrix)}clone(){return this.copy()}diagonal(){let t=[];for(let r=0;r&amp;amp;lt;this.#e;r++)t.push(this.matrix[r*(this.#e+1)]);return t}row(t){let r=[];for(let n=0;n&amp;amp;lt;this.#e;n++)r.push(this.matrix[n*this.#e+t]);return new H(...r)}column(t){let r=[];for(let n=0;n&amp;amp;lt;this.#e;n++)r.push(this.matrix[t*this.#e+n]);return new H(...r)}transpose(t){return this.#e===4?this.#i(t):this.#e===3?this.#o(t):this.#a(t)}mult(t){let r;return t===this||t===this.matrix?r=this.copy().matrix:t instanceof i?r=t.matrix:Mn(t)&amp;amp;amp;&amp;amp;amp;sc(t)?r=t:sc(arguments)&amp;amp;amp;&amp;amp;amp;(r=Array.from(arguments)),this.#e===4&amp;amp;amp;&amp;amp;amp;r.length===16?this.#r(r):this.#e===3&amp;amp;amp;&amp;amp;amp;r.length===9?this.#s(r):this.#n(r)}multiplyVec(t,r){r===void 0&amp;amp;amp;&amp;amp;amp;(r=t.copy());for(let n=0;n&amp;amp;lt;this.#e;n++)r.values[n]=this.row(n).dot(t);return r}invert(t){if(this.#e===4)return this.#u(t);if(this.#e===3)return this.#l(t);throw new Error(&amp;amp;quot;Invert is not implemented for N&amp;amp;gt;4 at the moment, we are working on it&amp;amp;quot;)}createSubMatrix3x3(){if(this.#e===4){let t=new i(3);return t.mat3[0]=this.matrix[0],t.mat3[1]=this.matrix[1],t.mat3[2]=this.matrix[2],t.mat3[3]=this.matrix[4],t.mat3[4]=this.matrix[5],t.mat3[5]=this.matrix[6],t.mat3[6]=this.matrix[8],t.mat3[7]=this.matrix[9],t.mat3[8]=this.matrix[10],t}else throw new Error(&amp;amp;quot;Matrix dimension must be 4 to create a 3x3 submatrix.&amp;amp;quot;)}inverseTranspose4x4({mat4:t}){if(this.#e!==3)throw new Error(&amp;amp;quot;This function only works with 3\xD73 matrices.&amp;amp;quot;);this.matrix[0]=t[0],this.matrix[1]=t[1],this.matrix[2]=t[2],this.matrix[3]=t[4],this.matrix[4]=t[5],this.matrix[5]=t[6],this.matrix[6]=t[8],this.matrix[7]=t[9],this.matrix[8]=t[10];let r=this.invert();if(r)r.transpose(this.matrix);else for(let n=0;n&amp;amp;lt;9;n++)this.matrix[n]=0;return this}apply(t){let r;if(t===this||t===this.matrix)r=this.copy().matrix;else if(t instanceof i)r=t.matrix;else if(Mn(t))r=t;else if(arguments.length===16)r=arguments;else return;let n=this.matrix,s=n[0],a=n[4],o=n[8],u=n[12];n[0]=r[0]*s+r[1]*a+r[2]*o+r[3]*u,n[4]=r[4]*s+r[5]*a+r[6]*o+r[7]*u,n[8]=r[8]*s+r[9]*a+r[10]*o+r[11]*u,n[12]=r[12]*s+r[13]*a+r[14]*o+r[15]*u;let h=n[1],l=n[5],c=n[9],p=n[13];n[1]=r[0]*h+r[1]*l+r[2]*c+r[3]*p,n[5]=r[4]*h+r[5]*l+r[6]*c+r[7]*p,n[9]=r[8]*h+r[9]*l+r[10]*c+r[11]*p,n[13]=r[12]*h+r[13]*l+r[14]*c+r[15]*p;let f=n[2],d=n[6],m=n[10],g=n[14];n[2]=r[0]*f+r[1]*d+r[2]*m+r[3]*g,n[6]=r[4]*f+r[5]*d+r[6]*m+r[7]*g,n[10]=r[8]*f+r[9]*d+r[10]*m+r[11]*g,n[14]=r[12]*f+r[13]*d+r[14]*m+r[15]*g;let v=n[3],w=n[7],y=n[11],S=n[15];return n[3]=r[0]*v+r[1]*w+r[2]*y+r[3]*S,n[7]=r[4]*v+r[5]*w+r[6]*y+r[7]*S,n[11]=r[8]*v+r[9]*w+r[10]*y+r[11]*S,n[15]=r[12]*v+r[13]*w+r[14]*y+r[15]*S,this}scale(t,r,n){return t instanceof H?(r=t.y,n=t.z,t=t.x):t instanceof Array&amp;amp;amp;&amp;amp;amp;(r=t[1],n=t[2],t=t[0]),this.matrix[0]*=t,this.matrix[1]*=t,this.matrix[2]*=t,this.matrix[3]*=t,this.matrix[4]*=r,this.matrix[5]*=r,this.matrix[6]*=r,this.matrix[7]*=r,this.matrix[8]*=n,this.matrix[9]*=n,this.matrix[10]*=n,this.matrix[11]*=n,this}rotate4x4(t,r,n,s){r instanceof H?(n=r.y,s=r.z,r=r.x):r instanceof Array&amp;amp;amp;&amp;amp;amp;(n=r[1],s=r[2],r=r[0]);let a=Math.sqrt(r*r+n*n+s*s);r*=1/a,n*=1/a,s*=1/a;let o=this.matrix[0],u=this.matrix[1],h=this.matrix[2],l=this.matrix[3],c=this.matrix[4],p=this.matrix[5],f=this.matrix[6],d=this.matrix[7],m=this.matrix[8],g=this.matrix[9],v=this.matrix[10],w=this.matrix[11],y=Math.sin(t),S=Math.cos(t),_=1-S,b=r*r*_+S,I=n*r*_+s*y,E=s*r*_-n*y,A=r*n*_-s*y,C=n*n*_+S,T=s*n*_+r*y,D=r*s*_+n*y,F=n*s*_-r*y,N=s*s*_+S;return this.matrix[0]=o*b+c*I+m*E,this.matrix[1]=u*b+p*I+g*E,this.matrix[2]=h*b+f*I+v*E,this.matrix[3]=l*b+d*I+w*E,this.matrix[4]=o*A+c*C+m*T,this.matrix[5]=u*A+p*C+g*T,this.matrix[6]=h*A+f*C+v*T,this.matrix[7]=l*A+d*C+w*T,this.matrix[8]=o*D+c*F+m*N,this.matrix[9]=u*D+p*F+g*N,this.matrix[10]=h*D+f*F+v*N,this.matrix[11]=l*D+d*F+w*N,this}translate(t){let r=t[0],n=t[1],s=t[2]||0;return this.matrix[12]+=this.matrix[0]*r+this.matrix[4]*n+this.matrix[8]*s,this.matrix[13]+=this.matrix[1]*r+this.matrix[5]*n+this.matrix[9]*s,this.matrix[14]+=this.matrix[2]*r+this.matrix[6]*n+this.matrix[10]*s,this.matrix[15]+=this.matrix[3]*r+this.matrix[7]*n+this.matrix[11]*s,this}rotateX(t){this.rotate4x4(t,1,0,0)}rotateY(t){this.rotate4x4(t,0,1,0)}rotateZ(t){this.rotate4x4(t,0,0,1)}perspective(t,r,n,s){let a=1/Math.tan(t/2),o=1/(n-s);return this.matrix[0]=a/r,this.matrix[1]=0,this.matrix[2]=0,this.matrix[3]=0,this.matrix[4]=0,this.matrix[5]=a,this.matrix[6]=0,this.matrix[7]=0,this.matrix[8]=0,this.matrix[9]=0,this.matrix[10]=(s+n)*o,this.matrix[11]=-1,this.matrix[12]=0,this.matrix[13]=0,this.matrix[14]=2*s*n*o,this.matrix[15]=0,this}ortho(t,r,n,s,a,o){let u=1/(t-r),h=1/(n-s),l=1/(a-o);return this.matrix[0]=-2*u,this.matrix[1]=0,this.matrix[2]=0,this.matrix[3]=0,this.matrix[4]=0,this.matrix[5]=-2*h,this.matrix[6]=0,this.matrix[7]=0,this.matrix[8]=0,this.matrix[9]=0,this.matrix[10]=2*l,this.matrix[11]=0,this.matrix[12]=(t+r)*u,this.matrix[13]=(s+n)*h,this.matrix[14]=(o+a)*l,this.matrix[15]=1,this}multiplyVec4(t,r,n,s){let a=new Array(4),o=this.matrix;return a[0]=o[0]*t+o[4]*r+o[8]*n+o[12]*s,a[1]=o[1]*t+o[5]*r+o[9]*n+o[13]*s,a[2]=o[2]*t+o[6]*r+o[10]*n+o[14]*s,a[3]=o[3]*t+o[7]*r+o[11]*n+o[15]*s,a}multiplyPoint({x:t,y:r,z:n}){let s=this.multiplyVec4(t,r,n,1);return new H(s[0],s[1],s[2])}multiplyAndNormalizePoint({x:t,y:r,z:n}){let s=this.multiplyVec4(t,r,n,1);return s[0]/=s[3],s[1]/=s[3],s[2]/=s[3],new H(s[0],s[1],s[2])}multiplyDirection({x:t,y:r,z:n}){let s=this.multiplyVec4(t,r,n,0);return new H(s[0],s[1],s[2])}multiplyVec3(t,r){return r===void 0&amp;amp;amp;&amp;amp;amp;(r=t.copy()),r.x=this.row(0).dot(t),r.y=this.row(1).dot(t),r.z=this.row(2).dot(t),r}#t(t){if(t===3)return new bi([1,0,0,0,1,0,0,0,1]);if(t===4)return new bi([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);let r=new bi(t*t).fill(0);for(let n=0;n&amp;amp;lt;t;n++)r[n*t+n]=1;return r}#r(t){let r=this.matrix[0],n=this.matrix[1],s=this.matrix[2],a=this.matrix[3];return this.matrix[0]=r*t[0]+n*t[4]+s*t[8]+a*t[12],this.matrix[1]=r*t[1]+n*t[5]+s*t[9]+a*t[13],this.matrix[2]=r*t[2]+n*t[6]+s*t[10]+a*t[14],this.matrix[3]=r*t[3]+n*t[7]+s*t[11]+a*t[15],r=this.matrix[4],n=this.matrix[5],s=this.matrix[6],a=this.matrix[7],this.matrix[4]=r*t[0]+n*t[4]+s*t[8]+a*t[12],this.matrix[5]=r*t[1]+n*t[5]+s*t[9]+a*t[13],this.matrix[6]=r*t[2]+n*t[6]+s*t[10]+a*t[14],this.matrix[7]=r*t[3]+n*t[7]+s*t[11]+a*t[15],r=this.matrix[8],n=this.matrix[9],s=this.matrix[10],a=this.matrix[11],this.matrix[8]=r*t[0]+n*t[4]+s*t[8]+a*t[12],this.matrix[9]=r*t[1]+n*t[5]+s*t[9]+a*t[13],this.matrix[10]=r*t[2]+n*t[6]+s*t[10]+a*t[14],this.matrix[11]=r*t[3]+n*t[7]+s*t[11]+a*t[15],r=this.matrix[12],n=this.matrix[13],s=this.matrix[14],a=this.matrix[15],this.matrix[12]=r*t[0]+n*t[4]+s*t[8]+a*t[12],this.matrix[13]=r*t[1]+n*t[5]+s*t[9]+a*t[13],this.matrix[14]=r*t[2]+n*t[6]+s*t[10]+a*t[14],this.matrix[15]=r*t[3]+n*t[7]+s*t[11]+a*t[15],this}#n(t){if(t.length!==this.matrix.length)throw new Error(&amp;amp;quot;Matrices must be of the same dimension to multiply.&amp;amp;quot;);let r=new bi(this.matrix.length).fill(0);for(let n=0;n&amp;amp;lt;this.#e;n++)for(let s=0;s&amp;amp;lt;this.#e;s++)for(let a=0;a&amp;amp;lt;this.#e;a++)r[n*this.#e+s]+=this.matrix[n*this.#e+a]*t[a*this.#e+s];return this.matrix=r,this}#s(t){let r=this.mat3[0],n=this.mat3[1],s=this.mat3[2];return this.mat3[0]=r*t[0]+n*t[3]+s*t[6],this.mat3[1]=r*t[1]+n*t[4]+s*t[7],this.mat3[2]=r*t[2]+n*t[5]+s*t[8],r=this.mat3[3],n=this.mat3[4],s=this.mat3[5],this.mat3[3]=r*t[0]+n*t[3]+s*t[6],this.mat3[4]=r*t[1]+n*t[4]+s*t[7],this.mat3[5]=r*t[2]+n*t[5]+s*t[8],r=this.mat3[6],n=this.mat3[7],s=this.mat3[8],this.mat3[6]=r*t[0]+n*t[3]+s*t[6],this.mat3[7]=r*t[1]+n*t[4]+s*t[7],this.mat3[8]=r*t[2]+n*t[5]+s*t[8],this}#a(){let t=this.#e;for(let r=0;r&amp;amp;lt;t;r++)for(let n=0;n&amp;amp;lt;t;n++)this.matrix[r*t+n]=this.matrix[n*t+r];return this}#i(t){console.log(&amp;amp;quot;====&amp;amp;gt; 4x4&amp;amp;quot;);let r,n,s,a,o,u;return t instanceof i?(r=t.matrix[1],n=t.matrix[2],s=t.matrix[3],a=t.matrix[6],o=t.matrix[7],u=t.matrix[11],this.matrix[0]=t.matrix[0],this.matrix[1]=t.matrix[4],this.matrix[2]=t.matrix[8],this.matrix[3]=t.matrix[12],this.matrix[4]=r,this.matrix[5]=t.matrix[5],this.matrix[6]=t.matrix[9],this.matrix[7]=t.matrix[13],this.matrix[8]=n,this.matrix[9]=a,this.matrix[10]=t.matrix[10],this.matrix[11]=t.matrix[14],this.matrix[12]=s,this.matrix[13]=o,this.matrix[14]=u,this.matrix[15]=t.matrix[15]):Mn(t)&amp;amp;amp;&amp;amp;amp;(r=t[1],n=t[2],s=t[3],a=t[6],o=t[7],u=t[11],this.matrix[0]=t[0],this.matrix[1]=t[4],this.matrix[2]=t[8],this.matrix[3]=t[12],this.matrix[4]=r,this.matrix[5]=t[5],this.matrix[6]=t[9],this.matrix[7]=t[13],this.matrix[8]=n,this.matrix[9]=a,this.matrix[10]=t[10],this.matrix[11]=t[14],this.matrix[12]=s,this.matrix[13]=o,this.matrix[14]=u,this.matrix[15]=t[15]),this}#o(t){t===void 0&amp;amp;amp;&amp;amp;amp;(t=this.mat3);let r=t[1],n=t[2],s=t[5];return this.mat3[0]=t[0],this.mat3[1]=t[3],this.mat3[2]=t[6],this.mat3[3]=r,this.mat3[4]=t[4],this.mat3[5]=t[7],this.mat3[6]=n,this.mat3[7]=s,this.mat3[8]=t[8],this}#u(t){let r,n,s,a,o,u,h,l,c,p,f,d,m,g,v,w;t instanceof i?(r=t.matrix[0],n=t.matrix[1],s=t.matrix[2],a=t.matrix[3],o=t.matrix[4],u=t.matrix[5],h=t.matrix[6],l=t.matrix[7],c=t.matrix[8],p=t.matrix[9],f=t.matrix[10],d=t.matrix[11],m=t.matrix[12],g=t.matrix[13],v=t.matrix[14],w=t.matrix[15]):Mn(t)&amp;amp;amp;&amp;amp;amp;(r=t[0],n=t[1],s=t[2],a=t[3],o=t[4],u=t[5],h=t[6],l=t[7],c=t[8],p=t[9],f=t[10],d=t[11],m=t[12],g=t[13],v=t[14],w=t[15]);let y=r*u-n*o,S=r*h-s*o,_=r*l-a*o,b=n*h-s*u,I=n*l-a*u,E=s*l-a*h,A=c*g-p*m,C=c*v-f*m,T=c*w-d*m,D=p*v-f*g,F=p*w-d*g,N=f*w-d*v,B=y*N-S*F+_*D+b*T-I*C+E*A;return B?(B=1/B,this.matrix[0]=(u*N-h*F+l*D)*B,this.matrix[1]=(s*F-n*N-a*D)*B,this.matrix[2]=(g*E-v*I+w*b)*B,this.matrix[3]=(f*I-p*E-d*b)*B,this.matrix[4]=(h*T-o*N-l*C)*B,this.matrix[5]=(r*N-s*T+a*C)*B,this.matrix[6]=(v*_-m*E-w*S)*B,this.matrix[7]=(c*E-f*_+d*S)*B,this.matrix[8]=(o*F-u*T+l*A)*B,this.matrix[9]=(n*T-r*F-a*A)*B,this.matrix[10]=(m*I-g*_+w*y)*B,this.matrix[11]=(p*_-c*I-d*y)*B,this.matrix[12]=(u*C-o*D-h*A)*B,this.matrix[13]=(r*D-n*C+s*A)*B,this.matrix[14]=(g*S-m*b-v*y)*B,this.matrix[15]=(c*b-p*S+f*y)*B,this):null}#l(){let t=this.mat3[0],r=this.mat3[1],n=this.mat3[2],s=this.mat3[3],a=this.mat3[4],o=this.mat3[5],u=this.mat3[6],h=this.mat3[7],l=this.mat3[8],c=l*a-o*h,p=-l*s+o*u,f=h*s-a*u,d=t*c+r*p+n*f;return d?(d=1/d,this.mat3[0]=c*d,this.mat3[1]=(-l*r+n*h)*d,this.mat3[2]=(o*r-n*a)*d,this.mat3[3]=p*d,this.mat3[4]=(l*t-n*u)*d,this.mat3[5]=(-o*t+n*s)*d,this.mat3[6]=f*d,this.mat3[7]=(-h*t+r*u)*d,this.mat3[8]=(a*t-r*s)*d,this):null}#h(){if(this.#e!==4)throw new Error(&amp;amp;quot;Determinant is only implemented for 4x4 matrices. We are working on it.&amp;amp;quot;);let t=this.matrix[0]*this.matrix[5]-this.matrix[1]*this.matrix[4],r=this.matrix[0]*this.matrix[6]-this.matrix[2]*this.matrix[4],n=this.matrix[0]*this.matrix[7]-this.matrix[3]*this.matrix[4],s=this.matrix[1]*this.matrix[6]-this.matrix[2]*this.matrix[5],a=this.matrix[1]*this.matrix[7]-this.matrix[3]*this.matrix[5],o=this.matrix[2]*this.matrix[7]-this.matrix[3]*this.matrix[6],u=this.matrix[8]*this.matrix[13]-this.matrix[9]*this.matrix[12],h=this.matrix[8]*this.matrix[14]-this.matrix[10]*this.matrix[12],l=this.matrix[8]*this.matrix[15]-this.matrix[11]*this.matrix[12],c=this.matrix[9]*this.matrix[14]-this.matrix[10]*this.matrix[13],p=this.matrix[9]*this.matrix[15]-this.matrix[11]*this.matrix[13],f=this.matrix[10]*this.matrix[15]-this.matrix[11]*this.matrix[14];return t*f-r*p+n*c+s*l-a*h+o*u}};function ac(i,t){i.Matrix=at}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;ac(p5,p5.prototype);var Or=class{constructor(t=128){this.length=0,this.data=new Float32Array(t),this.initialLength=t}dataArray(){return this.subArray(0,this.length)}clear(){this.length=0}rescale(){if(this.length&amp;amp;lt;this.data.length/2){let t=1&amp;amp;lt;&amp;amp;lt;Math.ceil(Math.log2(this.length)),r=new Float32Array(t);r.set(this.data.subarray(0,this.length),0),this.data=r}}reset(){this.clear(),this.data=new Float32Array(this.initialLength)}push(...t){this.ensureLength(this.length+t.length),this.data.set(t,this.length),this.length+=t.length}slice(t,r){return this.data.slice(t,Math.min(r,this.length))}subArray(t,r){return this.data.subarray(t,Math.min(r,this.length))}ensureLength(t){for(;this.data.length&amp;amp;lt;t;){let r=new Float32Array(this.data.length*2);r.set(this.data,0),this.data=r}}};function oc(i,t){i.DataArray=Or}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;oc(p5,p5.prototype);var dt=class i{constructor(t,r,n,s){this.renderer=s,this.vertices=[],this.boundingBoxCache=null,this.lineVertices=new Or,this.lineTangentsIn=new Or,this.lineTangentsOut=new Or,this.lineSides=new Or,this.vertexNormals=[],this.faces=[],this.uvs=[],this.edges=[],this.vertexColors=[],this.vertexStrokeColors=[],this.userVertexProperties={},this.lineVertexColors=new Or,this.detailX=t!==void 0?t:1,this.detailY=r!==void 0?r:1,this.dirtyFlags={},this._hasFillTransparency=void 0,this._hasStrokeTransparency=void 0,this.gid=`_p5_Geometry_${i.nextId}`,i.nextId++,n instanceof Function&amp;amp;amp;&amp;amp;amp;n.call(this)}calculateBoundingBox(){if(this.boundingBoxCache)return this.boundingBoxCache;let t=new H(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),r=new H(Number.MIN_VALUE,Number.MIN_VALUE,Number.MIN_VALUE);for(let a=0;a&amp;amp;lt;this.vertices.length;a++){let o=this.vertices[a];t.x=Math.min(t.x,o.x),t.y=Math.min(t.y,o.y),t.z=Math.min(t.z,o.z),r.x=Math.max(r.x,o.x),r.y=Math.max(r.y,o.y),r.z=Math.max(r.z,o.z)}let n=new H(r.x-t.x,r.y-t.y,r.z-t.z),s=new H((t.x+r.x)/2,(t.y+r.y)/2,(t.z+r.z)/2);return this.boundingBoxCache={min:t,max:r,size:n,offset:s},this.boundingBoxCache}reset(){this._hasFillTransparency=void 0,this._hasStrokeTransparency=void 0,this.lineVertices.clear(),this.lineTangentsIn.clear(),this.lineTangentsOut.clear(),this.lineSides.clear(),this.vertices.length=0,this.edges.length=0,this.vertexColors.length=0,this.vertexStrokeColors.length=0,this.lineVertexColors.clear(),this.vertexNormals.length=0,this.uvs.length=0;for(let t in this.userVertexProperties)this.userVertexProperties[t].delete();this.userVertexProperties={},this.dirtyFlags={}}hasFillTransparency(){if(this._hasFillTransparency===void 0){this._hasFillTransparency=!1;for(let t=0;t&amp;amp;lt;this.vertexColors.length;t+=4)if(this.vertexColors[t+3]&amp;amp;lt;1){this._hasFillTransparency=!0;break}}return this._hasFillTransparency}hasStrokeTransparency(){if(this._hasStrokeTransparency===void 0){this._hasStrokeTransparency=!1;for(let t=0;t&amp;amp;lt;this.lineVertexColors.length;t+=4)if(this.lineVertexColors[t+3]&amp;amp;lt;1){this._hasStrokeTransparency=!0;break}}return this._hasStrokeTransparency}clearColors(){return this.vertexColors=[],this}saveObj(t=&amp;amp;quot;model.obj&amp;amp;quot;){let r=&amp;amp;quot;&amp;amp;quot;;if(this.vertices.forEach(s=&amp;amp;gt;{r+=`v ${s.x} ${s.y} ${s.z}
   5452 <a href="#l5433" class="line" id="l5433">   5433</a> &lt;a href=&quot;#l5414&quot; class=&quot;line&quot; id=&quot;l5414&quot;&gt;   5414&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-314&amp;quot; id=&amp;quot;h4-0-314&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`}),this.uvs&amp;amp;amp;&amp;amp;amp;this.uvs.length&amp;amp;gt;0)for(let s=0;s&amp;amp;lt;this.uvs.length;s+=2)r+=`vt ${this.uvs[s]} ${this.uvs[s+1]}
   5453 <a href="#l5434" class="line" id="l5434">   5434</a> &lt;a href=&quot;#l5415&quot; class=&quot;line&quot; id=&quot;l5415&quot;&gt;   5415&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-315&amp;quot; id=&amp;quot;h4-0-315&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`;this.vertexNormals&amp;amp;amp;&amp;amp;amp;this.vertexNormals.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.vertexNormals.forEach(s=&amp;amp;gt;{r+=`vn ${s.x} ${s.y} ${s.z}
   5454 <a href="#l5435" class="line" id="l5435">   5435</a> &lt;a href=&quot;#l5416&quot; class=&quot;line&quot; id=&quot;l5416&quot;&gt;   5416&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-316&amp;quot; id=&amp;quot;h4-0-316&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`}),this.faces.forEach(s=&amp;amp;gt;{let a=&amp;amp;quot;f&amp;amp;quot;;s.forEach(o=&amp;amp;gt;{a+=&amp;amp;quot; &amp;amp;quot;,a+=o+1,(this.vertexNormals.length&amp;amp;gt;0||this.uvs.length&amp;amp;gt;0)&amp;amp;amp;&amp;amp;amp;(a+=&amp;amp;quot;/&amp;amp;quot;,this.uvs.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(a+=o+1),a+=&amp;amp;quot;/&amp;amp;quot;,this.vertexNormals.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(a+=o+1))}),r+=a+`
   5455 <a href="#l5436" class="line" id="l5436">   5436</a> &lt;a href=&quot;#l5417&quot; class=&quot;line&quot; id=&quot;l5417&quot;&gt;   5417&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-317&amp;quot; id=&amp;quot;h4-0-317&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`});let n=new Blob([r],{type:&amp;amp;quot;text/plain&amp;amp;quot;});fn.downloadFile(n,t,&amp;amp;quot;obj&amp;amp;quot;)}saveStl(t=&amp;amp;quot;model.stl&amp;amp;quot;,{binary:r=!1}={}){let n,s=t.substring(0,t.lastIndexOf(&amp;amp;quot;.&amp;amp;quot;)),a=[];for(let u of this.faces){let h=H.sub(this.vertices[u[1]],this.vertices[u[0]]),l=H.sub(this.vertices[u[2]],this.vertices[u[0]]),c=h.y*l.z-h.z*l.y,p=h.z*l.x-h.x*l.z,f=h.x*l.y-h.y*l.x;a.push(new H(c,p,f).normalize())}if(r){let u=80,h=this.faces.length*2+this.faces.length*3*4*4+80+4,l=new ArrayBuffer(h);n=new DataView(l),n.setUint32(u,this.faces.length,!0),u+=4;for(let[c,p]of Object.entries(this.faces)){let f=a[c];n.setFloat32(u,f.x,!0),u+=4,n.setFloat32(u,f.y,!0),u+=4,n.setFloat32(u,f.z,!0),u+=4;for(let d of p){let m=this.vertices[d];n.setFloat32(u,m.x,!0),u+=4,n.setFloat32(u,m.y,!0),u+=4,n.setFloat32(u,m.z,!0),u+=4}n.setUint16(u,0,!0),u+=2}}else{n=&amp;amp;quot;solid &amp;amp;quot;+s+`
   5456 <a href="#l5437" class="line" id="l5437">   5437</a> &lt;a href=&quot;#l5418&quot; class=&quot;line&quot; id=&quot;l5418&quot;&gt;   5418&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-318&amp;quot; id=&amp;quot;h4-0-318&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`;for(let[u,h]of Object.entries(this.faces)){let l=a[u];n+=&amp;amp;quot; facet norm &amp;amp;quot;+l.x+&amp;amp;quot; &amp;amp;quot;+l.y+&amp;amp;quot; &amp;amp;quot;+l.z+`
   5457 <a href="#l5438" class="line" id="l5438">   5438</a> &lt;a href=&quot;#l5419&quot; class=&quot;line&quot; id=&quot;l5419&quot;&gt;   5419&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-319&amp;quot; id=&amp;quot;h4-0-319&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,n+=`  outer loop
   5458 <a href="#l5439" class="line" id="l5439">   5439</a> &lt;a href=&quot;#l5420&quot; class=&quot;line&quot; id=&quot;l5420&quot;&gt;   5420&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-320&amp;quot; id=&amp;quot;h4-0-320&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`;for(let c of h){let p=this.vertices[c];n+=&amp;amp;quot;   vertex &amp;amp;quot;+p.x+&amp;amp;quot; &amp;amp;quot;+p.y+&amp;amp;quot; &amp;amp;quot;+p.z+`
   5459 <a href="#l5440" class="line" id="l5440">   5440</a> &lt;a href=&quot;#l5421&quot; class=&quot;line&quot; id=&quot;l5421&quot;&gt;   5421&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-321&amp;quot; id=&amp;quot;h4-0-321&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`}n+=`  endloop
   5460 <a href="#l5441" class="line" id="l5441">   5441</a> &lt;a href=&quot;#l5422&quot; class=&quot;line&quot; id=&quot;l5422&quot;&gt;   5422&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-322&amp;quot; id=&amp;quot;h4-0-322&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,n+=` endfacet
   5461 <a href="#l5442" class="line" id="l5442">   5442</a> &lt;a href=&quot;#l5423&quot; class=&quot;line&quot; id=&quot;l5423&quot;&gt;   5423&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-323&amp;quot; id=&amp;quot;h4-0-323&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`}n+=&amp;amp;quot;endsolid &amp;amp;quot;+s+`
   5462 <a href="#l5443" class="line" id="l5443">   5443</a> &lt;a href=&quot;#l5424&quot; class=&quot;line&quot; id=&quot;l5424&quot;&gt;   5424&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-324&amp;quot; id=&amp;quot;h4-0-324&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`}let o=new Blob([n],{type:&amp;amp;quot;text/plain&amp;amp;quot;});fn.downloadFile(o,t,&amp;amp;quot;stl&amp;amp;quot;)}flipU(){this.uvs=this.uvs.flat().map((t,r)=&amp;amp;gt;r%2===0?1-t:t)}flipV(){this.uvs=this.uvs.flat().map((t,r)=&amp;amp;gt;r%2===0?t:1-t)}computeFaces(){this.faces.length=0;let t=this.detailX+1,r,n,s,a;for(let o=0;o&amp;amp;lt;this.detailY;o++)for(let u=0;u&amp;amp;lt;this.detailX;u++)r=o*t+u,n=o*t+u+1,s=(o+1)*t+u+1,a=(o+1)*t+u,this.faces.push([r,n,a]),this.faces.push([a,n,s]);return this}_getFaceNormal(t){let r=this.faces[t],n=this.vertices[r[0]],s=this.vertices[r[1]],a=this.vertices[r[2]],o=H.sub(s,n),u=H.sub(a,n),h=H.cross(o,u),l=H.mag(h),c=l/(H.mag(o)*H.mag(u));return c===0||isNaN(c)?(console.warn(&amp;amp;quot;p5.Geometry.prototype._getFaceNormal:&amp;amp;quot;,&amp;amp;quot;face has colinear sides or a repeated vertex&amp;amp;quot;),h):(c&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(c=1),h.mult(Math.asin(c)/l))}computeNormals(t=mh,{roundToPrecision:r=3}={}){let n=this.vertexNormals,s=this.vertices,a=this.faces,o;if(t===gh){let u={},h=[],l=Math.pow(10,r),c=f=&amp;amp;gt;Math.round(f*l)/l,p=f=&amp;amp;gt;`${c(f.x)},${c(f.y)},${c(f.z)}`;for(let f=0;f&amp;amp;lt;s.length;f++){let d=s[f],m=p(d);u[m]===void 0&amp;amp;amp;&amp;amp;amp;(u[m]=h.length,h.push(d))}a.forEach(f=&amp;amp;gt;{for(let d=0;d&amp;amp;lt;3;++d){let m=f[d],g=s[m],v=p(g);f[d]=u[v]}}),this.edges.forEach(f=&amp;amp;gt;{for(let d=0;d&amp;amp;lt;2;++d){let m=f[d],g=s[m],v=p(g);f[d]=u[v]}}),this.vertices=s=h}for(n.length=0,o=0;o&amp;amp;lt;s.length;++o)n.push(new H);for(a.forEach((u,h)=&amp;amp;gt;{let l=this._getFaceNormal(h);for(let c=0;c&amp;amp;lt;3;++c){let p=u[c];n[p].add(l)}}),o=0;o&amp;amp;lt;s.length;++o)n[o].normalize();return this}averageNormals(){for(let t=0;t&amp;amp;lt;=this.detailY;t++){let r=this.detailX+1,n=H.add(this.vertexNormals[t*r],this.vertexNormals[t*r+this.detailX]);n=H.div(n,2),this.vertexNormals[t*r]=n,this.vertexNormals[t*r+this.detailX]=n}return this}averagePoleNormals(){let t=new H(0,0,0);for(let r=0;r&amp;amp;lt;this.detailX;r++)t.add(this.vertexNormals[r]);t=H.div(t,this.detailX);for(let r=0;r&amp;amp;lt;this.detailX;r++)this.vertexNormals[r]=t;t=new H(0,0,0);for(let r=this.vertices.length-1;r&amp;amp;gt;this.vertices.length-1-this.detailX;r--)t.add(this.vertexNormals[r]);t=H.div(t,this.detailX);for(let r=this.vertices.length-1;r&amp;amp;gt;this.vertices.length-1-this.detailX;r--)this.vertexNormals[r]=t;return this}_makeTriangleEdges(){this.edges.length=0;for(let t=0;t&amp;amp;lt;this.faces.length;t++)this.edges.push([this.faces[t][0],this.faces[t][1]]),this.edges.push([this.faces[t][1],this.faces[t][2]]),this.edges.push([this.faces[t][2],this.faces[t][0]]);return this}makeEdgesFromFaces(){this._makeTriangleEdges()}_edgesToVertices(){this.lineVertices.clear(),this.lineTangentsIn.clear(),this.lineTangentsOut.clear(),this.lineSides.clear();let t=new Map,r=new Set,n;for(let s=0;s&amp;amp;lt;this.edges.length;s++){let a=this.edges[s-1],o=this.edges[s],u=this.vertices[o[0]],h=this.vertices[o[1]],l=this.vertexStrokeColors.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;a?this.vertexStrokeColors.slice(a[1]*4,(a[1]+1)*4):[0,0,0,0],c=this.vertexStrokeColors.length&amp;amp;gt;0?this.vertexStrokeColors.slice(o[0]*4,(o[0]+1)*4):[0,0,0,0],p=this.vertexStrokeColors.length&amp;amp;gt;0?this.vertexStrokeColors.slice(o[1]*4,(o[1]+1)*4):[0,0,0,0],f=h.copy().sub(u).normalize(),d=f.magSq()&amp;amp;gt;0;if(d&amp;amp;amp;&amp;amp;amp;this._addSegment(u,h,c,p,f),!this.renderer?._simpleLines){if(s&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;a[1]===o[0])r.has(o[0])||(r.add(o[0]),t.delete(o[0]),n&amp;amp;amp;&amp;amp;amp;d&amp;amp;amp;&amp;amp;amp;f.dot(n)&amp;amp;lt;1-1e-8&amp;amp;amp;&amp;amp;amp;this._addJoin(u,n,f,c));else{if(d&amp;amp;amp;&amp;amp;amp;!r.has(o[0])){let m=t.get(o[0]);m?(this._addJoin(u,m.dir,f,c),t.delete(o[0]),r.add(o[0])):t.set(o[0],{point:u,dir:f.copy().mult(-1),color:c})}if(n&amp;amp;amp;&amp;amp;amp;!r.has(a[1])){let m=t.get(a[1]);m?(this._addJoin(this.vertices[a[1]],n,m.dir.copy().mult(-1),l),t.delete(a[1]),r.add(a[1])):t.set(a[1],{point:this.vertices[a[1]],dir:n,color:l}),n=void 0}}if(s===this.edges.length-1&amp;amp;amp;&amp;amp;amp;!r.has(o[1])){let m=t.get(o[1]);m?(this._addJoin(h,f,m.dir.copy().mult(-1),p),t.delete(o[1]),r.add(o[1])):t.set(o[1],{point:h,dir:f,color:p})}d&amp;amp;amp;&amp;amp;amp;(n=f)}}for(let{point:s,dir:a,color:o}of t.values())this._addCap(s,a,o);return this}_addSegment(t,r,n,s,a){let o=t.array(),u=r.array(),h=a.array();this.lineSides.push(1,1,-1,1,-1,-1);for(let l of[this.lineTangentsIn,this.lineTangentsOut])for(let c=0;c&amp;amp;lt;6;c++)l.push(...h);return this.lineVertices.push(...o,...u,...o,...u,...u,...o),this.renderer?._simpleLines||this.lineVertexColors.push(...n,...s,...n,...s,...s,...n),this}_addCap(t,r,n){let s=t.array(),a=r.array(),o=[0,0,0];for(let u=0;u&amp;amp;lt;6;u++)this.lineVertices.push(...s),this.lineTangentsIn.push(...a),this.lineTangentsOut.push(...o),this.lineVertexColors.push(...n);return this.lineSides.push(-1,2,-2,1,2,-1),this}_addJoin(t,r,n,s){let a=t.array(),o=r.array(),u=n.array();for(let h=0;h&amp;amp;lt;12;h++)this.lineVertices.push(...a),this.lineTangentsIn.push(...o),this.lineTangentsOut.push(...u),this.lineVertexColors.push(...s);return this.lineSides.push(-1,-3,-2,-1,0,-3),this.lineSides.push(3,1,2,3,0,1),this}normalize(){if(this.vertices.length&amp;amp;gt;0){let t=this.vertices[0].copy(),r=this.vertices[0].copy();for(let u=0;u&amp;amp;lt;this.vertices.length;u++)t.x=Math.max(t.x,this.vertices[u].x),r.x=Math.min(r.x,this.vertices[u].x),t.y=Math.max(t.y,this.vertices[u].y),r.y=Math.min(r.y,this.vertices[u].y),t.z=Math.max(t.z,this.vertices[u].z),r.z=Math.min(r.z,this.vertices[u].z);let n=H.lerp(t,r,.5),s=H.sub(t,r),o=200/Math.max(Math.max(s.x,s.y),s.z);for(let u=0;u&amp;amp;lt;this.vertices.length;u++)this.vertices[u].sub(n),this.vertices[u].mult(o)}return this}vertexProperty(t,r,n){let s;this.userVertexProperties[t]||(s=this.userVertexProperties[t]=this._userVertexPropertyHelper(t,r,n)),s=this.userVertexProperties[t],n?s.pushDirect(r):(s.setCurrentData(r),s.pushCurrentData())}_userVertexPropertyHelper(t,r,n){let s=this,a=this.userVertexProperties[t]={name:t,dataSize:n||(r.length?r.length:1),geometry:s,getName(){return this.name},getCurrentData(){return this.currentData===void 0&amp;amp;amp;&amp;amp;amp;(this.currentData=new Array(this.getDataSize()).fill(0)),this.currentData},getDataSize(){return this.dataSize},getSrcName(){return this.name.concat(&amp;amp;quot;Src&amp;amp;quot;)},getDstName(){return this.name.concat(&amp;amp;quot;Buffer&amp;amp;quot;)},getSrcArray(){let o=this.getSrcName();return this.geometry[o]},setCurrentData(o){o.length&amp;amp;amp;&amp;amp;amp;o.length,this.currentData=o},pushCurrentData(){let o=this.getCurrentData();this.pushDirect(o)},pushDirect(o){o.length?this.getSrcArray().push(...o):this.getSrcArray().push(o)},resetSrcArray(){this.geometry[this.getSrcName()]=[]},delete(){let o=this.getSrcName();delete this.geometry[o],delete this}};return this[a.getSrcName()]=[],this.userVertexProperties[t]}};dt.nextId=0;function uc(i,t){i.Geometry=dt}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;uc(p5,p5.prototype);var Xa=class i{constructor(t){this.renderer=t,t._pInst.push(),this.identityMatrix=new at(4),t.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,new at(4)),this.geometry=new dt(void 0,void 0,void 0,this.renderer),this.geometry.gid=`_p5_GeometryBuilder_${i.nextGeometryId}`,i.nextGeometryId++,this.hasTransform=!1}transformVertices(t){return this.hasTransform?t.map(r=&amp;amp;gt;this.renderer.states.uModelMatrix.multiplyPoint(r)):t}transformNormals(t){return this.hasTransform?t.map(r=&amp;amp;gt;this.renderer.scratchMat3.multiplyVec(r)):t}addGeometry(t){this.hasTransform=!this.renderer.states.uModelMatrix.mat4.every((u,h)=&amp;amp;gt;u===this.identityMatrix.mat4[h]),this.hasTransform&amp;amp;amp;&amp;amp;amp;this.renderer.scratchMat3.inverseTranspose4x4(this.renderer.states.uModelMatrix);let r=this.geometry.vertices.length;this.geometry.vertices.push(...this.transformVertices(t.vertices)),this.geometry.vertexNormals.push(...this.transformNormals(t.vertexNormals)),this.geometry.uvs.push(...t.uvs);let n=t.userVertexProperties,s=this.geometry.userVertexProperties,a=this.geometry.vertices.length-t.vertices.length;for(let u in s){if(u in n)continue;let h=s[u],c=h.getDataSize()*t.vertices.length,p=Array(c).fill(0);h.pushDirect(p)}for(let u in n){let h=n[u],l=h.getSrcArray(),c=h.getDataSize();if(a&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;!(u in s)){let p=c*a,f=Array(p).fill(0);this.geometry.vertexProperty(u,f,c)}this.geometry.vertexProperty(u,l,c)}this.renderer.states.fillColor&amp;amp;amp;&amp;amp;amp;this.geometry.faces.push(...t.faces.map(u=&amp;amp;gt;u.map(h=&amp;amp;gt;h+r))),this.renderer.states.strokeColor&amp;amp;amp;&amp;amp;amp;this.geometry.edges.push(...t.edges.map(u=&amp;amp;gt;u.map(h=&amp;amp;gt;h+r)));let o=[...t.vertexColors];for(;o.length&amp;amp;lt;t.vertices.length*4;)o.push(...this.renderer.states.curFillColor);this.geometry.vertexColors.push(...o)}addImmediate(t,r){let n=[];if(this.renderer.states.fillColor)if(r===zi||r===ji)for(let s=2;s&amp;amp;lt;t.vertices.length;s++)s%2===0?n.push([s,s-1,s-2]):n.push([s,s-2,s-1]);else if(r===cn)for(let s=2;s&amp;amp;lt;t.vertices.length;s++)n.push([0,s-1,s]);else for(let s=0;s&amp;amp;lt;t.vertices.length;s+=3)n.push([s,s+1,s+2]);this.addGeometry(Object.assign({},t,{faces:n}))}addRetained(t){this.addGeometry(t)}finish(){return this.renderer._pInst.pop(),this.geometry}};Xa.nextGeometryId=0;var Ka=class i{constructor(t,r,n,s){this.w=t,this.vec=new H(r,n,s)}static fromAxisAngle(t,r,n,s){let a=Math.cos(t/2),o=new H(r,n,s).normalize().mult(Math.sin(t/2));return new i(a,o.x,o.y,o.z)}conjugate(){return new i(this.w,-this.vec.x,-this.vec.y,-this.vec.z)}multiply(t){return new i(this.w*t.w-this.vec.x*t.vec.x-this.vec.y*t.vec.y-this.vec.z-t.vec.z,this.w*t.vec.x+this.vec.x*t.w+this.vec.y*t.vec.z-this.vec.z*t.vec.y,this.w*t.vec.y-this.vec.x*t.vec.z+this.vec.y*t.w+this.vec.z*t.vec.x,this.w*t.vec.z+this.vec.x*t.vec.y-this.vec.y*t.vec.x+this.vec.z*t.w)}rotateVector(t){return H.mult(t,this.w*this.w-this.vec.dot(this.vec)).add(H.mult(this.vec,2*t.dot(this.vec))).add(H.mult(this.vec,2*this.w).cross(t)).clampToZero()}rotateBy(t){return t.multiply(this).multiply(t.conjugate()).vec.clampToZero()}};function lc(i,t){i.Quat=Ka}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;lc(p5,p5.prototype);var At=class{constructor(t,r,n,s,a,o){this.size=t,this.src=r,this.dst=n,this.attr=s,this._renderer=a,this.map=o}_prepareBuffer(t,r){let n=r.attributes,s=this._renderer.GL,a=this._renderer._getOrMakeCachedBuffers(t),o=n[this.attr];if(!o)return;let u=a[this.dst],h=t[this.src];if(h&amp;amp;amp;&amp;amp;amp;h.length&amp;amp;gt;0){let l=!u;if(l&amp;amp;amp;&amp;amp;amp;(a[this.dst]=u=s.createBuffer()),s.bindBuffer(s.ARRAY_BUFFER,u),l||t.dirtyFlags[this.src]!==!1){let c=this.map,p=c?c(h):h;this._renderer._bindBuffer(u,s.ARRAY_BUFFER,p),t.dirtyFlags[this.src]=!1}r.enableAttrib(o,this.size)}else{let l=o.location;if(l===-1||!this._renderer.registerEnabled.has(l))return;s.disableVertexAttribArray(l),this._renderer.registerEnabled.delete(l)}}};function hc(i,t){i.RenderBuffer=At}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;hc(p5,p5.prototype);var ti=Se(lr());var Vm={vertices:1,vertexNormals:1,vertexColors:4,vertexStrokeColors:4,uvs:2},Om=Object.values(Vm).reduce((i,t)=&amp;amp;gt;i+t),Ku=class{constructor(t){this.renderer=t,this.shapeMode=rr,this.geometry=new dt(void 0,void 0,void 0,this.renderer),this.geometry.gid=&amp;amp;quot;__IMMEDIATE_MODE_GEOMETRY__&amp;amp;quot;,this.contourIndices=[],this._useUserVertexProperties=void 0,this._bezierVertex=[],this._quadraticVertex=[],this._curveVertex=[],this.isProcessingVertices=!1,this._tessy=this._initTessy(),this.tessyVertexSize=Om,this.bufferStrides={...Vm}}constructFromContours(t,r){this._useUserVertexProperties&amp;amp;amp;&amp;amp;amp;this._resetUserVertexProperties(),this.geometry.reset(),this.contourIndices=[],this.shapeMode=t.contours[0].kind;let n=!!this.renderer.states.strokeColor,s={};if(t.userVertexProperties){this._useUserVertexProperties=!0;for(let a in t.userVertexProperties){let o=t.vertexPropertyName(a),u=this.geometry._userVertexPropertyHelper(o,[],t.userVertexProperties[a]);s[a]=u,this.tessyVertexSize+=u.getDataSize(),this.bufferStrides[u.getSrcName()]=u.getDataSize(),this.renderer.buffers.user.push(new At(u.getDataSize(),u.getSrcName(),u.getDstName(),o,this.renderer))}}else this._useUserVertexProperties=!1;for(let a of r){this.contourIndices.push(this.geometry.vertices.length);for(let o of a){if(this.shapeMode===pn&amp;amp;amp;&amp;amp;amp;this.geometry.vertices.length%6===3)for(let u in this.bufferStrides){let h=this.bufferStrides[u],l=this.geometry[u];l.push(...l.slice(l.length-3*h,l.length-2*h),...l.slice(l.length-h,l.length))}this.geometry.vertices.push(o.position),this.geometry.vertexNormals.push(o.normal||new H(0,0,0)),this.geometry.uvs.push(o.textureCoordinates.x,o.textureCoordinates.y),this.renderer.states.fillColor?this.geometry.vertexColors.push(...o.fill.array()):this.geometry.vertexColors.push(0,0,0,0),this.renderer.states.strokeColor?this.geometry.vertexStrokeColors.push(...o.stroke.array()):this.geometry.vertexStrokeColors.push(0,0,0,0);for(let u in s){let h=s[u];u in o&amp;amp;amp;&amp;amp;amp;h.setCurrentData(o[u]),h.pushCurrentData()}}}n&amp;amp;amp;&amp;amp;amp;(this.geometry.edges=this._calculateEdges(this.shapeMode,this.geometry.vertices)),n&amp;amp;amp;&amp;amp;amp;!this.renderer.geometryBuilder&amp;amp;amp;&amp;amp;amp;this.geometry._edgesToVertices(),this.shapeMode===rr?(this.isProcessingVertices=!0,this._tesselateShape(),this.isProcessingVertices=!1):this.shapeMode===ji?this.shapeMode=zi:this.shapeMode===pn&amp;amp;amp;&amp;amp;amp;(this.shapeMode=fi),this.renderer.states.textureMode===us&amp;amp;amp;&amp;amp;amp;this.renderer.states._tex!==null&amp;amp;amp;&amp;amp;amp;this.renderer.states._tex.width&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.renderer.states._tex.height&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(this.geometry.uvs=this.geometry.uvs.map((a,o)=&amp;amp;gt;o%2===0?a/this.renderer.states._tex.width:a/this.renderer.states._tex.height))}_resetUserVertexProperties(){let t=this.geometry.userVertexProperties;for(let r in t){let n=t[r];delete this.bufferStrides[r],n.delete()}this._useUserVertexProperties=!1,this.tessyVertexSize=Om,this.geometry.userVertexProperties={}}_calculateEdges(t,r){let n=[],s=0,a=this.contourIndices.slice(),o=-1;switch(t){case zi:for(s=0;s&amp;amp;lt;r.length-2;s++)n.push([s,s+1]),n.push([s,s+2]);n.push([s,s+1]);break;case cn:for(s=1;s&amp;amp;lt;r.length-1;s++)n.push([0,s]),n.push([s,s+1]);n.push([0,r.length-1]);break;case fi:for(s=0;s&amp;amp;lt;r.length-2;s=s+3)n.push([s,s+1]),n.push([s+1,s+2]),n.push([s+2,s]);break;case ci:for(s=0;s&amp;amp;lt;r.length-1;s=s+2)n.push([s,s+1]);break;case pn:for(s=0;s&amp;amp;lt;r.length-5;s+=6)n.push([s,s+1]),n.push([s+1,s+2]),n.push([s+2,s+5]),n.push([s+5,s]);break;case ji:for(s=0;s&amp;amp;lt;r.length-2;s+=2)n.push([s,s+1]),n.push([s+1,s+3]),n.push([s,s+2]);n.push([s,s+1]);break;default:for(s=0;s&amp;amp;lt;r.length;s++)s===a[0]?o=a.shift():r[o]&amp;amp;amp;&amp;amp;amp;r[s].equals(r[o])?n.push([s-1,o]):n.push([s-1,s]);break}return n}_tesselateShape(){this.shapeMode=fi;let t=[];for(let a=0;a&amp;amp;lt;this.geometry.vertices.length;a++){this.contourIndices.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.contourIndices[0]===a&amp;amp;amp;&amp;amp;amp;(this.contourIndices.shift(),t.push([])),t[t.length-1].push(this.geometry.vertices[a].x,this.geometry.vertices[a].y,this.geometry.vertices[a].z,this.geometry.uvs[a*2],this.geometry.uvs[a*2+1],this.geometry.vertexColors[a*4],this.geometry.vertexColors[a*4+1],this.geometry.vertexColors[a*4+2],this.geometry.vertexColors[a*4+3],this.geometry.vertexNormals[a].x,this.geometry.vertexNormals[a].y,this.geometry.vertexNormals[a].z);for(let o in this.geometry.userVertexProperties){let u=this.geometry.userVertexProperties[o],h=a*u.getDataSize(),l=h+u.getDataSize(),c=u.getSrcArray().slice(h,l);t[t.length-1].push(...c)}}let r=this._triangulate(t),n=this.geometry.vertices;this.geometry.vertices=[],this.geometry.vertexNormals=[],this.geometry.uvs=[];for(let a in this.geometry.userVertexProperties)this.geometry.userVertexProperties[a].resetSrcArray();let s=[];for(let a=0,o=r.length;a&amp;amp;lt;o;a=a+this.tessyVertexSize){s.push(...r.slice(a+5,a+9)),this.geometry.vertexNormals.push(new H(...r.slice(a+9,a+12)));{let u=12;for(let h in this.geometry.userVertexProperties){let l=this.geometry.userVertexProperties[h],c=l.getDataSize(),p=a+u,f=p+c;l.setCurrentData(r.slice(p,f)),l.pushCurrentData(),u+=c}}this.geometry.vertices.push(new H(...r.slice(a,a+3))),this.geometry.uvs.push(...r.slice(a+3,a+5))}if(this.renderer.geometryBuilder){let a=new Map;this.geometry.edges=this.geometry.edges.map(o=&amp;amp;gt;o.map(u=&amp;amp;gt;{if(!a.has(u)){let h=n[u],l=this.geometry.vertices.findIndex(c=&amp;amp;gt;h.x===c.x&amp;amp;amp;&amp;amp;amp;h.y===c.y&amp;amp;amp;&amp;amp;amp;h.z===c.z);if(l===-1){let c=1/0,p=0;for(let f=0;f&amp;amp;lt;this.geometry.vertices.length;f++){let d=this.geometry.vertices[f],m=h.x-d.x,g=h.y-d.y,v=h.z-d.z,w=m*m+g*g+v*v;w&amp;amp;lt;c&amp;amp;amp;&amp;amp;amp;(c=w,p=f)}l=p}a.set(u,l)}return a.get(u)}))}this.geometry.vertexColors=s}_initTessy(){function t(u,h){for(let l of u)h.push(l)}function r(u){u!==ti.default.primitiveType.GL_TRIANGLES&amp;amp;amp;&amp;amp;amp;console.log(`expected TRIANGLES but got type: ${u}`)}function n(u){console.log(&amp;amp;quot;error callback&amp;amp;quot;),console.log(`error number: ${u}`)}let s=(u,h,l)=&amp;amp;gt;{let c=new Array(this.tessyVertexSize).fill(0);for(let p=0;p&amp;amp;lt;l.length;p++)for(let f=0;f&amp;amp;lt;c.length;f++)l[p]===0||!h[p]||(c[f]+=h[p][f]*l[p]);return c};function a(u){}let o=new ti.default.GluTesselator;return o.gluTessCallback(ti.default.gluEnum.GLU_TESS_VERTEX_DATA,t),o.gluTessCallback(ti.default.gluEnum.GLU_TESS_BEGIN,r),o.gluTessCallback(ti.default.gluEnum.GLU_TESS_ERROR,n),o.gluTessCallback(ti.default.gluEnum.GLU_TESS_COMBINE,s),o.gluTessCallback(ti.default.gluEnum.GLU_TESS_EDGE_FLAG,a),o.gluTessProperty(ti.default.gluEnum.GLU_TESS_WINDING_RULE,ti.default.windingRule.GLU_TESS_WINDING_NONZERO),o}_triangulate(t){let r=t[0]?t[0][2]:void 0,n=!0;for(let a of t)for(let o=0;o&amp;amp;lt;a.length;o+=this.tessyVertexSize)if(a[o+2]!==r){n=!1;break}n?this._tessy.gluTessNormal(0,0,1):this._tessy.gluTessNormal(0,0,0);let s=[];this._tessy.gluTessBeginPolygon(s);for(let a of t){this._tessy.gluTessBeginContour();for(let o=0;o&amp;amp;lt;a.length;o+=this.tessyVertexSize){let u=a.slice(o,o+this.tessyVertexSize);this._tessy.gluTessVertex(u,u)}this._tessy.gluTessEndContour()}return this._tessy.gluTessEndPolygon(),s}};var Ju=class{constructor(t){this.renderer=t,this.cache={}}numCached(){return Object.keys(this.cache).length}isCached(t){return this.cache[t]!==void 0}getGeometryByID(t){return this.cache[t]?.geometry}getCached(t){return this.getCachedID(t.gid)}getCachedID(t){return this.cache[t]}ensureCached(t){let r=t.gid;if(!r)throw new Error(&amp;amp;quot;The p5.Geometry you passed in has no gid property!&amp;amp;quot;);if(this.isCached(t.gid))return this.getCached(t);let n=this.renderer.GL;if(this.freeBuffers(r),Object.keys(this.cache).length&amp;amp;gt;1e3){let o=Object.keys(this.cache)[0];this.freeBuffers(o)}let s={};this.cache[r]=s,s.geometry=t;let a=s.indexBuffer;if(t.faces.length){a||(a=s.indexBuffer=n.createBuffer());let o=t.faces.flat(),u=o.some(l=&amp;amp;gt;l&amp;amp;gt;65535),h=u?Uint32Array:Uint16Array;this.renderer._bindBuffer(a,n.ELEMENT_ARRAY_BUFFER,o,h),s.indexBufferType=u?n.UNSIGNED_INT:n.UNSIGNED_SHORT}else a&amp;amp;amp;&amp;amp;amp;(n.deleteBuffer(a),s.indexBuffer=null);return s}freeBuffers(t){let r=this.cache[t];if(!r)return;delete this.cache[t];let n=this.renderer.GL;r.indexBuffer&amp;amp;amp;&amp;amp;amp;n.deleteBuffer(r.indexBuffer);function s(a){for(let o of a)r[o.dst]&amp;amp;amp;&amp;amp;amp;(n.deleteBuffer(r[o.dst]),r[o.dst]=null)}s(this.renderer.buffers.stroke),s(this.renderer.buffers.fill),s(this.renderer.buffers.user)}};var Ds={[di]:3,[xn]:4,[vn]:.5};function ro(i,t){let r=t.DEGREES=&amp;amp;quot;degrees&amp;amp;quot;,n=t.RADIANS=&amp;amp;quot;radians&amp;amp;quot;;t._angleMode=n,t.acos=function(s){return this._fromRadians(Math.acos(s))},t.asin=function(s){return this._fromRadians(Math.asin(s))},t.atan=function(s){return this._fromRadians(Math.atan(s))},t.atan2=function(s,a){return this._fromRadians(Math.atan2(s,a))},t.cos=function(s){return Math.cos(this._toRadians(s))},t.sin=function(s){return Math.sin(this._toRadians(s))},t.tan=function(s){return Math.tan(this._toRadians(s))},t.degrees=s=&amp;amp;gt;s*Vi,t.radians=s=&amp;amp;gt;s*Oi,t.angleMode=function(s){if(typeof s&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return this._angleMode;if(s===r||s===n){let a=this._angleMode;if(s===a)return;s===n?(this.pRotationX=this.pRotationX*Oi,this.pRotationY=this.pRotationY*Oi,this.pRotationZ=this.pRotationZ*Oi):(this.pRotationX=this.pRotationX*Vi,this.pRotationY=this.pRotationY*Vi,this.pRotationZ=this.pRotationZ*Vi),this._angleMode=s}},t._toRadians=function(s){return this._angleMode===r?s*Oi:s},t._toDegrees=function(s){return this._angleMode===n?s*Vi:s},t._fromRadians=function(s){return this._angleMode===r?s*Vi:s},t._fromDegrees=function(s){return this._angleMode===n?s*Oi:s}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;ro(p5,p5.prototype);function sl(i,t){t.createImage=function(r,n){return new i.Image(r,n)},t.saveCanvas=function(...r){let n,s,a,o;if(r[0]instanceof HTMLCanvasElement)n=r[0],r.shift();else if(r[0]instanceof st)n=r[0].elt,r.shift();else if(r[0]instanceof hr){let h=r[0];o=this.createGraphics(h.width,h.height),o.pixelDensity(h.pixelDensity()),h.loadPixels(),o.loadPixels(),o.pixels.set(h.pixels),o.updatePixels(),n=o._renderer.canvas,r.shift()}else n=this._curElement&amp;amp;amp;&amp;amp;amp;this._curElement.elt;r.length&amp;amp;gt;=1&amp;amp;amp;&amp;amp;amp;(s=r[0]),r.length&amp;amp;gt;=2&amp;amp;amp;&amp;amp;amp;(a=r[1]),a=a||t._checkFileExtension(s,a)[1]||&amp;amp;quot;png&amp;amp;quot;;let u;switch(a){default:u=&amp;amp;quot;image/png&amp;amp;quot;;break;case&amp;amp;quot;webp&amp;amp;quot;:u=&amp;amp;quot;image/webp&amp;amp;quot;;break;case&amp;amp;quot;jpeg&amp;amp;quot;:case&amp;amp;quot;jpg&amp;amp;quot;:u=&amp;amp;quot;image/jpeg&amp;amp;quot;;break}n.toBlob(h=&amp;amp;gt;{t.downloadFile(h,s,a),o&amp;amp;amp;&amp;amp;amp;o.remove()},u)},t.encodeAndDownloadGif=function(r,n){let s=r.gifProperties,a=s.loopLimit;a===1?a=null:a===null&amp;amp;amp;&amp;amp;amp;(a=0);let o=new Uint8Array(r.width*r.height*s.numFrames),u=[],h={};for(let _=0;_&amp;amp;lt;s.numFrames;_++){let b=new Set,I=s.frames[_].image.data,E=I.length,A=new Uint32Array(r.width*r.height);for(let T=0,D=0;T&amp;amp;lt;E;T+=4,D++){let F=I[T+0],N=I[T+1],B=I[T+2],U=F&amp;amp;lt;&amp;amp;lt;16|N&amp;amp;lt;&amp;amp;lt;8|B&amp;amp;lt;&amp;amp;lt;0;b.add(U),A[D]=U}let C=[...b].sort().toString();h[C]===void 0?h[C]={freq:1,frames:[_]}:(h[C].freq+=1,h[C].frames.push(_)),u.push(A)}let l=[],c=Object.keys(h).sort(function(_,b){return h[b].freq-h[_].freq}),p=c[0].split(&amp;amp;quot;,&amp;amp;quot;).map(_=&amp;amp;gt;parseInt(_));l=l.concat(h[p].frames);let f=new Set(p);for(let _=1;_&amp;amp;lt;c.length;_++){let I=c[_].split(&amp;amp;quot;,&amp;amp;quot;).map(E=&amp;amp;gt;parseInt(E)).filter(E=&amp;amp;gt;!f.has(E));if(p.length+I.length&amp;amp;lt;=256){for(let E=0;E&amp;amp;lt;I.length;E++)p.push(I[E]),f.add(I[E]);l=l.concat(h[c[_]].frames)}}l=new Set(l);let d={};for(let _=0;_&amp;amp;lt;p.length;_++)d[p[_]]||(d[p[_]]=_);let m=1;for(;m&amp;amp;lt;p.length;)m&amp;amp;lt;&amp;amp;lt;=1;p.length=m;let g={loop:a,palette:new Uint32Array(p)},v=new nl.GifWriter(o,r.width,r.height,g),w={};for(let _=0;_&amp;amp;lt;s.numFrames;_++){let b=!l.has(_),I=b?[]:p,E=new Uint8Array(r.width*r.height),A={},C=new Set;u[_].forEach((F,N)=&amp;amp;gt;{b?(A[F]===void 0&amp;amp;amp;&amp;amp;amp;(A[F]=I.length,I.push(F)),E[N]=A[F]):E[N]=d[F],_&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;u[_-1][N]!==F&amp;amp;amp;&amp;amp;amp;C.add(F)});let T={},D=I.filter(F=&amp;amp;gt;!C.has(F));if(D.length&amp;amp;gt;0){let F=D[0],N=b?A[F]:d[F];if(_&amp;amp;gt;0){for(let B=0;B&amp;amp;lt;u[_].length;B++)u[_-1][B]===u[_][B]&amp;amp;amp;&amp;amp;amp;(E[B]=N);T.transparent=N,w.frameOpts.disposal=1}}if(T.delay=s.frames[_].delay/10,b){let F=1;for(;F&amp;amp;lt;I.length;)F&amp;amp;lt;&amp;amp;lt;=1;I.length=F,T.palette=new Uint32Array(I)}_&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;v.addFrame(0,0,r.width,r.height,w.pixelPaletteIndex,w.frameOpts),w={pixelPaletteIndex:E,frameOpts:T}}w.frameOpts.disposal=1,v.addFrame(0,0,r.width,r.height,w.pixelPaletteIndex,w.frameOpts);let y=&amp;amp;quot;gif&amp;amp;quot;,S=new Blob([o.slice(0,v.end())],{type:&amp;amp;quot;image/gif&amp;amp;quot;});t.downloadFile(S,n,y)},t.saveFrames=function(r,n,s,a,o){let u=s||3;u=Math.max(Math.min(u,15),0),u=u*1e3;let h=a||15;h=Math.max(Math.min(h,22),0);let l=0,c=t._makeFrame,p=this._curElement.elt,f=[],d=setInterval(()=&amp;amp;gt;{f.push(c(r+l,n,p)),l++},1e3/h);setTimeout(()=&amp;amp;gt;{if(clearInterval(d),o)o(f);else for(let m of f)t.downloadFile(m.imageData,m.filename,m.ext);f=[]},u+.01)},t._makeFrame=function(r,n,s){let a;this?a=this._curElement.elt:a=s;let o;if(!n)n=&amp;amp;quot;png&amp;amp;quot;,o=&amp;amp;quot;image/png&amp;amp;quot;;else switch(n.toLowerCase()){case&amp;amp;quot;png&amp;amp;quot;:o=&amp;amp;quot;image/png&amp;amp;quot;;break;case&amp;amp;quot;jpeg&amp;amp;quot;:o=&amp;amp;quot;image/jpeg&amp;amp;quot;;break;case&amp;amp;quot;jpg&amp;amp;quot;:o=&amp;amp;quot;image/jpeg&amp;amp;quot;;break;default:o=&amp;amp;quot;image/png&amp;amp;quot;;break}let u=&amp;amp;quot;image/octet-stream&amp;amp;quot;,h=a.toDataURL(o);h=h.replace(o,u);let l={};return l.imageData=h,l.filename=r,l.ext=n,l}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;sl(p5,p5.prototype);var el=class extends Error{status;response;ok};async function Kt(i,t){try{let r=await fetch(i);if(r.ok){let n;switch(t){case&amp;amp;quot;json&amp;amp;quot;:n=await r.json();break;case&amp;amp;quot;text&amp;amp;quot;:n=await r.text();break;case&amp;amp;quot;arrayBuffer&amp;amp;quot;:n=await r.arrayBuffer();break;case&amp;amp;quot;blob&amp;amp;quot;:n=await r.blob();break;case&amp;amp;quot;bytes&amp;amp;quot;:if(r.bytes)n=await r.bytes();else{let s=await r.arrayBuffer();n=new Uint8Array(s)}break;default:throw new Error(&amp;amp;quot;Unsupported response type&amp;amp;quot;)}return{data:n,headers:r.headers}}else{let n=new el(r.statusText);throw n.status=r.status,n.response=r,n.ok=!1,n}}catch(r){throw r instanceof TypeError?console.log(&amp;amp;quot;You may have encountered a CORS error&amp;amp;quot;):r instanceof el?console.log(&amp;amp;quot;You have encountered a HTTP error&amp;amp;quot;):r instanceof SyntaxError&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;There is an error parsing the response to requested data structure&amp;amp;quot;),r}}function Ec(i,t){t.loadJSON=async function(n,s,a){try{let{data:o}=await Kt(n,&amp;amp;quot;json&amp;amp;quot;);return s?s(o):o}catch(o){if(i._friendlyFileLoadError(5,n),a)return a(o);throw o}},t.loadStrings=async function(n,s,a){try{let{data:o}=await Kt(n,&amp;amp;quot;text&amp;amp;quot;);return o=o.split(/\r?\n/),s?s(o):o}catch(o){if(i._friendlyFileLoadError(3,n),a)return a(o);throw o}},t.loadTable=async function(n,s,a,o,u){typeof arguments[arguments.length-1]==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(typeof arguments[arguments.length-2]==&amp;amp;quot;function&amp;amp;quot;?(o=arguments[arguments.length-2],u=arguments[arguments.length-1]):o=arguments[arguments.length-1]),typeof s!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s=&amp;amp;quot;,&amp;amp;quot;),typeof a==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a=!1);try{let{data:h}=await Kt(n,&amp;amp;quot;text&amp;amp;quot;),l=new i.Table;return h=im(h,{separator:s}),a?l.columns=h.shift():l.columns=Array(h[0].length).fill(null),h.forEach(c=&amp;amp;gt;{let p=new i.TableRow(c);l.addRow(p)}),o?o(l):l}catch(h){if(i._friendlyFileLoadError(2,n),u)return u(h);throw h}},t.loadXML=async function(n,s,a){try{let o=new DOMParser,{data:u}=await Kt(n,&amp;amp;quot;text&amp;amp;quot;),h=o.parseFromString(u,&amp;amp;quot;application/xml&amp;amp;quot;);return u=new i.XML(h),s?s(u):u}catch(o){if(i._friendlyFileLoadError(1,n),a)return a(o);throw o}},t.loadBytes=async function(n,s,a){try{let{data:o}=await Kt(n,&amp;amp;quot;arrayBuffer&amp;amp;quot;);return o=new Uint8Array(o),s?s(o):o}catch(o){if(i._friendlyFileLoadError(6,n),a)return a(o);throw o}},t.loadBlob=async function(n,s,a){try{let{data:o}=await Kt(n,&amp;amp;quot;blob&amp;amp;quot;);return s?s(o):o}catch(o){if(a)return a(o);throw o}},t.httpGet=async function(n,s=&amp;amp;quot;text&amp;amp;quot;,a,o){return typeof s==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=a,a=s,s=&amp;amp;quot;text&amp;amp;quot;),this.httpDo(n,&amp;amp;quot;GET&amp;amp;quot;,s,a,o)},t.httpPost=async function(n,s,a=&amp;amp;quot;text&amp;amp;quot;,o,u){typeof s==&amp;amp;quot;function&amp;amp;quot;?(o=s,u=a,s=void 0,a=&amp;amp;quot;text&amp;amp;quot;):typeof a==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u=o,o=a,a=&amp;amp;quot;text&amp;amp;quot;);let h=s,l=&amp;amp;quot;text/plain&amp;amp;quot;;s instanceof i.XML?(h=s.serialize(),l=&amp;amp;quot;application/xml&amp;amp;quot;):s instanceof i.Image?(h=await s.toBlob(),l=&amp;amp;quot;image/png&amp;amp;quot;):typeof s==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(h=JSON.stringify(s),l=&amp;amp;quot;application/json&amp;amp;quot;);let c={method:&amp;amp;quot;POST&amp;amp;quot;,body:h,headers:{&amp;amp;quot;Content-Type&amp;amp;quot;:l}};h&amp;amp;amp;&amp;amp;amp;(c.body=h);let p=new Request(n,c);return this.httpDo(p,&amp;amp;quot;POST&amp;amp;quot;,a,o,u)},t.httpDo=async function(n,s,a,o,u){if(typeof a==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u=o,o=a,a=void 0),!a)switch(typeof n==&amp;amp;quot;string&amp;amp;quot;?n.split(&amp;amp;quot;.&amp;amp;quot;).pop():n.url.split(&amp;amp;quot;.&amp;amp;quot;).pop()){case&amp;amp;quot;json&amp;amp;quot;:a=&amp;amp;quot;json&amp;amp;quot;;break;case&amp;amp;quot;jpg&amp;amp;quot;:case&amp;amp;quot;jpeg&amp;amp;quot;:case&amp;amp;quot;png&amp;amp;quot;:case&amp;amp;quot;webp&amp;amp;quot;:case&amp;amp;quot;gif&amp;amp;quot;:a=&amp;amp;quot;blob&amp;amp;quot;;break;case&amp;amp;quot;xml&amp;amp;quot;:case&amp;amp;quot;txt&amp;amp;quot;:default:a=&amp;amp;quot;text&amp;amp;quot;}let h=new Request(n,{method:s});try{let{data:l}=await Kt(h,a);return o?o(l):l}catch(l){if(u)return u(l);throw l}},t._pWriters=[],t.createWriter=function(n,s){let a;for(let o in t._pWriters)if(t._pWriters[o].name===n)return a=new i.PrintWriter(n+this.millis(),s),t._pWriters.push(a),a;return a=new i.PrintWriter(n,s),t._pWriters.push(a),a},i.PrintWriter=function(n,s){let a=this;this.name=n,this.content=&amp;amp;quot;&amp;amp;quot;,this.write=function(o){this.content+=o},this.print=function(o){this.content+=`${o}
   5463 <a href="#l5444" class="line" id="l5444">   5444</a> &lt;a href=&quot;#l5425&quot; class=&quot;line&quot; id=&quot;l5425&quot;&gt;   5425&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-325&amp;quot; id=&amp;quot;h4-0-325&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`},this.clear=function(){this.content=&amp;amp;quot;&amp;amp;quot;},this.close=function(){let o=[];o.push(this.content),t.writeFile(o,n,s);for(let u in t._pWriters)t._pWriters[u].name===this.name&amp;amp;amp;&amp;amp;amp;t._pWriters.splice(u,1);a.clear(),a={}}},t.save=function(n,s,a){let o=arguments,u=this._curElement?this._curElement.elt:this.elt;if(o.length===0){t.saveCanvas(u);return}else if(o[0]instanceof ke||o[0]instanceof _i){t.saveCanvas(o[0].canvas,o[1],o[2]);return}else if(o.length===1&amp;amp;amp;&amp;amp;amp;typeof o[0]==&amp;amp;quot;string&amp;amp;quot;)t.saveCanvas(u,o[0]);else switch(_s(o[1],o[2])[1]){case&amp;amp;quot;json&amp;amp;quot;:t.saveJSON(o[0],o[1],o[2]);return;case&amp;amp;quot;txt&amp;amp;quot;:t.saveStrings(o[0],o[1],o[2]);return;default:o[0]instanceof Array?t.saveStrings(o[0],o[1],o[2]):o[0]instanceof i.Table?t.saveTable(o[0],o[1],o[2]):o[0]instanceof i.Image?t.saveCanvas(o[0].canvas,o[1]):o[0]instanceof i.SoundFile&amp;amp;amp;&amp;amp;amp;t.saveSound(o[0],o[1],o[2],o[3])}},t.saveJSON=function(n,s,a){let o;a?o=JSON.stringify(n):o=JSON.stringify(n,void 0,2),this.saveStrings(o.split(`
   5464 <a href="#l5445" class="line" id="l5445">   5445</a> &lt;a href=&quot;#l5426&quot; class=&quot;line&quot; id=&quot;l5426&quot;&gt;   5426&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-326&amp;quot; id=&amp;quot;h4-0-326&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),s,&amp;amp;quot;json&amp;amp;quot;)},t.saveStrings=function(n,s,a,o){let u=a||&amp;amp;quot;txt&amp;amp;quot;,h=new i.PrintWriter(s,u);for(let l of n)o?h.write(l+`\r
   5465 <a href="#l5446" class="line" id="l5446">   5446</a> &lt;a href=&quot;#l5427&quot; class=&quot;line&quot; id=&quot;l5427&quot;&gt;   5427&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-327&amp;quot; id=&amp;quot;h4-0-327&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`):h.write(l+`
   5466 <a href="#l5447" class="line" id="l5447">   5447</a> &lt;a href=&quot;#l5428&quot; class=&quot;line&quot; id=&quot;l5428&quot;&gt;   5428&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-328&amp;quot; id=&amp;quot;h4-0-328&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);h.close(),h.clear()};function r(n){return n.replace(/&amp;amp;amp;/g,&amp;amp;quot;&amp;amp;amp;amp;&amp;amp;quot;).replace(/&amp;amp;lt;/g,&amp;amp;quot;&amp;amp;amp;lt;&amp;amp;quot;).replace(/&amp;amp;gt;/g,&amp;amp;quot;&amp;amp;amp;gt;&amp;amp;quot;).replace(/&amp;amp;quot;/g,&amp;amp;quot;&amp;amp;amp;quot;&amp;amp;quot;).replace(/&amp;amp;#39;/g,&amp;amp;quot;&amp;amp;amp;#039;&amp;amp;quot;)}t.saveTable=function(n,s,a){let o;a===void 0?(o=s.substring(s.lastIndexOf(&amp;amp;quot;.&amp;amp;quot;)+1,s.length),o===s&amp;amp;amp;&amp;amp;amp;(o=&amp;amp;quot;csv&amp;amp;quot;)):o=a;let u=this.createWriter(s,o),h=n.columns,l=&amp;amp;quot;,&amp;amp;quot;;if(o===&amp;amp;quot;tsv&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l=&amp;amp;quot;	&amp;amp;quot;),o!==&amp;amp;quot;html&amp;amp;quot;){let c=n.toString(l);u.write(c)}else{u.print(&amp;amp;quot;&amp;amp;lt;html&amp;amp;gt;&amp;amp;quot;),u.print(&amp;amp;quot;&amp;amp;lt;head&amp;amp;gt;&amp;amp;quot;);let c=&amp;amp;#39;  &amp;amp;lt;meta http-equiv=&amp;amp;quot;content-type&amp;amp;quot; content&amp;amp;#39;;if(c+=&amp;amp;#39;=&amp;amp;quot;text/html;charset=utf-8&amp;amp;quot; /&amp;amp;gt;&amp;amp;#39;,u.print(c),u.print(&amp;amp;quot;&amp;amp;lt;/head&amp;amp;gt;&amp;amp;quot;),u.print(&amp;amp;quot;&amp;amp;lt;body&amp;amp;gt;&amp;amp;quot;),u.print(&amp;amp;quot;  &amp;amp;lt;table&amp;amp;gt;&amp;amp;quot;),h[0]!==&amp;amp;quot;0&amp;amp;quot;){u.print(&amp;amp;quot;    &amp;amp;lt;tr&amp;amp;gt;&amp;amp;quot;);for(let p=0;p&amp;amp;lt;h.length;p++){let f=r(h[p]);u.print(`      &amp;amp;lt;td&amp;amp;gt;${f}`),u.print(&amp;amp;quot;      &amp;amp;lt;/td&amp;amp;gt;&amp;amp;quot;)}u.print(&amp;amp;quot;    &amp;amp;lt;/tr&amp;amp;gt;&amp;amp;quot;)}for(let p=0;p&amp;amp;lt;n.rows.length;p++){u.print(&amp;amp;quot;    &amp;amp;lt;tr&amp;amp;gt;&amp;amp;quot;);for(let f=0;f&amp;amp;lt;n.columns.length;f++){let d=n.rows[p].getString(f),m=r(d);u.print(`      &amp;amp;lt;td&amp;amp;gt;${m}`),u.print(&amp;amp;quot;      &amp;amp;lt;/td&amp;amp;gt;&amp;amp;quot;)}u.print(&amp;amp;quot;    &amp;amp;lt;/tr&amp;amp;gt;&amp;amp;quot;)}u.print(&amp;amp;quot;  &amp;amp;lt;/table&amp;amp;gt;&amp;amp;quot;),u.print(&amp;amp;quot;&amp;amp;lt;/body&amp;amp;gt;&amp;amp;quot;),u.print(&amp;amp;quot;&amp;amp;lt;/html&amp;amp;gt;&amp;amp;quot;)}u.close(),u.clear()},t.writeFile=function(n,s,a){let o=&amp;amp;quot;application/octet-stream&amp;amp;quot;;t._isSafari()&amp;amp;amp;&amp;amp;amp;(o=&amp;amp;quot;text/plain&amp;amp;quot;);let u=new Blob(n,{type:o});t.downloadFile(u,s,a)},t.downloadFile=za,t._checkFileExtension=_s,t._isSafari=function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ec(p5,p5.prototype);function al(i,t){t.loadImage=async function(l,c,p){try{let f=new i.Image(1,1,this),d=new Request(l,{method:&amp;amp;quot;GET&amp;amp;quot;,mode:&amp;amp;quot;cors&amp;amp;quot;}),{data:m,headers:g}=await Kt(d,&amp;amp;quot;bytes&amp;amp;quot;),v=g.get(&amp;amp;quot;content-type&amp;amp;quot;);if(v===null&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;The image you loaded does not have a Content-Type header. If you are using the online editor consider reuploading the asset.&amp;amp;quot;),v&amp;amp;amp;&amp;amp;amp;v.includes(&amp;amp;quot;image/gif&amp;amp;quot;))await s(m,f);else{let w=new Blob([m]),y=await createImageBitmap(w);f.width=f.canvas.width=y.width,f.height=f.canvas.height=y.height,f.drawingContext.drawImage(y,0,0)}return f.modified=!0,c?c(f):f}catch(f){if(i._friendlyFileLoadError(0,l),typeof p==&amp;amp;quot;function&amp;amp;quot;)return p(f);throw f}},t.saveGif=async function(l,c,p={delay:0,units:&amp;amp;quot;seconds&amp;amp;quot;,silent:!1,notificationDuration:0,notificationID:&amp;amp;quot;progressBar&amp;amp;quot;}){if(typeof l!=&amp;amp;quot;string&amp;amp;quot;)throw TypeError(&amp;amp;quot;fileName parameter must be a string&amp;amp;quot;);if(typeof c!=&amp;amp;quot;number&amp;amp;quot;)throw TypeError(&amp;amp;quot;Duration parameter must be a number&amp;amp;quot;);let f=p&amp;amp;amp;&amp;amp;amp;p.delay||0,d=p&amp;amp;amp;&amp;amp;amp;p.units||&amp;amp;quot;seconds&amp;amp;quot;,m=p&amp;amp;amp;&amp;amp;amp;p.silent||!1,g=p&amp;amp;amp;&amp;amp;amp;p.notificationDuration||0,v=p&amp;amp;amp;&amp;amp;amp;p.notificationID||&amp;amp;quot;progressBar&amp;amp;quot;;if(typeof f!=&amp;amp;quot;number&amp;amp;quot;)throw TypeError(&amp;amp;quot;Delay parameter must be a number&amp;amp;quot;);if(d!==&amp;amp;quot;seconds&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;d!==&amp;amp;quot;frames&amp;amp;quot;)throw TypeError(&amp;amp;#39;Units parameter must be either &amp;amp;quot;frames&amp;amp;quot; or &amp;amp;quot;seconds&amp;amp;quot;&amp;amp;#39;);if(typeof m!=&amp;amp;quot;boolean&amp;amp;quot;)throw TypeError(&amp;amp;quot;Silent parameter must be a boolean&amp;amp;quot;);if(typeof g!=&amp;amp;quot;number&amp;amp;quot;)throw TypeError(&amp;amp;quot;Notification duration parameter must be a number&amp;amp;quot;);if(typeof v!=&amp;amp;quot;string&amp;amp;quot;)throw TypeError(&amp;amp;quot;Notification ID parameter must be a string&amp;amp;quot;);this._recording=!0;let w=this._targetFrameRate;(w===1/0||w===void 0||w===0)&amp;amp;amp;&amp;amp;amp;(w=60);let y=1/w*1e3;y=y&amp;amp;lt;20?20:y;let S=d===&amp;amp;quot;seconds&amp;amp;quot;?c*w:c,_=d===&amp;amp;quot;seconds&amp;amp;quot;?f*w:f,b=S+_,I=_;this.frameCount=I;let E=this._renderer._pixelDensity;this.pixelDensity(1);let A=[];document.getElementById(v)!==null&amp;amp;amp;&amp;amp;amp;document.getElementById(v).remove();let C;m||(C=this.createP(&amp;amp;quot;&amp;amp;quot;),C.id(v),C.style(&amp;amp;quot;font-size&amp;amp;quot;,&amp;amp;quot;16px&amp;amp;quot;),C.style(&amp;amp;quot;font-family&amp;amp;quot;,&amp;amp;quot;Montserrat&amp;amp;quot;),C.style(&amp;amp;quot;background-color&amp;amp;quot;,&amp;amp;quot;#ffffffa0&amp;amp;quot;),C.style(&amp;amp;quot;padding&amp;amp;quot;,&amp;amp;quot;8px&amp;amp;quot;),C.style(&amp;amp;quot;border-radius&amp;amp;quot;,&amp;amp;quot;10px&amp;amp;quot;),C.position(0,0));let T,D;for(this._renderer instanceof i.RendererGL&amp;amp;amp;&amp;amp;amp;(D=this.drawingContext,T=new Uint8Array(D.drawingBufferWidth*D.drawingBufferHeight*4)),this.noLoop(),await Promise.resolve();I&amp;amp;lt;b;){this.redraw();let G;this._renderer instanceof i.RendererGL?(T=new Uint8Array(D.drawingBufferWidth*D.drawingBufferHeight*4),D.readPixels(0,0,D.drawingBufferWidth,D.drawingBufferHeight,D.RGBA,D.UNSIGNED_BYTE,T),G=r(T,this.width,this.height)):G=this.drawingContext.getImageData(0,0,this.width,this.height).data,A.push(G),I++,m||C.html(&amp;amp;quot;Saved frame &amp;amp;lt;b&amp;amp;gt;&amp;amp;quot;+A.length.toString()+&amp;amp;quot;&amp;amp;lt;/b&amp;amp;gt; out of &amp;amp;quot;+S.toString()),await new Promise(q=&amp;amp;gt;setTimeout(q,0))}m||C.html(&amp;amp;quot;Frames processed, generating color palette...&amp;amp;quot;),this.loop(),this.pixelDensity(E);let F=(0,Ns.GIFEncoder)(),N=n(A),B={},U=G=&amp;amp;gt;{let q=G.length/4,J=new Uint8Array(q);for(let Y=0;Y&amp;amp;lt;q;Y++){let Q=G[Y*4]&amp;amp;lt;&amp;amp;lt;24|G[Y*4+1]&amp;amp;lt;&amp;amp;lt;16|G[Y*4+2]&amp;amp;lt;&amp;amp;lt;8|G[Y*4+3];B[Q]===void 0&amp;amp;amp;&amp;amp;amp;(B[Q]=(0,Ns.nearestColorIndex)(N,G.slice(Y*4,(Y+1)*4))),J[Y]=B[Q]}return J},j=N.length-1,W=[];for(let G=0;G&amp;amp;lt;A.length;G++){let q=U(A[G]),J=q.slice();if(G===0)F.writeFrame(q,this.width,this.height,{palette:N,delay:y,dispose:1});else{for(let Y=0;Y&amp;amp;lt;q.length;Y++)q[Y]===W[Y]&amp;amp;amp;&amp;amp;amp;(q[Y]=j);F.writeFrame(q,this.width,this.height,{delay:y,transparent:!0,transparentIndex:j,dispose:1})}W=J,m||C.html(&amp;amp;quot;Rendered frame &amp;amp;lt;b&amp;amp;gt;&amp;amp;quot;+G.toString()+&amp;amp;quot;&amp;amp;lt;/b&amp;amp;gt; out of &amp;amp;quot;+S.toString()),await new Promise(Y=&amp;amp;gt;setTimeout(Y,0))}F.finish();let te=F.bytesView(),X=&amp;amp;quot;gif&amp;amp;quot;,Z=new Blob([te],{type:&amp;amp;quot;image/gif&amp;amp;quot;});A=[],this._recording=!1,this.loop(),m||(C.html(&amp;amp;quot;Done. Downloading your gif!\u{1F338}&amp;amp;quot;),g&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;setTimeout(()=&amp;amp;gt;C.remove(),g*1e3)),t.downloadFile(Z,l,X)};function r(l,c,p){let f=parseInt(p/2),d=c*4,m=new Uint8Array(c*4);for(let g=0;g&amp;amp;lt;f;++g){let v=g*d,w=(p-g-1)*d;m.set(l.subarray(v,v+d)),l.copyWithin(v,w,w+d),l.set(m,w)}return l}function n(l){let c=new Uint8Array(l.length*l[0].length);for(let f=0;f&amp;amp;lt;l.length;f++)c.set(l[f],f*l[0].length);let p=(0,Ns.quantize)(c,256,{format:&amp;amp;quot;rgba4444&amp;amp;quot;,oneBitAlpha:!0});return p.length===256?p[p.length-1]=[Math.random()*255,Math.random()*255,Math.random()*255,0]:p.push([Math.random()*255,Math.random()*255,Math.random()*255,0]),p}async function s(l,c){let p=new nl.GifReader(l);c.width=c.canvas.width=p.width,c.height=c.canvas.height=p.height;let f=[],d=p.numFrames(),m=new Uint8ClampedArray(c.width*c.height*4),g=(w,y)=&amp;amp;gt;{try{y.decodeAndBlitFrameRGBA(w,m)}catch(S){throw i._friendlyFileLoadError(8,c.src),S}};for(let w=0;w&amp;amp;lt;d;w++){let y=p.frameInfo(w),S=c.drawingContext.getImageData(0,0,c.width,c.height);m=S.data.slice(),g(w,p);let _=new ImageData(m,c.width,c.height);c.drawingContext.putImageData(_,0,0);let b=y.delay;b===0&amp;amp;amp;&amp;amp;amp;(b=10),f.push({image:c.drawingContext.getImageData(0,0,c.width,c.height),delay:b*10}),y.disposal===2?c.drawingContext.clearRect(y.x,y.y,y.width,y.height):y.disposal===3&amp;amp;amp;&amp;amp;amp;c.drawingContext.putImageData(S,0,0,y.x,y.y,y.width,y.height)}let v=p.loopCount();return v===null?v=1:v===0&amp;amp;amp;&amp;amp;amp;(v=null),c.drawingContext.putImageData(f[0].image,0,0),f.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(c.gifProperties={displayIndex:0,loopLimit:v,loopCount:0,frames:f,numFrames:d,playing:!0,timeDisplayed:0,lastChangeTime:0}),c}function a(l,c,p,f,d,m,g,v){let w=Math.max(g/d,v/m),[y,S]=[g/w,v/w],_=p,b=f;return l===Et?_+=(d-y)/2:l===Kn&amp;amp;amp;&amp;amp;amp;(_+=d-y),c===Et?b+=(m-S)/2:c===Qo&amp;amp;amp;&amp;amp;amp;(b+=m-S),{x:_,y:b,w:y,h:S}}function o(l,c,p,f,d,m,g,v){let w=Math.max(p/g,f/v),[y,S]=[p/w,f/w],_=d,b=m;return l===Et?_+=(g-y)/2:l===Kn&amp;amp;amp;&amp;amp;amp;(_+=g-y),c===Et?b+=(v-S)/2:c===Qo&amp;amp;amp;&amp;amp;amp;(b+=v-S),{x:_,y:b,w:y,h:S}}function u(l,c,p,f,d,m,g,v,w,y,S){if(l===wh){let{x:_,y:b,w:I,h:E}=o(c,p,m,g,v,w,y,S);v=_,w=b,y=I,S=E}if(l===_h){let{x:_,y:b,w:I,h:E}=a(c,p,f,d,m,g,y,S);f=_,d=b,m=I,g=E}return{sx:v,sy:w,sw:y,sh:S,dx:f,dy:d,dw:m,dh:g}}function h(l,c){return l&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;l&amp;amp;lt;c?l:c}t.image=function(l,c,p,f,d,m,g,v,w,y,S,_){let b=l.width,I=l.height;_=_||Et,S=S||Et,l.elt&amp;amp;amp;&amp;amp;amp;(b=b!==void 0?b:l.elt.width,I=I!==void 0?I:l.elt.height),l.elt&amp;amp;amp;&amp;amp;amp;l.elt.videoWidth&amp;amp;amp;&amp;amp;amp;!l.canvas&amp;amp;amp;&amp;amp;amp;(b=b!==void 0?b:l.elt.videoWidth,I=I!==void 0?I:l.elt.videoHeight);let E=c,A=p,C=f||b,T=d||I,D=m||0,F=g||0,N=v!==void 0?v:b,B=w!==void 0?w:I;N=h(N,b),B=h(B,I);let U=1;l.elt&amp;amp;amp;&amp;amp;amp;!l.canvas&amp;amp;amp;&amp;amp;amp;l.elt.style.width&amp;amp;amp;&amp;amp;amp;(l.elt.videoWidth&amp;amp;amp;&amp;amp;amp;!f?U=l.elt.videoWidth:U=l.elt.width,U/=parseInt(l.elt.style.width,10)),D*=U,F*=U,B*=U,N*=U;let j=ws.modeAdjust(E,A,C,T,this._renderer.states.imageMode);j=u(y,S,_,j.x,j.y,j.w,j.h,D,F,N,B),this._renderer.image(l,j.sx,j.sy,j.sw,j.sh,j.dx,j.dy,j.dw,j.dh)},t.tint=function(...l){let c=this.color(...l);this._renderer.states.setValue(&amp;amp;quot;tint&amp;amp;quot;,c._getRGBA([255,255,255,255]))},t.noTint=function(){this._renderer.states.setValue(&amp;amp;quot;tint&amp;amp;quot;,null)},t.imageMode=function(l){(l===Ct||l===Ui||l===Et)&amp;amp;amp;&amp;amp;amp;this._renderer.states.setValue(&amp;amp;quot;imageMode&amp;amp;quot;,l)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;al(p5,p5.prototype);var Ln=class i{constructor(t){this._renderer=t,this.cameraType=&amp;amp;quot;default&amp;amp;quot;,this.useLinePerspective=!0,this.cameraMatrix=new at(4),this.projMatrix=new at(4),this.yScale=1}perspective(t,r,n,s){this.cameraType=arguments.length&amp;amp;gt;0?&amp;amp;quot;custom&amp;amp;quot;:&amp;amp;quot;default&amp;amp;quot;,typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?(t=this.defaultCameraFOV,this.cameraFOV=t):this.cameraFOV=this._renderer._pInst._toRadians(t),typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=this.defaultAspectRatio),typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=this.defaultCameraNear),typeof s&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s=this.defaultCameraFar),n&amp;amp;lt;=1e-4&amp;amp;amp;&amp;amp;amp;(n=.01,console.log(&amp;amp;quot;Avoid perspective near plane values close to or below 0. Setting value to 0.01.&amp;amp;quot;)),s&amp;amp;lt;n&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;Perspective far plane value is less than near plane value. Nothing will be shown.&amp;amp;quot;),this.aspectRatio=r,this.cameraNear=n,this.cameraFar=s,this.projMatrix=new at(4);let a=1/Math.tan(this.cameraFOV/2),o=1/(this.cameraNear-this.cameraFar);this.projMatrix.set(a/r,0,0,0,0,-a*this.yScale,0,0,0,0,(s+n)*o,-1,0,0,2*s*n*o,0),this._isActive()&amp;amp;amp;&amp;amp;amp;(this._renderer.states.setValue(&amp;amp;quot;uPMatrix&amp;amp;quot;,this._renderer.states.uPMatrix.clone()),this._renderer.states.uPMatrix.set(this.projMatrix))}ortho(t,r,n,s,a,o){let u=this.fbo||this._renderer;t===void 0&amp;amp;amp;&amp;amp;amp;(t=-u.width/2),r===void 0&amp;amp;amp;&amp;amp;amp;(r=+u.width/2),n===void 0&amp;amp;amp;&amp;amp;amp;(n=-u.height/2),s===void 0&amp;amp;amp;&amp;amp;amp;(s=+u.height/2),a===void 0&amp;amp;amp;&amp;amp;amp;(a=0),o===void 0&amp;amp;amp;&amp;amp;amp;(o=Math.max(u.width,u.height)+800),this.cameraNear=a,this.cameraFar=o;let h=r-t,l=s-n,c=o-a,p=2/h,f=2/l*this.yScale,d=-2/c,m=-(r+t)/h,g=-(s+n)/l,v=-(o+a)/c;this.projMatrix=new at(4),this.projMatrix.set(p,0,0,0,0,-f,0,0,0,0,d,0,m,g,v,1),this._isActive()&amp;amp;amp;&amp;amp;amp;(this._renderer.states.setValue(&amp;amp;quot;uPMatrix&amp;amp;quot;,this._renderer.states.uPMatrix.clone()),this._renderer.states.uPMatrix.set(this.projMatrix)),this.cameraType=&amp;amp;quot;custom&amp;amp;quot;}frustum(t,r,n,s,a,o){t===void 0&amp;amp;amp;&amp;amp;amp;(t=-this._renderer.width*.05),r===void 0&amp;amp;amp;&amp;amp;amp;(r=+this._renderer.width*.05),n===void 0&amp;amp;amp;&amp;amp;amp;(n=+this._renderer.height*.05),s===void 0&amp;amp;amp;&amp;amp;amp;(s=-this._renderer.height*.05),a===void 0&amp;amp;amp;&amp;amp;amp;(a=this.defaultCameraNear),o===void 0&amp;amp;amp;&amp;amp;amp;(o=this.defaultCameraFar),this.cameraNear=a,this.cameraFar=o;let u=r-t,h=s-n,l=o-a,c=+(2*a)/u,p=+(2*a)/h*this.yScale,f=-(2*o*a)/l,d=(r+t)/u,m=(s+n)/h,g=-(o+a)/l;this.projMatrix=new at(4),this.projMatrix.set(c,0,0,0,0,-p,0,0,d,m,g,-1,0,0,f,0),this._isActive()&amp;amp;amp;&amp;amp;amp;(this._renderer.states.setValue(&amp;amp;quot;uPMatrix&amp;amp;quot;,this._renderer.states.uPMatrix.clone()),this._renderer.states.uPMatrix.set(this.projMatrix)),this.cameraType=&amp;amp;quot;custom&amp;amp;quot;}_rotateView(t,r,n,s){let a=this.centerX,o=this.centerY,u=this.centerZ;a-=this.eyeX,o-=this.eyeY,u-=this.eyeZ;let h=new at(4);h.rotate4x4(this._renderer._pInst._toRadians(t),r,n,s);let l=[a*h.mat4[0]+o*h.mat4[4]+u*h.mat4[8],a*h.mat4[1]+o*h.mat4[5]+u*h.mat4[9],a*h.mat4[2]+o*h.mat4[6]+u*h.mat4[10]];l[0]+=this.eyeX,l[1]+=this.eyeY,l[2]+=this.eyeZ,this.camera(this.eyeX,this.eyeY,this.eyeZ,l[0],l[1],l[2],this.upX,this.upY,this.upZ)}roll(t){let r=this._getLocalAxes(),s=Ka.fromAxisAngle(this._renderer._pInst._toRadians(t),r.z[0],r.z[1],r.z[2]).rotateVector(new H(this.upX,this.upY,this.upZ));this.camera(this.eyeX,this.eyeY,this.eyeZ,this.centerX,this.centerY,this.centerZ,s.x,s.y,s.z)}pan(t){let r=this._getLocalAxes();this._rotateView(t,r.y[0],r.y[1],r.y[2])}tilt(t){let r=this._getLocalAxes();this._rotateView(t,r.x[0],r.x[1],r.x[2])}lookAt(t,r,n){this.camera(this.eyeX,this.eyeY,this.eyeZ,t,r,n,this.upX,this.upY,this.upZ)}camera(t,r,n,s,a,o,u,h,l){typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t=this.defaultEyeX,r=this.defaultEyeY,n=this.defaultEyeZ,s=t,a=r,o=0,u=0,h=1,l=0),this.eyeX=t,this.eyeY=r,this.eyeZ=n,typeof s&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.centerX=s,this.centerY=a,this.centerZ=o),typeof u&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.upX=u,this.upY=h,this.upZ=l);let c=this._getLocalAxes();this.cameraMatrix.set(c.x[0],c.y[0],c.z[0],0,c.x[1],c.y[1],c.z[1],0,c.x[2],c.y[2],c.z[2],0,0,0,0,1);let p=-t,f=-r,d=-n;return this.cameraMatrix.translate([p,f,d]),this._isActive()&amp;amp;amp;&amp;amp;amp;(this._renderer.states.setValue(&amp;amp;quot;uViewMatrix&amp;amp;quot;,this._renderer.states.uViewMatrix.clone()),this._renderer.states.uViewMatrix.set(this.cameraMatrix)),this}move(t,r,n){let s=this._getLocalAxes(),a=[s.x[0]*t,s.x[1]*t,s.x[2]*t],o=[s.y[0]*r,s.y[1]*r,s.y[2]*r],u=[s.z[0]*n,s.z[1]*n,s.z[2]*n];this.camera(this.eyeX+a[0]+o[0]+u[0],this.eyeY+a[1]+o[1]+u[1],this.eyeZ+a[2]+o[2]+u[2],this.centerX+a[0]+o[0]+u[0],this.centerY+a[1]+o[1]+u[1],this.centerZ+a[2]+o[2]+u[2],this.upX,this.upY,this.upZ)}setPosition(t,r,n){let s=t-this.eyeX,a=r-this.eyeY,o=n-this.eyeZ;this.camera(t,r,n,this.centerX+s,this.centerY+a,this.centerZ+o,this.upX,this.upY,this.upZ)}set(t){let r=[&amp;amp;quot;eyeX&amp;amp;quot;,&amp;amp;quot;eyeY&amp;amp;quot;,&amp;amp;quot;eyeZ&amp;amp;quot;,&amp;amp;quot;centerX&amp;amp;quot;,&amp;amp;quot;centerY&amp;amp;quot;,&amp;amp;quot;centerZ&amp;amp;quot;,&amp;amp;quot;upX&amp;amp;quot;,&amp;amp;quot;upY&amp;amp;quot;,&amp;amp;quot;upZ&amp;amp;quot;,&amp;amp;quot;cameraFOV&amp;amp;quot;,&amp;amp;quot;aspectRatio&amp;amp;quot;,&amp;amp;quot;cameraNear&amp;amp;quot;,&amp;amp;quot;cameraFar&amp;amp;quot;,&amp;amp;quot;cameraType&amp;amp;quot;,&amp;amp;quot;yScale&amp;amp;quot;,&amp;amp;quot;useLinePerspective&amp;amp;quot;];for(let n of r)this[n]=t[n];this.cameraMatrix=t.cameraMatrix.copy(),this.projMatrix=t.projMatrix.copy(),this._isActive()&amp;amp;amp;&amp;amp;amp;(this._renderer.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this._renderer.states.uModelMatrix.clone()),this._renderer.states.setValue(&amp;amp;quot;uViewMatrix&amp;amp;quot;,this._renderer.states.uViewMatrix.clone()),this._renderer.states.setValue(&amp;amp;quot;uPMatrix&amp;amp;quot;,this._renderer.states.uPMatrix.clone()),this._renderer.states.uModelMatrix.reset(),this._renderer.states.uViewMatrix.set(this.cameraMatrix),this._renderer.states.uPMatrix.set(this.projMatrix))}slerp(t,r,n){if(n===0){this.set(t);return}else if(n===1){this.set(r);return}this.projMatrix.mat4[15]!==0&amp;amp;amp;&amp;amp;amp;(this.projMatrix.setElement(0,t.projMatrix.mat4[0]*Math.pow(r.projMatrix.mat4[0]/t.projMatrix.mat4[0],n)),this.projMatrix.setElement(5,t.projMatrix.mat4[5]*Math.pow(r.projMatrix.mat4[5]/t.projMatrix.mat4[5],n)),this._isActive()&amp;amp;amp;&amp;amp;amp;(this._renderer.states.setValue(&amp;amp;quot;uPMatrix&amp;amp;quot;,this._renderer.states.uPMatrix.clone()),this._renderer.states.uPMatrix.mat4=this.projMatrix.mat4.slice()));let s=new H(t.eyeX,t.eyeY,t.eyeZ),a=new H(r.eyeX,r.eyeY,r.eyeZ),o=new H(t.centerX,t.centerY,t.centerZ),u=new H(r.centerX,r.centerY,r.centerZ),h=H.dist(s,o),l=H.dist(a,u),c=h*Math.pow(l/h,n),p=H.sub(s,a),f=s.copy().sub(a).sub(o).add(u),d=f.magSq(),m=1;d&amp;amp;gt;1e-6&amp;amp;amp;&amp;amp;amp;(m=H.dot(p,f)/d,m=Math.max(0,Math.min(m,1)));let g=H.lerp(H.lerp(s,o,m),H.lerp(a,u,m),n),v=t.cameraMatrix.createSubMatrix3x3(),w=r.cameraMatrix.createSubMatrix3x3(),y=v.row(2),S=w.row(2),_=v.row(1),b=w.row(1),I=new H,E=new H,A=new H,C=new H,T=w.mult(v.copy().transpose()),D=T.diagonal(),F=.5*(D[0]+D[1]+D[2]-1);if(1-F&amp;amp;lt;1e-7){I.set(H.lerp(y,S,n)).normalize(),A.set(I).mult(m*c).add(g),C.set(I).mult((m-1)*c).add(g),E.set(H.lerp(_,b,n)).normalize(),this.camera(A.x,A.y,A.z,C.x,C.y,C.z,E.x,E.y,E.z);return}let N,B,U,j,W=1/(1-F),te=Math.max(D[0],D[1],D[2]),X=T.mat3[1]+T.mat3[3],Z=T.mat3[2]+T.mat3[6],G=T.mat3[5]+T.mat3[7];te===D[0]?(N=Math.sqrt((D[0]-F)*W),W/=N,B=.5*X*W,U=.5*Z*W,j=.5*(T.mat3[7]-T.mat3[5])/N):te===D[1]?(B=Math.sqrt((D[1]-F)*W),W/=B,U=.5*G*W,N=.5*X*W,j=.5*(T.mat3[2]-T.mat3[6])/B):(U=Math.sqrt((D[2]-F)*W),W/=U,N=.5*Z*W,B=.5*G*W,j=.5*(T.mat3[3]-T.mat3[1])/U);let q=n*Math.atan2(j,F),J=Math.cos(q),Y=Math.sin(q),Q=1-J,fe=N*B,de=B*U,me=U*N,ie=new at([J+Q*N*N,Q*fe+Y*U,Q*me-Y*B,Q*fe-Y*U,J+Q*B*B,Q*de+Y*N,Q*me+Y*B,Q*de-Y*N,J+Q*U*U]);ie.multiplyVec(y,I),A.set(I).mult(m*c).add(g),C.set(I).mult((m-1)*c).add(g),ie.multiplyVec(_,E),this.camera(A.x,A.y,A.z,C.x,C.y,C.z,E.x,E.y,E.z)}_computeCameraDefaultSettings(){this.defaultAspectRatio=this._renderer.width/this._renderer.height,this.defaultEyeX=0,this.defaultEyeY=0,this.defaultEyeZ=800,this.defaultCameraFOV=2*Math.atan(this._renderer.height/2/this.defaultEyeZ),this.defaultCenterX=0,this.defaultCenterY=0,this.defaultCenterZ=0,this.defaultCameraNear=this.defaultEyeZ*.1,this.defaultCameraFar=this.defaultEyeZ*10}_setDefaultCamera(){this.cameraFOV=this.defaultCameraFOV,this.aspectRatio=this.defaultAspectRatio,this.eyeX=this.defaultEyeX,this.eyeY=this.defaultEyeY,this.eyeZ=this.defaultEyeZ,this.centerX=this.defaultCenterX,this.centerY=this.defaultCenterY,this.centerZ=this.defaultCenterZ,this.upX=0,this.upY=1,this.upZ=0,this.cameraNear=this.defaultCameraNear,this.cameraFar=this.defaultCameraFar,this.perspective(),this.camera(),this.cameraType=&amp;amp;quot;default&amp;amp;quot;}_resize(){this.cameraType===&amp;amp;quot;default&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this._computeCameraDefaultSettings(),this.cameraFOV=this.defaultCameraFOV,this.aspectRatio=this.defaultAspectRatio,this.perspective())}copy(){let t=new i(this._renderer);return t.cameraFOV=this.cameraFOV,t.aspectRatio=this.aspectRatio,t.eyeX=this.eyeX,t.eyeY=this.eyeY,t.eyeZ=this.eyeZ,t.centerX=this.centerX,t.centerY=this.centerY,t.centerZ=this.centerZ,t.upX=this.upX,t.upY=this.upY,t.upZ=this.upZ,t.cameraNear=this.cameraNear,t.cameraFar=this.cameraFar,t.cameraType=this.cameraType,t.useLinePerspective=this.useLinePerspective,t.cameraMatrix=this.cameraMatrix.copy(),t.projMatrix=this.projMatrix.copy(),t.yScale=this.yScale,t}clone(){return this.copy()}_getLocalAxes(){let t=this.eyeX-this.centerX,r=this.eyeY-this.centerY,n=this.eyeZ-this.centerZ,s=Math.sqrt(t*t+r*r+n*n);s!==0&amp;amp;amp;&amp;amp;amp;(t/=s,r/=s,n/=s);let a=this.upX,o=this.upY,u=this.upZ,h=o*n-u*r,l=-a*n+u*t,c=a*r-o*t;a=r*c-n*l,o=-t*c+n*h,u=t*l-r*h;let p=Math.sqrt(h*h+l*l+c*c);p!==0&amp;amp;amp;&amp;amp;amp;(h/=p,l/=p,c/=p);let f=Math.sqrt(a*a+o*o+u*u);return f!==0&amp;amp;amp;&amp;amp;amp;(a/=f,o/=f,u/=f),{x:[h,l,c],y:[a,o,u],z:[t,r,n]}}_orbit(t,r,n){let s=this.eyeX-this.centerX,a=this.eyeY-this.centerY,o=this.eyeZ-this.centerZ,u=Math.hypot(s,a,o),h=new H(s,a,o).normalize(),l=new H(this.upX,this.upY,this.upZ).normalize(),c=H.cross(l,h).normalize(),p=H.cross(c,l);u*=Math.pow(10,n),u&amp;amp;lt;this.cameraNear&amp;amp;amp;&amp;amp;amp;(u=this.cameraNear),u&amp;amp;gt;this.cameraFar&amp;amp;amp;&amp;amp;amp;(u=this.cameraFar);let f=Math.acos(Math.max(-1,Math.min(1,H.dot(h,l))))+r,d=t;(f&amp;amp;lt;=0||f&amp;amp;gt;=Math.PI)&amp;amp;amp;&amp;amp;amp;(this.upX*=-1,this.upY*=-1,this.upZ*=-1),l.mult(Math.cos(f)),p.mult(Math.cos(d)*Math.sin(f)),c.mult(Math.sin(d)*Math.sin(f)),h.set(l).add(p).add(c),this.eyeX=u*h.x+this.centerX,this.eyeY=u*h.y+this.centerY,this.eyeZ=u*h.z+this.centerZ,this.camera(this.eyeX,this.eyeY,this.eyeZ,this.centerX,this.centerY,this.centerZ,this.upX,this.upY,this.upZ)}_orbitFree(t,r,n){let s=this.eyeX-this.centerX,a=this.eyeY-this.centerY,o=this.eyeZ-this.centerZ,u=Math.hypot(s,a,o),h=new H(s,a,o).normalize(),l=new H(this.upX,this.upY,this.upZ),c=H.cross(l,h).normalize(),p=H.cross(h,c),f=Math.atan2(r,t);p.mult(Math.sin(f)),c.mult(Math.cos(f)).add(p);let d=Math.sqrt(t*t+r*r),m=H.cross(h,c);u*=Math.pow(10,n),u&amp;amp;lt;this.cameraNear&amp;amp;amp;&amp;amp;amp;(u=this.cameraNear),u&amp;amp;gt;this.cameraFar&amp;amp;amp;&amp;amp;amp;(u=this.cameraFar);let g=Math.cos(d),v=Math.sin(d),w=l.dot(h),y=l.dot(c),S=w*g+y*v,_=-w*v+y*g,b=l.dot(m);l.x=S*h.x+_*c.x+b*m.x,l.y=S*h.y+_*c.y+b*m.y,l.z=S*h.z+_*c.z+b*m.z,c.mult(-v),h.mult(g).add(c).mult(u),this.camera(h.x+this.centerX,h.y+this.centerY,h.z+this.centerZ,this.centerX,this.centerY,this.centerZ,l.x,l.y,l.z)}_isActive(){return this===this._renderer.states.curCamera}};function Sc(i,t){t.camera=function(...r){return this._assert3d(&amp;amp;quot;camera&amp;amp;quot;),this._renderer.camera(...r),this},t.perspective=function(...r){return this._assert3d(&amp;amp;quot;perspective&amp;amp;quot;),this._renderer.perspective(...r),this},t.linePerspective=function(r){if(!(this._renderer instanceof Le))throw new Error(&amp;amp;quot;linePerspective() must be called in WebGL mode.&amp;amp;quot;);return this._renderer.linePerspective(r)},t.ortho=function(...r){return this._assert3d(&amp;amp;quot;ortho&amp;amp;quot;),this._renderer.ortho(...r),this},t.frustum=function(...r){return this._assert3d(&amp;amp;quot;frustum&amp;amp;quot;),this._renderer.frustum(...r),this},t.createCamera=function(){return this._assert3d(&amp;amp;quot;createCamera&amp;amp;quot;),this._renderer.createCamera()},t.setCamera=function(r){this._renderer.setCamera(r)},i.Camera=Ln,Le.prototype.camera=function(...r){this.states.curCamera.camera(...r)},Le.prototype.perspective=function(...r){this.states.curCamera.perspective(...r)},Le.prototype.linePerspective=function(r){if(r!==void 0)this.states.curCamera.useLinePerspective=r;else return this.states.curCamera.useLinePerspective},Le.prototype.ortho=function(...r){this.states.curCamera.ortho(...r)},Le.prototype.frustum=function(...r){this.states.curCamera.frustum(...r)},Le.prototype.createCamera=function(){let r=new Ln(this);return r._computeCameraDefaultSettings(),r._setDefaultCamera(),r},Le.prototype.setCamera=function(r){this.states.setValue(&amp;amp;quot;curCamera&amp;amp;quot;,r),this.states.setValue(&amp;amp;quot;uPMatrix&amp;amp;quot;,this.states.uPMatrix.clone()),this.states.uPMatrix.set(r.projMatrix),this.states.setValue(&amp;amp;quot;uViewMatrix&amp;amp;quot;,this.states.uViewMatrix.clone()),this.states.uViewMatrix.set(r.cameraMatrix)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Sc(p5,p5.prototype);var Tt=class i{constructor(t,r,n,s={}){this._renderer=t,this._vertSrc=r,this._fragSrc=n,this._vertShader=-1,this._fragShader=-1,this._glProgram=0,this._loadedAttributes=!1,this.attributes={},this._loadedUniforms=!1,this.uniforms={},this._bound=!1,this.samplers=[],this.hooks={uniforms:s.uniforms||{},declarations:s.declarations,helpers:s.helpers||{},vertex:s.vertex||{},fragment:s.fragment||{},modified:{vertex:s.modified&amp;amp;amp;&amp;amp;amp;s.modified.vertex||{},fragment:s.modified&amp;amp;amp;&amp;amp;amp;s.modified.fragment||{}}}}hookTypes(t){let r=this._vertSrc,n=this.hooks.vertex[t];if(n||(n=this.hooks.fragment[t],r=this._fragSrc),!n)throw new Error(`Can&amp;amp;#39;t find hook ${t}!`);let s=t.split(/\s+/g),a=s.pop(),o=s.pop(),u=[...s],h=/\(([^\)]*)\)/.exec(n);if(!h)throw new Error(`Couldn&amp;amp;#39;t find function parameters in hook body:
   5467 <a href="#l5448" class="line" id="l5448">   5448</a> &lt;a href=&quot;#l5429&quot; class=&quot;line&quot; id=&quot;l5429&quot;&gt;   5429&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-329&amp;quot; id=&amp;quot;h4-0-329&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+${n}`);let l=p=&amp;amp;gt;{let f=new RegExp(`struct\\s+${p}\\s*{([^}]*)}`).exec(r);if(!f)return;let d=[];for(let m of f[1].split(&amp;amp;quot;;&amp;amp;quot;)){let g=m.trim().split(/\s+|,/g),v=g.shift(),w=[...g],y=l(v);for(let S of w)d.push({name:S,type:{typeName:v,qualifiers:[],properties:y}})}return d},c=h[1].split(&amp;amp;quot;,&amp;amp;quot;).map(p=&amp;amp;gt;{let f=p.trim().split(/\s+/g),d=f.pop(),m=f.pop(),g=[...f],v=l(m);return{name:d,type:{typeName:m,qualifiers:g,properties:v}}});return{name:a,returnType:{typeName:o,qualifiers:u,properties:l(o)},parameters:c}}shaderSrc(t,r){let n=&amp;amp;quot;void main&amp;amp;quot;,[s,a]=t.split(n),o=&amp;amp;quot;&amp;amp;quot;,u=&amp;amp;quot;&amp;amp;quot;;for(let h in this.hooks.uniforms)o+=`uniform ${h};
   5468 <a href="#l5449" class="line" id="l5449">   5449</a> &lt;a href=&quot;#l5430&quot; class=&quot;line&quot; id=&quot;l5430&quot;&gt;   5430&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-330&amp;quot; id=&amp;quot;h4-0-330&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`;this.hooks.declarations&amp;amp;amp;&amp;amp;amp;(o+=this.hooks.declarations+`
   5469 <a href="#l5450" class="line" id="l5450">   5450</a> &lt;a href=&quot;#l5431&quot; class=&quot;line&quot; id=&quot;l5431&quot;&gt;   5431&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-331&amp;quot; id=&amp;quot;h4-0-331&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),this.hooks[r].declarations&amp;amp;amp;&amp;amp;amp;(o+=this.hooks[r].declarations+`
   5470 <a href="#l5451" class="line" id="l5451">   5451</a> &lt;a href=&quot;#l5432&quot; class=&quot;line&quot; id=&quot;l5432&quot;&gt;   5432&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-332&amp;quot; id=&amp;quot;h4-0-332&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);for(let h in this.hooks.helpers)o+=`${h}${this.hooks.helpers[h]}
   5471 <a href="#l5452" class="line" id="l5452">   5452</a> &lt;a href=&quot;#l5433&quot; class=&quot;line&quot; id=&quot;l5433&quot;&gt;   5433&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-333&amp;quot; id=&amp;quot;h4-0-333&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`;for(let h in this.hooks[r]){if(h===&amp;amp;quot;declarations&amp;amp;quot;)continue;let[l,c]=h.split(&amp;amp;quot; &amp;amp;quot;);this.hooks.modified[r][h]&amp;amp;amp;&amp;amp;amp;(u+=&amp;amp;quot;#define AUGMENTED_HOOK_&amp;amp;quot;+c+`
   5472 <a href="#l5453" class="line" id="l5453">   5453</a> &lt;a href=&quot;#l5434&quot; class=&quot;line&quot; id=&quot;l5434&quot;&gt;   5434&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-334&amp;quot; id=&amp;quot;h4-0-334&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),o+=l+&amp;amp;quot; HOOK_&amp;amp;quot;+c+this.hooks[r][h]+`
   5473 <a href="#l5454" class="line" id="l5454">   5454</a> &lt;a href=&quot;#l5435&quot; class=&quot;line&quot; id=&quot;l5435&quot;&gt;   5435&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-335&amp;quot; id=&amp;quot;h4-0-335&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`}return s.indexOf(&amp;amp;quot;#define HOOK_DEFINES&amp;amp;quot;)!==-1&amp;amp;amp;&amp;amp;amp;(s=s.replace(&amp;amp;quot;#define HOOK_DEFINES&amp;amp;quot;,`
   5474 <a href="#l5455" class="line" id="l5455">   5455</a> &lt;a href=&quot;#l5436&quot; class=&quot;line&quot; id=&quot;l5436&quot;&gt;   5436&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-336&amp;quot; id=&amp;quot;h4-0-336&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+u+`
   5475 <a href="#l5456" class="line" id="l5456">   5456</a> &lt;a href=&quot;#l5437&quot; class=&quot;line&quot; id=&quot;l5437&quot;&gt;   5437&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-337&amp;quot; id=&amp;quot;h4-0-337&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),u=&amp;amp;quot;&amp;amp;quot;),s+`
   5476 <a href="#l5457" class="line" id="l5457">   5457</a> &lt;a href=&quot;#l5438&quot; class=&quot;line&quot; id=&quot;l5438&quot;&gt;   5438&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-338&amp;quot; id=&amp;quot;h4-0-338&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+u+o+n+a}version(){let t=/#version (.+)$/.exec(this.vertSrc());return t?t[1]:&amp;amp;quot;100 es&amp;amp;quot;}vertSrc(){return this.shaderSrc(this._vertSrc,&amp;amp;quot;vertex&amp;amp;quot;)}fragSrc(){return this.shaderSrc(this._fragSrc,&amp;amp;quot;fragment&amp;amp;quot;)}inspectHooks(){console.log(&amp;amp;quot;==== Vertex shader hooks: ====&amp;amp;quot;);for(let t in this.hooks.vertex)console.log((this.hooks.modified.vertex[t]?&amp;amp;quot;[MODIFIED] &amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;)+t+this.hooks.vertex[t]);console.log(&amp;amp;quot;&amp;amp;quot;),console.log(&amp;amp;quot;==== Fragment shader hooks: ====&amp;amp;quot;);for(let t in this.hooks.fragment)console.log((this.hooks.modified.fragment[t]?&amp;amp;quot;[MODIFIED] &amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;)+t+this.hooks.fragment[t]);console.log(&amp;amp;quot;&amp;amp;quot;),console.log(&amp;amp;quot;==== Helper functions: ====&amp;amp;quot;);for(let t in this.hooks.helpers)console.log(t+this.hooks.helpers[t])}modify(t){let r={vertex:{},fragment:{},helpers:{}};for(let a in t)a!==&amp;amp;quot;declarations&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a!==&amp;amp;quot;uniforms&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a===&amp;amp;quot;vertexDeclarations&amp;amp;quot;?r.vertex.declarations=(r.vertex.declarations||&amp;amp;quot;&amp;amp;quot;)+`
   5477 <a href="#l5458" class="line" id="l5458">   5458</a> &lt;a href=&quot;#l5439&quot; class=&quot;line&quot; id=&quot;l5439&quot;&gt;   5439&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-339&amp;quot; id=&amp;quot;h4-0-339&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+t[a]:a===&amp;amp;quot;fragmentDeclarations&amp;amp;quot;?r.fragment.declarations=(r.fragment.declarations||&amp;amp;quot;&amp;amp;quot;)+`
   5478 <a href="#l5459" class="line" id="l5459">   5459</a> &lt;a href=&quot;#l5440&quot; class=&quot;line&quot; id=&quot;l5440&quot;&gt;   5440&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-340&amp;quot; id=&amp;quot;h4-0-340&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+t[a]:this.hooks.vertex[a]?r.vertex[a]=t[a]:this.hooks.fragment[a]?r.fragment[a]=t[a]:r.helpers[a]=t[a]);let n=Object.assign({},this.hooks.modified.vertex),s=Object.assign({},this.hooks.modified.fragment);for(let a in r.vertex||{})a!==&amp;amp;quot;declarations&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n[a]=!0);for(let a in r.fragment||{})a!==&amp;amp;quot;declarations&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s[a]=!0);return new i(this._renderer,this._vertSrc,this._fragSrc,{declarations:(this.hooks.declarations||&amp;amp;quot;&amp;amp;quot;)+`
   5479 <a href="#l5460" class="line" id="l5460">   5460</a> &lt;a href=&quot;#l5441&quot; class=&quot;line&quot; id=&quot;l5441&quot;&gt;   5441&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-341&amp;quot; id=&amp;quot;h4-0-341&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`+(t.declarations||&amp;amp;quot;&amp;amp;quot;),uniforms:Object.assign({},this.hooks.uniforms,t.uniforms||{}),fragment:Object.assign({},this.hooks.fragment,r.fragment||{}),vertex:Object.assign({},this.hooks.vertex,r.vertex||{}),helpers:Object.assign({},this.hooks.helpers,r.helpers||{}),modified:{vertex:n,fragment:s}})}init(){if(this._glProgram===0){let t=this._renderer.GL;if(this._vertShader=t.createShader(t.VERTEX_SHADER),t.shaderSource(this._vertShader,this.vertSrc()),t.compileShader(this._vertShader),!t.getShaderParameter(this._vertShader,t.COMPILE_STATUS)){let r=t.getShaderInfoLog(this._vertShader);if(typeof IS_MINIFIED&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)console.error(r);else throw r;return null}if(this._fragShader=t.createShader(t.FRAGMENT_SHADER),t.shaderSource(this._fragShader,this.fragSrc()),t.compileShader(this._fragShader),!t.getShaderParameter(this._fragShader,t.COMPILE_STATUS)){let r=t.getShaderInfoLog(this._fragShader);if(typeof IS_MINIFIED&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)console.error(r);else throw r;return null}this._glProgram=t.createProgram(),t.attachShader(this._glProgram,this._vertShader),t.attachShader(this._glProgram,this._fragShader),t.linkProgram(this._glProgram),t.getProgramParameter(this._glProgram,t.LINK_STATUS)||p5._friendlyError(`Snap! Error linking shader program: ${t.getProgramInfoLog(this._glProgram)}`),this._loadAttributes(),this._loadUniforms()}return this}setDefaultUniforms(){for(let t in this.hooks.uniforms){let[,r]=t.split(&amp;amp;quot; &amp;amp;quot;),n=this.hooks.uniforms[t],s;n instanceof Function?s=n():s=n,s!=null&amp;amp;amp;&amp;amp;amp;this.setUniform(r,s)}}copyToContext(t){let r=new i(t._renderer,this._vertSrc,this._fragSrc);return r.ensureCompiledOnContext(t._renderer),r}ensureCompiledOnContext(t){if(this._glProgram!==0&amp;amp;amp;&amp;amp;amp;this._renderer!==t)throw new Error(&amp;amp;quot;The shader being run is attached to a different context. Do you need to copy it to this context first with .copyToContext()?&amp;amp;quot;);this._glProgram===0&amp;amp;amp;&amp;amp;amp;(this._renderer=t?._renderer?.filterRenderer?._renderer||t,this.init())}_loadAttributes(){if(this._loadedAttributes)return;this.attributes={};let t=this._renderer.GL,r=t.getProgramParameter(this._glProgram,t.ACTIVE_ATTRIBUTES);for(let n=0;n&amp;amp;lt;r;++n){let s=t.getActiveAttrib(this._glProgram,n),a=s.name,o=t.getAttribLocation(this._glProgram,a),u={};u.name=a,u.location=o,u.index=n,u.type=s.type,u.size=s.size,this.attributes[a]=u}this._loadedAttributes=!0}_loadUniforms(){if(this._loadedUniforms)return;let t=this._renderer.GL,r=t.getProgramParameter(this._glProgram,t.ACTIVE_UNIFORMS),n=0;for(let s=0;s&amp;amp;lt;r;++s){let a=t.getActiveUniform(this._glProgram,s),o={};o.location=t.getUniformLocation(this._glProgram,a.name),o.size=a.size;let u=a.name;a.size&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(u=u.substring(0,u.indexOf(&amp;amp;quot;[0]&amp;amp;quot;))),o.name=u,o.type=a.type,o._cachedData=void 0,o.type===t.SAMPLER_2D&amp;amp;amp;&amp;amp;amp;(o.samplerIndex=n,n++,this.samplers.push(o)),o.isArray=a.size&amp;amp;gt;1||o.type===t.FLOAT_MAT3||o.type===t.FLOAT_MAT4||o.type===t.FLOAT_VEC2||o.type===t.FLOAT_VEC3||o.type===t.FLOAT_VEC4||o.type===t.INT_VEC2||o.type===t.INT_VEC4||o.type===t.INT_VEC3,this.uniforms[u]=o}this._loadedUniforms=!0}compile(){}bindShader(){this.init(),this._bound||(this.useProgram(),this._bound=!0)}unbindShader(){return this._bound&amp;amp;amp;&amp;amp;amp;(this.unbindTextures(),this._bound=!1),this}bindTextures(){let t=this._renderer.GL,r=this._renderer._getEmptyTexture();for(let n of this.samplers){let s=n.texture;s===void 0&amp;amp;amp;&amp;amp;amp;(n.texture=s=r),t.activeTexture(t.TEXTURE0+n.samplerIndex),s.bindTexture(),s.update(),t.uniform1i(n.location,n.samplerIndex)}}updateTextures(){for(let t of this.samplers){let r=t.texture;r&amp;amp;amp;&amp;amp;amp;r.update()}}unbindTextures(){let t=this._renderer.GL,r=this._renderer._getEmptyTexture();for(let n of this.samplers)n.texture?.isFramebufferTexture&amp;amp;amp;&amp;amp;amp;(t.activeTexture(t.TEXTURE0+n.samplerIndex),r.bindTexture(),t.uniform1i(n.location,n.samplerIndex))}useProgram(){let t=this._renderer.GL;return this._renderer._curShader!==this&amp;amp;amp;&amp;amp;amp;(t.useProgram(this._glProgram),this._renderer._curShader=this),this}setUniform(t,r){this.init();let n=this.uniforms[t];if(!n)return;let s=this._renderer.GL;if(n.isArray){if(n._cachedData&amp;amp;amp;&amp;amp;amp;this._renderer._arraysEqual(n._cachedData,r))return;n._cachedData=r.slice(0)}else{if(n._cachedData&amp;amp;amp;&amp;amp;amp;n._cachedData===r)return;Array.isArray(r)?n._cachedData=r.slice(0):n._cachedData=r}let a=n.location;switch(this.useProgram(),n.type){case s.BOOL:r===!0?s.uniform1i(a,1):s.uniform1i(a,0);break;case s.INT:n.size&amp;amp;gt;1?r.length&amp;amp;amp;&amp;amp;amp;s.uniform1iv(a,r):s.uniform1i(a,r);break;case s.FLOAT:n.size&amp;amp;gt;1?r.length&amp;amp;amp;&amp;amp;amp;s.uniform1fv(a,r):s.uniform1f(a,r);break;case s.FLOAT_MAT3:s.uniformMatrix3fv(a,!1,r);break;case s.FLOAT_MAT4:s.uniformMatrix4fv(a,!1,r);break;case s.FLOAT_VEC2:n.size&amp;amp;gt;1?r.length&amp;amp;amp;&amp;amp;amp;s.uniform2fv(a,r):s.uniform2f(a,r[0],r[1]);break;case s.FLOAT_VEC3:n.size&amp;amp;gt;1?r.length&amp;amp;amp;&amp;amp;amp;s.uniform3fv(a,r):s.uniform3f(a,r[0],r[1],r[2]);break;case s.FLOAT_VEC4:n.size&amp;amp;gt;1?r.length&amp;amp;amp;&amp;amp;amp;s.uniform4fv(a,r):s.uniform4f(a,r[0],r[1],r[2],r[3]);break;case s.INT_VEC2:n.size&amp;amp;gt;1?r.length&amp;amp;amp;&amp;amp;amp;s.uniform2iv(a,r):s.uniform2i(a,r[0],r[1]);break;case s.INT_VEC3:n.size&amp;amp;gt;1?r.length&amp;amp;amp;&amp;amp;amp;s.uniform3iv(a,r):s.uniform3i(a,r[0],r[1],r[2]);break;case s.INT_VEC4:n.size&amp;amp;gt;1?r.length&amp;amp;amp;&amp;amp;amp;s.uniform4iv(a,r):s.uniform4i(a,r[0],r[1],r[2],r[3]);break;case s.SAMPLER_2D:if(typeof r==&amp;amp;quot;number&amp;amp;quot;){if(r&amp;amp;lt;s.TEXTURE0||r&amp;amp;gt;s.TEXTURE31||r!==Math.ceil(r))return console.log(&amp;amp;quot;\u{1F338} p5.js says: You&amp;amp;#39;re trying to use a number as the data for a texture.Please use a texture.&amp;amp;quot;),this;s.activeTexture(r),s.uniform1i(a,r)}else s.activeTexture(s.TEXTURE0+n.samplerIndex),n.texture=r instanceof _r?r:this._renderer.getTexture(r),s.uniform1i(a,n.samplerIndex),n.texture.src.gifProperties&amp;amp;amp;&amp;amp;amp;n.texture.src._animateGif(this._renderer._pInst);break;case s.SAMPLER_CUBE:case s.SAMPLER_3D:case s.SAMPLER_2D_SHADOW:case s.SAMPLER_2D_ARRAY:case s.SAMPLER_2D_ARRAY_SHADOW:case s.SAMPLER_CUBE_SHADOW:case s.INT_SAMPLER_2D:case s.INT_SAMPLER_3D:case s.INT_SAMPLER_CUBE:case s.INT_SAMPLER_2D_ARRAY:case s.UNSIGNED_INT_SAMPLER_2D:case s.UNSIGNED_INT_SAMPLER_3D:case s.UNSIGNED_INT_SAMPLER_CUBE:case s.UNSIGNED_INT_SAMPLER_2D_ARRAY:if(typeof r!=&amp;amp;quot;number&amp;amp;quot;)break;if(r&amp;amp;lt;s.TEXTURE0||r&amp;amp;gt;s.TEXTURE31||r!==Math.ceil(r)){console.log(&amp;amp;quot;\u{1F338} p5.js says: You&amp;amp;#39;re trying to use a number as the data for a texture.Please use a texture.&amp;amp;quot;);break}s.activeTexture(r),s.uniform1i(a,r);break}return this}enableAttrib(t,r,n,s,a,o){if(t){typeof IS_MINIFIED&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.attributes[t.name]!==t&amp;amp;amp;&amp;amp;amp;console.warn(`The attribute &amp;amp;quot;${t.name}&amp;amp;quot;passed to enableAttrib does not belong to this shader.`);let u=t.location;if(u!==-1){let h=this._renderer.GL;this._renderer.registerEnabled.has(u)||(h.enableVertexAttribArray(u),this._renderer.registerEnabled.add(u)),this._renderer.GL.vertexAttribPointer(u,r,n||h.FLOAT,s||!1,a||0,o||0)}}return this}disableRemainingAttributes(){for(let t of this._renderer.registerEnabled.values())Object.keys(this.attributes).some(r=&amp;amp;gt;this.attributes[r].location===t)||(this._renderer.GL.disableVertexAttribArray(t),this._renderer.registerEnabled.delete(t))}};function io(i,t){i.Shader=Tt}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;io(p5,p5.prototype);var Ac=`precision highp int;
   5480 <a href="#l5461" class="line" id="l5461">   5461</a> &lt;a href=&quot;#l5442&quot; class=&quot;line&quot; id=&quot;l5442&quot;&gt;   5442&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-342&amp;quot; id=&amp;quot;h4-0-342&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5481 <a href="#l5462" class="line" id="l5462">   5462</a> &lt;a href=&quot;#l5443&quot; class=&quot;line&quot; id=&quot;l5443&quot;&gt;   5443&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-343&amp;quot; id=&amp;quot;h4-0-343&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelViewMatrix;
   5482 <a href="#l5463" class="line" id="l5463">   5463</a> &lt;a href=&quot;#l5444&quot; class=&quot;line&quot; id=&quot;l5444&quot;&gt;   5444&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-344&amp;quot; id=&amp;quot;h4-0-344&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   5483 <a href="#l5464" class="line" id="l5464">   5464</a> &lt;a href=&quot;#l5445&quot; class=&quot;line&quot; id=&quot;l5445&quot;&gt;   5445&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-345&amp;quot; id=&amp;quot;h4-0-345&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5484 <a href="#l5465" class="line" id="l5465">   5465</a> &lt;a href=&quot;#l5446&quot; class=&quot;line&quot; id=&quot;l5446&quot;&gt;   5446&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-346&amp;quot; id=&amp;quot;h4-0-346&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aPosition;
   5485 <a href="#l5466" class="line" id="l5466">   5466</a> &lt;a href=&quot;#l5447&quot; class=&quot;line&quot; id=&quot;l5447&quot;&gt;   5447&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-347&amp;quot; id=&amp;quot;h4-0-347&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 aTexCoord;
   5486 <a href="#l5467" class="line" id="l5467">   5467</a> &lt;a href=&quot;#l5448&quot; class=&quot;line&quot; id=&quot;l5448&quot;&gt;   5448&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-348&amp;quot; id=&amp;quot;h4-0-348&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec2 vTexCoord;
   5487 <a href="#l5468" class="line" id="l5468">   5468</a> &lt;a href=&quot;#l5449&quot; class=&quot;line&quot; id=&quot;l5449&quot;&gt;   5449&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-349&amp;quot; id=&amp;quot;h4-0-349&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5488 <a href="#l5469" class="line" id="l5469">   5469</a> &lt;a href=&quot;#l5450&quot; class=&quot;line&quot; id=&quot;l5450&quot;&gt;   5450&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-350&amp;quot; id=&amp;quot;h4-0-350&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   5489 <a href="#l5470" class="line" id="l5470">   5470</a> &lt;a href=&quot;#l5451&quot; class=&quot;line&quot; id=&quot;l5451&quot;&gt;   5451&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-351&amp;quot; id=&amp;quot;h4-0-351&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // transferring texcoords for the frag shader
   5490 <a href="#l5471" class="line" id="l5471">   5471</a> &lt;a href=&quot;#l5452&quot; class=&quot;line&quot; id=&quot;l5452&quot;&gt;   5452&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-352&amp;quot; id=&amp;quot;h4-0-352&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vTexCoord = aTexCoord;
   5491 <a href="#l5472" class="line" id="l5472">   5472</a> &lt;a href=&quot;#l5453&quot; class=&quot;line&quot; id=&quot;l5453&quot;&gt;   5453&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-353&amp;quot; id=&amp;quot;h4-0-353&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5492 <a href="#l5473" class="line" id="l5473">   5473</a> &lt;a href=&quot;#l5454&quot; class=&quot;line&quot; id=&quot;l5454&quot;&gt;   5454&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-354&amp;quot; id=&amp;quot;h4-0-354&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // copy position with a fourth coordinate for projection (1.0 is normal)
   5493 <a href="#l5474" class="line" id="l5474">   5474</a> &lt;a href=&quot;#l5455&quot; class=&quot;line&quot; id=&quot;l5455&quot;&gt;   5455&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-355&amp;quot; id=&amp;quot;h4-0-355&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 positionVec4 = vec4(aPosition, 1.0);
   5494 <a href="#l5475" class="line" id="l5475">   5475</a> &lt;a href=&quot;#l5456&quot; class=&quot;line&quot; id=&quot;l5456&quot;&gt;   5456&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-356&amp;quot; id=&amp;quot;h4-0-356&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5495 <a href="#l5476" class="line" id="l5476">   5476</a> &lt;a href=&quot;#l5457&quot; class=&quot;line&quot; id=&quot;l5457&quot;&gt;   5457&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-357&amp;quot; id=&amp;quot;h4-0-357&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // project to 3D space
   5496 <a href="#l5477" class="line" id="l5477">   5477</a> &lt;a href=&quot;#l5458&quot; class=&quot;line&quot; id=&quot;l5458&quot;&gt;   5458&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-358&amp;quot; id=&amp;quot;h4-0-358&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;
   5497 <a href="#l5478" class="line" id="l5478">   5478</a> &lt;a href=&quot;#l5459&quot; class=&quot;line&quot; id=&quot;l5459&quot;&gt;   5459&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-359&amp;quot; id=&amp;quot;h4-0-359&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5498 <a href="#l5479" class="line" id="l5479">   5479</a> &lt;a href=&quot;#l5460&quot; class=&quot;line&quot; id=&quot;l5460&quot;&gt;   5460&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-360&amp;quot; id=&amp;quot;h4-0-360&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Um=`#define PI 3.141592
   5499 <a href="#l5480" class="line" id="l5480">   5480</a> &lt;a href=&quot;#l5461&quot; class=&quot;line&quot; id=&quot;l5461&quot;&gt;   5461&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-361&amp;quot; id=&amp;quot;h4-0-361&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5500 <a href="#l5481" class="line" id="l5481">   5481</a> &lt;a href=&quot;#l5462&quot; class=&quot;line&quot; id=&quot;l5462&quot;&gt;   5462&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-362&amp;quot; id=&amp;quot;h4-0-362&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   5501 <a href="#l5482" class="line" id="l5482">   5482</a> &lt;a href=&quot;#l5463&quot; class=&quot;line&quot; id=&quot;l5463&quot;&gt;   5463&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-363&amp;quot; id=&amp;quot;h4-0-363&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp int;
   5502 <a href="#l5483" class="line" id="l5483">   5483</a> &lt;a href=&quot;#l5464&quot; class=&quot;line&quot; id=&quot;l5464&quot;&gt;   5464&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-364&amp;quot; id=&amp;quot;h4-0-364&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5503 <a href="#l5484" class="line" id="l5484">   5484</a> &lt;a href=&quot;#l5465&quot; class=&quot;line&quot; id=&quot;l5465&quot;&gt;   5465&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-365&amp;quot; id=&amp;quot;h4-0-365&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uViewMatrix;
   5504 <a href="#l5485" class="line" id="l5485">   5485</a> &lt;a href=&quot;#l5466&quot; class=&quot;line&quot; id=&quot;l5466&quot;&gt;   5466&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-366&amp;quot; id=&amp;quot;h4-0-366&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5505 <a href="#l5486" class="line" id="l5486">   5486</a> &lt;a href=&quot;#l5467&quot; class=&quot;line&quot; id=&quot;l5467&quot;&gt;   5467&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-367&amp;quot; id=&amp;quot;h4-0-367&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uUseLighting;
   5506 <a href="#l5487" class="line" id="l5487">   5487</a> &lt;a href=&quot;#l5468&quot; class=&quot;line&quot; id=&quot;l5468&quot;&gt;   5468&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-368&amp;quot; id=&amp;quot;h4-0-368&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5507 <a href="#l5488" class="line" id="l5488">   5488</a> &lt;a href=&quot;#l5469&quot; class=&quot;line&quot; id=&quot;l5469&quot;&gt;   5469&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-369&amp;quot; id=&amp;quot;h4-0-369&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uAmbientLightCount;
   5508 <a href="#l5489" class="line" id="l5489">   5489</a> &lt;a href=&quot;#l5470&quot; class=&quot;line&quot; id=&quot;l5470&quot;&gt;   5470&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-370&amp;quot; id=&amp;quot;h4-0-370&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uAmbientColor[5];
   5509 <a href="#l5490" class="line" id="l5490">   5490</a> &lt;a href=&quot;#l5471&quot; class=&quot;line&quot; id=&quot;l5471&quot;&gt;   5471&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-371&amp;quot; id=&amp;quot;h4-0-371&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uCameraRotation;
   5510 <a href="#l5491" class="line" id="l5491">   5491</a> &lt;a href=&quot;#l5472&quot; class=&quot;line&quot; id=&quot;l5472&quot;&gt;   5472&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-372&amp;quot; id=&amp;quot;h4-0-372&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uDirectionalLightCount;
   5511 <a href="#l5492" class="line" id="l5492">   5492</a> &lt;a href=&quot;#l5473&quot; class=&quot;line&quot; id=&quot;l5473&quot;&gt;   5473&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-373&amp;quot; id=&amp;quot;h4-0-373&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uLightingDirection[5];
   5512 <a href="#l5493" class="line" id="l5493">   5493</a> &lt;a href=&quot;#l5474&quot; class=&quot;line&quot; id=&quot;l5474&quot;&gt;   5474&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-374&amp;quot; id=&amp;quot;h4-0-374&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uDirectionalDiffuseColors[5];
   5513 <a href="#l5494" class="line" id="l5494">   5494</a> &lt;a href=&quot;#l5475&quot; class=&quot;line&quot; id=&quot;l5475&quot;&gt;   5475&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-375&amp;quot; id=&amp;quot;h4-0-375&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uDirectionalSpecularColors[5];
   5514 <a href="#l5495" class="line" id="l5495">   5495</a> &lt;a href=&quot;#l5476&quot; class=&quot;line&quot; id=&quot;l5476&quot;&gt;   5476&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-376&amp;quot; id=&amp;quot;h4-0-376&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5515 <a href="#l5496" class="line" id="l5496">   5496</a> &lt;a href=&quot;#l5477&quot; class=&quot;line&quot; id=&quot;l5477&quot;&gt;   5477&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-377&amp;quot; id=&amp;quot;h4-0-377&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uPointLightCount;
   5516 <a href="#l5497" class="line" id="l5497">   5497</a> &lt;a href=&quot;#l5478&quot; class=&quot;line&quot; id=&quot;l5478&quot;&gt;   5478&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-378&amp;quot; id=&amp;quot;h4-0-378&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uPointLightLocation[5];
   5517 <a href="#l5498" class="line" id="l5498">   5498</a> &lt;a href=&quot;#l5479&quot; class=&quot;line&quot; id=&quot;l5479&quot;&gt;   5479&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-379&amp;quot; id=&amp;quot;h4-0-379&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uPointLightDiffuseColors[5];
   5518 <a href="#l5499" class="line" id="l5499">   5499</a> &lt;a href=&quot;#l5480&quot; class=&quot;line&quot; id=&quot;l5480&quot;&gt;   5480&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-380&amp;quot; id=&amp;quot;h4-0-380&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uPointLightSpecularColors[5];
   5519 <a href="#l5500" class="line" id="l5500">   5500</a> &lt;a href=&quot;#l5481&quot; class=&quot;line&quot; id=&quot;l5481&quot;&gt;   5481&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-381&amp;quot; id=&amp;quot;h4-0-381&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5520 <a href="#l5501" class="line" id="l5501">   5501</a> &lt;a href=&quot;#l5482&quot; class=&quot;line&quot; id=&quot;l5482&quot;&gt;   5482&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-382&amp;quot; id=&amp;quot;h4-0-382&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uSpotLightCount;
   5521 <a href="#l5502" class="line" id="l5502">   5502</a> &lt;a href=&quot;#l5483&quot; class=&quot;line&quot; id=&quot;l5483&quot;&gt;   5483&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-383&amp;quot; id=&amp;quot;h4-0-383&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uSpotLightAngle[5];
   5522 <a href="#l5503" class="line" id="l5503">   5503</a> &lt;a href=&quot;#l5484&quot; class=&quot;line&quot; id=&quot;l5484&quot;&gt;   5484&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-384&amp;quot; id=&amp;quot;h4-0-384&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uSpotLightConc[5];
   5523 <a href="#l5504" class="line" id="l5504">   5504</a> &lt;a href=&quot;#l5485&quot; class=&quot;line&quot; id=&quot;l5485&quot;&gt;   5485&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-385&amp;quot; id=&amp;quot;h4-0-385&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uSpotLightDiffuseColors[5];
   5524 <a href="#l5505" class="line" id="l5505">   5505</a> &lt;a href=&quot;#l5486&quot; class=&quot;line&quot; id=&quot;l5486&quot;&gt;   5486&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-386&amp;quot; id=&amp;quot;h4-0-386&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uSpotLightSpecularColors[5];
   5525 <a href="#l5506" class="line" id="l5506">   5506</a> &lt;a href=&quot;#l5487&quot; class=&quot;line&quot; id=&quot;l5487&quot;&gt;   5487&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-387&amp;quot; id=&amp;quot;h4-0-387&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uSpotLightLocation[5];
   5526 <a href="#l5507" class="line" id="l5507">   5507</a> &lt;a href=&quot;#l5488&quot; class=&quot;line&quot; id=&quot;l5488&quot;&gt;   5488&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-388&amp;quot; id=&amp;quot;h4-0-388&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uSpotLightDirection[5];
   5527 <a href="#l5508" class="line" id="l5508">   5508</a> &lt;a href=&quot;#l5489&quot; class=&quot;line&quot; id=&quot;l5489&quot;&gt;   5489&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-389&amp;quot; id=&amp;quot;h4-0-389&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5528 <a href="#l5509" class="line" id="l5509">   5509</a> &lt;a href=&quot;#l5490&quot; class=&quot;line&quot; id=&quot;l5490&quot;&gt;   5490&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-390&amp;quot; id=&amp;quot;h4-0-390&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uSpecular;
   5529 <a href="#l5510" class="line" id="l5510">   5510</a> &lt;a href=&quot;#l5491&quot; class=&quot;line&quot; id=&quot;l5491&quot;&gt;   5491&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-391&amp;quot; id=&amp;quot;h4-0-391&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uShininess;
   5530 <a href="#l5511" class="line" id="l5511">   5511</a> &lt;a href=&quot;#l5492&quot; class=&quot;line&quot; id=&quot;l5492&quot;&gt;   5492&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-392&amp;quot; id=&amp;quot;h4-0-392&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uMetallic;
   5531 <a href="#l5512" class="line" id="l5512">   5512</a> &lt;a href=&quot;#l5493&quot; class=&quot;line&quot; id=&quot;l5493&quot;&gt;   5493&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-393&amp;quot; id=&amp;quot;h4-0-393&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5532 <a href="#l5513" class="line" id="l5513">   5513</a> &lt;a href=&quot;#l5494&quot; class=&quot;line&quot; id=&quot;l5494&quot;&gt;   5494&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-394&amp;quot; id=&amp;quot;h4-0-394&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uConstantAttenuation;
   5533 <a href="#l5514" class="line" id="l5514">   5514</a> &lt;a href=&quot;#l5495&quot; class=&quot;line&quot; id=&quot;l5495&quot;&gt;   5495&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-395&amp;quot; id=&amp;quot;h4-0-395&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uLinearAttenuation;
   5534 <a href="#l5515" class="line" id="l5515">   5515</a> &lt;a href=&quot;#l5496&quot; class=&quot;line&quot; id=&quot;l5496&quot;&gt;   5496&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-396&amp;quot; id=&amp;quot;h4-0-396&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uQuadraticAttenuation;
   5535 <a href="#l5516" class="line" id="l5516">   5516</a> &lt;a href=&quot;#l5497&quot; class=&quot;line&quot; id=&quot;l5497&quot;&gt;   5497&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-397&amp;quot; id=&amp;quot;h4-0-397&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5536 <a href="#l5517" class="line" id="l5517">   5517</a> &lt;a href=&quot;#l5498&quot; class=&quot;line&quot; id=&quot;l5498&quot;&gt;   5498&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-398&amp;quot; id=&amp;quot;h4-0-398&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// setting from  _setImageLightUniforms()
   5537 <a href="#l5518" class="line" id="l5518">   5518</a> &lt;a href=&quot;#l5499&quot; class=&quot;line&quot; id=&quot;l5499&quot;&gt;   5499&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-399&amp;quot; id=&amp;quot;h4-0-399&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// boolean to initiate the calculateImageDiffuse and calculateImageSpecular
   5538 <a href="#l5519" class="line" id="l5519">   5519</a> &lt;a href=&quot;#l5500&quot; class=&quot;line&quot; id=&quot;l5500&quot;&gt;   5500&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-400&amp;quot; id=&amp;quot;h4-0-400&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uUseImageLight;
   5539 <a href="#l5520" class="line" id="l5520">   5520</a> &lt;a href=&quot;#l5501&quot; class=&quot;line&quot; id=&quot;l5501&quot;&gt;   5501&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-401&amp;quot; id=&amp;quot;h4-0-401&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// texture for use in calculateImageDiffuse
   5540 <a href="#l5521" class="line" id="l5521">   5521</a> &lt;a href=&quot;#l5502&quot; class=&quot;line&quot; id=&quot;l5502&quot;&gt;   5502&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-402&amp;quot; id=&amp;quot;h4-0-402&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D environmentMapDiffused;
   5541 <a href="#l5522" class="line" id="l5522">   5522</a> &lt;a href=&quot;#l5503&quot; class=&quot;line&quot; id=&quot;l5503&quot;&gt;   5503&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-403&amp;quot; id=&amp;quot;h4-0-403&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// texture for use in calculateImageSpecular
   5542 <a href="#l5523" class="line" id="l5523">   5523</a> &lt;a href=&quot;#l5504&quot; class=&quot;line&quot; id=&quot;l5504&quot;&gt;   5504&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-404&amp;quot; id=&amp;quot;h4-0-404&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D environmentMapSpecular;
   5543 <a href="#l5524" class="line" id="l5524">   5524</a> &lt;a href=&quot;#l5505&quot; class=&quot;line&quot; id=&quot;l5505&quot;&gt;   5505&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-405&amp;quot; id=&amp;quot;h4-0-405&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5544 <a href="#l5525" class="line" id="l5525">   5525</a> &lt;a href=&quot;#l5506&quot; class=&quot;line&quot; id=&quot;l5506&quot;&gt;   5506&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-406&amp;quot; id=&amp;quot;h4-0-406&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const float specularFactor = 2.0;
   5545 <a href="#l5526" class="line" id="l5526">   5526</a> &lt;a href=&quot;#l5507&quot; class=&quot;line&quot; id=&quot;l5507&quot;&gt;   5507&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-407&amp;quot; id=&amp;quot;h4-0-407&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const float diffuseFactor = 0.73;
   5546 <a href="#l5527" class="line" id="l5527">   5527</a> &lt;a href=&quot;#l5508&quot; class=&quot;line&quot; id=&quot;l5508&quot;&gt;   5508&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-408&amp;quot; id=&amp;quot;h4-0-408&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5547 <a href="#l5528" class="line" id="l5528">   5528</a> &lt;a href=&quot;#l5509&quot; class=&quot;line&quot; id=&quot;l5509&quot;&gt;   5509&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-409&amp;quot; id=&amp;quot;h4-0-409&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct LightResult {
   5548 <a href="#l5529" class="line" id="l5529">   5529</a> &lt;a href=&quot;#l5510&quot; class=&quot;line&quot; id=&quot;l5510&quot;&gt;   5510&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-410&amp;quot; id=&amp;quot;h4-0-410&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float specular;
   5549 <a href="#l5530" class="line" id="l5530">   5530</a> &lt;a href=&quot;#l5511&quot; class=&quot;line&quot; id=&quot;l5511&quot;&gt;   5511&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-411&amp;quot; id=&amp;quot;h4-0-411&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float diffuse;
   5550 <a href="#l5531" class="line" id="l5531">   5531</a> &lt;a href=&quot;#l5512&quot; class=&quot;line&quot; id=&quot;l5512&quot;&gt;   5512&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-412&amp;quot; id=&amp;quot;h4-0-412&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   5551 <a href="#l5532" class="line" id="l5532">   5532</a> &lt;a href=&quot;#l5513&quot; class=&quot;line&quot; id=&quot;l5513&quot;&gt;   5513&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-413&amp;quot; id=&amp;quot;h4-0-413&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5552 <a href="#l5533" class="line" id="l5533">   5533</a> &lt;a href=&quot;#l5514&quot; class=&quot;line&quot; id=&quot;l5514&quot;&gt;   5514&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-414&amp;quot; id=&amp;quot;h4-0-414&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float _phongSpecular(
   5553 <a href="#l5534" class="line" id="l5534">   5534</a> &lt;a href=&quot;#l5515&quot; class=&quot;line&quot; id=&quot;l5515&quot;&gt;   5515&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-415&amp;quot; id=&amp;quot;h4-0-415&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 lightDirection,
   5554 <a href="#l5535" class="line" id="l5535">   5535</a> &lt;a href=&quot;#l5516&quot; class=&quot;line&quot; id=&quot;l5516&quot;&gt;   5516&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-416&amp;quot; id=&amp;quot;h4-0-416&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 viewDirection,
   5555 <a href="#l5536" class="line" id="l5536">   5536</a> &lt;a href=&quot;#l5517&quot; class=&quot;line&quot; id=&quot;l5517&quot;&gt;   5517&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-417&amp;quot; id=&amp;quot;h4-0-417&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 surfaceNormal,
   5556 <a href="#l5537" class="line" id="l5537">   5537</a> &lt;a href=&quot;#l5518&quot; class=&quot;line&quot; id=&quot;l5518&quot;&gt;   5518&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-418&amp;quot; id=&amp;quot;h4-0-418&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float shininess) {
   5557 <a href="#l5538" class="line" id="l5538">   5538</a> &lt;a href=&quot;#l5519&quot; class=&quot;line&quot; id=&quot;l5519&quot;&gt;   5519&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-419&amp;quot; id=&amp;quot;h4-0-419&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5558 <a href="#l5539" class="line" id="l5539">   5539</a> &lt;a href=&quot;#l5520&quot; class=&quot;line&quot; id=&quot;l5520&quot;&gt;   5520&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-420&amp;quot; id=&amp;quot;h4-0-420&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 R = reflect(lightDirection, surfaceNormal);
   5559 <a href="#l5540" class="line" id="l5540">   5540</a> &lt;a href=&quot;#l5521&quot; class=&quot;line&quot; id=&quot;l5521&quot;&gt;   5521&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-421&amp;quot; id=&amp;quot;h4-0-421&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return pow(max(0.0, dot(R, viewDirection)), shininess);
   5560 <a href="#l5541" class="line" id="l5541">   5541</a> &lt;a href=&quot;#l5522&quot; class=&quot;line&quot; id=&quot;l5522&quot;&gt;   5522&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-422&amp;quot; id=&amp;quot;h4-0-422&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5561 <a href="#l5542" class="line" id="l5542">   5542</a> &lt;a href=&quot;#l5523&quot; class=&quot;line&quot; id=&quot;l5523&quot;&gt;   5523&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-423&amp;quot; id=&amp;quot;h4-0-423&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5562 <a href="#l5543" class="line" id="l5543">   5543</a> &lt;a href=&quot;#l5524&quot; class=&quot;line&quot; id=&quot;l5524&quot;&gt;   5524&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-424&amp;quot; id=&amp;quot;h4-0-424&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float _lambertDiffuse(vec3 lightDirection, vec3 surfaceNormal) {
   5563 <a href="#l5544" class="line" id="l5544">   5544</a> &lt;a href=&quot;#l5525&quot; class=&quot;line&quot; id=&quot;l5525&quot;&gt;   5525&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-425&amp;quot; id=&amp;quot;h4-0-425&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return max(0.0, dot(-lightDirection, surfaceNormal));
   5564 <a href="#l5545" class="line" id="l5545">   5545</a> &lt;a href=&quot;#l5526&quot; class=&quot;line&quot; id=&quot;l5526&quot;&gt;   5526&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-426&amp;quot; id=&amp;quot;h4-0-426&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5565 <a href="#l5546" class="line" id="l5546">   5546</a> &lt;a href=&quot;#l5527&quot; class=&quot;line&quot; id=&quot;l5527&quot;&gt;   5527&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-427&amp;quot; id=&amp;quot;h4-0-427&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5566 <a href="#l5547" class="line" id="l5547">   5547</a> &lt;a href=&quot;#l5528&quot; class=&quot;line&quot; id=&quot;l5528&quot;&gt;   5528&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-428&amp;quot; id=&amp;quot;h4-0-428&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+LightResult _light(vec3 viewDirection, vec3 normal, vec3 lightVector, float shininess, float metallic) {
   5567 <a href="#l5548" class="line" id="l5548">   5548</a> &lt;a href=&quot;#l5529&quot; class=&quot;line&quot; id=&quot;l5529&quot;&gt;   5529&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-429&amp;quot; id=&amp;quot;h4-0-429&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5568 <a href="#l5549" class="line" id="l5549">   5549</a> &lt;a href=&quot;#l5530&quot; class=&quot;line&quot; id=&quot;l5530&quot;&gt;   5530&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-430&amp;quot; id=&amp;quot;h4-0-430&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 lightDir = normalize(lightVector);
   5569 <a href="#l5550" class="line" id="l5550">   5550</a> &lt;a href=&quot;#l5531&quot; class=&quot;line&quot; id=&quot;l5531&quot;&gt;   5531&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-431&amp;quot; id=&amp;quot;h4-0-431&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5570 <a href="#l5551" class="line" id="l5551">   5551</a> &lt;a href=&quot;#l5532&quot; class=&quot;line&quot; id=&quot;l5532&quot;&gt;   5532&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-432&amp;quot; id=&amp;quot;h4-0-432&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  //compute our diffuse &amp;amp;amp; specular terms
   5571 <a href="#l5552" class="line" id="l5552">   5552</a> &lt;a href=&quot;#l5533&quot; class=&quot;line&quot; id=&quot;l5533&quot;&gt;   5533&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-433&amp;quot; id=&amp;quot;h4-0-433&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  LightResult lr;
   5572 <a href="#l5553" class="line" id="l5553">   5553</a> &lt;a href=&quot;#l5534&quot; class=&quot;line&quot; id=&quot;l5534&quot;&gt;   5534&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-434&amp;quot; id=&amp;quot;h4-0-434&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float specularIntensity = mix(1.0, 0.4, metallic);
   5573 <a href="#l5554" class="line" id="l5554">   5554</a> &lt;a href=&quot;#l5535&quot; class=&quot;line&quot; id=&quot;l5535&quot;&gt;   5535&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-435&amp;quot; id=&amp;quot;h4-0-435&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float diffuseIntensity = mix(1.0, 0.1, metallic);
   5574 <a href="#l5555" class="line" id="l5555">   5555</a> &lt;a href=&quot;#l5536&quot; class=&quot;line&quot; id=&quot;l5536&quot;&gt;   5536&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-436&amp;quot; id=&amp;quot;h4-0-436&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (uSpecular)
   5575 <a href="#l5556" class="line" id="l5556">   5556</a> &lt;a href=&quot;#l5537&quot; class=&quot;line&quot; id=&quot;l5537&quot;&gt;   5537&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-437&amp;quot; id=&amp;quot;h4-0-437&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    lr.specular = (_phongSpecular(lightDir, viewDirection, normal, shininess)) * specularIntensity;
   5576 <a href="#l5557" class="line" id="l5557">   5557</a> &lt;a href=&quot;#l5538&quot; class=&quot;line&quot; id=&quot;l5538&quot;&gt;   5538&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-438&amp;quot; id=&amp;quot;h4-0-438&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    lr.diffuse = _lambertDiffuse(lightDir, normal) * diffuseIntensity;
   5577 <a href="#l5558" class="line" id="l5558">   5558</a> &lt;a href=&quot;#l5539&quot; class=&quot;line&quot; id=&quot;l5539&quot;&gt;   5539&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-439&amp;quot; id=&amp;quot;h4-0-439&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return lr;
   5578 <a href="#l5559" class="line" id="l5559">   5559</a> &lt;a href=&quot;#l5540&quot; class=&quot;line&quot; id=&quot;l5540&quot;&gt;   5540&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-440&amp;quot; id=&amp;quot;h4-0-440&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5579 <a href="#l5560" class="line" id="l5560">   5560</a> &lt;a href=&quot;#l5541&quot; class=&quot;line&quot; id=&quot;l5541&quot;&gt;   5541&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-441&amp;quot; id=&amp;quot;h4-0-441&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5580 <a href="#l5561" class="line" id="l5561">   5561</a> &lt;a href=&quot;#l5542&quot; class=&quot;line&quot; id=&quot;l5542&quot;&gt;   5542&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-442&amp;quot; id=&amp;quot;h4-0-442&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// converts the range of &amp;amp;quot;value&amp;amp;quot; from [min1 to max1] to [min2 to max2]
   5581 <a href="#l5562" class="line" id="l5562">   5562</a> &lt;a href=&quot;#l5543&quot; class=&quot;line&quot; id=&quot;l5543&quot;&gt;   5543&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-443&amp;quot; id=&amp;quot;h4-0-443&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float map(float value, float min1, float max1, float min2, float max2) {
   5582 <a href="#l5563" class="line" id="l5563">   5563</a> &lt;a href=&quot;#l5544&quot; class=&quot;line&quot; id=&quot;l5544&quot;&gt;   5544&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-444&amp;quot; id=&amp;quot;h4-0-444&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return min2 + (value - min1) * (max2 - min2) / (max1 - min1);
   5583 <a href="#l5564" class="line" id="l5564">   5564</a> &lt;a href=&quot;#l5545&quot; class=&quot;line&quot; id=&quot;l5545&quot;&gt;   5545&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-445&amp;quot; id=&amp;quot;h4-0-445&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5584 <a href="#l5565" class="line" id="l5565">   5565</a> &lt;a href=&quot;#l5546&quot; class=&quot;line&quot; id=&quot;l5546&quot;&gt;   5546&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-446&amp;quot; id=&amp;quot;h4-0-446&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5585 <a href="#l5566" class="line" id="l5566">   5566</a> &lt;a href=&quot;#l5547&quot; class=&quot;line&quot; id=&quot;l5547&quot;&gt;   5547&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-447&amp;quot; id=&amp;quot;h4-0-447&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 mapTextureToNormal( vec3 v ){
   5586 <a href="#l5567" class="line" id="l5567">   5567</a> &lt;a href=&quot;#l5548&quot; class=&quot;line&quot; id=&quot;l5548&quot;&gt;   5548&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-448&amp;quot; id=&amp;quot;h4-0-448&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // x = r sin(phi) cos(theta)
   5587 <a href="#l5568" class="line" id="l5568">   5568</a> &lt;a href=&quot;#l5549&quot; class=&quot;line&quot; id=&quot;l5549&quot;&gt;   5549&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-449&amp;quot; id=&amp;quot;h4-0-449&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // y = r cos(phi)
   5588 <a href="#l5569" class="line" id="l5569">   5569</a> &lt;a href=&quot;#l5550&quot; class=&quot;line&quot; id=&quot;l5550&quot;&gt;   5550&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-450&amp;quot; id=&amp;quot;h4-0-450&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // z = r sin(phi) sin(theta)
   5589 <a href="#l5570" class="line" id="l5570">   5570</a> &lt;a href=&quot;#l5551&quot; class=&quot;line&quot; id=&quot;l5551&quot;&gt;   5551&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-451&amp;quot; id=&amp;quot;h4-0-451&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float phi = acos( v.y );
   5590 <a href="#l5571" class="line" id="l5571">   5571</a> &lt;a href=&quot;#l5552&quot; class=&quot;line&quot; id=&quot;l5552&quot;&gt;   5552&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-452&amp;quot; id=&amp;quot;h4-0-452&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // if phi is 0, then there are no x, z components
   5591 <a href="#l5572" class="line" id="l5572">   5572</a> &lt;a href=&quot;#l5553&quot; class=&quot;line&quot; id=&quot;l5553&quot;&gt;   5553&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-453&amp;quot; id=&amp;quot;h4-0-453&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float theta = 0.0;
   5592 <a href="#l5573" class="line" id="l5573">   5573</a> &lt;a href=&quot;#l5554&quot; class=&quot;line&quot; id=&quot;l5554&quot;&gt;   5554&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-454&amp;quot; id=&amp;quot;h4-0-454&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // else
   5593 <a href="#l5574" class="line" id="l5574">   5574</a> &lt;a href=&quot;#l5555&quot; class=&quot;line&quot; id=&quot;l5555&quot;&gt;   5555&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-455&amp;quot; id=&amp;quot;h4-0-455&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  theta = acos(v.x / sin(phi));
   5594 <a href="#l5575" class="line" id="l5575">   5575</a> &lt;a href=&quot;#l5556&quot; class=&quot;line&quot; id=&quot;l5556&quot;&gt;   5556&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-456&amp;quot; id=&amp;quot;h4-0-456&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float sinTheta = v.z / sin(phi);
   5595 <a href="#l5576" class="line" id="l5576">   5576</a> &lt;a href=&quot;#l5557&quot; class=&quot;line&quot; id=&quot;l5557&quot;&gt;   5557&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-457&amp;quot; id=&amp;quot;h4-0-457&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (sinTheta &amp;amp;lt; 0.0) {
   5596 <a href="#l5577" class="line" id="l5577">   5577</a> &lt;a href=&quot;#l5558&quot; class=&quot;line&quot; id=&quot;l5558&quot;&gt;   5558&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-458&amp;quot; id=&amp;quot;h4-0-458&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Turn it into -theta, but in the 0-2PI range
   5597 <a href="#l5578" class="line" id="l5578">   5578</a> &lt;a href=&quot;#l5559&quot; class=&quot;line&quot; id=&quot;l5559&quot;&gt;   5559&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-459&amp;quot; id=&amp;quot;h4-0-459&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    theta = 2.0 * PI - theta;
   5598 <a href="#l5579" class="line" id="l5579">   5579</a> &lt;a href=&quot;#l5560&quot; class=&quot;line&quot; id=&quot;l5560&quot;&gt;   5560&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-460&amp;quot; id=&amp;quot;h4-0-460&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   5599 <a href="#l5580" class="line" id="l5580">   5580</a> &lt;a href=&quot;#l5561&quot; class=&quot;line&quot; id=&quot;l5561&quot;&gt;   5561&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-461&amp;quot; id=&amp;quot;h4-0-461&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  theta = theta / (2.0 * 3.14159);
   5600 <a href="#l5581" class="line" id="l5581">   5581</a> &lt;a href=&quot;#l5562&quot; class=&quot;line&quot; id=&quot;l5562&quot;&gt;   5562&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-462&amp;quot; id=&amp;quot;h4-0-462&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  phi = phi / 3.14159 ;
   5601 <a href="#l5582" class="line" id="l5582">   5582</a> &lt;a href=&quot;#l5563&quot; class=&quot;line&quot; id=&quot;l5563&quot;&gt;   5563&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-463&amp;quot; id=&amp;quot;h4-0-463&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5602 <a href="#l5583" class="line" id="l5583">   5583</a> &lt;a href=&quot;#l5564&quot; class=&quot;line&quot; id=&quot;l5564&quot;&gt;   5564&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-464&amp;quot; id=&amp;quot;h4-0-464&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 angles = vec2( fract(theta + 0.25), 1.0 - phi );
   5603 <a href="#l5584" class="line" id="l5584">   5584</a> &lt;a href=&quot;#l5565&quot; class=&quot;line&quot; id=&quot;l5565&quot;&gt;   5565&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-465&amp;quot; id=&amp;quot;h4-0-465&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return angles;
   5604 <a href="#l5585" class="line" id="l5585">   5585</a> &lt;a href=&quot;#l5566&quot; class=&quot;line&quot; id=&quot;l5566&quot;&gt;   5566&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-466&amp;quot; id=&amp;quot;h4-0-466&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5605 <a href="#l5586" class="line" id="l5586">   5586</a> &lt;a href=&quot;#l5567&quot; class=&quot;line&quot; id=&quot;l5567&quot;&gt;   5567&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-467&amp;quot; id=&amp;quot;h4-0-467&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5606 <a href="#l5587" class="line" id="l5587">   5587</a> &lt;a href=&quot;#l5568&quot; class=&quot;line&quot; id=&quot;l5568&quot;&gt;   5568&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-468&amp;quot; id=&amp;quot;h4-0-468&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5607 <a href="#l5588" class="line" id="l5588">   5588</a> &lt;a href=&quot;#l5569&quot; class=&quot;line&quot; id=&quot;l5569&quot;&gt;   5569&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-469&amp;quot; id=&amp;quot;h4-0-469&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 calculateImageDiffuse(vec3 vNormal, vec3 vViewPosition, float metallic){
   5608 <a href="#l5589" class="line" id="l5589">   5589</a> &lt;a href=&quot;#l5570&quot; class=&quot;line&quot; id=&quot;l5570&quot;&gt;   5570&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-470&amp;quot; id=&amp;quot;h4-0-470&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // make 2 seperate builds
   5609 <a href="#l5590" class="line" id="l5590">   5590</a> &lt;a href=&quot;#l5571&quot; class=&quot;line&quot; id=&quot;l5571&quot;&gt;   5571&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-471&amp;quot; id=&amp;quot;h4-0-471&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 worldCameraPosition =  vec3(0.0, 0.0, 0.0);  // hardcoded world camera position
   5610 <a href="#l5591" class="line" id="l5591">   5591</a> &lt;a href=&quot;#l5572&quot; class=&quot;line&quot; id=&quot;l5572&quot;&gt;   5572&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-472&amp;quot; id=&amp;quot;h4-0-472&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 worldNormal = normalize(vNormal * uCameraRotation);
   5611 <a href="#l5592" class="line" id="l5592">   5592</a> &lt;a href=&quot;#l5573&quot; class=&quot;line&quot; id=&quot;l5573&quot;&gt;   5573&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-473&amp;quot; id=&amp;quot;h4-0-473&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 newTexCoor = mapTextureToNormal( worldNormal );
   5612 <a href="#l5593" class="line" id="l5593">   5593</a> &lt;a href=&quot;#l5574&quot; class=&quot;line&quot; id=&quot;l5574&quot;&gt;   5574&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-474&amp;quot; id=&amp;quot;h4-0-474&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 texture = TEXTURE( environmentMapDiffused, newTexCoor );
   5613 <a href="#l5594" class="line" id="l5594">   5594</a> &lt;a href=&quot;#l5575&quot; class=&quot;line&quot; id=&quot;l5575&quot;&gt;   5575&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-475&amp;quot; id=&amp;quot;h4-0-475&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // this is to make the darker sections more dark
   5614 <a href="#l5595" class="line" id="l5595">   5595</a> &lt;a href=&quot;#l5576&quot; class=&quot;line&quot; id=&quot;l5576&quot;&gt;   5576&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-476&amp;quot; id=&amp;quot;h4-0-476&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // png and jpg usually flatten the brightness so it is to reverse that
   5615 <a href="#l5596" class="line" id="l5596">   5596</a> &lt;a href=&quot;#l5577&quot; class=&quot;line&quot; id=&quot;l5577&quot;&gt;   5577&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-477&amp;quot; id=&amp;quot;h4-0-477&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return mix(smoothstep(vec3(0.0), vec3(1.0), texture.xyz), vec3(0.0), metallic);
   5616 <a href="#l5597" class="line" id="l5597">   5597</a> &lt;a href=&quot;#l5578&quot; class=&quot;line&quot; id=&quot;l5578&quot;&gt;   5578&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-478&amp;quot; id=&amp;quot;h4-0-478&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5617 <a href="#l5598" class="line" id="l5598">   5598</a> &lt;a href=&quot;#l5579&quot; class=&quot;line&quot; id=&quot;l5579&quot;&gt;   5579&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-479&amp;quot; id=&amp;quot;h4-0-479&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5618 <a href="#l5599" class="line" id="l5599">   5599</a> &lt;a href=&quot;#l5580&quot; class=&quot;line&quot; id=&quot;l5580&quot;&gt;   5580&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-480&amp;quot; id=&amp;quot;h4-0-480&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 calculateImageSpecular(vec3 vNormal, vec3 vViewPosition, float shininess, float metallic){
   5619 <a href="#l5600" class="line" id="l5600">   5600</a> &lt;a href=&quot;#l5581&quot; class=&quot;line&quot; id=&quot;l5581&quot;&gt;   5581&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-481&amp;quot; id=&amp;quot;h4-0-481&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 worldCameraPosition =  vec3(0.0, 0.0, 0.0);
   5620 <a href="#l5601" class="line" id="l5601">   5601</a> &lt;a href=&quot;#l5582&quot; class=&quot;line&quot; id=&quot;l5582&quot;&gt;   5582&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-482&amp;quot; id=&amp;quot;h4-0-482&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 worldNormal = normalize(vNormal);
   5621 <a href="#l5602" class="line" id="l5602">   5602</a> &lt;a href=&quot;#l5583&quot; class=&quot;line&quot; id=&quot;l5583&quot;&gt;   5583&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-483&amp;quot; id=&amp;quot;h4-0-483&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 lightDirection = normalize( vViewPosition - worldCameraPosition );
   5622 <a href="#l5603" class="line" id="l5603">   5603</a> &lt;a href=&quot;#l5584&quot; class=&quot;line&quot; id=&quot;l5584&quot;&gt;   5584&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-484&amp;quot; id=&amp;quot;h4-0-484&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 R = reflect(lightDirection, worldNormal) * uCameraRotation;
   5623 <a href="#l5604" class="line" id="l5604">   5604</a> &lt;a href=&quot;#l5585&quot; class=&quot;line&quot; id=&quot;l5585&quot;&gt;   5585&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-485&amp;quot; id=&amp;quot;h4-0-485&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 newTexCoor = mapTextureToNormal( R );
   5624 <a href="#l5605" class="line" id="l5605">   5605</a> &lt;a href=&quot;#l5586&quot; class=&quot;line&quot; id=&quot;l5586&quot;&gt;   5586&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-486&amp;quot; id=&amp;quot;h4-0-486&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef WEBGL2
   5625 <a href="#l5606" class="line" id="l5606">   5606</a> &lt;a href=&quot;#l5587&quot; class=&quot;line&quot; id=&quot;l5587&quot;&gt;   5587&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-487&amp;quot; id=&amp;quot;h4-0-487&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // In p5js the range of shininess is &amp;amp;gt;= 1,
   5626 <a href="#l5607" class="line" id="l5607">   5607</a> &lt;a href=&quot;#l5588&quot; class=&quot;line&quot; id=&quot;l5588&quot;&gt;   5588&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-488&amp;quot; id=&amp;quot;h4-0-488&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Therefore roughness range will be ([0,1]*8)*20 or [0, 160]
   5627 <a href="#l5608" class="line" id="l5608">   5608</a> &lt;a href=&quot;#l5589&quot; class=&quot;line&quot; id=&quot;l5589&quot;&gt;   5589&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-489&amp;quot; id=&amp;quot;h4-0-489&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // The factor of 8 is because currently the getSpecularTexture
   5628 <a href="#l5609" class="line" id="l5609">   5609</a> &lt;a href=&quot;#l5590&quot; class=&quot;line&quot; id=&quot;l5590&quot;&gt;   5590&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-490&amp;quot; id=&amp;quot;h4-0-490&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // only calculated 8 different levels of roughness
   5629 <a href="#l5610" class="line" id="l5610">   5610</a> &lt;a href=&quot;#l5591&quot; class=&quot;line&quot; id=&quot;l5591&quot;&gt;   5591&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-491&amp;quot; id=&amp;quot;h4-0-491&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // The factor of 20 is just to spread up this range so that,
   5630 <a href="#l5611" class="line" id="l5611">   5611</a> &lt;a href=&quot;#l5592&quot; class=&quot;line&quot; id=&quot;l5592&quot;&gt;   5592&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-492&amp;quot; id=&amp;quot;h4-0-492&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // [1, max] of shininess is converted to [0,160] of roughness
   5631 <a href="#l5612" class="line" id="l5612">   5612</a> &lt;a href=&quot;#l5593&quot; class=&quot;line&quot; id=&quot;l5593&quot;&gt;   5593&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-493&amp;quot; id=&amp;quot;h4-0-493&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float roughness = 20. / shininess;
   5632 <a href="#l5613" class="line" id="l5613">   5613</a> &lt;a href=&quot;#l5594&quot; class=&quot;line&quot; id=&quot;l5594&quot;&gt;   5594&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-494&amp;quot; id=&amp;quot;h4-0-494&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 outColor = textureLod(environmentMapSpecular, newTexCoor, roughness * 8.);
   5633 <a href="#l5614" class="line" id="l5614">   5614</a> &lt;a href=&quot;#l5595&quot; class=&quot;line&quot; id=&quot;l5595&quot;&gt;   5595&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-495&amp;quot; id=&amp;quot;h4-0-495&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   5634 <a href="#l5615" class="line" id="l5615">   5615</a> &lt;a href=&quot;#l5596&quot; class=&quot;line&quot; id=&quot;l5596&quot;&gt;   5596&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-496&amp;quot; id=&amp;quot;h4-0-496&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 outColor = TEXTURE(environmentMapSpecular, newTexCoor);
   5635 <a href="#l5616" class="line" id="l5616">   5616</a> &lt;a href=&quot;#l5597&quot; class=&quot;line&quot; id=&quot;l5597&quot;&gt;   5597&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-497&amp;quot; id=&amp;quot;h4-0-497&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5636 <a href="#l5617" class="line" id="l5617">   5617</a> &lt;a href=&quot;#l5598&quot; class=&quot;line&quot; id=&quot;l5598&quot;&gt;   5598&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-498&amp;quot; id=&amp;quot;h4-0-498&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // this is to make the darker sections more dark
   5637 <a href="#l5618" class="line" id="l5618">   5618</a> &lt;a href=&quot;#l5599&quot; class=&quot;line&quot; id=&quot;l5599&quot;&gt;   5599&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-499&amp;quot; id=&amp;quot;h4-0-499&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // png and jpg usually flatten the brightness so it is to reverse that
   5638 <a href="#l5619" class="line" id="l5619">   5619</a> &lt;a href=&quot;#l5600&quot; class=&quot;line&quot; id=&quot;l5600&quot;&gt;   5600&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-500&amp;quot; id=&amp;quot;h4-0-500&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return mix(
   5639 <a href="#l5620" class="line" id="l5620">   5620</a> &lt;a href=&quot;#l5601&quot; class=&quot;line&quot; id=&quot;l5601&quot;&gt;   5601&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-501&amp;quot; id=&amp;quot;h4-0-501&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    pow(outColor.xyz, vec3(10)),
   5640 <a href="#l5621" class="line" id="l5621">   5621</a> &lt;a href=&quot;#l5602&quot; class=&quot;line&quot; id=&quot;l5602&quot;&gt;   5602&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-502&amp;quot; id=&amp;quot;h4-0-502&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    pow(outColor.xyz, vec3(1.2)),
   5641 <a href="#l5622" class="line" id="l5622">   5622</a> &lt;a href=&quot;#l5603&quot; class=&quot;line&quot; id=&quot;l5603&quot;&gt;   5603&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-503&amp;quot; id=&amp;quot;h4-0-503&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    metallic
   5642 <a href="#l5623" class="line" id="l5623">   5623</a> &lt;a href=&quot;#l5604&quot; class=&quot;line&quot; id=&quot;l5604&quot;&gt;   5604&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-504&amp;quot; id=&amp;quot;h4-0-504&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  );
   5643 <a href="#l5624" class="line" id="l5624">   5624</a> &lt;a href=&quot;#l5605&quot; class=&quot;line&quot; id=&quot;l5605&quot;&gt;   5605&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-505&amp;quot; id=&amp;quot;h4-0-505&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5644 <a href="#l5625" class="line" id="l5625">   5625</a> &lt;a href=&quot;#l5606&quot; class=&quot;line&quot; id=&quot;l5606&quot;&gt;   5606&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-506&amp;quot; id=&amp;quot;h4-0-506&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5645 <a href="#l5626" class="line" id="l5626">   5626</a> &lt;a href=&quot;#l5607&quot; class=&quot;line&quot; id=&quot;l5607&quot;&gt;   5607&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-507&amp;quot; id=&amp;quot;h4-0-507&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void totalLight(
   5646 <a href="#l5627" class="line" id="l5627">   5627</a> &lt;a href=&quot;#l5608&quot; class=&quot;line&quot; id=&quot;l5608&quot;&gt;   5608&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-508&amp;quot; id=&amp;quot;h4-0-508&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 modelPosition,
   5647 <a href="#l5628" class="line" id="l5628">   5628</a> &lt;a href=&quot;#l5609&quot; class=&quot;line&quot; id=&quot;l5609&quot;&gt;   5609&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-509&amp;quot; id=&amp;quot;h4-0-509&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 normal,
   5648 <a href="#l5629" class="line" id="l5629">   5629</a> &lt;a href=&quot;#l5610&quot; class=&quot;line&quot; id=&quot;l5610&quot;&gt;   5610&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-510&amp;quot; id=&amp;quot;h4-0-510&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float shininess,
   5649 <a href="#l5630" class="line" id="l5630">   5630</a> &lt;a href=&quot;#l5611&quot; class=&quot;line&quot; id=&quot;l5611&quot;&gt;   5611&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-511&amp;quot; id=&amp;quot;h4-0-511&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float metallic,
   5650 <a href="#l5631" class="line" id="l5631">   5631</a> &lt;a href=&quot;#l5612&quot; class=&quot;line&quot; id=&quot;l5612&quot;&gt;   5612&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-512&amp;quot; id=&amp;quot;h4-0-512&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  out vec3 totalDiffuse,
   5651 <a href="#l5632" class="line" id="l5632">   5632</a> &lt;a href=&quot;#l5613&quot; class=&quot;line&quot; id=&quot;l5613&quot;&gt;   5613&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-513&amp;quot; id=&amp;quot;h4-0-513&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  out vec3 totalSpecular
   5652 <a href="#l5633" class="line" id="l5633">   5633</a> &lt;a href=&quot;#l5614&quot; class=&quot;line&quot; id=&quot;l5614&quot;&gt;   5614&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-514&amp;quot; id=&amp;quot;h4-0-514&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+) {
   5653 <a href="#l5634" class="line" id="l5634">   5634</a> &lt;a href=&quot;#l5615&quot; class=&quot;line&quot; id=&quot;l5615&quot;&gt;   5615&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-515&amp;quot; id=&amp;quot;h4-0-515&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5654 <a href="#l5635" class="line" id="l5635">   5635</a> &lt;a href=&quot;#l5616&quot; class=&quot;line&quot; id=&quot;l5616&quot;&gt;   5616&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-516&amp;quot; id=&amp;quot;h4-0-516&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  totalSpecular = vec3(0.0);
   5655 <a href="#l5636" class="line" id="l5636">   5636</a> &lt;a href=&quot;#l5617&quot; class=&quot;line&quot; id=&quot;l5617&quot;&gt;   5617&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-517&amp;quot; id=&amp;quot;h4-0-517&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5656 <a href="#l5637" class="line" id="l5637">   5637</a> &lt;a href=&quot;#l5618&quot; class=&quot;line&quot; id=&quot;l5618&quot;&gt;   5618&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-518&amp;quot; id=&amp;quot;h4-0-518&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (!uUseLighting) {
   5657 <a href="#l5638" class="line" id="l5638">   5638</a> &lt;a href=&quot;#l5619&quot; class=&quot;line&quot; id=&quot;l5619&quot;&gt;   5619&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-519&amp;quot; id=&amp;quot;h4-0-519&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    totalDiffuse = vec3(1.0);
   5658 <a href="#l5639" class="line" id="l5639">   5639</a> &lt;a href=&quot;#l5620&quot; class=&quot;line&quot; id=&quot;l5620&quot;&gt;   5620&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-520&amp;quot; id=&amp;quot;h4-0-520&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    return;
   5659 <a href="#l5640" class="line" id="l5640">   5640</a> &lt;a href=&quot;#l5621&quot; class=&quot;line&quot; id=&quot;l5621&quot;&gt;   5621&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-521&amp;quot; id=&amp;quot;h4-0-521&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   5660 <a href="#l5641" class="line" id="l5641">   5641</a> &lt;a href=&quot;#l5622&quot; class=&quot;line&quot; id=&quot;l5622&quot;&gt;   5622&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-522&amp;quot; id=&amp;quot;h4-0-522&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5661 <a href="#l5642" class="line" id="l5642">   5642</a> &lt;a href=&quot;#l5623&quot; class=&quot;line&quot; id=&quot;l5623&quot;&gt;   5623&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-523&amp;quot; id=&amp;quot;h4-0-523&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  totalDiffuse = vec3(0.0);
   5662 <a href="#l5643" class="line" id="l5643">   5643</a> &lt;a href=&quot;#l5624&quot; class=&quot;line&quot; id=&quot;l5624&quot;&gt;   5624&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-524&amp;quot; id=&amp;quot;h4-0-524&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5663 <a href="#l5644" class="line" id="l5644">   5644</a> &lt;a href=&quot;#l5625&quot; class=&quot;line&quot; id=&quot;l5625&quot;&gt;   5625&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-525&amp;quot; id=&amp;quot;h4-0-525&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 viewDirection = normalize(-modelPosition);
   5664 <a href="#l5645" class="line" id="l5645">   5645</a> &lt;a href=&quot;#l5626&quot; class=&quot;line&quot; id=&quot;l5626&quot;&gt;   5626&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-526&amp;quot; id=&amp;quot;h4-0-526&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5665 <a href="#l5646" class="line" id="l5646">   5646</a> &lt;a href=&quot;#l5627&quot; class=&quot;line&quot; id=&quot;l5627&quot;&gt;   5627&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-527&amp;quot; id=&amp;quot;h4-0-527&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  for (int j = 0; j &amp;amp;lt; 5; j++) {
   5666 <a href="#l5647" class="line" id="l5647">   5647</a> &lt;a href=&quot;#l5628&quot; class=&quot;line&quot; id=&quot;l5628&quot;&gt;   5628&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-528&amp;quot; id=&amp;quot;h4-0-528&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (j &amp;amp;lt; uDirectionalLightCount) {
   5667 <a href="#l5648" class="line" id="l5648">   5648</a> &lt;a href=&quot;#l5629&quot; class=&quot;line&quot; id=&quot;l5629&quot;&gt;   5629&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-529&amp;quot; id=&amp;quot;h4-0-529&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightVector = (uViewMatrix * vec4(uLightingDirection[j], 0.0)).xyz;
   5668 <a href="#l5649" class="line" id="l5649">   5649</a> &lt;a href=&quot;#l5630&quot; class=&quot;line&quot; id=&quot;l5630&quot;&gt;   5630&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-530&amp;quot; id=&amp;quot;h4-0-530&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightColor = uDirectionalDiffuseColors[j];
   5669 <a href="#l5650" class="line" id="l5650">   5650</a> &lt;a href=&quot;#l5631&quot; class=&quot;line&quot; id=&quot;l5631&quot;&gt;   5631&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-531&amp;quot; id=&amp;quot;h4-0-531&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 specularColor = uDirectionalSpecularColors[j];
   5670 <a href="#l5651" class="line" id="l5651">   5651</a> &lt;a href=&quot;#l5632&quot; class=&quot;line&quot; id=&quot;l5632&quot;&gt;   5632&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-532&amp;quot; id=&amp;quot;h4-0-532&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      LightResult result = _light(viewDirection, normal, lightVector, shininess, metallic);
   5671 <a href="#l5652" class="line" id="l5652">   5652</a> &lt;a href=&quot;#l5633&quot; class=&quot;line&quot; id=&quot;l5633&quot;&gt;   5633&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-533&amp;quot; id=&amp;quot;h4-0-533&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      totalDiffuse += result.diffuse * lightColor;
   5672 <a href="#l5653" class="line" id="l5653">   5653</a> &lt;a href=&quot;#l5634&quot; class=&quot;line&quot; id=&quot;l5634&quot;&gt;   5634&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-534&amp;quot; id=&amp;quot;h4-0-534&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      totalSpecular += result.specular * lightColor * specularColor;
   5673 <a href="#l5654" class="line" id="l5654">   5654</a> &lt;a href=&quot;#l5635&quot; class=&quot;line&quot; id=&quot;l5635&quot;&gt;   5635&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-535&amp;quot; id=&amp;quot;h4-0-535&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   5674 <a href="#l5655" class="line" id="l5655">   5655</a> &lt;a href=&quot;#l5636&quot; class=&quot;line&quot; id=&quot;l5636&quot;&gt;   5636&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-536&amp;quot; id=&amp;quot;h4-0-536&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5675 <a href="#l5656" class="line" id="l5656">   5656</a> &lt;a href=&quot;#l5637&quot; class=&quot;line&quot; id=&quot;l5637&quot;&gt;   5637&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-537&amp;quot; id=&amp;quot;h4-0-537&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (j &amp;amp;lt; uPointLightCount) {
   5676 <a href="#l5657" class="line" id="l5657">   5657</a> &lt;a href=&quot;#l5638&quot; class=&quot;line&quot; id=&quot;l5638&quot;&gt;   5638&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-538&amp;quot; id=&amp;quot;h4-0-538&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightPosition = (uViewMatrix * vec4(uPointLightLocation[j], 1.0)).xyz;
   5677 <a href="#l5658" class="line" id="l5658">   5658</a> &lt;a href=&quot;#l5639&quot; class=&quot;line&quot; id=&quot;l5639&quot;&gt;   5639&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-539&amp;quot; id=&amp;quot;h4-0-539&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightVector = modelPosition - lightPosition;
   5678 <a href="#l5659" class="line" id="l5659">   5659</a> &lt;a href=&quot;#l5640&quot; class=&quot;line&quot; id=&quot;l5640&quot;&gt;   5640&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-540&amp;quot; id=&amp;quot;h4-0-540&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      //calculate attenuation
   5679 <a href="#l5660" class="line" id="l5660">   5660</a> &lt;a href=&quot;#l5641&quot; class=&quot;line&quot; id=&quot;l5641&quot;&gt;   5641&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-541&amp;quot; id=&amp;quot;h4-0-541&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float lightDistance = length(lightVector);
   5680 <a href="#l5661" class="line" id="l5661">   5661</a> &lt;a href=&quot;#l5642&quot; class=&quot;line&quot; id=&quot;l5642&quot;&gt;   5642&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-542&amp;quot; id=&amp;quot;h4-0-542&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float lightFalloff = 1.0 / (uConstantAttenuation + lightDistance * uLinearAttenuation + (lightDistance * lightDistance) * uQuadraticAttenuation);
   5681 <a href="#l5662" class="line" id="l5662">   5662</a> &lt;a href=&quot;#l5643&quot; class=&quot;line&quot; id=&quot;l5643&quot;&gt;   5643&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-543&amp;quot; id=&amp;quot;h4-0-543&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightColor = lightFalloff * uPointLightDiffuseColors[j];
   5682 <a href="#l5663" class="line" id="l5663">   5663</a> &lt;a href=&quot;#l5644&quot; class=&quot;line&quot; id=&quot;l5644&quot;&gt;   5644&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-544&amp;quot; id=&amp;quot;h4-0-544&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 specularColor = lightFalloff * uPointLightSpecularColors[j];
   5683 <a href="#l5664" class="line" id="l5664">   5664</a> &lt;a href=&quot;#l5645&quot; class=&quot;line&quot; id=&quot;l5645&quot;&gt;   5645&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-545&amp;quot; id=&amp;quot;h4-0-545&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5684 <a href="#l5665" class="line" id="l5665">   5665</a> &lt;a href=&quot;#l5646&quot; class=&quot;line&quot; id=&quot;l5646&quot;&gt;   5646&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-546&amp;quot; id=&amp;quot;h4-0-546&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      LightResult result = _light(viewDirection, normal, lightVector, shininess, metallic);
   5685 <a href="#l5666" class="line" id="l5666">   5666</a> &lt;a href=&quot;#l5647&quot; class=&quot;line&quot; id=&quot;l5647&quot;&gt;   5647&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-547&amp;quot; id=&amp;quot;h4-0-547&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      totalDiffuse += result.diffuse * lightColor;
   5686 <a href="#l5667" class="line" id="l5667">   5667</a> &lt;a href=&quot;#l5648&quot; class=&quot;line&quot; id=&quot;l5648&quot;&gt;   5648&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-548&amp;quot; id=&amp;quot;h4-0-548&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      totalSpecular += result.specular * lightColor * specularColor;
   5687 <a href="#l5668" class="line" id="l5668">   5668</a> &lt;a href=&quot;#l5649&quot; class=&quot;line&quot; id=&quot;l5649&quot;&gt;   5649&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-549&amp;quot; id=&amp;quot;h4-0-549&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   5688 <a href="#l5669" class="line" id="l5669">   5669</a> &lt;a href=&quot;#l5650&quot; class=&quot;line&quot; id=&quot;l5650&quot;&gt;   5650&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-550&amp;quot; id=&amp;quot;h4-0-550&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5689 <a href="#l5670" class="line" id="l5670">   5670</a> &lt;a href=&quot;#l5651&quot; class=&quot;line&quot; id=&quot;l5651&quot;&gt;   5651&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-551&amp;quot; id=&amp;quot;h4-0-551&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if(j &amp;amp;lt; uSpotLightCount) {
   5690 <a href="#l5671" class="line" id="l5671">   5671</a> &lt;a href=&quot;#l5652&quot; class=&quot;line&quot; id=&quot;l5652&quot;&gt;   5652&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-552&amp;quot; id=&amp;quot;h4-0-552&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightPosition = (uViewMatrix * vec4(uSpotLightLocation[j], 1.0)).xyz;
   5691 <a href="#l5672" class="line" id="l5672">   5672</a> &lt;a href=&quot;#l5653&quot; class=&quot;line&quot; id=&quot;l5653&quot;&gt;   5653&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-553&amp;quot; id=&amp;quot;h4-0-553&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightVector = modelPosition - lightPosition;
   5692 <a href="#l5673" class="line" id="l5673">   5673</a> &lt;a href=&quot;#l5654&quot; class=&quot;line&quot; id=&quot;l5654&quot;&gt;   5654&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-554&amp;quot; id=&amp;quot;h4-0-554&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5693 <a href="#l5674" class="line" id="l5674">   5674</a> &lt;a href=&quot;#l5655&quot; class=&quot;line&quot; id=&quot;l5655&quot;&gt;   5655&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-555&amp;quot; id=&amp;quot;h4-0-555&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float lightDistance = length(lightVector);
   5694 <a href="#l5675" class="line" id="l5675">   5675</a> &lt;a href=&quot;#l5656&quot; class=&quot;line&quot; id=&quot;l5656&quot;&gt;   5656&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-556&amp;quot; id=&amp;quot;h4-0-556&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float lightFalloff = 1.0 / (uConstantAttenuation + lightDistance * uLinearAttenuation + (lightDistance * lightDistance) * uQuadraticAttenuation);
   5695 <a href="#l5676" class="line" id="l5676">   5676</a> &lt;a href=&quot;#l5657&quot; class=&quot;line&quot; id=&quot;l5657&quot;&gt;   5657&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-557&amp;quot; id=&amp;quot;h4-0-557&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5696 <a href="#l5677" class="line" id="l5677">   5677</a> &lt;a href=&quot;#l5658&quot; class=&quot;line&quot; id=&quot;l5658&quot;&gt;   5658&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-558&amp;quot; id=&amp;quot;h4-0-558&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightDirection = (uViewMatrix * vec4(uSpotLightDirection[j], 0.0)).xyz;
   5697 <a href="#l5678" class="line" id="l5678">   5678</a> &lt;a href=&quot;#l5659&quot; class=&quot;line&quot; id=&quot;l5659&quot;&gt;   5659&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-559&amp;quot; id=&amp;quot;h4-0-559&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float spotDot = dot(normalize(lightVector), normalize(lightDirection));
   5698 <a href="#l5679" class="line" id="l5679">   5679</a> &lt;a href=&quot;#l5660&quot; class=&quot;line&quot; id=&quot;l5660&quot;&gt;   5660&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-560&amp;quot; id=&amp;quot;h4-0-560&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float spotFalloff;
   5699 <a href="#l5680" class="line" id="l5680">   5680</a> &lt;a href=&quot;#l5661&quot; class=&quot;line&quot; id=&quot;l5661&quot;&gt;   5661&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-561&amp;quot; id=&amp;quot;h4-0-561&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      if(spotDot &amp;amp;lt; uSpotLightAngle[j]) {
   5700 <a href="#l5681" class="line" id="l5681">   5681</a> &lt;a href=&quot;#l5662&quot; class=&quot;line&quot; id=&quot;l5662&quot;&gt;   5662&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-562&amp;quot; id=&amp;quot;h4-0-562&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        spotFalloff = 0.0;
   5701 <a href="#l5682" class="line" id="l5682">   5682</a> &lt;a href=&quot;#l5663&quot; class=&quot;line&quot; id=&quot;l5663&quot;&gt;   5663&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-563&amp;quot; id=&amp;quot;h4-0-563&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   5702 <a href="#l5683" class="line" id="l5683">   5683</a> &lt;a href=&quot;#l5664&quot; class=&quot;line&quot; id=&quot;l5664&quot;&gt;   5664&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-564&amp;quot; id=&amp;quot;h4-0-564&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      else {
   5703 <a href="#l5684" class="line" id="l5684">   5684</a> &lt;a href=&quot;#l5665&quot; class=&quot;line&quot; id=&quot;l5665&quot;&gt;   5665&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-565&amp;quot; id=&amp;quot;h4-0-565&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        spotFalloff = pow(spotDot, uSpotLightConc[j]);
   5704 <a href="#l5685" class="line" id="l5685">   5685</a> &lt;a href=&quot;#l5666&quot; class=&quot;line&quot; id=&quot;l5666&quot;&gt;   5666&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-566&amp;quot; id=&amp;quot;h4-0-566&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   5705 <a href="#l5686" class="line" id="l5686">   5686</a> &lt;a href=&quot;#l5667&quot; class=&quot;line&quot; id=&quot;l5667&quot;&gt;   5667&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-567&amp;quot; id=&amp;quot;h4-0-567&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      lightFalloff *= spotFalloff;
   5706 <a href="#l5687" class="line" id="l5687">   5687</a> &lt;a href=&quot;#l5668&quot; class=&quot;line&quot; id=&quot;l5668&quot;&gt;   5668&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-568&amp;quot; id=&amp;quot;h4-0-568&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5707 <a href="#l5688" class="line" id="l5688">   5688</a> &lt;a href=&quot;#l5669&quot; class=&quot;line&quot; id=&quot;l5669&quot;&gt;   5669&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-569&amp;quot; id=&amp;quot;h4-0-569&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 lightColor = uSpotLightDiffuseColors[j];
   5708 <a href="#l5689" class="line" id="l5689">   5689</a> &lt;a href=&quot;#l5670&quot; class=&quot;line&quot; id=&quot;l5670&quot;&gt;   5670&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-570&amp;quot; id=&amp;quot;h4-0-570&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 specularColor = uSpotLightSpecularColors[j];
   5709 <a href="#l5690" class="line" id="l5690">   5690</a> &lt;a href=&quot;#l5671&quot; class=&quot;line&quot; id=&quot;l5671&quot;&gt;   5671&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-571&amp;quot; id=&amp;quot;h4-0-571&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5710 <a href="#l5691" class="line" id="l5691">   5691</a> &lt;a href=&quot;#l5672&quot; class=&quot;line&quot; id=&quot;l5672&quot;&gt;   5672&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-572&amp;quot; id=&amp;quot;h4-0-572&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      LightResult result = _light(viewDirection, normal, lightVector, shininess, metallic);
   5711 <a href="#l5692" class="line" id="l5692">   5692</a> &lt;a href=&quot;#l5673&quot; class=&quot;line&quot; id=&quot;l5673&quot;&gt;   5673&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-573&amp;quot; id=&amp;quot;h4-0-573&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5712 <a href="#l5693" class="line" id="l5693">   5693</a> &lt;a href=&quot;#l5674&quot; class=&quot;line&quot; id=&quot;l5674&quot;&gt;   5674&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-574&amp;quot; id=&amp;quot;h4-0-574&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      totalDiffuse += result.diffuse * lightColor * lightFalloff;
   5713 <a href="#l5694" class="line" id="l5694">   5694</a> &lt;a href=&quot;#l5675&quot; class=&quot;line&quot; id=&quot;l5675&quot;&gt;   5675&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-575&amp;quot; id=&amp;quot;h4-0-575&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      totalSpecular += result.specular * lightColor * specularColor * lightFalloff;
   5714 <a href="#l5695" class="line" id="l5695">   5695</a> &lt;a href=&quot;#l5676&quot; class=&quot;line&quot; id=&quot;l5676&quot;&gt;   5676&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-576&amp;quot; id=&amp;quot;h4-0-576&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   5715 <a href="#l5696" class="line" id="l5696">   5696</a> &lt;a href=&quot;#l5677&quot; class=&quot;line&quot; id=&quot;l5677&quot;&gt;   5677&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-577&amp;quot; id=&amp;quot;h4-0-577&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   5716 <a href="#l5697" class="line" id="l5697">   5697</a> &lt;a href=&quot;#l5678&quot; class=&quot;line&quot; id=&quot;l5678&quot;&gt;   5678&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-578&amp;quot; id=&amp;quot;h4-0-578&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5717 <a href="#l5698" class="line" id="l5698">   5698</a> &lt;a href=&quot;#l5679&quot; class=&quot;line&quot; id=&quot;l5679&quot;&gt;   5679&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-579&amp;quot; id=&amp;quot;h4-0-579&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if( uUseImageLight ){
   5718 <a href="#l5699" class="line" id="l5699">   5699</a> &lt;a href=&quot;#l5680&quot; class=&quot;line&quot; id=&quot;l5680&quot;&gt;   5680&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-580&amp;quot; id=&amp;quot;h4-0-580&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    totalDiffuse += calculateImageDiffuse(normal, modelPosition, metallic);
   5719 <a href="#l5700" class="line" id="l5700">   5700</a> &lt;a href=&quot;#l5681&quot; class=&quot;line&quot; id=&quot;l5681&quot;&gt;   5681&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-581&amp;quot; id=&amp;quot;h4-0-581&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    totalSpecular += calculateImageSpecular(normal, modelPosition, shininess, metallic);
   5720 <a href="#l5701" class="line" id="l5701">   5701</a> &lt;a href=&quot;#l5682&quot; class=&quot;line&quot; id=&quot;l5682&quot;&gt;   5682&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-582&amp;quot; id=&amp;quot;h4-0-582&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   5721 <a href="#l5702" class="line" id="l5702">   5702</a> &lt;a href=&quot;#l5683&quot; class=&quot;line&quot; id=&quot;l5683&quot;&gt;   5683&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-583&amp;quot; id=&amp;quot;h4-0-583&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5722 <a href="#l5703" class="line" id="l5703">   5703</a> &lt;a href=&quot;#l5684&quot; class=&quot;line&quot; id=&quot;l5684&quot;&gt;   5684&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-584&amp;quot; id=&amp;quot;h4-0-584&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  totalDiffuse *= diffuseFactor;
   5723 <a href="#l5704" class="line" id="l5704">   5704</a> &lt;a href=&quot;#l5685&quot; class=&quot;line&quot; id=&quot;l5685&quot;&gt;   5685&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-585&amp;quot; id=&amp;quot;h4-0-585&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  totalSpecular *= specularFactor;
   5724 <a href="#l5705" class="line" id="l5705">   5705</a> &lt;a href=&quot;#l5686&quot; class=&quot;line&quot; id=&quot;l5686&quot;&gt;   5686&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-586&amp;quot; id=&amp;quot;h4-0-586&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5725 <a href="#l5706" class="line" id="l5706">   5706</a> &lt;a href=&quot;#l5687&quot; class=&quot;line&quot; id=&quot;l5687&quot;&gt;   5687&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-587&amp;quot; id=&amp;quot;h4-0-587&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,ol=`#ifdef WEBGL2
   5726 <a href="#l5707" class="line" id="l5707">   5707</a> &lt;a href=&quot;#l5688&quot; class=&quot;line&quot; id=&quot;l5688&quot;&gt;   5688&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-588&amp;quot; id=&amp;quot;h4-0-588&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5727 <a href="#l5708" class="line" id="l5708">   5708</a> &lt;a href=&quot;#l5689&quot; class=&quot;line&quot; id=&quot;l5689&quot;&gt;   5689&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-589&amp;quot; id=&amp;quot;h4-0-589&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define IN in
   5728 <a href="#l5709" class="line" id="l5709">   5709</a> &lt;a href=&quot;#l5690&quot; class=&quot;line&quot; id=&quot;l5690&quot;&gt;   5690&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-590&amp;quot; id=&amp;quot;h4-0-590&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define OUT out
   5729 <a href="#l5710" class="line" id="l5710">   5710</a> &lt;a href=&quot;#l5691&quot; class=&quot;line&quot; id=&quot;l5691&quot;&gt;   5691&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-591&amp;quot; id=&amp;quot;h4-0-591&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5730 <a href="#l5711" class="line" id="l5711">   5711</a> &lt;a href=&quot;#l5692&quot; class=&quot;line&quot; id=&quot;l5692&quot;&gt;   5692&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-592&amp;quot; id=&amp;quot;h4-0-592&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef FRAGMENT_SHADER
   5731 <a href="#l5712" class="line" id="l5712">   5712</a> &lt;a href=&quot;#l5693&quot; class=&quot;line&quot; id=&quot;l5693&quot;&gt;   5693&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-593&amp;quot; id=&amp;quot;h4-0-593&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+out vec4 outColor;
   5732 <a href="#l5713" class="line" id="l5713">   5713</a> &lt;a href=&quot;#l5694&quot; class=&quot;line&quot; id=&quot;l5694&quot;&gt;   5694&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-594&amp;quot; id=&amp;quot;h4-0-594&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define OUT_COLOR outColor
   5733 <a href="#l5714" class="line" id="l5714">   5714</a> &lt;a href=&quot;#l5695&quot; class=&quot;line&quot; id=&quot;l5695&quot;&gt;   5695&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-595&amp;quot; id=&amp;quot;h4-0-595&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5734 <a href="#l5715" class="line" id="l5715">   5715</a> &lt;a href=&quot;#l5696&quot; class=&quot;line&quot; id=&quot;l5696&quot;&gt;   5696&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-596&amp;quot; id=&amp;quot;h4-0-596&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define TEXTURE texture
   5735 <a href="#l5716" class="line" id="l5716">   5716</a> &lt;a href=&quot;#l5697&quot; class=&quot;line&quot; id=&quot;l5697&quot;&gt;   5697&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-597&amp;quot; id=&amp;quot;h4-0-597&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5736 <a href="#l5717" class="line" id="l5717">   5717</a> &lt;a href=&quot;#l5698&quot; class=&quot;line&quot; id=&quot;l5698&quot;&gt;   5698&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-598&amp;quot; id=&amp;quot;h4-0-598&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   5737 <a href="#l5718" class="line" id="l5718">   5718</a> &lt;a href=&quot;#l5699&quot; class=&quot;line&quot; id=&quot;l5699&quot;&gt;   5699&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-599&amp;quot; id=&amp;quot;h4-0-599&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5738 <a href="#l5719" class="line" id="l5719">   5719</a> &lt;a href=&quot;#l5700&quot; class=&quot;line&quot; id=&quot;l5700&quot;&gt;   5700&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-600&amp;quot; id=&amp;quot;h4-0-600&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef FRAGMENT_SHADER
   5739 <a href="#l5720" class="line" id="l5720">   5720</a> &lt;a href=&quot;#l5701&quot; class=&quot;line&quot; id=&quot;l5701&quot;&gt;   5701&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-601&amp;quot; id=&amp;quot;h4-0-601&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define IN varying
   5740 <a href="#l5721" class="line" id="l5721">   5721</a> &lt;a href=&quot;#l5702&quot; class=&quot;line&quot; id=&quot;l5702&quot;&gt;   5702&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-602&amp;quot; id=&amp;quot;h4-0-602&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   5741 <a href="#l5722" class="line" id="l5722">   5722</a> &lt;a href=&quot;#l5703&quot; class=&quot;line&quot; id=&quot;l5703&quot;&gt;   5703&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-603&amp;quot; id=&amp;quot;h4-0-603&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define IN attribute
   5742 <a href="#l5723" class="line" id="l5723">   5723</a> &lt;a href=&quot;#l5704&quot; class=&quot;line&quot; id=&quot;l5704&quot;&gt;   5704&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-604&amp;quot; id=&amp;quot;h4-0-604&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5743 <a href="#l5724" class="line" id="l5724">   5724</a> &lt;a href=&quot;#l5705&quot; class=&quot;line&quot; id=&quot;l5705&quot;&gt;   5705&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-605&amp;quot; id=&amp;quot;h4-0-605&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define OUT varying
   5744 <a href="#l5725" class="line" id="l5725">   5725</a> &lt;a href=&quot;#l5706&quot; class=&quot;line&quot; id=&quot;l5706&quot;&gt;   5706&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-606&amp;quot; id=&amp;quot;h4-0-606&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define TEXTURE texture2D
   5745 <a href="#l5726" class="line" id="l5726">   5726</a> &lt;a href=&quot;#l5707&quot; class=&quot;line&quot; id=&quot;l5707&quot;&gt;   5707&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-607&amp;quot; id=&amp;quot;h4-0-607&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5746 <a href="#l5727" class="line" id="l5727">   5727</a> &lt;a href=&quot;#l5708&quot; class=&quot;line&quot; id=&quot;l5708&quot;&gt;   5708&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-608&amp;quot; id=&amp;quot;h4-0-608&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef FRAGMENT_SHADER
   5747 <a href="#l5728" class="line" id="l5728">   5728</a> &lt;a href=&quot;#l5709&quot; class=&quot;line&quot; id=&quot;l5709&quot;&gt;   5709&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-609&amp;quot; id=&amp;quot;h4-0-609&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define OUT_COLOR gl_FragColor
   5748 <a href="#l5729" class="line" id="l5729">   5729</a> &lt;a href=&quot;#l5710&quot; class=&quot;line&quot; id=&quot;l5710&quot;&gt;   5710&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-610&amp;quot; id=&amp;quot;h4-0-610&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5749 <a href="#l5730" class="line" id="l5730">   5730</a> &lt;a href=&quot;#l5711&quot; class=&quot;line&quot; id=&quot;l5711&quot;&gt;   5711&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-611&amp;quot; id=&amp;quot;h4-0-611&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5750 <a href="#l5731" class="line" id="l5731">   5731</a> &lt;a href=&quot;#l5712&quot; class=&quot;line&quot; id=&quot;l5712&quot;&gt;   5712&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-612&amp;quot; id=&amp;quot;h4-0-612&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5751 <a href="#l5732" class="line" id="l5732">   5732</a> &lt;a href=&quot;#l5713&quot; class=&quot;line&quot; id=&quot;l5713&quot;&gt;   5713&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-613&amp;quot; id=&amp;quot;h4-0-613&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5752 <a href="#l5733" class="line" id="l5733">   5733</a> &lt;a href=&quot;#l5714&quot; class=&quot;line&quot; id=&quot;l5714&quot;&gt;   5714&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-614&amp;quot; id=&amp;quot;h4-0-614&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef FRAGMENT_SHADER
   5753 <a href="#l5734" class="line" id="l5734">   5734</a> &lt;a href=&quot;#l5715&quot; class=&quot;line&quot; id=&quot;l5715&quot;&gt;   5715&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-615&amp;quot; id=&amp;quot;h4-0-615&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec4 getTexture(in sampler2D content, vec2 coord) {
   5754 <a href="#l5735" class="line" id="l5735">   5735</a> &lt;a href=&quot;#l5716&quot; class=&quot;line&quot; id=&quot;l5716&quot;&gt;   5716&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-616&amp;quot; id=&amp;quot;h4-0-616&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color = TEXTURE(content, coord);
   5755 <a href="#l5736" class="line" id="l5736">   5736</a> &lt;a href=&quot;#l5717&quot; class=&quot;line&quot; id=&quot;l5717&quot;&gt;   5717&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-617&amp;quot; id=&amp;quot;h4-0-617&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  color.rgb /= color.a;
   5756 <a href="#l5737" class="line" id="l5737">   5737</a> &lt;a href=&quot;#l5718&quot; class=&quot;line&quot; id=&quot;l5718&quot;&gt;   5718&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-618&amp;quot; id=&amp;quot;h4-0-618&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return color;
   5757 <a href="#l5738" class="line" id="l5738">   5738</a> &lt;a href=&quot;#l5719&quot; class=&quot;line&quot; id=&quot;l5719&quot;&gt;   5719&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-619&amp;quot; id=&amp;quot;h4-0-619&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5758 <a href="#l5739" class="line" id="l5739">   5739</a> &lt;a href=&quot;#l5720&quot; class=&quot;line&quot; id=&quot;l5720&quot;&gt;   5720&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-620&amp;quot; id=&amp;quot;h4-0-620&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5759 <a href="#l5740" class="line" id="l5740">   5740</a> &lt;a href=&quot;#l5721&quot; class=&quot;line&quot; id=&quot;l5721&quot;&gt;   5721&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-621&amp;quot; id=&amp;quot;h4-0-621&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,vb=`IN vec3 aPosition;
   5760 <a href="#l5741" class="line" id="l5741">   5741</a> &lt;a href=&quot;#l5722&quot; class=&quot;line&quot; id=&quot;l5722&quot;&gt;   5722&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-622&amp;quot; id=&amp;quot;h4-0-622&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aNormal;
   5761 <a href="#l5742" class="line" id="l5742">   5742</a> &lt;a href=&quot;#l5723&quot; class=&quot;line&quot; id=&quot;l5723&quot;&gt;   5723&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-623&amp;quot; id=&amp;quot;h4-0-623&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 aTexCoord;
   5762 <a href="#l5743" class="line" id="l5743">   5743</a> &lt;a href=&quot;#l5724&quot; class=&quot;line&quot; id=&quot;l5724&quot;&gt;   5724&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-624&amp;quot; id=&amp;quot;h4-0-624&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec4 aVertexColor;
   5763 <a href="#l5744" class="line" id="l5744">   5744</a> &lt;a href=&quot;#l5725&quot; class=&quot;line&quot; id=&quot;l5725&quot;&gt;   5725&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-625&amp;quot; id=&amp;quot;h4-0-625&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5764 <a href="#l5745" class="line" id="l5745">   5745</a> &lt;a href=&quot;#l5726&quot; class=&quot;line&quot; id=&quot;l5726&quot;&gt;   5726&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-626&amp;quot; id=&amp;quot;h4-0-626&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define HOOK_DEFINES
   5765 <a href="#l5746" class="line" id="l5746">   5746</a> &lt;a href=&quot;#l5727&quot; class=&quot;line&quot; id=&quot;l5727&quot;&gt;   5727&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-627&amp;quot; id=&amp;quot;h4-0-627&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5766 <a href="#l5747" class="line" id="l5747">   5747</a> &lt;a href=&quot;#l5728&quot; class=&quot;line&quot; id=&quot;l5728&quot;&gt;   5728&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-628&amp;quot; id=&amp;quot;h4-0-628&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   5767 <a href="#l5748" class="line" id="l5748">   5748</a> &lt;a href=&quot;#l5729&quot; class=&quot;line&quot; id=&quot;l5729&quot;&gt;   5729&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-629&amp;quot; id=&amp;quot;h4-0-629&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelMatrix;
   5768 <a href="#l5749" class="line" id="l5749">   5749</a> &lt;a href=&quot;#l5730&quot; class=&quot;line&quot; id=&quot;l5730&quot;&gt;   5730&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-630&amp;quot; id=&amp;quot;h4-0-630&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uViewMatrix;
   5769 <a href="#l5750" class="line" id="l5750">   5750</a> &lt;a href=&quot;#l5731&quot; class=&quot;line&quot; id=&quot;l5731&quot;&gt;   5731&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-631&amp;quot; id=&amp;quot;h4-0-631&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uModelNormalMatrix;
   5770 <a href="#l5751" class="line" id="l5751">   5751</a> &lt;a href=&quot;#l5732&quot; class=&quot;line&quot; id=&quot;l5732&quot;&gt;   5732&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-632&amp;quot; id=&amp;quot;h4-0-632&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uCameraNormalMatrix;
   5771 <a href="#l5752" class="line" id="l5752">   5752</a> &lt;a href=&quot;#l5733&quot; class=&quot;line&quot; id=&quot;l5733&quot;&gt;   5733&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-633&amp;quot; id=&amp;quot;h4-0-633&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   5772 <a href="#l5753" class="line" id="l5753">   5753</a> &lt;a href=&quot;#l5734&quot; class=&quot;line&quot; id=&quot;l5734&quot;&gt;   5734&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-634&amp;quot; id=&amp;quot;h4-0-634&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelViewMatrix;
   5773 <a href="#l5754" class="line" id="l5754">   5754</a> &lt;a href=&quot;#l5735&quot; class=&quot;line&quot; id=&quot;l5735&quot;&gt;   5735&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-635&amp;quot; id=&amp;quot;h4-0-635&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uNormalMatrix;
   5774 <a href="#l5755" class="line" id="l5755">   5755</a> &lt;a href=&quot;#l5736&quot; class=&quot;line&quot; id=&quot;l5736&quot;&gt;   5736&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-636&amp;quot; id=&amp;quot;h4-0-636&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5775 <a href="#l5756" class="line" id="l5756">   5756</a> &lt;a href=&quot;#l5737&quot; class=&quot;line&quot; id=&quot;l5737&quot;&gt;   5737&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-637&amp;quot; id=&amp;quot;h4-0-637&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   5776 <a href="#l5757" class="line" id="l5757">   5757</a> &lt;a href=&quot;#l5738&quot; class=&quot;line&quot; id=&quot;l5738&quot;&gt;   5738&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-638&amp;quot; id=&amp;quot;h4-0-638&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5777 <a href="#l5758" class="line" id="l5758">   5758</a> &lt;a href=&quot;#l5739&quot; class=&quot;line&quot; id=&quot;l5739&quot;&gt;   5739&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-639&amp;quot; id=&amp;quot;h4-0-639&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uMaterialColor;
   5778 <a href="#l5759" class="line" id="l5759">   5759</a> &lt;a href=&quot;#l5740&quot; class=&quot;line&quot; id=&quot;l5740&quot;&gt;   5740&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-640&amp;quot; id=&amp;quot;h4-0-640&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uUseVertexColor;
   5779 <a href="#l5760" class="line" id="l5760">   5760</a> &lt;a href=&quot;#l5741&quot; class=&quot;line&quot; id=&quot;l5741&quot;&gt;   5741&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-641&amp;quot; id=&amp;quot;h4-0-641&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5780 <a href="#l5761" class="line" id="l5761">   5761</a> &lt;a href=&quot;#l5742&quot; class=&quot;line&quot; id=&quot;l5742&quot;&gt;   5742&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-642&amp;quot; id=&amp;quot;h4-0-642&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec3 vVertexNormal;
   5781 <a href="#l5762" class="line" id="l5762">   5762</a> &lt;a href=&quot;#l5743&quot; class=&quot;line&quot; id=&quot;l5743&quot;&gt;   5743&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-643&amp;quot; id=&amp;quot;h4-0-643&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT highp vec2 vVertTexCoord;
   5782 <a href="#l5763" class="line" id="l5763">   5763</a> &lt;a href=&quot;#l5744&quot; class=&quot;line&quot; id=&quot;l5744&quot;&gt;   5744&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-644&amp;quot; id=&amp;quot;h4-0-644&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec4 vColor;
   5783 <a href="#l5764" class="line" id="l5764">   5764</a> &lt;a href=&quot;#l5745&quot; class=&quot;line&quot; id=&quot;l5745&quot;&gt;   5745&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-645&amp;quot; id=&amp;quot;h4-0-645&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5784 <a href="#l5765" class="line" id="l5765">   5765</a> &lt;a href=&quot;#l5746&quot; class=&quot;line&quot; id=&quot;l5746&quot;&gt;   5746&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-646&amp;quot; id=&amp;quot;h4-0-646&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct Vertex {
   5785 <a href="#l5766" class="line" id="l5766">   5766</a> &lt;a href=&quot;#l5747&quot; class=&quot;line&quot; id=&quot;l5747&quot;&gt;   5747&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-647&amp;quot; id=&amp;quot;h4-0-647&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 position;
   5786 <a href="#l5767" class="line" id="l5767">   5767</a> &lt;a href=&quot;#l5748&quot; class=&quot;line&quot; id=&quot;l5748&quot;&gt;   5748&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-648&amp;quot; id=&amp;quot;h4-0-648&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 normal;
   5787 <a href="#l5768" class="line" id="l5768">   5768</a> &lt;a href=&quot;#l5749&quot; class=&quot;line&quot; id=&quot;l5749&quot;&gt;   5749&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-649&amp;quot; id=&amp;quot;h4-0-649&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 texCoord;
   5788 <a href="#l5769" class="line" id="l5769">   5769</a> &lt;a href=&quot;#l5750&quot; class=&quot;line&quot; id=&quot;l5750&quot;&gt;   5750&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-650&amp;quot; id=&amp;quot;h4-0-650&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color;
   5789 <a href="#l5770" class="line" id="l5770">   5770</a> &lt;a href=&quot;#l5751&quot; class=&quot;line&quot; id=&quot;l5751&quot;&gt;   5751&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-651&amp;quot; id=&amp;quot;h4-0-651&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   5790 <a href="#l5771" class="line" id="l5771">   5771</a> &lt;a href=&quot;#l5752&quot; class=&quot;line&quot; id=&quot;l5752&quot;&gt;   5752&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-652&amp;quot; id=&amp;quot;h4-0-652&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5791 <a href="#l5772" class="line" id="l5772">   5772</a> &lt;a href=&quot;#l5753&quot; class=&quot;line&quot; id=&quot;l5753&quot;&gt;   5753&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-653&amp;quot; id=&amp;quot;h4-0-653&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(void) {
   5792 <a href="#l5773" class="line" id="l5773">   5773</a> &lt;a href=&quot;#l5754&quot; class=&quot;line&quot; id=&quot;l5754&quot;&gt;   5754&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-654&amp;quot; id=&amp;quot;h4-0-654&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeVertex();
   5793 <a href="#l5774" class="line" id="l5774">   5774</a> &lt;a href=&quot;#l5755&quot; class=&quot;line&quot; id=&quot;l5755&quot;&gt;   5755&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-655&amp;quot; id=&amp;quot;h4-0-655&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5794 <a href="#l5775" class="line" id="l5775">   5775</a> &lt;a href=&quot;#l5756&quot; class=&quot;line&quot; id=&quot;l5756&quot;&gt;   5756&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-656&amp;quot; id=&amp;quot;h4-0-656&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Vertex inputs;
   5795 <a href="#l5776" class="line" id="l5776">   5776</a> &lt;a href=&quot;#l5757&quot; class=&quot;line&quot; id=&quot;l5757&quot;&gt;   5757&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-657&amp;quot; id=&amp;quot;h4-0-657&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = aPosition;
   5796 <a href="#l5777" class="line" id="l5777">   5777</a> &lt;a href=&quot;#l5758&quot; class=&quot;line&quot; id=&quot;l5758&quot;&gt;   5758&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-658&amp;quot; id=&amp;quot;h4-0-658&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = aNormal;
   5797 <a href="#l5778" class="line" id="l5778">   5778</a> &lt;a href=&quot;#l5759&quot; class=&quot;line&quot; id=&quot;l5759&quot;&gt;   5759&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-659&amp;quot; id=&amp;quot;h4-0-659&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.texCoord = aTexCoord;
   5798 <a href="#l5779" class="line" id="l5779">   5779</a> &lt;a href=&quot;#l5760&quot; class=&quot;line&quot; id=&quot;l5760&quot;&gt;   5760&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-660&amp;quot; id=&amp;quot;h4-0-660&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.color = (uUseVertexColor &amp;amp;amp;&amp;amp;amp; aVertexColor.x &amp;amp;gt;= 0.0) ? aVertexColor : uMaterialColor;
   5799 <a href="#l5780" class="line" id="l5780">   5780</a> &lt;a href=&quot;#l5761&quot; class=&quot;line&quot; id=&quot;l5761&quot;&gt;   5761&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-661&amp;quot; id=&amp;quot;h4-0-661&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getObjectInputs
   5800 <a href="#l5781" class="line" id="l5781">   5781</a> &lt;a href=&quot;#l5762&quot; class=&quot;line&quot; id=&quot;l5762&quot;&gt;   5762&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-662&amp;quot; id=&amp;quot;h4-0-662&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getObjectInputs(inputs);
   5801 <a href="#l5782" class="line" id="l5782">   5782</a> &lt;a href=&quot;#l5763&quot; class=&quot;line&quot; id=&quot;l5763&quot;&gt;   5763&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-663&amp;quot; id=&amp;quot;h4-0-663&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5802 <a href="#l5783" class="line" id="l5783">   5783</a> &lt;a href=&quot;#l5764&quot; class=&quot;line&quot; id=&quot;l5764&quot;&gt;   5764&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-664&amp;quot; id=&amp;quot;h4-0-664&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5803 <a href="#l5784" class="line" id="l5784">   5784</a> &lt;a href=&quot;#l5765&quot; class=&quot;line&quot; id=&quot;l5765&quot;&gt;   5765&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-665&amp;quot; id=&amp;quot;h4-0-665&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   5804 <a href="#l5785" class="line" id="l5785">   5785</a> &lt;a href=&quot;#l5766&quot; class=&quot;line&quot; id=&quot;l5766&quot;&gt;   5766&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-666&amp;quot; id=&amp;quot;h4-0-666&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uModelMatrix * vec4(inputs.position, 1.)).xyz;
   5805 <a href="#l5786" class="line" id="l5786">   5786</a> &lt;a href=&quot;#l5767&quot; class=&quot;line&quot; id=&quot;l5767&quot;&gt;   5767&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-667&amp;quot; id=&amp;quot;h4-0-667&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = uModelNormalMatrix * inputs.normal;
   5806 <a href="#l5787" class="line" id="l5787">   5787</a> &lt;a href=&quot;#l5768&quot; class=&quot;line&quot; id=&quot;l5768&quot;&gt;   5768&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-668&amp;quot; id=&amp;quot;h4-0-668&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getWorldInputs(inputs);
   5807 <a href="#l5788" class="line" id="l5788">   5788</a> &lt;a href=&quot;#l5769&quot; class=&quot;line&quot; id=&quot;l5769&quot;&gt;   5769&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-669&amp;quot; id=&amp;quot;h4-0-669&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5808 <a href="#l5789" class="line" id="l5789">   5789</a> &lt;a href=&quot;#l5770&quot; class=&quot;line&quot; id=&quot;l5770&quot;&gt;   5770&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-670&amp;quot; id=&amp;quot;h4-0-670&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5809 <a href="#l5790" class="line" id="l5790">   5790</a> &lt;a href=&quot;#l5771&quot; class=&quot;line&quot; id=&quot;l5771&quot;&gt;   5771&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-671&amp;quot; id=&amp;quot;h4-0-671&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   5810 <a href="#l5791" class="line" id="l5791">   5791</a> &lt;a href=&quot;#l5772&quot; class=&quot;line&quot; id=&quot;l5772&quot;&gt;   5772&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-672&amp;quot; id=&amp;quot;h4-0-672&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Already multiplied by the model matrix, just apply view
   5811 <a href="#l5792" class="line" id="l5792">   5792</a> &lt;a href=&quot;#l5773&quot; class=&quot;line&quot; id=&quot;l5773&quot;&gt;   5773&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-673&amp;quot; id=&amp;quot;h4-0-673&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uViewMatrix * vec4(inputs.position, 1.)).xyz;
   5812 <a href="#l5793" class="line" id="l5793">   5793</a> &lt;a href=&quot;#l5774&quot; class=&quot;line&quot; id=&quot;l5774&quot;&gt;   5774&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-674&amp;quot; id=&amp;quot;h4-0-674&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = uCameraNormalMatrix * inputs.normal;
   5813 <a href="#l5794" class="line" id="l5794">   5794</a> &lt;a href=&quot;#l5775&quot; class=&quot;line&quot; id=&quot;l5775&quot;&gt;   5775&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-675&amp;quot; id=&amp;quot;h4-0-675&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   5814 <a href="#l5795" class="line" id="l5795">   5795</a> &lt;a href=&quot;#l5776&quot; class=&quot;line&quot; id=&quot;l5776&quot;&gt;   5776&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-676&amp;quot; id=&amp;quot;h4-0-676&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Apply both at once
   5815 <a href="#l5796" class="line" id="l5796">   5796</a> &lt;a href=&quot;#l5777&quot; class=&quot;line&quot; id=&quot;l5777&quot;&gt;   5777&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-677&amp;quot; id=&amp;quot;h4-0-677&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uModelViewMatrix * vec4(inputs.position, 1.)).xyz;
   5816 <a href="#l5797" class="line" id="l5797">   5797</a> &lt;a href=&quot;#l5778&quot; class=&quot;line&quot; id=&quot;l5778&quot;&gt;   5778&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-678&amp;quot; id=&amp;quot;h4-0-678&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = uNormalMatrix * inputs.normal;
   5817 <a href="#l5798" class="line" id="l5798">   5798</a> &lt;a href=&quot;#l5779&quot; class=&quot;line&quot; id=&quot;l5779&quot;&gt;   5779&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-679&amp;quot; id=&amp;quot;h4-0-679&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5818 <a href="#l5799" class="line" id="l5799">   5799</a> &lt;a href=&quot;#l5780&quot; class=&quot;line&quot; id=&quot;l5780&quot;&gt;   5780&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-680&amp;quot; id=&amp;quot;h4-0-680&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getCameraInputs
   5819 <a href="#l5800" class="line" id="l5800">   5800</a> &lt;a href=&quot;#l5781&quot; class=&quot;line&quot; id=&quot;l5781&quot;&gt;   5781&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-681&amp;quot; id=&amp;quot;h4-0-681&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getCameraInputs(inputs);
   5820 <a href="#l5801" class="line" id="l5801">   5801</a> &lt;a href=&quot;#l5782&quot; class=&quot;line&quot; id=&quot;l5782&quot;&gt;   5782&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-682&amp;quot; id=&amp;quot;h4-0-682&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5821 <a href="#l5802" class="line" id="l5802">   5802</a> &lt;a href=&quot;#l5783&quot; class=&quot;line&quot; id=&quot;l5783&quot;&gt;   5783&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-683&amp;quot; id=&amp;quot;h4-0-683&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5822 <a href="#l5803" class="line" id="l5803">   5803</a> &lt;a href=&quot;#l5784&quot; class=&quot;line&quot; id=&quot;l5784&quot;&gt;   5784&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-684&amp;quot; id=&amp;quot;h4-0-684&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Pass varyings to fragment shader
   5823 <a href="#l5804" class="line" id="l5804">   5804</a> &lt;a href=&quot;#l5785&quot; class=&quot;line&quot; id=&quot;l5785&quot;&gt;   5785&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-685&amp;quot; id=&amp;quot;h4-0-685&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vVertTexCoord = inputs.texCoord;
   5824 <a href="#l5805" class="line" id="l5805">   5805</a> &lt;a href=&quot;#l5786&quot; class=&quot;line&quot; id=&quot;l5786&quot;&gt;   5786&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-686&amp;quot; id=&amp;quot;h4-0-686&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vVertexNormal = normalize(inputs.normal);
   5825 <a href="#l5806" class="line" id="l5806">   5806</a> &lt;a href=&quot;#l5787&quot; class=&quot;line&quot; id=&quot;l5787&quot;&gt;   5787&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-687&amp;quot; id=&amp;quot;h4-0-687&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vColor = inputs.color;
   5826 <a href="#l5807" class="line" id="l5807">   5807</a> &lt;a href=&quot;#l5788&quot; class=&quot;line&quot; id=&quot;l5788&quot;&gt;   5788&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-688&amp;quot; id=&amp;quot;h4-0-688&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5827 <a href="#l5808" class="line" id="l5808">   5808</a> &lt;a href=&quot;#l5789&quot; class=&quot;line&quot; id=&quot;l5789&quot;&gt;   5789&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-689&amp;quot; id=&amp;quot;h4-0-689&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position = uProjectionMatrix * vec4(inputs.position, 1.);
   5828 <a href="#l5809" class="line" id="l5809">   5809</a> &lt;a href=&quot;#l5790&quot; class=&quot;line&quot; id=&quot;l5790&quot;&gt;   5790&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-690&amp;quot; id=&amp;quot;h4-0-690&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5829 <a href="#l5810" class="line" id="l5810">   5810</a> &lt;a href=&quot;#l5791&quot; class=&quot;line&quot; id=&quot;l5791&quot;&gt;   5791&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-691&amp;quot; id=&amp;quot;h4-0-691&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterVertex();
   5830 <a href="#l5811" class="line" id="l5811">   5811</a> &lt;a href=&quot;#l5792&quot; class=&quot;line&quot; id=&quot;l5792&quot;&gt;   5792&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-692&amp;quot; id=&amp;quot;h4-0-692&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5831 <a href="#l5812" class="line" id="l5812">   5812</a> &lt;a href=&quot;#l5793&quot; class=&quot;line&quot; id=&quot;l5793&quot;&gt;   5793&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-693&amp;quot; id=&amp;quot;h4-0-693&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,xb=`IN vec3 vVertexNormal;
   5832 <a href="#l5813" class="line" id="l5813">   5813</a> &lt;a href=&quot;#l5794&quot; class=&quot;line&quot; id=&quot;l5794&quot;&gt;   5794&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-694&amp;quot; id=&amp;quot;h4-0-694&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(void) {
   5833 <a href="#l5814" class="line" id="l5814">   5814</a> &lt;a href=&quot;#l5795&quot; class=&quot;line&quot; id=&quot;l5795&quot;&gt;   5795&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-695&amp;quot; id=&amp;quot;h4-0-695&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeFragment();
   5834 <a href="#l5815" class="line" id="l5815">   5815</a> &lt;a href=&quot;#l5796&quot; class=&quot;line&quot; id=&quot;l5796&quot;&gt;   5796&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-696&amp;quot; id=&amp;quot;h4-0-696&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR = HOOK_getFinalColor(vec4(vVertexNormal, 1.0));
   5835 <a href="#l5816" class="line" id="l5816">   5816</a> &lt;a href=&quot;#l5797&quot; class=&quot;line&quot; id=&quot;l5797&quot;&gt;   5797&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-697&amp;quot; id=&amp;quot;h4-0-697&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterFragment();
   5836 <a href="#l5817" class="line" id="l5817">   5817</a> &lt;a href=&quot;#l5798&quot; class=&quot;line&quot; id=&quot;l5798&quot;&gt;   5798&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-698&amp;quot; id=&amp;quot;h4-0-698&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5837 <a href="#l5818" class="line" id="l5818">   5818</a> &lt;a href=&quot;#l5799&quot; class=&quot;line&quot; id=&quot;l5799&quot;&gt;   5799&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-699&amp;quot; id=&amp;quot;h4-0-699&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,bb=`IN vec4 vColor;
   5838 <a href="#l5819" class="line" id="l5819">   5819</a> &lt;a href=&quot;#l5800&quot; class=&quot;line&quot; id=&quot;l5800&quot;&gt;   5800&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-700&amp;quot; id=&amp;quot;h4-0-700&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(void) {
   5839 <a href="#l5820" class="line" id="l5820">   5820</a> &lt;a href=&quot;#l5801&quot; class=&quot;line&quot; id=&quot;l5801&quot;&gt;   5801&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-701&amp;quot; id=&amp;quot;h4-0-701&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeFragment();
   5840 <a href="#l5821" class="line" id="l5821">   5821</a> &lt;a href=&quot;#l5802&quot; class=&quot;line&quot; id=&quot;l5802&quot;&gt;   5802&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-702&amp;quot; id=&amp;quot;h4-0-702&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR = HOOK_getFinalColor(vec4(vColor.rgb, 1.) * vColor.a);
   5841 <a href="#l5822" class="line" id="l5822">   5822</a> &lt;a href=&quot;#l5803&quot; class=&quot;line&quot; id=&quot;l5803&quot;&gt;   5803&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-703&amp;quot; id=&amp;quot;h4-0-703&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterFragment();
   5842 <a href="#l5823" class="line" id="l5823">   5823</a> &lt;a href=&quot;#l5804&quot; class=&quot;line&quot; id=&quot;l5804&quot;&gt;   5804&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-704&amp;quot; id=&amp;quot;h4-0-704&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5843 <a href="#l5824" class="line" id="l5824">   5824</a> &lt;a href=&quot;#l5805&quot; class=&quot;line&quot; id=&quot;l5805&quot;&gt;   5805&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-705&amp;quot; id=&amp;quot;h4-0-705&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,_b=`#define PI 3.141592
   5844 <a href="#l5825" class="line" id="l5825">   5825</a> &lt;a href=&quot;#l5806&quot; class=&quot;line&quot; id=&quot;l5806&quot;&gt;   5806&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-706&amp;quot; id=&amp;quot;h4-0-706&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5845 <a href="#l5826" class="line" id="l5826">   5826</a> &lt;a href=&quot;#l5807&quot; class=&quot;line&quot; id=&quot;l5807&quot;&gt;   5807&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-707&amp;quot; id=&amp;quot;h4-0-707&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   5846 <a href="#l5827" class="line" id="l5827">   5827</a> &lt;a href=&quot;#l5808&quot; class=&quot;line&quot; id=&quot;l5808&quot;&gt;   5808&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-708&amp;quot; id=&amp;quot;h4-0-708&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5847 <a href="#l5828" class="line" id="l5828">   5828</a> &lt;a href=&quot;#l5809&quot; class=&quot;line&quot; id=&quot;l5809&quot;&gt;   5809&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-709&amp;quot; id=&amp;quot;h4-0-709&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D uEnvMap;
   5848 <a href="#l5829" class="line" id="l5829">   5829</a> &lt;a href=&quot;#l5810&quot; class=&quot;line&quot; id=&quot;l5810&quot;&gt;   5810&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-710&amp;quot; id=&amp;quot;h4-0-710&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uNewNormalMatrix;
   5849 <a href="#l5830" class="line" id="l5830">   5830</a> &lt;a href=&quot;#l5811&quot; class=&quot;line&quot; id=&quot;l5811&quot;&gt;   5811&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-711&amp;quot; id=&amp;quot;h4-0-711&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uFovY;
   5850 <a href="#l5831" class="line" id="l5831">   5831</a> &lt;a href=&quot;#l5812&quot; class=&quot;line&quot; id=&quot;l5812&quot;&gt;   5812&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-712&amp;quot; id=&amp;quot;h4-0-712&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uAspect;
   5851 <a href="#l5832" class="line" id="l5832">   5832</a> &lt;a href=&quot;#l5813&quot; class=&quot;line&quot; id=&quot;l5813&quot;&gt;   5813&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-713&amp;quot; id=&amp;quot;h4-0-713&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5852 <a href="#l5833" class="line" id="l5833">   5833</a> &lt;a href=&quot;#l5814&quot; class=&quot;line&quot; id=&quot;l5814&quot;&gt;   5814&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-714&amp;quot; id=&amp;quot;h4-0-714&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   5853 <a href="#l5834" class="line" id="l5834">   5834</a> &lt;a href=&quot;#l5815&quot; class=&quot;line&quot; id=&quot;l5815&quot;&gt;   5815&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-715&amp;quot; id=&amp;quot;h4-0-715&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5854 <a href="#l5835" class="line" id="l5835">   5835</a> &lt;a href=&quot;#l5816&quot; class=&quot;line&quot; id=&quot;l5816&quot;&gt;   5816&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-716&amp;quot; id=&amp;quot;h4-0-716&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   5855 <a href="#l5836" class="line" id="l5836">   5836</a> &lt;a href=&quot;#l5817&quot; class=&quot;line&quot; id=&quot;l5817&quot;&gt;   5817&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-717&amp;quot; id=&amp;quot;h4-0-717&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float uFovX = uFovY * uAspect;
   5856 <a href="#l5837" class="line" id="l5837">   5837</a> &lt;a href=&quot;#l5818&quot; class=&quot;line&quot; id=&quot;l5818&quot;&gt;   5818&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-718&amp;quot; id=&amp;quot;h4-0-718&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float angleY = mix(uFovY/2.0,  -uFovY/2.0, vTexCoord.y);
   5857 <a href="#l5838" class="line" id="l5838">   5838</a> &lt;a href=&quot;#l5819&quot; class=&quot;line&quot; id=&quot;l5819&quot;&gt;   5819&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-719&amp;quot; id=&amp;quot;h4-0-719&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float angleX = mix(uFovX/2.0, -uFovX/2.0, vTexCoord.x);
   5858 <a href="#l5839" class="line" id="l5839">   5839</a> &lt;a href=&quot;#l5820&quot; class=&quot;line&quot; id=&quot;l5820&quot;&gt;   5820&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-720&amp;quot; id=&amp;quot;h4-0-720&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec3 rotatedNormal = vec3( angleX, angleY, 1.0 );
   5859 <a href="#l5840" class="line" id="l5840">   5840</a> &lt;a href=&quot;#l5821&quot; class=&quot;line&quot; id=&quot;l5821&quot;&gt;   5821&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-721&amp;quot; id=&amp;quot;h4-0-721&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    rotatedNormal = uNewNormalMatrix * normalize(rotatedNormal);
   5860 <a href="#l5841" class="line" id="l5841">   5841</a> &lt;a href=&quot;#l5822&quot; class=&quot;line&quot; id=&quot;l5822&quot;&gt;   5822&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-722&amp;quot; id=&amp;quot;h4-0-722&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float temp = rotatedNormal.z;
   5861 <a href="#l5842" class="line" id="l5842">   5842</a> &lt;a href=&quot;#l5823&quot; class=&quot;line&quot; id=&quot;l5823&quot;&gt;   5823&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-723&amp;quot; id=&amp;quot;h4-0-723&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    rotatedNormal.z = rotatedNormal.x;
   5862 <a href="#l5843" class="line" id="l5843">   5843</a> &lt;a href=&quot;#l5824&quot; class=&quot;line&quot; id=&quot;l5824&quot;&gt;   5824&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-724&amp;quot; id=&amp;quot;h4-0-724&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    rotatedNormal.x = -temp;
   5863 <a href="#l5844" class="line" id="l5844">   5844</a> &lt;a href=&quot;#l5825&quot; class=&quot;line&quot; id=&quot;l5825&quot;&gt;   5825&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-725&amp;quot; id=&amp;quot;h4-0-725&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec2 suv;
   5864 <a href="#l5845" class="line" id="l5845">   5845</a> &lt;a href=&quot;#l5826&quot; class=&quot;line&quot; id=&quot;l5826&quot;&gt;   5826&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-726&amp;quot; id=&amp;quot;h4-0-726&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    suv.y = 0.5 + 0.5 * (-rotatedNormal.y);
   5865 <a href="#l5846" class="line" id="l5846">   5846</a> &lt;a href=&quot;#l5827&quot; class=&quot;line&quot; id=&quot;l5827&quot;&gt;   5827&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-727&amp;quot; id=&amp;quot;h4-0-727&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    suv.x = atan(rotatedNormal.z, rotatedNormal.x) / (2.0 * PI) + 0.5;
   5866 <a href="#l5847" class="line" id="l5847">   5847</a> &lt;a href=&quot;#l5828&quot; class=&quot;line&quot; id=&quot;l5828&quot;&gt;   5828&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-728&amp;quot; id=&amp;quot;h4-0-728&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec4 newTexColor = texture2D(uEnvMap, suv.xy);
   5867 <a href="#l5848" class="line" id="l5848">   5848</a> &lt;a href=&quot;#l5829&quot; class=&quot;line&quot; id=&quot;l5829&quot;&gt;   5829&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-729&amp;quot; id=&amp;quot;h4-0-729&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    gl_FragColor = newTexColor;
   5868 <a href="#l5849" class="line" id="l5849">   5849</a> &lt;a href=&quot;#l5830&quot; class=&quot;line&quot; id=&quot;l5830&quot;&gt;   5830&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-730&amp;quot; id=&amp;quot;h4-0-730&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5869 <a href="#l5850" class="line" id="l5850">   5850</a> &lt;a href=&quot;#l5831&quot; class=&quot;line&quot; id=&quot;l5831&quot;&gt;   5831&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-731&amp;quot; id=&amp;quot;h4-0-731&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,wb=`// include lighting.glgl
   5870 <a href="#l5851" class="line" id="l5851">   5851</a> &lt;a href=&quot;#l5832&quot; class=&quot;line&quot; id=&quot;l5832&quot;&gt;   5832&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-732&amp;quot; id=&amp;quot;h4-0-732&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5871 <a href="#l5852" class="line" id="l5852">   5852</a> &lt;a href=&quot;#l5833&quot; class=&quot;line&quot; id=&quot;l5833&quot;&gt;   5833&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-733&amp;quot; id=&amp;quot;h4-0-733&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aPosition;
   5872 <a href="#l5853" class="line" id="l5853">   5853</a> &lt;a href=&quot;#l5834&quot; class=&quot;line&quot; id=&quot;l5834&quot;&gt;   5834&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-734&amp;quot; id=&amp;quot;h4-0-734&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aNormal;
   5873 <a href="#l5854" class="line" id="l5854">   5854</a> &lt;a href=&quot;#l5835&quot; class=&quot;line&quot; id=&quot;l5835&quot;&gt;   5835&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-735&amp;quot; id=&amp;quot;h4-0-735&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 aTexCoord;
   5874 <a href="#l5855" class="line" id="l5855">   5855</a> &lt;a href=&quot;#l5836&quot; class=&quot;line&quot; id=&quot;l5836&quot;&gt;   5836&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-736&amp;quot; id=&amp;quot;h4-0-736&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec4 aVertexColor;
   5875 <a href="#l5856" class="line" id="l5856">   5856</a> &lt;a href=&quot;#l5837&quot; class=&quot;line&quot; id=&quot;l5837&quot;&gt;   5837&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-737&amp;quot; id=&amp;quot;h4-0-737&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5876 <a href="#l5857" class="line" id="l5857">   5857</a> &lt;a href=&quot;#l5838&quot; class=&quot;line&quot; id=&quot;l5838&quot;&gt;   5838&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-738&amp;quot; id=&amp;quot;h4-0-738&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelViewMatrix;
   5877 <a href="#l5858" class="line" id="l5858">   5858</a> &lt;a href=&quot;#l5839&quot; class=&quot;line&quot; id=&quot;l5839&quot;&gt;   5839&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-739&amp;quot; id=&amp;quot;h4-0-739&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   5878 <a href="#l5859" class="line" id="l5859">   5859</a> &lt;a href=&quot;#l5840&quot; class=&quot;line&quot; id=&quot;l5840&quot;&gt;   5840&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-740&amp;quot; id=&amp;quot;h4-0-740&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uNormalMatrix;
   5879 <a href="#l5860" class="line" id="l5860">   5860</a> &lt;a href=&quot;#l5841&quot; class=&quot;line&quot; id=&quot;l5841&quot;&gt;   5841&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-741&amp;quot; id=&amp;quot;h4-0-741&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5880 <a href="#l5861" class="line" id="l5861">   5861</a> &lt;a href=&quot;#l5842&quot; class=&quot;line&quot; id=&quot;l5842&quot;&gt;   5842&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-742&amp;quot; id=&amp;quot;h4-0-742&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uUseVertexColor;
   5881 <a href="#l5862" class="line" id="l5862">   5862</a> &lt;a href=&quot;#l5843&quot; class=&quot;line&quot; id=&quot;l5843&quot;&gt;   5843&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-743&amp;quot; id=&amp;quot;h4-0-743&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uMaterialColor;
   5882 <a href="#l5863" class="line" id="l5863">   5863</a> &lt;a href=&quot;#l5844&quot; class=&quot;line&quot; id=&quot;l5844&quot;&gt;   5844&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-744&amp;quot; id=&amp;quot;h4-0-744&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5883 <a href="#l5864" class="line" id="l5864">   5864</a> &lt;a href=&quot;#l5845&quot; class=&quot;line&quot; id=&quot;l5845&quot;&gt;   5845&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-745&amp;quot; id=&amp;quot;h4-0-745&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT highp vec2 vVertTexCoord;
   5884 <a href="#l5865" class="line" id="l5865">   5865</a> &lt;a href=&quot;#l5846&quot; class=&quot;line&quot; id=&quot;l5846&quot;&gt;   5846&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-746&amp;quot; id=&amp;quot;h4-0-746&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec3 vDiffuseColor;
   5885 <a href="#l5866" class="line" id="l5866">   5866</a> &lt;a href=&quot;#l5847&quot; class=&quot;line&quot; id=&quot;l5847&quot;&gt;   5847&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-747&amp;quot; id=&amp;quot;h4-0-747&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec3 vSpecularColor;
   5886 <a href="#l5867" class="line" id="l5867">   5867</a> &lt;a href=&quot;#l5848&quot; class=&quot;line&quot; id=&quot;l5848&quot;&gt;   5848&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-748&amp;quot; id=&amp;quot;h4-0-748&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec4 vColor;
   5887 <a href="#l5868" class="line" id="l5868">   5868</a> &lt;a href=&quot;#l5849&quot; class=&quot;line&quot; id=&quot;l5849&quot;&gt;   5849&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-749&amp;quot; id=&amp;quot;h4-0-749&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5888 <a href="#l5869" class="line" id="l5869">   5869</a> &lt;a href=&quot;#l5850&quot; class=&quot;line&quot; id=&quot;l5850&quot;&gt;   5850&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-750&amp;quot; id=&amp;quot;h4-0-750&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(void) {
   5889 <a href="#l5870" class="line" id="l5870">   5870</a> &lt;a href=&quot;#l5851&quot; class=&quot;line&quot; id=&quot;l5851&quot;&gt;   5851&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-751&amp;quot; id=&amp;quot;h4-0-751&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5890 <a href="#l5871" class="line" id="l5871">   5871</a> &lt;a href=&quot;#l5852&quot; class=&quot;line&quot; id=&quot;l5852&quot;&gt;   5852&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-752&amp;quot; id=&amp;quot;h4-0-752&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0);
   5891 <a href="#l5872" class="line" id="l5872">   5872</a> &lt;a href=&quot;#l5853&quot; class=&quot;line&quot; id=&quot;l5853&quot;&gt;   5853&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-753&amp;quot; id=&amp;quot;h4-0-753&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position = uProjectionMatrix * viewModelPosition;
   5892 <a href="#l5873" class="line" id="l5873">   5873</a> &lt;a href=&quot;#l5854&quot; class=&quot;line&quot; id=&quot;l5854&quot;&gt;   5854&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-754&amp;quot; id=&amp;quot;h4-0-754&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5893 <a href="#l5874" class="line" id="l5874">   5874</a> &lt;a href=&quot;#l5855&quot; class=&quot;line&quot; id=&quot;l5855&quot;&gt;   5855&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-755&amp;quot; id=&amp;quot;h4-0-755&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 vertexNormal = normalize(uNormalMatrix * aNormal);
   5894 <a href="#l5875" class="line" id="l5875">   5875</a> &lt;a href=&quot;#l5856&quot; class=&quot;line&quot; id=&quot;l5856&quot;&gt;   5856&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-756&amp;quot; id=&amp;quot;h4-0-756&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vVertTexCoord = aTexCoord;
   5895 <a href="#l5876" class="line" id="l5876">   5876</a> &lt;a href=&quot;#l5857&quot; class=&quot;line&quot; id=&quot;l5857&quot;&gt;   5857&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-757&amp;quot; id=&amp;quot;h4-0-757&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5896 <a href="#l5877" class="line" id="l5877">   5877</a> &lt;a href=&quot;#l5858&quot; class=&quot;line&quot; id=&quot;l5858&quot;&gt;   5858&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-758&amp;quot; id=&amp;quot;h4-0-758&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  totalLight(viewModelPosition.xyz, vertexNormal, vDiffuseColor, vSpecularColor);
   5897 <a href="#l5878" class="line" id="l5878">   5878</a> &lt;a href=&quot;#l5859&quot; class=&quot;line&quot; id=&quot;l5859&quot;&gt;   5859&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-759&amp;quot; id=&amp;quot;h4-0-759&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5898 <a href="#l5879" class="line" id="l5879">   5879</a> &lt;a href=&quot;#l5860&quot; class=&quot;line&quot; id=&quot;l5860&quot;&gt;   5860&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-760&amp;quot; id=&amp;quot;h4-0-760&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  for (int i = 0; i &amp;amp;lt; 8; i++) {
   5899 <a href="#l5880" class="line" id="l5880">   5880</a> &lt;a href=&quot;#l5861&quot; class=&quot;line&quot; id=&quot;l5861&quot;&gt;   5861&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-761&amp;quot; id=&amp;quot;h4-0-761&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (i &amp;amp;lt; uAmbientLightCount) {
   5900 <a href="#l5881" class="line" id="l5881">   5881</a> &lt;a href=&quot;#l5862&quot; class=&quot;line&quot; id=&quot;l5862&quot;&gt;   5862&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-762&amp;quot; id=&amp;quot;h4-0-762&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vDiffuseColor += uAmbientColor[i];
   5901 <a href="#l5882" class="line" id="l5882">   5882</a> &lt;a href=&quot;#l5863&quot; class=&quot;line&quot; id=&quot;l5863&quot;&gt;   5863&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-763&amp;quot; id=&amp;quot;h4-0-763&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   5902 <a href="#l5883" class="line" id="l5883">   5883</a> &lt;a href=&quot;#l5864&quot; class=&quot;line&quot; id=&quot;l5864&quot;&gt;   5864&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-764&amp;quot; id=&amp;quot;h4-0-764&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   5903 <a href="#l5884" class="line" id="l5884">   5884</a> &lt;a href=&quot;#l5865&quot; class=&quot;line&quot; id=&quot;l5865&quot;&gt;   5865&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-765&amp;quot; id=&amp;quot;h4-0-765&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5904 <a href="#l5885" class="line" id="l5885">   5885</a> &lt;a href=&quot;#l5866&quot; class=&quot;line&quot; id=&quot;l5866&quot;&gt;   5866&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-766&amp;quot; id=&amp;quot;h4-0-766&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vColor = ((uUseVertexColor &amp;amp;amp;&amp;amp;amp; aVertexColor.x &amp;amp;gt;= 0.0) ? aVertexColor : uMaterialColor);
   5905 <a href="#l5886" class="line" id="l5886">   5886</a> &lt;a href=&quot;#l5867&quot; class=&quot;line&quot; id=&quot;l5867&quot;&gt;   5867&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-767&amp;quot; id=&amp;quot;h4-0-767&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5906 <a href="#l5887" class="line" id="l5887">   5887</a> &lt;a href=&quot;#l5868&quot; class=&quot;line&quot; id=&quot;l5868&quot;&gt;   5868&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-768&amp;quot; id=&amp;quot;h4-0-768&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Cb=`uniform vec4 uTint;
   5907 <a href="#l5888" class="line" id="l5888">   5888</a> &lt;a href=&quot;#l5869&quot; class=&quot;line&quot; id=&quot;l5869&quot;&gt;   5869&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-769&amp;quot; id=&amp;quot;h4-0-769&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D uSampler;
   5908 <a href="#l5889" class="line" id="l5889">   5889</a> &lt;a href=&quot;#l5870&quot; class=&quot;line&quot; id=&quot;l5870&quot;&gt;   5870&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-770&amp;quot; id=&amp;quot;h4-0-770&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool isTexture;
   5909 <a href="#l5890" class="line" id="l5890">   5890</a> &lt;a href=&quot;#l5871&quot; class=&quot;line&quot; id=&quot;l5871&quot;&gt;   5871&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-771&amp;quot; id=&amp;quot;h4-0-771&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uEmissive;
   5910 <a href="#l5891" class="line" id="l5891">   5891</a> &lt;a href=&quot;#l5872&quot; class=&quot;line&quot; id=&quot;l5872&quot;&gt;   5872&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-772&amp;quot; id=&amp;quot;h4-0-772&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5911 <a href="#l5892" class="line" id="l5892">   5892</a> &lt;a href=&quot;#l5873&quot; class=&quot;line&quot; id=&quot;l5873&quot;&gt;   5873&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-773&amp;quot; id=&amp;quot;h4-0-773&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN highp vec2 vVertTexCoord;
   5912 <a href="#l5893" class="line" id="l5893">   5893</a> &lt;a href=&quot;#l5874&quot; class=&quot;line&quot; id=&quot;l5874&quot;&gt;   5874&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-774&amp;quot; id=&amp;quot;h4-0-774&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 vDiffuseColor;
   5913 <a href="#l5894" class="line" id="l5894">   5894</a> &lt;a href=&quot;#l5875&quot; class=&quot;line&quot; id=&quot;l5875&quot;&gt;   5875&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-775&amp;quot; id=&amp;quot;h4-0-775&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 vSpecularColor;
   5914 <a href="#l5895" class="line" id="l5895">   5895</a> &lt;a href=&quot;#l5876&quot; class=&quot;line&quot; id=&quot;l5876&quot;&gt;   5876&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-776&amp;quot; id=&amp;quot;h4-0-776&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec4 vColor;
   5915 <a href="#l5896" class="line" id="l5896">   5896</a> &lt;a href=&quot;#l5877&quot; class=&quot;line&quot; id=&quot;l5877&quot;&gt;   5877&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-777&amp;quot; id=&amp;quot;h4-0-777&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5916 <a href="#l5897" class="line" id="l5897">   5897</a> &lt;a href=&quot;#l5878&quot; class=&quot;line&quot; id=&quot;l5878&quot;&gt;   5878&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-778&amp;quot; id=&amp;quot;h4-0-778&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(void) {
   5917 <a href="#l5898" class="line" id="l5898">   5898</a> &lt;a href=&quot;#l5879&quot; class=&quot;line&quot; id=&quot;l5879&quot;&gt;   5879&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-779&amp;quot; id=&amp;quot;h4-0-779&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if(uEmissive &amp;amp;amp;&amp;amp;amp; !isTexture) {
   5918 <a href="#l5899" class="line" id="l5899">   5899</a> &lt;a href=&quot;#l5880&quot; class=&quot;line&quot; id=&quot;l5880&quot;&gt;   5880&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-780&amp;quot; id=&amp;quot;h4-0-780&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    OUT_COLOR = vColor;
   5919 <a href="#l5900" class="line" id="l5900">   5900</a> &lt;a href=&quot;#l5881&quot; class=&quot;line&quot; id=&quot;l5881&quot;&gt;   5881&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-781&amp;quot; id=&amp;quot;h4-0-781&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   5920 <a href="#l5901" class="line" id="l5901">   5901</a> &lt;a href=&quot;#l5882&quot; class=&quot;line&quot; id=&quot;l5882&quot;&gt;   5882&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-782&amp;quot; id=&amp;quot;h4-0-782&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  else {
   5921 <a href="#l5902" class="line" id="l5902">   5902</a> &lt;a href=&quot;#l5883&quot; class=&quot;line&quot; id=&quot;l5883&quot;&gt;   5883&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-783&amp;quot; id=&amp;quot;h4-0-783&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec4 baseColor = isTexture
   5922 <a href="#l5903" class="line" id="l5903">   5903</a> &lt;a href=&quot;#l5884&quot; class=&quot;line&quot; id=&quot;l5884&quot;&gt;   5884&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-784&amp;quot; id=&amp;quot;h4-0-784&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // Textures come in with premultiplied alpha. To apply tint and still have
   5923 <a href="#l5904" class="line" id="l5904">   5904</a> &lt;a href=&quot;#l5885&quot; class=&quot;line&quot; id=&quot;l5885&quot;&gt;   5885&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-785&amp;quot; id=&amp;quot;h4-0-785&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // premultiplied alpha output, we need to multiply the RGB channels by the
   5924 <a href="#l5905" class="line" id="l5905">   5905</a> &lt;a href=&quot;#l5886&quot; class=&quot;line&quot; id=&quot;l5886&quot;&gt;   5886&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-786&amp;quot; id=&amp;quot;h4-0-786&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // tint RGB, and all channels by the tint alpha.
   5925 <a href="#l5906" class="line" id="l5906">   5906</a> &lt;a href=&quot;#l5887&quot; class=&quot;line&quot; id=&quot;l5887&quot;&gt;   5887&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-787&amp;quot; id=&amp;quot;h4-0-787&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ? TEXTURE(uSampler, vVertTexCoord) * vec4(uTint.rgb/255., 1.) * (uTint.a/255.)
   5926 <a href="#l5907" class="line" id="l5907">   5907</a> &lt;a href=&quot;#l5888&quot; class=&quot;line&quot; id=&quot;l5888&quot;&gt;   5888&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-788&amp;quot; id=&amp;quot;h4-0-788&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // Colors come in with unmultiplied alpha, so we need to multiply the RGB
   5927 <a href="#l5908" class="line" id="l5908">   5908</a> &lt;a href=&quot;#l5889&quot; class=&quot;line&quot; id=&quot;l5889&quot;&gt;   5889&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-789&amp;quot; id=&amp;quot;h4-0-789&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // channels by alpha to convert it to premultiplied alpha.
   5928 <a href="#l5909" class="line" id="l5909">   5909</a> &lt;a href=&quot;#l5890&quot; class=&quot;line&quot; id=&quot;l5890&quot;&gt;   5890&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-790&amp;quot; id=&amp;quot;h4-0-790&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      : vec4(vColor.rgb * vColor.a, vColor.a);
   5929 <a href="#l5910" class="line" id="l5910">   5910</a> &lt;a href=&quot;#l5891&quot; class=&quot;line&quot; id=&quot;l5891&quot;&gt;   5891&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-791&amp;quot; id=&amp;quot;h4-0-791&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    OUT_COLOR = vec4(baseColor.rgb * vDiffuseColor + vSpecularColor, baseColor.a);
   5930 <a href="#l5911" class="line" id="l5911">   5911</a> &lt;a href=&quot;#l5892&quot; class=&quot;line&quot; id=&quot;l5892&quot;&gt;   5892&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-792&amp;quot; id=&amp;quot;h4-0-792&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   5931 <a href="#l5912" class="line" id="l5912">   5912</a> &lt;a href=&quot;#l5893&quot; class=&quot;line&quot; id=&quot;l5893&quot;&gt;   5893&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-793&amp;quot; id=&amp;quot;h4-0-793&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   5932 <a href="#l5913" class="line" id="l5913">   5913</a> &lt;a href=&quot;#l5894&quot; class=&quot;line&quot; id=&quot;l5894&quot;&gt;   5894&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-794&amp;quot; id=&amp;quot;h4-0-794&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Eb=`precision highp int;
   5933 <a href="#l5914" class="line" id="l5914">   5914</a> &lt;a href=&quot;#l5895&quot; class=&quot;line&quot; id=&quot;l5895&quot;&gt;   5895&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-795&amp;quot; id=&amp;quot;h4-0-795&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5934 <a href="#l5915" class="line" id="l5915">   5915</a> &lt;a href=&quot;#l5896&quot; class=&quot;line&quot; id=&quot;l5896&quot;&gt;   5896&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-796&amp;quot; id=&amp;quot;h4-0-796&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define HOOK_DEFINES
   5935 <a href="#l5916" class="line" id="l5916">   5916</a> &lt;a href=&quot;#l5897&quot; class=&quot;line&quot; id=&quot;l5897&quot;&gt;   5897&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-797&amp;quot; id=&amp;quot;h4-0-797&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5936 <a href="#l5917" class="line" id="l5917">   5917</a> &lt;a href=&quot;#l5898&quot; class=&quot;line&quot; id=&quot;l5898&quot;&gt;   5898&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-798&amp;quot; id=&amp;quot;h4-0-798&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aPosition;
   5937 <a href="#l5918" class="line" id="l5918">   5918</a> &lt;a href=&quot;#l5899&quot; class=&quot;line&quot; id=&quot;l5899&quot;&gt;   5899&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-799&amp;quot; id=&amp;quot;h4-0-799&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aNormal;
   5938 <a href="#l5919" class="line" id="l5919">   5919</a> &lt;a href=&quot;#l5900&quot; class=&quot;line&quot; id=&quot;l5900&quot;&gt;   5900&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-800&amp;quot; id=&amp;quot;h4-0-800&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 aTexCoord;
   5939 <a href="#l5920" class="line" id="l5920">   5920</a> &lt;a href=&quot;#l5901&quot; class=&quot;line&quot; id=&quot;l5901&quot;&gt;   5901&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-801&amp;quot; id=&amp;quot;h4-0-801&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec4 aVertexColor;
   5940 <a href="#l5921" class="line" id="l5921">   5921</a> &lt;a href=&quot;#l5902&quot; class=&quot;line&quot; id=&quot;l5902&quot;&gt;   5902&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-802&amp;quot; id=&amp;quot;h4-0-802&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5941 <a href="#l5922" class="line" id="l5922">   5922</a> &lt;a href=&quot;#l5903&quot; class=&quot;line&quot; id=&quot;l5903&quot;&gt;   5903&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-803&amp;quot; id=&amp;quot;h4-0-803&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec3 uAmbientColor[5];
   5942 <a href="#l5923" class="line" id="l5923">   5923</a> &lt;a href=&quot;#l5904&quot; class=&quot;line&quot; id=&quot;l5904&quot;&gt;   5904&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-804&amp;quot; id=&amp;quot;h4-0-804&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5943 <a href="#l5924" class="line" id="l5924">   5924</a> &lt;a href=&quot;#l5905&quot; class=&quot;line&quot; id=&quot;l5905&quot;&gt;   5905&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-805&amp;quot; id=&amp;quot;h4-0-805&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   5944 <a href="#l5925" class="line" id="l5925">   5925</a> &lt;a href=&quot;#l5906&quot; class=&quot;line&quot; id=&quot;l5906&quot;&gt;   5906&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-806&amp;quot; id=&amp;quot;h4-0-806&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelMatrix;
   5945 <a href="#l5926" class="line" id="l5926">   5926</a> &lt;a href=&quot;#l5907&quot; class=&quot;line&quot; id=&quot;l5907&quot;&gt;   5907&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-807&amp;quot; id=&amp;quot;h4-0-807&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uViewMatrix;
   5946 <a href="#l5927" class="line" id="l5927">   5927</a> &lt;a href=&quot;#l5908&quot; class=&quot;line&quot; id=&quot;l5908&quot;&gt;   5908&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-808&amp;quot; id=&amp;quot;h4-0-808&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uModelNormalMatrix;
   5947 <a href="#l5928" class="line" id="l5928">   5928</a> &lt;a href=&quot;#l5909&quot; class=&quot;line&quot; id=&quot;l5909&quot;&gt;   5909&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-809&amp;quot; id=&amp;quot;h4-0-809&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uCameraNormalMatrix;
   5948 <a href="#l5929" class="line" id="l5929">   5929</a> &lt;a href=&quot;#l5910&quot; class=&quot;line&quot; id=&quot;l5910&quot;&gt;   5910&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-810&amp;quot; id=&amp;quot;h4-0-810&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   5949 <a href="#l5930" class="line" id="l5930">   5930</a> &lt;a href=&quot;#l5911&quot; class=&quot;line&quot; id=&quot;l5911&quot;&gt;   5911&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-811&amp;quot; id=&amp;quot;h4-0-811&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelViewMatrix;
   5950 <a href="#l5931" class="line" id="l5931">   5931</a> &lt;a href=&quot;#l5912&quot; class=&quot;line&quot; id=&quot;l5912&quot;&gt;   5912&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-812&amp;quot; id=&amp;quot;h4-0-812&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uNormalMatrix;
   5951 <a href="#l5932" class="line" id="l5932">   5932</a> &lt;a href=&quot;#l5913&quot; class=&quot;line&quot; id=&quot;l5913&quot;&gt;   5913&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-813&amp;quot; id=&amp;quot;h4-0-813&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5952 <a href="#l5933" class="line" id="l5933">   5933</a> &lt;a href=&quot;#l5914&quot; class=&quot;line&quot; id=&quot;l5914&quot;&gt;   5914&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-814&amp;quot; id=&amp;quot;h4-0-814&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   5953 <a href="#l5934" class="line" id="l5934">   5934</a> &lt;a href=&quot;#l5915&quot; class=&quot;line&quot; id=&quot;l5915&quot;&gt;   5915&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-815&amp;quot; id=&amp;quot;h4-0-815&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uAmbientLightCount;
   5954 <a href="#l5935" class="line" id="l5935">   5935</a> &lt;a href=&quot;#l5916&quot; class=&quot;line&quot; id=&quot;l5916&quot;&gt;   5916&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-816&amp;quot; id=&amp;quot;h4-0-816&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5955 <a href="#l5936" class="line" id="l5936">   5936</a> &lt;a href=&quot;#l5917&quot; class=&quot;line&quot; id=&quot;l5917&quot;&gt;   5917&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-817&amp;quot; id=&amp;quot;h4-0-817&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uUseVertexColor;
   5956 <a href="#l5937" class="line" id="l5937">   5937</a> &lt;a href=&quot;#l5918&quot; class=&quot;line&quot; id=&quot;l5918&quot;&gt;   5918&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-818&amp;quot; id=&amp;quot;h4-0-818&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uMaterialColor;
   5957 <a href="#l5938" class="line" id="l5938">   5938</a> &lt;a href=&quot;#l5919&quot; class=&quot;line&quot; id=&quot;l5919&quot;&gt;   5919&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-819&amp;quot; id=&amp;quot;h4-0-819&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5958 <a href="#l5939" class="line" id="l5939">   5939</a> &lt;a href=&quot;#l5920&quot; class=&quot;line&quot; id=&quot;l5920&quot;&gt;   5920&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-820&amp;quot; id=&amp;quot;h4-0-820&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec3 vNormal;
   5959 <a href="#l5940" class="line" id="l5940">   5940</a> &lt;a href=&quot;#l5921&quot; class=&quot;line&quot; id=&quot;l5921&quot;&gt;   5921&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-821&amp;quot; id=&amp;quot;h4-0-821&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec2 vTexCoord;
   5960 <a href="#l5941" class="line" id="l5941">   5941</a> &lt;a href=&quot;#l5922&quot; class=&quot;line&quot; id=&quot;l5922&quot;&gt;   5922&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-822&amp;quot; id=&amp;quot;h4-0-822&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec3 vViewPosition;
   5961 <a href="#l5942" class="line" id="l5942">   5942</a> &lt;a href=&quot;#l5923&quot; class=&quot;line&quot; id=&quot;l5923&quot;&gt;   5923&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-823&amp;quot; id=&amp;quot;h4-0-823&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec3 vAmbientColor;
   5962 <a href="#l5943" class="line" id="l5943">   5943</a> &lt;a href=&quot;#l5924&quot; class=&quot;line&quot; id=&quot;l5924&quot;&gt;   5924&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-824&amp;quot; id=&amp;quot;h4-0-824&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec4 vColor;
   5963 <a href="#l5944" class="line" id="l5944">   5944</a> &lt;a href=&quot;#l5925&quot; class=&quot;line&quot; id=&quot;l5925&quot;&gt;   5925&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-825&amp;quot; id=&amp;quot;h4-0-825&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5964 <a href="#l5945" class="line" id="l5945">   5945</a> &lt;a href=&quot;#l5926&quot; class=&quot;line&quot; id=&quot;l5926&quot;&gt;   5926&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-826&amp;quot; id=&amp;quot;h4-0-826&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct Vertex {
   5965 <a href="#l5946" class="line" id="l5946">   5946</a> &lt;a href=&quot;#l5927&quot; class=&quot;line&quot; id=&quot;l5927&quot;&gt;   5927&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-827&amp;quot; id=&amp;quot;h4-0-827&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 position;
   5966 <a href="#l5947" class="line" id="l5947">   5947</a> &lt;a href=&quot;#l5928&quot; class=&quot;line&quot; id=&quot;l5928&quot;&gt;   5928&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-828&amp;quot; id=&amp;quot;h4-0-828&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 normal;
   5967 <a href="#l5948" class="line" id="l5948">   5948</a> &lt;a href=&quot;#l5929&quot; class=&quot;line&quot; id=&quot;l5929&quot;&gt;   5929&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-829&amp;quot; id=&amp;quot;h4-0-829&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 texCoord;
   5968 <a href="#l5949" class="line" id="l5949">   5949</a> &lt;a href=&quot;#l5930&quot; class=&quot;line&quot; id=&quot;l5930&quot;&gt;   5930&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-830&amp;quot; id=&amp;quot;h4-0-830&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color;
   5969 <a href="#l5950" class="line" id="l5950">   5950</a> &lt;a href=&quot;#l5931&quot; class=&quot;line&quot; id=&quot;l5931&quot;&gt;   5931&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-831&amp;quot; id=&amp;quot;h4-0-831&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   5970 <a href="#l5951" class="line" id="l5951">   5951</a> &lt;a href=&quot;#l5932&quot; class=&quot;line&quot; id=&quot;l5932&quot;&gt;   5932&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-832&amp;quot; id=&amp;quot;h4-0-832&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5971 <a href="#l5952" class="line" id="l5952">   5952</a> &lt;a href=&quot;#l5933&quot; class=&quot;line&quot; id=&quot;l5933&quot;&gt;   5933&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-833&amp;quot; id=&amp;quot;h4-0-833&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(void) {
   5972 <a href="#l5953" class="line" id="l5953">   5953</a> &lt;a href=&quot;#l5934&quot; class=&quot;line&quot; id=&quot;l5934&quot;&gt;   5934&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-834&amp;quot; id=&amp;quot;h4-0-834&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeVertex();
   5973 <a href="#l5954" class="line" id="l5954">   5954</a> &lt;a href=&quot;#l5935&quot; class=&quot;line&quot; id=&quot;l5935&quot;&gt;   5935&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-835&amp;quot; id=&amp;quot;h4-0-835&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5974 <a href="#l5955" class="line" id="l5955">   5955</a> &lt;a href=&quot;#l5936&quot; class=&quot;line&quot; id=&quot;l5936&quot;&gt;   5936&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-836&amp;quot; id=&amp;quot;h4-0-836&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Vertex inputs;
   5975 <a href="#l5956" class="line" id="l5956">   5956</a> &lt;a href=&quot;#l5937&quot; class=&quot;line&quot; id=&quot;l5937&quot;&gt;   5937&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-837&amp;quot; id=&amp;quot;h4-0-837&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = aPosition;
   5976 <a href="#l5957" class="line" id="l5957">   5957</a> &lt;a href=&quot;#l5938&quot; class=&quot;line&quot; id=&quot;l5938&quot;&gt;   5938&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-838&amp;quot; id=&amp;quot;h4-0-838&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = aNormal;
   5977 <a href="#l5958" class="line" id="l5958">   5958</a> &lt;a href=&quot;#l5939&quot; class=&quot;line&quot; id=&quot;l5939&quot;&gt;   5939&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-839&amp;quot; id=&amp;quot;h4-0-839&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.texCoord = aTexCoord;
   5978 <a href="#l5959" class="line" id="l5959">   5959</a> &lt;a href=&quot;#l5940&quot; class=&quot;line&quot; id=&quot;l5940&quot;&gt;   5940&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-840&amp;quot; id=&amp;quot;h4-0-840&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.color = (uUseVertexColor &amp;amp;amp;&amp;amp;amp; aVertexColor.x &amp;amp;gt;= 0.0) ? aVertexColor : uMaterialColor;
   5979 <a href="#l5960" class="line" id="l5960">   5960</a> &lt;a href=&quot;#l5941&quot; class=&quot;line&quot; id=&quot;l5941&quot;&gt;   5941&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-841&amp;quot; id=&amp;quot;h4-0-841&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getObjectInputs
   5980 <a href="#l5961" class="line" id="l5961">   5961</a> &lt;a href=&quot;#l5942&quot; class=&quot;line&quot; id=&quot;l5942&quot;&gt;   5942&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-842&amp;quot; id=&amp;quot;h4-0-842&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getObjectInputs(inputs);
   5981 <a href="#l5962" class="line" id="l5962">   5962</a> &lt;a href=&quot;#l5943&quot; class=&quot;line&quot; id=&quot;l5943&quot;&gt;   5943&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-843&amp;quot; id=&amp;quot;h4-0-843&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5982 <a href="#l5963" class="line" id="l5963">   5963</a> &lt;a href=&quot;#l5944&quot; class=&quot;line&quot; id=&quot;l5944&quot;&gt;   5944&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-844&amp;quot; id=&amp;quot;h4-0-844&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5983 <a href="#l5964" class="line" id="l5964">   5964</a> &lt;a href=&quot;#l5945&quot; class=&quot;line&quot; id=&quot;l5945&quot;&gt;   5945&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-845&amp;quot; id=&amp;quot;h4-0-845&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   5984 <a href="#l5965" class="line" id="l5965">   5965</a> &lt;a href=&quot;#l5946&quot; class=&quot;line&quot; id=&quot;l5946&quot;&gt;   5946&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-846&amp;quot; id=&amp;quot;h4-0-846&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uModelMatrix * vec4(inputs.position, 1.)).xyz;
   5985 <a href="#l5966" class="line" id="l5966">   5966</a> &lt;a href=&quot;#l5947&quot; class=&quot;line&quot; id=&quot;l5947&quot;&gt;   5947&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-847&amp;quot; id=&amp;quot;h4-0-847&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = uModelNormalMatrix * inputs.normal;
   5986 <a href="#l5967" class="line" id="l5967">   5967</a> &lt;a href=&quot;#l5948&quot; class=&quot;line&quot; id=&quot;l5948&quot;&gt;   5948&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-848&amp;quot; id=&amp;quot;h4-0-848&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getWorldInputs(inputs);
   5987 <a href="#l5968" class="line" id="l5968">   5968</a> &lt;a href=&quot;#l5949&quot; class=&quot;line&quot; id=&quot;l5949&quot;&gt;   5949&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-849&amp;quot; id=&amp;quot;h4-0-849&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5988 <a href="#l5969" class="line" id="l5969">   5969</a> &lt;a href=&quot;#l5950&quot; class=&quot;line&quot; id=&quot;l5950&quot;&gt;   5950&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-850&amp;quot; id=&amp;quot;h4-0-850&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   5989 <a href="#l5970" class="line" id="l5970">   5970</a> &lt;a href=&quot;#l5951&quot; class=&quot;line&quot; id=&quot;l5951&quot;&gt;   5951&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-851&amp;quot; id=&amp;quot;h4-0-851&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   5990 <a href="#l5971" class="line" id="l5971">   5971</a> &lt;a href=&quot;#l5952&quot; class=&quot;line&quot; id=&quot;l5952&quot;&gt;   5952&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-852&amp;quot; id=&amp;quot;h4-0-852&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Already multiplied by the model matrix, just apply view
   5991 <a href="#l5972" class="line" id="l5972">   5972</a> &lt;a href=&quot;#l5953&quot; class=&quot;line&quot; id=&quot;l5953&quot;&gt;   5953&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-853&amp;quot; id=&amp;quot;h4-0-853&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uViewMatrix * vec4(inputs.position, 1.)).xyz;
   5992 <a href="#l5973" class="line" id="l5973">   5973</a> &lt;a href=&quot;#l5954&quot; class=&quot;line&quot; id=&quot;l5954&quot;&gt;   5954&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-854&amp;quot; id=&amp;quot;h4-0-854&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = uCameraNormalMatrix * inputs.normal;
   5993 <a href="#l5974" class="line" id="l5974">   5974</a> &lt;a href=&quot;#l5955&quot; class=&quot;line&quot; id=&quot;l5955&quot;&gt;   5955&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-855&amp;quot; id=&amp;quot;h4-0-855&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   5994 <a href="#l5975" class="line" id="l5975">   5975</a> &lt;a href=&quot;#l5956&quot; class=&quot;line&quot; id=&quot;l5956&quot;&gt;   5956&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-856&amp;quot; id=&amp;quot;h4-0-856&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Apply both at once
   5995 <a href="#l5976" class="line" id="l5976">   5976</a> &lt;a href=&quot;#l5957&quot; class=&quot;line&quot; id=&quot;l5957&quot;&gt;   5957&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-857&amp;quot; id=&amp;quot;h4-0-857&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uModelViewMatrix * vec4(inputs.position, 1.)).xyz;
   5996 <a href="#l5977" class="line" id="l5977">   5977</a> &lt;a href=&quot;#l5958&quot; class=&quot;line&quot; id=&quot;l5958&quot;&gt;   5958&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-858&amp;quot; id=&amp;quot;h4-0-858&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = uNormalMatrix * inputs.normal;
   5997 <a href="#l5978" class="line" id="l5978">   5978</a> &lt;a href=&quot;#l5959&quot; class=&quot;line&quot; id=&quot;l5959&quot;&gt;   5959&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-859&amp;quot; id=&amp;quot;h4-0-859&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   5998 <a href="#l5979" class="line" id="l5979">   5979</a> &lt;a href=&quot;#l5960&quot; class=&quot;line&quot; id=&quot;l5960&quot;&gt;   5960&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-860&amp;quot; id=&amp;quot;h4-0-860&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getCameraInputs
   5999 <a href="#l5980" class="line" id="l5980">   5980</a> &lt;a href=&quot;#l5961&quot; class=&quot;line&quot; id=&quot;l5961&quot;&gt;   5961&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-861&amp;quot; id=&amp;quot;h4-0-861&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getCameraInputs(inputs);
   6000 <a href="#l5981" class="line" id="l5981">   5981</a> &lt;a href=&quot;#l5962&quot; class=&quot;line&quot; id=&quot;l5962&quot;&gt;   5962&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-862&amp;quot; id=&amp;quot;h4-0-862&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   6001 <a href="#l5982" class="line" id="l5982">   5982</a> &lt;a href=&quot;#l5963&quot; class=&quot;line&quot; id=&quot;l5963&quot;&gt;   5963&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-863&amp;quot; id=&amp;quot;h4-0-863&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6002 <a href="#l5983" class="line" id="l5983">   5983</a> &lt;a href=&quot;#l5964&quot; class=&quot;line&quot; id=&quot;l5964&quot;&gt;   5964&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-864&amp;quot; id=&amp;quot;h4-0-864&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Pass varyings to fragment shader
   6003 <a href="#l5984" class="line" id="l5984">   5984</a> &lt;a href=&quot;#l5965&quot; class=&quot;line&quot; id=&quot;l5965&quot;&gt;   5965&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-865&amp;quot; id=&amp;quot;h4-0-865&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vViewPosition = inputs.position;
   6004 <a href="#l5985" class="line" id="l5985">   5985</a> &lt;a href=&quot;#l5966&quot; class=&quot;line&quot; id=&quot;l5966&quot;&gt;   5966&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-866&amp;quot; id=&amp;quot;h4-0-866&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vTexCoord = inputs.texCoord;
   6005 <a href="#l5986" class="line" id="l5986">   5986</a> &lt;a href=&quot;#l5967&quot; class=&quot;line&quot; id=&quot;l5967&quot;&gt;   5967&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-867&amp;quot; id=&amp;quot;h4-0-867&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vNormal = inputs.normal;
   6006 <a href="#l5987" class="line" id="l5987">   5987</a> &lt;a href=&quot;#l5968&quot; class=&quot;line&quot; id=&quot;l5968&quot;&gt;   5968&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-868&amp;quot; id=&amp;quot;h4-0-868&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vColor = inputs.color;
   6007 <a href="#l5988" class="line" id="l5988">   5988</a> &lt;a href=&quot;#l5969&quot; class=&quot;line&quot; id=&quot;l5969&quot;&gt;   5969&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-869&amp;quot; id=&amp;quot;h4-0-869&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6008 <a href="#l5989" class="line" id="l5989">   5989</a> &lt;a href=&quot;#l5970&quot; class=&quot;line&quot; id=&quot;l5970&quot;&gt;   5970&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-870&amp;quot; id=&amp;quot;h4-0-870&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // TODO: this should be a uniform
   6009 <a href="#l5990" class="line" id="l5990">   5990</a> &lt;a href=&quot;#l5971&quot; class=&quot;line&quot; id=&quot;l5971&quot;&gt;   5971&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-871&amp;quot; id=&amp;quot;h4-0-871&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vAmbientColor = vec3(0.0);
   6010 <a href="#l5991" class="line" id="l5991">   5991</a> &lt;a href=&quot;#l5972&quot; class=&quot;line&quot; id=&quot;l5972&quot;&gt;   5972&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-872&amp;quot; id=&amp;quot;h4-0-872&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  for (int i = 0; i &amp;amp;lt; 5; i++) {
   6011 <a href="#l5992" class="line" id="l5992">   5992</a> &lt;a href=&quot;#l5973&quot; class=&quot;line&quot; id=&quot;l5973&quot;&gt;   5973&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-873&amp;quot; id=&amp;quot;h4-0-873&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (i &amp;amp;lt; uAmbientLightCount) {
   6012 <a href="#l5993" class="line" id="l5993">   5993</a> &lt;a href=&quot;#l5974&quot; class=&quot;line&quot; id=&quot;l5974&quot;&gt;   5974&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-874&amp;quot; id=&amp;quot;h4-0-874&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vAmbientColor += uAmbientColor[i];
   6013 <a href="#l5994" class="line" id="l5994">   5994</a> &lt;a href=&quot;#l5975&quot; class=&quot;line&quot; id=&quot;l5975&quot;&gt;   5975&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-875&amp;quot; id=&amp;quot;h4-0-875&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   6014 <a href="#l5995" class="line" id="l5995">   5995</a> &lt;a href=&quot;#l5976&quot; class=&quot;line&quot; id=&quot;l5976&quot;&gt;   5976&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-876&amp;quot; id=&amp;quot;h4-0-876&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6015 <a href="#l5996" class="line" id="l5996">   5996</a> &lt;a href=&quot;#l5977&quot; class=&quot;line&quot; id=&quot;l5977&quot;&gt;   5977&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-877&amp;quot; id=&amp;quot;h4-0-877&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6016 <a href="#l5997" class="line" id="l5997">   5997</a> &lt;a href=&quot;#l5978&quot; class=&quot;line&quot; id=&quot;l5978&quot;&gt;   5978&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-878&amp;quot; id=&amp;quot;h4-0-878&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position = uProjectionMatrix * vec4(inputs.position, 1.);
   6017 <a href="#l5998" class="line" id="l5998">   5998</a> &lt;a href=&quot;#l5979&quot; class=&quot;line&quot; id=&quot;l5979&quot;&gt;   5979&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-879&amp;quot; id=&amp;quot;h4-0-879&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterVertex();
   6018 <a href="#l5999" class="line" id="l5999">   5999</a> &lt;a href=&quot;#l5980&quot; class=&quot;line&quot; id=&quot;l5980&quot;&gt;   5980&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-880&amp;quot; id=&amp;quot;h4-0-880&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6019 <a href="#l6000" class="line" id="l6000">   6000</a> &lt;a href=&quot;#l5981&quot; class=&quot;line&quot; id=&quot;l5981&quot;&gt;   5981&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-881&amp;quot; id=&amp;quot;h4-0-881&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Sb=`// include lighting.glsl
   6020 <a href="#l6001" class="line" id="l6001">   6001</a> &lt;a href=&quot;#l5982&quot; class=&quot;line&quot; id=&quot;l5982&quot;&gt;   5982&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-882&amp;quot; id=&amp;quot;h4-0-882&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp int;
   6021 <a href="#l6002" class="line" id="l6002">   6002</a> &lt;a href=&quot;#l5983&quot; class=&quot;line&quot; id=&quot;l5983&quot;&gt;   5983&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-883&amp;quot; id=&amp;quot;h4-0-883&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6022 <a href="#l6003" class="line" id="l6003">   6003</a> &lt;a href=&quot;#l5984&quot; class=&quot;line&quot; id=&quot;l5984&quot;&gt;   5984&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-884&amp;quot; id=&amp;quot;h4-0-884&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uHasSetAmbient;
   6023 <a href="#l6004" class="line" id="l6004">   6004</a> &lt;a href=&quot;#l5985&quot; class=&quot;line&quot; id=&quot;l5985&quot;&gt;   5985&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-885&amp;quot; id=&amp;quot;h4-0-885&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uSpecularMatColor;
   6024 <a href="#l6005" class="line" id="l6005">   6005</a> &lt;a href=&quot;#l5986&quot; class=&quot;line&quot; id=&quot;l5986&quot;&gt;   5986&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-886&amp;quot; id=&amp;quot;h4-0-886&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uAmbientMatColor;
   6025 <a href="#l6006" class="line" id="l6006">   6006</a> &lt;a href=&quot;#l5987&quot; class=&quot;line&quot; id=&quot;l5987&quot;&gt;   5987&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-887&amp;quot; id=&amp;quot;h4-0-887&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uEmissiveMatColor;
   6026 <a href="#l6007" class="line" id="l6007">   6007</a> &lt;a href=&quot;#l5988&quot; class=&quot;line&quot; id=&quot;l5988&quot;&gt;   5988&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-888&amp;quot; id=&amp;quot;h4-0-888&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6027 <a href="#l6008" class="line" id="l6008">   6008</a> &lt;a href=&quot;#l5989&quot; class=&quot;line&quot; id=&quot;l5989&quot;&gt;   5989&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-889&amp;quot; id=&amp;quot;h4-0-889&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uTint;
   6028 <a href="#l6009" class="line" id="l6009">   6009</a> &lt;a href=&quot;#l5990&quot; class=&quot;line&quot; id=&quot;l5990&quot;&gt;   5990&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-890&amp;quot; id=&amp;quot;h4-0-890&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D uSampler;
   6029 <a href="#l6010" class="line" id="l6010">   6010</a> &lt;a href=&quot;#l5991&quot; class=&quot;line&quot; id=&quot;l5991&quot;&gt;   5991&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-891&amp;quot; id=&amp;quot;h4-0-891&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool isTexture;
   6030 <a href="#l6011" class="line" id="l6011">   6011</a> &lt;a href=&quot;#l5992&quot; class=&quot;line&quot; id=&quot;l5992&quot;&gt;   5992&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-892&amp;quot; id=&amp;quot;h4-0-892&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6031 <a href="#l6012" class="line" id="l6012">   6012</a> &lt;a href=&quot;#l5993&quot; class=&quot;line&quot; id=&quot;l5993&quot;&gt;   5993&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-893&amp;quot; id=&amp;quot;h4-0-893&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 vNormal;
   6032 <a href="#l6013" class="line" id="l6013">   6013</a> &lt;a href=&quot;#l5994&quot; class=&quot;line&quot; id=&quot;l5994&quot;&gt;   5994&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-894&amp;quot; id=&amp;quot;h4-0-894&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 vTexCoord;
   6033 <a href="#l6014" class="line" id="l6014">   6014</a> &lt;a href=&quot;#l5995&quot; class=&quot;line&quot; id=&quot;l5995&quot;&gt;   5995&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-895&amp;quot; id=&amp;quot;h4-0-895&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 vViewPosition;
   6034 <a href="#l6015" class="line" id="l6015">   6015</a> &lt;a href=&quot;#l5996&quot; class=&quot;line&quot; id=&quot;l5996&quot;&gt;   5996&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-896&amp;quot; id=&amp;quot;h4-0-896&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 vAmbientColor;
   6035 <a href="#l6016" class="line" id="l6016">   6016</a> &lt;a href=&quot;#l5997&quot; class=&quot;line&quot; id=&quot;l5997&quot;&gt;   5997&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-897&amp;quot; id=&amp;quot;h4-0-897&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec4 vColor;
   6036 <a href="#l6017" class="line" id="l6017">   6017</a> &lt;a href=&quot;#l5998&quot; class=&quot;line&quot; id=&quot;l5998&quot;&gt;   5998&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-898&amp;quot; id=&amp;quot;h4-0-898&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6037 <a href="#l6018" class="line" id="l6018">   6018</a> &lt;a href=&quot;#l5999&quot; class=&quot;line&quot; id=&quot;l5999&quot;&gt;   5999&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-899&amp;quot; id=&amp;quot;h4-0-899&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct ColorComponents {
   6038 <a href="#l6019" class="line" id="l6019">   6019</a> &lt;a href=&quot;#l6000&quot; class=&quot;line&quot; id=&quot;l6000&quot;&gt;   6000&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-900&amp;quot; id=&amp;quot;h4-0-900&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 baseColor;
   6039 <a href="#l6020" class="line" id="l6020">   6020</a> &lt;a href=&quot;#l6001&quot; class=&quot;line&quot; id=&quot;l6001&quot;&gt;   6001&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-901&amp;quot; id=&amp;quot;h4-0-901&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float opacity;
   6040 <a href="#l6021" class="line" id="l6021">   6021</a> &lt;a href=&quot;#l6002&quot; class=&quot;line&quot; id=&quot;l6002&quot;&gt;   6002&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-902&amp;quot; id=&amp;quot;h4-0-902&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 ambientColor;
   6041 <a href="#l6022" class="line" id="l6022">   6022</a> &lt;a href=&quot;#l6003&quot; class=&quot;line&quot; id=&quot;l6003&quot;&gt;   6003&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-903&amp;quot; id=&amp;quot;h4-0-903&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 specularColor;
   6042 <a href="#l6023" class="line" id="l6023">   6023</a> &lt;a href=&quot;#l6004&quot; class=&quot;line&quot; id=&quot;l6004&quot;&gt;   6004&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-904&amp;quot; id=&amp;quot;h4-0-904&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 diffuse;
   6043 <a href="#l6024" class="line" id="l6024">   6024</a> &lt;a href=&quot;#l6005&quot; class=&quot;line&quot; id=&quot;l6005&quot;&gt;   6005&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-905&amp;quot; id=&amp;quot;h4-0-905&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 ambient;
   6044 <a href="#l6025" class="line" id="l6025">   6025</a> &lt;a href=&quot;#l6006&quot; class=&quot;line&quot; id=&quot;l6006&quot;&gt;   6006&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-906&amp;quot; id=&amp;quot;h4-0-906&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 specular;
   6045 <a href="#l6026" class="line" id="l6026">   6026</a> &lt;a href=&quot;#l6007&quot; class=&quot;line&quot; id=&quot;l6007&quot;&gt;   6007&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-907&amp;quot; id=&amp;quot;h4-0-907&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 emissive;
   6046 <a href="#l6027" class="line" id="l6027">   6027</a> &lt;a href=&quot;#l6008&quot; class=&quot;line&quot; id=&quot;l6008&quot;&gt;   6008&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-908&amp;quot; id=&amp;quot;h4-0-908&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   6047 <a href="#l6028" class="line" id="l6028">   6028</a> &lt;a href=&quot;#l6009&quot; class=&quot;line&quot; id=&quot;l6009&quot;&gt;   6009&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-909&amp;quot; id=&amp;quot;h4-0-909&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6048 <a href="#l6029" class="line" id="l6029">   6029</a> &lt;a href=&quot;#l6010&quot; class=&quot;line&quot; id=&quot;l6010&quot;&gt;   6010&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-910&amp;quot; id=&amp;quot;h4-0-910&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct Inputs {
   6049 <a href="#l6030" class="line" id="l6030">   6030</a> &lt;a href=&quot;#l6011&quot; class=&quot;line&quot; id=&quot;l6011&quot;&gt;   6011&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-911&amp;quot; id=&amp;quot;h4-0-911&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 normal;
   6050 <a href="#l6031" class="line" id="l6031">   6031</a> &lt;a href=&quot;#l6012&quot; class=&quot;line&quot; id=&quot;l6012&quot;&gt;   6012&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-912&amp;quot; id=&amp;quot;h4-0-912&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 texCoord;
   6051 <a href="#l6032" class="line" id="l6032">   6032</a> &lt;a href=&quot;#l6013&quot; class=&quot;line&quot; id=&quot;l6013&quot;&gt;   6013&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-913&amp;quot; id=&amp;quot;h4-0-913&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 ambientLight;
   6052 <a href="#l6033" class="line" id="l6033">   6033</a> &lt;a href=&quot;#l6014&quot; class=&quot;line&quot; id=&quot;l6014&quot;&gt;   6014&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-914&amp;quot; id=&amp;quot;h4-0-914&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 ambientMaterial;
   6053 <a href="#l6034" class="line" id="l6034">   6034</a> &lt;a href=&quot;#l6015&quot; class=&quot;line&quot; id=&quot;l6015&quot;&gt;   6015&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-915&amp;quot; id=&amp;quot;h4-0-915&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 specularMaterial;
   6054 <a href="#l6035" class="line" id="l6035">   6035</a> &lt;a href=&quot;#l6016&quot; class=&quot;line&quot; id=&quot;l6016&quot;&gt;   6016&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-916&amp;quot; id=&amp;quot;h4-0-916&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 emissiveMaterial;
   6055 <a href="#l6036" class="line" id="l6036">   6036</a> &lt;a href=&quot;#l6017&quot; class=&quot;line&quot; id=&quot;l6017&quot;&gt;   6017&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-917&amp;quot; id=&amp;quot;h4-0-917&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color;
   6056 <a href="#l6037" class="line" id="l6037">   6037</a> &lt;a href=&quot;#l6018&quot; class=&quot;line&quot; id=&quot;l6018&quot;&gt;   6018&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-918&amp;quot; id=&amp;quot;h4-0-918&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float shininess;
   6057 <a href="#l6038" class="line" id="l6038">   6038</a> &lt;a href=&quot;#l6019&quot; class=&quot;line&quot; id=&quot;l6019&quot;&gt;   6019&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-919&amp;quot; id=&amp;quot;h4-0-919&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float metalness;
   6058 <a href="#l6039" class="line" id="l6039">   6039</a> &lt;a href=&quot;#l6020&quot; class=&quot;line&quot; id=&quot;l6020&quot;&gt;   6020&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-920&amp;quot; id=&amp;quot;h4-0-920&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   6059 <a href="#l6040" class="line" id="l6040">   6040</a> &lt;a href=&quot;#l6021&quot; class=&quot;line&quot; id=&quot;l6021&quot;&gt;   6021&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-921&amp;quot; id=&amp;quot;h4-0-921&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6060 <a href="#l6041" class="line" id="l6041">   6041</a> &lt;a href=&quot;#l6022&quot; class=&quot;line&quot; id=&quot;l6022&quot;&gt;   6022&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-922&amp;quot; id=&amp;quot;h4-0-922&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(void) {
   6061 <a href="#l6042" class="line" id="l6042">   6042</a> &lt;a href=&quot;#l6023&quot; class=&quot;line&quot; id=&quot;l6023&quot;&gt;   6023&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-923&amp;quot; id=&amp;quot;h4-0-923&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeFragment();
   6062 <a href="#l6043" class="line" id="l6043">   6043</a> &lt;a href=&quot;#l6024&quot; class=&quot;line&quot; id=&quot;l6024&quot;&gt;   6024&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-924&amp;quot; id=&amp;quot;h4-0-924&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6063 <a href="#l6044" class="line" id="l6044">   6044</a> &lt;a href=&quot;#l6025&quot; class=&quot;line&quot; id=&quot;l6025&quot;&gt;   6025&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-925&amp;quot; id=&amp;quot;h4-0-925&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Inputs inputs;
   6064 <a href="#l6045" class="line" id="l6045">   6045</a> &lt;a href=&quot;#l6026&quot; class=&quot;line&quot; id=&quot;l6026&quot;&gt;   6026&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-926&amp;quot; id=&amp;quot;h4-0-926&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.normal = normalize(vNormal);
   6065 <a href="#l6046" class="line" id="l6046">   6046</a> &lt;a href=&quot;#l6027&quot; class=&quot;line&quot; id=&quot;l6027&quot;&gt;   6027&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-927&amp;quot; id=&amp;quot;h4-0-927&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.texCoord = vTexCoord;
   6066 <a href="#l6047" class="line" id="l6047">   6047</a> &lt;a href=&quot;#l6028&quot; class=&quot;line&quot; id=&quot;l6028&quot;&gt;   6028&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-928&amp;quot; id=&amp;quot;h4-0-928&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.ambientLight = vAmbientColor;
   6067 <a href="#l6048" class="line" id="l6048">   6048</a> &lt;a href=&quot;#l6029&quot; class=&quot;line&quot; id=&quot;l6029&quot;&gt;   6029&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-929&amp;quot; id=&amp;quot;h4-0-929&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.color = isTexture
   6068 <a href="#l6049" class="line" id="l6049">   6049</a> &lt;a href=&quot;#l6030&quot; class=&quot;line&quot; id=&quot;l6030&quot;&gt;   6030&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-930&amp;quot; id=&amp;quot;h4-0-930&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ? TEXTURE(uSampler, vTexCoord) * (vec4(uTint.rgb/255., 1.) * uTint.a/255.)
   6069 <a href="#l6050" class="line" id="l6050">   6050</a> &lt;a href=&quot;#l6031&quot; class=&quot;line&quot; id=&quot;l6031&quot;&gt;   6031&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-931&amp;quot; id=&amp;quot;h4-0-931&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      : vColor;
   6070 <a href="#l6051" class="line" id="l6051">   6051</a> &lt;a href=&quot;#l6032&quot; class=&quot;line&quot; id=&quot;l6032&quot;&gt;   6032&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-932&amp;quot; id=&amp;quot;h4-0-932&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (isTexture &amp;amp;amp;&amp;amp;amp; inputs.color.a &amp;amp;gt; 0.0) {
   6071 <a href="#l6052" class="line" id="l6052">   6052</a> &lt;a href=&quot;#l6033&quot; class=&quot;line&quot; id=&quot;l6033&quot;&gt;   6033&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-933&amp;quot; id=&amp;quot;h4-0-933&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Textures come in with premultiplied alpha. Temporarily unpremultiply it
   6072 <a href="#l6053" class="line" id="l6053">   6053</a> &lt;a href=&quot;#l6034&quot; class=&quot;line&quot; id=&quot;l6034&quot;&gt;   6034&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-934&amp;quot; id=&amp;quot;h4-0-934&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // so hooks users don&amp;amp;#39;t have to think about premultiplied alpha.
   6073 <a href="#l6054" class="line" id="l6054">   6054</a> &lt;a href=&quot;#l6035&quot; class=&quot;line&quot; id=&quot;l6035&quot;&gt;   6035&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-935&amp;quot; id=&amp;quot;h4-0-935&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    inputs.color.rgb /= inputs.color.a;
   6074 <a href="#l6055" class="line" id="l6055">   6055</a> &lt;a href=&quot;#l6036&quot; class=&quot;line&quot; id=&quot;l6036&quot;&gt;   6036&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-936&amp;quot; id=&amp;quot;h4-0-936&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6075 <a href="#l6056" class="line" id="l6056">   6056</a> &lt;a href=&quot;#l6037&quot; class=&quot;line&quot; id=&quot;l6037&quot;&gt;   6037&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-937&amp;quot; id=&amp;quot;h4-0-937&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.shininess = uShininess;
   6076 <a href="#l6057" class="line" id="l6057">   6057</a> &lt;a href=&quot;#l6038&quot; class=&quot;line&quot; id=&quot;l6038&quot;&gt;   6038&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-938&amp;quot; id=&amp;quot;h4-0-938&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.metalness = uMetallic;
   6077 <a href="#l6058" class="line" id="l6058">   6058</a> &lt;a href=&quot;#l6039&quot; class=&quot;line&quot; id=&quot;l6039&quot;&gt;   6039&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-939&amp;quot; id=&amp;quot;h4-0-939&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.ambientMaterial = uHasSetAmbient ? uAmbientMatColor.rgb : inputs.color.rgb;
   6078 <a href="#l6059" class="line" id="l6059">   6059</a> &lt;a href=&quot;#l6040&quot; class=&quot;line&quot; id=&quot;l6040&quot;&gt;   6040&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-940&amp;quot; id=&amp;quot;h4-0-940&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.specularMaterial = uSpecularMatColor.rgb;
   6079 <a href="#l6060" class="line" id="l6060">   6060</a> &lt;a href=&quot;#l6041&quot; class=&quot;line&quot; id=&quot;l6041&quot;&gt;   6041&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-941&amp;quot; id=&amp;quot;h4-0-941&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.emissiveMaterial = uEmissiveMatColor.rgb;
   6080 <a href="#l6061" class="line" id="l6061">   6061</a> &lt;a href=&quot;#l6042&quot; class=&quot;line&quot; id=&quot;l6042&quot;&gt;   6042&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-942&amp;quot; id=&amp;quot;h4-0-942&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getPixelInputs(inputs);
   6081 <a href="#l6062" class="line" id="l6062">   6062</a> &lt;a href=&quot;#l6043&quot; class=&quot;line&quot; id=&quot;l6043&quot;&gt;   6043&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-943&amp;quot; id=&amp;quot;h4-0-943&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6082 <a href="#l6063" class="line" id="l6063">   6063</a> &lt;a href=&quot;#l6044&quot; class=&quot;line&quot; id=&quot;l6044&quot;&gt;   6044&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-944&amp;quot; id=&amp;quot;h4-0-944&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 diffuse;
   6083 <a href="#l6064" class="line" id="l6064">   6064</a> &lt;a href=&quot;#l6045&quot; class=&quot;line&quot; id=&quot;l6045&quot;&gt;   6045&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-945&amp;quot; id=&amp;quot;h4-0-945&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 specular;
   6084 <a href="#l6065" class="line" id="l6065">   6065</a> &lt;a href=&quot;#l6046&quot; class=&quot;line&quot; id=&quot;l6046&quot;&gt;   6046&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-946&amp;quot; id=&amp;quot;h4-0-946&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  totalLight(vViewPosition, inputs.normal, inputs.shininess, inputs.metalness, diffuse, specular);
   6085 <a href="#l6066" class="line" id="l6066">   6066</a> &lt;a href=&quot;#l6047&quot; class=&quot;line&quot; id=&quot;l6047&quot;&gt;   6047&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-947&amp;quot; id=&amp;quot;h4-0-947&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6086 <a href="#l6067" class="line" id="l6067">   6067</a> &lt;a href=&quot;#l6048&quot; class=&quot;line&quot; id=&quot;l6048&quot;&gt;   6048&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-948&amp;quot; id=&amp;quot;h4-0-948&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Calculating final color as result of all lights (plus emissive term).
   6087 <a href="#l6068" class="line" id="l6068">   6068</a> &lt;a href=&quot;#l6049&quot; class=&quot;line&quot; id=&quot;l6049&quot;&gt;   6049&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-949&amp;quot; id=&amp;quot;h4-0-949&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6088 <a href="#l6069" class="line" id="l6069">   6069</a> &lt;a href=&quot;#l6050&quot; class=&quot;line&quot; id=&quot;l6050&quot;&gt;   6050&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-950&amp;quot; id=&amp;quot;h4-0-950&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 texCoord = inputs.texCoord;
   6089 <a href="#l6070" class="line" id="l6070">   6070</a> &lt;a href=&quot;#l6051&quot; class=&quot;line&quot; id=&quot;l6051&quot;&gt;   6051&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-951&amp;quot; id=&amp;quot;h4-0-951&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 baseColor = inputs.color;
   6090 <a href="#l6071" class="line" id="l6071">   6071</a> &lt;a href=&quot;#l6052&quot; class=&quot;line&quot; id=&quot;l6052&quot;&gt;   6052&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-952&amp;quot; id=&amp;quot;h4-0-952&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  ColorComponents c;
   6091 <a href="#l6072" class="line" id="l6072">   6072</a> &lt;a href=&quot;#l6053&quot; class=&quot;line&quot; id=&quot;l6053&quot;&gt;   6053&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-953&amp;quot; id=&amp;quot;h4-0-953&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  c.opacity = baseColor.a;
   6092 <a href="#l6073" class="line" id="l6073">   6073</a> &lt;a href=&quot;#l6054&quot; class=&quot;line&quot; id=&quot;l6054&quot;&gt;   6054&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-954&amp;quot; id=&amp;quot;h4-0-954&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  c.baseColor = baseColor.rgb;
   6093 <a href="#l6074" class="line" id="l6074">   6074</a> &lt;a href=&quot;#l6055&quot; class=&quot;line&quot; id=&quot;l6055&quot;&gt;   6055&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-955&amp;quot; id=&amp;quot;h4-0-955&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  c.ambientColor = inputs.ambientMaterial;
   6094 <a href="#l6075" class="line" id="l6075">   6075</a> &lt;a href=&quot;#l6056&quot; class=&quot;line&quot; id=&quot;l6056&quot;&gt;   6056&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-956&amp;quot; id=&amp;quot;h4-0-956&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  c.specularColor = inputs.specularMaterial;
   6095 <a href="#l6076" class="line" id="l6076">   6076</a> &lt;a href=&quot;#l6057&quot; class=&quot;line&quot; id=&quot;l6057&quot;&gt;   6057&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-957&amp;quot; id=&amp;quot;h4-0-957&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  c.diffuse = diffuse;
   6096 <a href="#l6077" class="line" id="l6077">   6077</a> &lt;a href=&quot;#l6058&quot; class=&quot;line&quot; id=&quot;l6058&quot;&gt;   6058&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-958&amp;quot; id=&amp;quot;h4-0-958&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  c.ambient = inputs.ambientLight;
   6097 <a href="#l6078" class="line" id="l6078">   6078</a> &lt;a href=&quot;#l6059&quot; class=&quot;line&quot; id=&quot;l6059&quot;&gt;   6059&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-959&amp;quot; id=&amp;quot;h4-0-959&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  c.specular = specular;
   6098 <a href="#l6079" class="line" id="l6079">   6079</a> &lt;a href=&quot;#l6060&quot; class=&quot;line&quot; id=&quot;l6060&quot;&gt;   6060&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-960&amp;quot; id=&amp;quot;h4-0-960&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  c.emissive = inputs.emissiveMaterial;
   6099 <a href="#l6080" class="line" id="l6080">   6080</a> &lt;a href=&quot;#l6061&quot; class=&quot;line&quot; id=&quot;l6061&quot;&gt;   6061&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-961&amp;quot; id=&amp;quot;h4-0-961&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR = HOOK_getFinalColor(HOOK_combineColors(c));
   6100 <a href="#l6081" class="line" id="l6081">   6081</a> &lt;a href=&quot;#l6062&quot; class=&quot;line&quot; id=&quot;l6062&quot;&gt;   6062&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-962&amp;quot; id=&amp;quot;h4-0-962&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR.rgb *= OUT_COLOR.a; // Premultiply alpha before rendering
   6101 <a href="#l6082" class="line" id="l6082">   6082</a> &lt;a href=&quot;#l6063&quot; class=&quot;line&quot; id=&quot;l6063&quot;&gt;   6063&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-963&amp;quot; id=&amp;quot;h4-0-963&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterFragment();
   6102 <a href="#l6083" class="line" id="l6083">   6083</a> &lt;a href=&quot;#l6064&quot; class=&quot;line&quot; id=&quot;l6064&quot;&gt;   6064&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-964&amp;quot; id=&amp;quot;h4-0-964&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6103 <a href="#l6084" class="line" id="l6084">   6084</a> &lt;a href=&quot;#l6065&quot; class=&quot;line&quot; id=&quot;l6065&quot;&gt;   6065&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-965&amp;quot; id=&amp;quot;h4-0-965&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Ab=`IN vec3 aPosition;
   6104 <a href="#l6085" class="line" id="l6085">   6085</a> &lt;a href=&quot;#l6066&quot; class=&quot;line&quot; id=&quot;l6066&quot;&gt;   6066&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-966&amp;quot; id=&amp;quot;h4-0-966&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 aTexCoord;
   6105 <a href="#l6086" class="line" id="l6086">   6086</a> &lt;a href=&quot;#l6067&quot; class=&quot;line&quot; id=&quot;l6067&quot;&gt;   6067&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-967&amp;quot; id=&amp;quot;h4-0-967&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelViewMatrix;
   6106 <a href="#l6087" class="line" id="l6087">   6087</a> &lt;a href=&quot;#l6068&quot; class=&quot;line&quot; id=&quot;l6068&quot;&gt;   6068&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-968&amp;quot; id=&amp;quot;h4-0-968&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   6107 <a href="#l6088" class="line" id="l6088">   6088</a> &lt;a href=&quot;#l6069&quot; class=&quot;line&quot; id=&quot;l6069&quot;&gt;   6069&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-969&amp;quot; id=&amp;quot;h4-0-969&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6108 <a href="#l6089" class="line" id="l6089">   6089</a> &lt;a href=&quot;#l6070&quot; class=&quot;line&quot; id=&quot;l6070&quot;&gt;   6070&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-970&amp;quot; id=&amp;quot;h4-0-970&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uGlyphRect;
   6109 <a href="#l6090" class="line" id="l6090">   6090</a> &lt;a href=&quot;#l6071&quot; class=&quot;line&quot; id=&quot;l6071&quot;&gt;   6071&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-971&amp;quot; id=&amp;quot;h4-0-971&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uGlyphOffset;
   6110 <a href="#l6091" class="line" id="l6091">   6091</a> &lt;a href=&quot;#l6072&quot; class=&quot;line&quot; id=&quot;l6072&quot;&gt;   6072&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-972&amp;quot; id=&amp;quot;h4-0-972&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6111 <a href="#l6092" class="line" id="l6092">   6092</a> &lt;a href=&quot;#l6073&quot; class=&quot;line&quot; id=&quot;l6073&quot;&gt;   6073&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-973&amp;quot; id=&amp;quot;h4-0-973&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec2 vTexCoord;
   6112 <a href="#l6093" class="line" id="l6093">   6093</a> &lt;a href=&quot;#l6074&quot; class=&quot;line&quot; id=&quot;l6074&quot;&gt;   6074&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-974&amp;quot; id=&amp;quot;h4-0-974&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT float w;
   6113 <a href="#l6094" class="line" id="l6094">   6094</a> &lt;a href=&quot;#l6075&quot; class=&quot;line&quot; id=&quot;l6075&quot;&gt;   6075&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-975&amp;quot; id=&amp;quot;h4-0-975&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6114 <a href="#l6095" class="line" id="l6095">   6095</a> &lt;a href=&quot;#l6076&quot; class=&quot;line&quot; id=&quot;l6076&quot;&gt;   6076&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-976&amp;quot; id=&amp;quot;h4-0-976&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   6115 <a href="#l6096" class="line" id="l6096">   6096</a> &lt;a href=&quot;#l6077&quot; class=&quot;line&quot; id=&quot;l6077&quot;&gt;   6077&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-977&amp;quot; id=&amp;quot;h4-0-977&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 positionVec4 = vec4(aPosition, 1.0);
   6116 <a href="#l6097" class="line" id="l6097">   6097</a> &lt;a href=&quot;#l6078&quot; class=&quot;line&quot; id=&quot;l6078&quot;&gt;   6078&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-978&amp;quot; id=&amp;quot;h4-0-978&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6117 <a href="#l6098" class="line" id="l6098">   6098</a> &lt;a href=&quot;#l6079&quot; class=&quot;line&quot; id=&quot;l6079&quot;&gt;   6079&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-979&amp;quot; id=&amp;quot;h4-0-979&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // scale by the size of the glyph&amp;amp;#39;s rectangle
   6118 <a href="#l6099" class="line" id="l6099">   6099</a> &lt;a href=&quot;#l6080&quot; class=&quot;line&quot; id=&quot;l6080&quot;&gt;   6080&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-980&amp;quot; id=&amp;quot;h4-0-980&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  positionVec4.xy *= uGlyphRect.zw - uGlyphRect.xy;
   6119 <a href="#l6100" class="line" id="l6100">   6100</a> &lt;a href=&quot;#l6081&quot; class=&quot;line&quot; id=&quot;l6081&quot;&gt;   6081&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-981&amp;quot; id=&amp;quot;h4-0-981&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6120 <a href="#l6101" class="line" id="l6101">   6101</a> &lt;a href=&quot;#l6082&quot; class=&quot;line&quot; id=&quot;l6082&quot;&gt;   6082&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-982&amp;quot; id=&amp;quot;h4-0-982&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Expand glyph bounding boxes by 1px on each side to give a bit of room
   6121 <a href="#l6102" class="line" id="l6102">   6102</a> &lt;a href=&quot;#l6083&quot; class=&quot;line&quot; id=&quot;l6083&quot;&gt;   6083&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-983&amp;quot; id=&amp;quot;h4-0-983&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // for antialiasing
   6122 <a href="#l6103" class="line" id="l6103">   6103</a> &lt;a href=&quot;#l6084&quot; class=&quot;line&quot; id=&quot;l6084&quot;&gt;   6084&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-984&amp;quot; id=&amp;quot;h4-0-984&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 newOrigin = (uModelViewMatrix * vec4(0., 0., 0., 1.)).xyz;
   6123 <a href="#l6104" class="line" id="l6104">   6104</a> &lt;a href=&quot;#l6085&quot; class=&quot;line&quot; id=&quot;l6085&quot;&gt;   6085&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-985&amp;quot; id=&amp;quot;h4-0-985&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 newDX = (uModelViewMatrix * vec4(1., 0., 0., 1.)).xyz;
   6124 <a href="#l6105" class="line" id="l6105">   6105</a> &lt;a href=&quot;#l6086&quot; class=&quot;line&quot; id=&quot;l6086&quot;&gt;   6086&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-986&amp;quot; id=&amp;quot;h4-0-986&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 newDY = (uModelViewMatrix * vec4(0., 1., 0., 1.)).xyz;
   6125 <a href="#l6106" class="line" id="l6106">   6106</a> &lt;a href=&quot;#l6087&quot; class=&quot;line&quot; id=&quot;l6087&quot;&gt;   6087&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-987&amp;quot; id=&amp;quot;h4-0-987&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 pixelScale = vec2(
   6126 <a href="#l6107" class="line" id="l6107">   6107</a> &lt;a href=&quot;#l6088&quot; class=&quot;line&quot; id=&quot;l6088&quot;&gt;   6088&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-988&amp;quot; id=&amp;quot;h4-0-988&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    1. / length(newOrigin - newDX),
   6127 <a href="#l6108" class="line" id="l6108">   6108</a> &lt;a href=&quot;#l6089&quot; class=&quot;line&quot; id=&quot;l6089&quot;&gt;   6089&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-989&amp;quot; id=&amp;quot;h4-0-989&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    1. / length(newOrigin - newDY)
   6128 <a href="#l6109" class="line" id="l6109">   6109</a> &lt;a href=&quot;#l6090&quot; class=&quot;line&quot; id=&quot;l6090&quot;&gt;   6090&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-990&amp;quot; id=&amp;quot;h4-0-990&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  );
   6129 <a href="#l6110" class="line" id="l6110">   6110</a> &lt;a href=&quot;#l6091&quot; class=&quot;line&quot; id=&quot;l6091&quot;&gt;   6091&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-991&amp;quot; id=&amp;quot;h4-0-991&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 offset = pixelScale * normalize(aTexCoord - vec2(0.5, 0.5));
   6130 <a href="#l6111" class="line" id="l6111">   6111</a> &lt;a href=&quot;#l6092&quot; class=&quot;line&quot; id=&quot;l6092&quot;&gt;   6092&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-992&amp;quot; id=&amp;quot;h4-0-992&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 textureOffset = offset * (1. / vec2(
   6131 <a href="#l6112" class="line" id="l6112">   6112</a> &lt;a href=&quot;#l6093&quot; class=&quot;line&quot; id=&quot;l6093&quot;&gt;   6093&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-993&amp;quot; id=&amp;quot;h4-0-993&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    uGlyphRect.z - uGlyphRect.x,
   6132 <a href="#l6113" class="line" id="l6113">   6113</a> &lt;a href=&quot;#l6094&quot; class=&quot;line&quot; id=&quot;l6094&quot;&gt;   6094&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-994&amp;quot; id=&amp;quot;h4-0-994&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    uGlyphRect.w - uGlyphRect.y
   6133 <a href="#l6114" class="line" id="l6114">   6114</a> &lt;a href=&quot;#l6095&quot; class=&quot;line&quot; id=&quot;l6095&quot;&gt;   6095&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-995&amp;quot; id=&amp;quot;h4-0-995&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  ));
   6134 <a href="#l6115" class="line" id="l6115">   6115</a> &lt;a href=&quot;#l6096&quot; class=&quot;line&quot; id=&quot;l6096&quot;&gt;   6096&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-996&amp;quot; id=&amp;quot;h4-0-996&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6135 <a href="#l6116" class="line" id="l6116">   6116</a> &lt;a href=&quot;#l6097&quot; class=&quot;line&quot; id=&quot;l6097&quot;&gt;   6097&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-997&amp;quot; id=&amp;quot;h4-0-997&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // move to the corner of the glyph
   6136 <a href="#l6117" class="line" id="l6117">   6117</a> &lt;a href=&quot;#l6098&quot; class=&quot;line&quot; id=&quot;l6098&quot;&gt;   6098&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-998&amp;quot; id=&amp;quot;h4-0-998&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  positionVec4.xy += uGlyphRect.xy;
   6137 <a href="#l6118" class="line" id="l6118">   6118</a> &lt;a href=&quot;#l6099&quot; class=&quot;line&quot; id=&quot;l6099&quot;&gt;   6099&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-999&amp;quot; id=&amp;quot;h4-0-999&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6138 <a href="#l6119" class="line" id="l6119">   6119</a> &lt;a href=&quot;#l6100&quot; class=&quot;line&quot; id=&quot;l6100&quot;&gt;   6100&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1000&amp;quot; id=&amp;quot;h4-0-1000&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // move to the letter&amp;amp;#39;s line offset
   6139 <a href="#l6120" class="line" id="l6120">   6120</a> &lt;a href=&quot;#l6101&quot; class=&quot;line&quot; id=&quot;l6101&quot;&gt;   6101&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1001&amp;quot; id=&amp;quot;h4-0-1001&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  positionVec4.x += uGlyphOffset;
   6140 <a href="#l6121" class="line" id="l6121">   6121</a> &lt;a href=&quot;#l6102&quot; class=&quot;line&quot; id=&quot;l6102&quot;&gt;   6102&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1002&amp;quot; id=&amp;quot;h4-0-1002&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6141 <a href="#l6122" class="line" id="l6122">   6122</a> &lt;a href=&quot;#l6103&quot; class=&quot;line&quot; id=&quot;l6103&quot;&gt;   6103&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1003&amp;quot; id=&amp;quot;h4-0-1003&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  positionVec4.xy += offset;
   6142 <a href="#l6123" class="line" id="l6123">   6123</a> &lt;a href=&quot;#l6104&quot; class=&quot;line&quot; id=&quot;l6104&quot;&gt;   6104&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1004&amp;quot; id=&amp;quot;h4-0-1004&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6143 <a href="#l6124" class="line" id="l6124">   6124</a> &lt;a href=&quot;#l6105&quot; class=&quot;line&quot; id=&quot;l6105&quot;&gt;   6105&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1005&amp;quot; id=&amp;quot;h4-0-1005&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;
   6144 <a href="#l6125" class="line" id="l6125">   6125</a> &lt;a href=&quot;#l6106&quot; class=&quot;line&quot; id=&quot;l6106&quot;&gt;   6106&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1006&amp;quot; id=&amp;quot;h4-0-1006&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vTexCoord = aTexCoord + textureOffset;
   6145 <a href="#l6126" class="line" id="l6126">   6126</a> &lt;a href=&quot;#l6107&quot; class=&quot;line&quot; id=&quot;l6107&quot;&gt;   6107&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1007&amp;quot; id=&amp;quot;h4-0-1007&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  w = gl_Position.w;
   6146 <a href="#l6127" class="line" id="l6127">   6127</a> &lt;a href=&quot;#l6108&quot; class=&quot;line&quot; id=&quot;l6108&quot;&gt;   6108&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1008&amp;quot; id=&amp;quot;h4-0-1008&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6147 <a href="#l6128" class="line" id="l6128">   6128</a> &lt;a href=&quot;#l6109&quot; class=&quot;line&quot; id=&quot;l6109&quot;&gt;   6109&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1009&amp;quot; id=&amp;quot;h4-0-1009&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Db=`#ifndef WEBGL2
   6148 <a href="#l6129" class="line" id="l6129">   6129</a> &lt;a href=&quot;#l6110&quot; class=&quot;line&quot; id=&quot;l6110&quot;&gt;   6110&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1010&amp;quot; id=&amp;quot;h4-0-1010&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#extension GL_OES_standard_derivatives : enable
   6149 <a href="#l6130" class="line" id="l6130">   6130</a> &lt;a href=&quot;#l6111&quot; class=&quot;line&quot; id=&quot;l6111&quot;&gt;   6111&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1011&amp;quot; id=&amp;quot;h4-0-1011&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   6150 <a href="#l6131" class="line" id="l6131">   6131</a> &lt;a href=&quot;#l6112&quot; class=&quot;line&quot; id=&quot;l6112&quot;&gt;   6112&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1012&amp;quot; id=&amp;quot;h4-0-1012&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6151 <a href="#l6132" class="line" id="l6132">   6132</a> &lt;a href=&quot;#l6113&quot; class=&quot;line&quot; id=&quot;l6113&quot;&gt;   6113&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1013&amp;quot; id=&amp;quot;h4-0-1013&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#if 0
   6152 <a href="#l6133" class="line" id="l6133">   6133</a> &lt;a href=&quot;#l6114&quot; class=&quot;line&quot; id=&quot;l6114&quot;&gt;   6114&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1014&amp;quot; id=&amp;quot;h4-0-1014&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // simulate integer math using floats
   6153 <a href="#l6134" class="line" id="l6134">   6134</a> &lt;a href=&quot;#l6115&quot; class=&quot;line&quot; id=&quot;l6115&quot;&gt;   6115&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1015&amp;quot; id=&amp;quot;h4-0-1015&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define int float
   6154 <a href="#l6135" class="line" id="l6135">   6135</a> &lt;a href=&quot;#l6116&quot; class=&quot;line&quot; id=&quot;l6116&quot;&gt;   6116&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1016&amp;quot; id=&amp;quot;h4-0-1016&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define ivec2 vec2
   6155 <a href="#l6136" class="line" id="l6136">   6136</a> &lt;a href=&quot;#l6117&quot; class=&quot;line&quot; id=&quot;l6117&quot;&gt;   6117&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1017&amp;quot; id=&amp;quot;h4-0-1017&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define INT(x) float(x)
   6156 <a href="#l6137" class="line" id="l6137">   6137</a> &lt;a href=&quot;#l6118&quot; class=&quot;line&quot; id=&quot;l6118&quot;&gt;   6118&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1018&amp;quot; id=&amp;quot;h4-0-1018&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6157 <a href="#l6138" class="line" id="l6138">   6138</a> &lt;a href=&quot;#l6119&quot; class=&quot;line&quot; id=&quot;l6119&quot;&gt;   6119&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1019&amp;quot; id=&amp;quot;h4-0-1019&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	int ifloor(float v) { return floor(v); }
   6158 <a href="#l6139" class="line" id="l6139">   6139</a> &lt;a href=&quot;#l6120&quot; class=&quot;line&quot; id=&quot;l6120&quot;&gt;   6120&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1020&amp;quot; id=&amp;quot;h4-0-1020&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	ivec2 ifloor(vec2 v) { return floor(v); }
   6159 <a href="#l6140" class="line" id="l6140">   6140</a> &lt;a href=&quot;#l6121&quot; class=&quot;line&quot; id=&quot;l6121&quot;&gt;   6121&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1021&amp;quot; id=&amp;quot;h4-0-1021&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6160 <a href="#l6141" class="line" id="l6141">   6141</a> &lt;a href=&quot;#l6122&quot; class=&quot;line&quot; id=&quot;l6122&quot;&gt;   6122&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1022&amp;quot; id=&amp;quot;h4-0-1022&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   6161 <a href="#l6142" class="line" id="l6142">   6142</a> &lt;a href=&quot;#l6123&quot; class=&quot;line&quot; id=&quot;l6123&quot;&gt;   6123&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1023&amp;quot; id=&amp;quot;h4-0-1023&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // use native integer math
   6162 <a href="#l6143" class="line" id="l6143">   6143</a> &lt;a href=&quot;#l6124&quot; class=&quot;line&quot; id=&quot;l6124&quot;&gt;   6124&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1024&amp;quot; id=&amp;quot;h4-0-1024&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	precision highp int;
   6163 <a href="#l6144" class="line" id="l6144">   6144</a> &lt;a href=&quot;#l6125&quot; class=&quot;line&quot; id=&quot;l6125&quot;&gt;   6125&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1025&amp;quot; id=&amp;quot;h4-0-1025&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	#define INT(x) x
   6164 <a href="#l6145" class="line" id="l6145">   6145</a> &lt;a href=&quot;#l6126&quot; class=&quot;line&quot; id=&quot;l6126&quot;&gt;   6126&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1026&amp;quot; id=&amp;quot;h4-0-1026&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6165 <a href="#l6146" class="line" id="l6146">   6146</a> &lt;a href=&quot;#l6127&quot; class=&quot;line&quot; id=&quot;l6127&quot;&gt;   6127&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1027&amp;quot; id=&amp;quot;h4-0-1027&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	int ifloor(float v) { return int(v); }
   6166 <a href="#l6147" class="line" id="l6147">   6147</a> &lt;a href=&quot;#l6128&quot; class=&quot;line&quot; id=&quot;l6128&quot;&gt;   6128&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1028&amp;quot; id=&amp;quot;h4-0-1028&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	int ifloor(int v) { return v; }
   6167 <a href="#l6148" class="line" id="l6148">   6148</a> &lt;a href=&quot;#l6129&quot; class=&quot;line&quot; id=&quot;l6129&quot;&gt;   6129&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1029&amp;quot; id=&amp;quot;h4-0-1029&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	ivec2 ifloor(vec2 v) { return ivec2(v); }
   6168 <a href="#l6149" class="line" id="l6149">   6149</a> &lt;a href=&quot;#l6130&quot; class=&quot;line&quot; id=&quot;l6130&quot;&gt;   6130&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1030&amp;quot; id=&amp;quot;h4-0-1030&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6169 <a href="#l6150" class="line" id="l6150">   6150</a> &lt;a href=&quot;#l6131&quot; class=&quot;line&quot; id=&quot;l6131&quot;&gt;   6131&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1031&amp;quot; id=&amp;quot;h4-0-1031&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   6170 <a href="#l6151" class="line" id="l6151">   6151</a> &lt;a href=&quot;#l6132&quot; class=&quot;line&quot; id=&quot;l6132&quot;&gt;   6132&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1032&amp;quot; id=&amp;quot;h4-0-1032&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6171 <a href="#l6152" class="line" id="l6152">   6152</a> &lt;a href=&quot;#l6133&quot; class=&quot;line&quot; id=&quot;l6133&quot;&gt;   6133&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1033&amp;quot; id=&amp;quot;h4-0-1033&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D uSamplerStrokes;
   6172 <a href="#l6153" class="line" id="l6153">   6153</a> &lt;a href=&quot;#l6134&quot; class=&quot;line&quot; id=&quot;l6134&quot;&gt;   6134&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1034&amp;quot; id=&amp;quot;h4-0-1034&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D uSamplerRowStrokes;
   6173 <a href="#l6154" class="line" id="l6154">   6154</a> &lt;a href=&quot;#l6135&quot; class=&quot;line&quot; id=&quot;l6135&quot;&gt;   6135&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1035&amp;quot; id=&amp;quot;h4-0-1035&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D uSamplerRows;
   6174 <a href="#l6155" class="line" id="l6155">   6155</a> &lt;a href=&quot;#l6136&quot; class=&quot;line&quot; id=&quot;l6136&quot;&gt;   6136&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1036&amp;quot; id=&amp;quot;h4-0-1036&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D uSamplerColStrokes;
   6175 <a href="#l6156" class="line" id="l6156">   6156</a> &lt;a href=&quot;#l6137&quot; class=&quot;line&quot; id=&quot;l6137&quot;&gt;   6137&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1037&amp;quot; id=&amp;quot;h4-0-1037&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D uSamplerCols;
   6176 <a href="#l6157" class="line" id="l6157">   6157</a> &lt;a href=&quot;#l6138&quot; class=&quot;line&quot; id=&quot;l6138&quot;&gt;   6138&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1038&amp;quot; id=&amp;quot;h4-0-1038&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6177 <a href="#l6158" class="line" id="l6158">   6158</a> &lt;a href=&quot;#l6139&quot; class=&quot;line&quot; id=&quot;l6139&quot;&gt;   6139&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1039&amp;quot; id=&amp;quot;h4-0-1039&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform ivec2 uStrokeImageSize;
   6178 <a href="#l6159" class="line" id="l6159">   6159</a> &lt;a href=&quot;#l6140&quot; class=&quot;line&quot; id=&quot;l6140&quot;&gt;   6140&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1040&amp;quot; id=&amp;quot;h4-0-1040&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform ivec2 uCellsImageSize;
   6179 <a href="#l6160" class="line" id="l6160">   6160</a> &lt;a href=&quot;#l6141&quot; class=&quot;line&quot; id=&quot;l6141&quot;&gt;   6141&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1041&amp;quot; id=&amp;quot;h4-0-1041&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform ivec2 uGridImageSize;
   6180 <a href="#l6161" class="line" id="l6161">   6161</a> &lt;a href=&quot;#l6142&quot; class=&quot;line&quot; id=&quot;l6142&quot;&gt;   6142&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1042&amp;quot; id=&amp;quot;h4-0-1042&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6181 <a href="#l6162" class="line" id="l6162">   6162</a> &lt;a href=&quot;#l6143&quot; class=&quot;line&quot; id=&quot;l6143&quot;&gt;   6143&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1043&amp;quot; id=&amp;quot;h4-0-1043&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform ivec2 uGridOffset;
   6182 <a href="#l6163" class="line" id="l6163">   6163</a> &lt;a href=&quot;#l6144&quot; class=&quot;line&quot; id=&quot;l6144&quot;&gt;   6144&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1044&amp;quot; id=&amp;quot;h4-0-1044&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform ivec2 uGridSize;
   6183 <a href="#l6164" class="line" id="l6164">   6164</a> &lt;a href=&quot;#l6145&quot; class=&quot;line&quot; id=&quot;l6145&quot;&gt;   6145&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1045&amp;quot; id=&amp;quot;h4-0-1045&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uMaterialColor;
   6184 <a href="#l6165" class="line" id="l6165">   6165</a> &lt;a href=&quot;#l6146&quot; class=&quot;line&quot; id=&quot;l6146&quot;&gt;   6146&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1046&amp;quot; id=&amp;quot;h4-0-1046&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6185 <a href="#l6166" class="line" id="l6166">   6166</a> &lt;a href=&quot;#l6147&quot; class=&quot;line&quot; id=&quot;l6147&quot;&gt;   6147&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1047&amp;quot; id=&amp;quot;h4-0-1047&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 vTexCoord;
   6186 <a href="#l6167" class="line" id="l6167">   6167</a> &lt;a href=&quot;#l6148&quot; class=&quot;line&quot; id=&quot;l6148&quot;&gt;   6148&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1048&amp;quot; id=&amp;quot;h4-0-1048&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6187 <a href="#l6168" class="line" id="l6168">   6168</a> &lt;a href=&quot;#l6149&quot; class=&quot;line&quot; id=&quot;l6149&quot;&gt;   6149&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1049&amp;quot; id=&amp;quot;h4-0-1049&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// some helper functions
   6188 <a href="#l6169" class="line" id="l6169">   6169</a> &lt;a href=&quot;#l6150&quot; class=&quot;line&quot; id=&quot;l6150&quot;&gt;   6150&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1050&amp;quot; id=&amp;quot;h4-0-1050&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+int ROUND(float v) { return ifloor(v + 0.5); }
   6189 <a href="#l6170" class="line" id="l6170">   6170</a> &lt;a href=&quot;#l6151&quot; class=&quot;line&quot; id=&quot;l6151&quot;&gt;   6151&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1051&amp;quot; id=&amp;quot;h4-0-1051&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+ivec2 ROUND(vec2 v) { return ifloor(v + 0.5); }
   6190 <a href="#l6171" class="line" id="l6171">   6171</a> &lt;a href=&quot;#l6152&quot; class=&quot;line&quot; id=&quot;l6152&quot;&gt;   6152&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1052&amp;quot; id=&amp;quot;h4-0-1052&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float saturate(float v) { return clamp(v, 0.0, 1.0); }
   6191 <a href="#l6172" class="line" id="l6172">   6172</a> &lt;a href=&quot;#l6153&quot; class=&quot;line&quot; id=&quot;l6153&quot;&gt;   6153&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1053&amp;quot; id=&amp;quot;h4-0-1053&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 saturate(vec2 v) { return clamp(v, 0.0, 1.0); }
   6192 <a href="#l6173" class="line" id="l6173">   6173</a> &lt;a href=&quot;#l6154&quot; class=&quot;line&quot; id=&quot;l6154&quot;&gt;   6154&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1054&amp;quot; id=&amp;quot;h4-0-1054&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6193 <a href="#l6174" class="line" id="l6174">   6174</a> &lt;a href=&quot;#l6155&quot; class=&quot;line&quot; id=&quot;l6155&quot;&gt;   6155&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1055&amp;quot; id=&amp;quot;h4-0-1055&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+int mul(float v1, int v2) {
   6194 <a href="#l6175" class="line" id="l6175">   6175</a> &lt;a href=&quot;#l6156&quot; class=&quot;line&quot; id=&quot;l6156&quot;&gt;   6156&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1056&amp;quot; id=&amp;quot;h4-0-1056&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return ifloor(v1 * float(v2));
   6195 <a href="#l6176" class="line" id="l6176">   6176</a> &lt;a href=&quot;#l6157&quot; class=&quot;line&quot; id=&quot;l6157&quot;&gt;   6157&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1057&amp;quot; id=&amp;quot;h4-0-1057&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6196 <a href="#l6177" class="line" id="l6177">   6177</a> &lt;a href=&quot;#l6158&quot; class=&quot;line&quot; id=&quot;l6158&quot;&gt;   6158&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1058&amp;quot; id=&amp;quot;h4-0-1058&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6197 <a href="#l6178" class="line" id="l6178">   6178</a> &lt;a href=&quot;#l6159&quot; class=&quot;line&quot; id=&quot;l6159&quot;&gt;   6159&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1059&amp;quot; id=&amp;quot;h4-0-1059&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+ivec2 mul(vec2 v1, ivec2 v2) {
   6198 <a href="#l6179" class="line" id="l6179">   6179</a> &lt;a href=&quot;#l6160&quot; class=&quot;line&quot; id=&quot;l6160&quot;&gt;   6160&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1060&amp;quot; id=&amp;quot;h4-0-1060&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return ifloor(v1 * vec2(v2) + 0.5);
   6199 <a href="#l6180" class="line" id="l6180">   6180</a> &lt;a href=&quot;#l6161&quot; class=&quot;line&quot; id=&quot;l6161&quot;&gt;   6161&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1061&amp;quot; id=&amp;quot;h4-0-1061&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6200 <a href="#l6181" class="line" id="l6181">   6181</a> &lt;a href=&quot;#l6162&quot; class=&quot;line&quot; id=&quot;l6162&quot;&gt;   6162&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1062&amp;quot; id=&amp;quot;h4-0-1062&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6201 <a href="#l6182" class="line" id="l6182">   6182</a> &lt;a href=&quot;#l6163&quot; class=&quot;line&quot; id=&quot;l6163&quot;&gt;   6163&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1063&amp;quot; id=&amp;quot;h4-0-1063&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// unpack a 16-bit integer from a float vec2
   6202 <a href="#l6183" class="line" id="l6183">   6183</a> &lt;a href=&quot;#l6164&quot; class=&quot;line&quot; id=&quot;l6164&quot;&gt;   6164&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1064&amp;quot; id=&amp;quot;h4-0-1064&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+int getInt16(vec2 v) {
   6203 <a href="#l6184" class="line" id="l6184">   6184</a> &lt;a href=&quot;#l6165&quot; class=&quot;line&quot; id=&quot;l6165&quot;&gt;   6165&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1065&amp;quot; id=&amp;quot;h4-0-1065&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  ivec2 iv = ROUND(v * 255.0);
   6204 <a href="#l6185" class="line" id="l6185">   6185</a> &lt;a href=&quot;#l6166&quot; class=&quot;line&quot; id=&quot;l6166&quot;&gt;   6166&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1066&amp;quot; id=&amp;quot;h4-0-1066&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return iv.x * INT(128) + iv.y;
   6205 <a href="#l6186" class="line" id="l6186">   6186</a> &lt;a href=&quot;#l6167&quot; class=&quot;line&quot; id=&quot;l6167&quot;&gt;   6167&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1067&amp;quot; id=&amp;quot;h4-0-1067&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6206 <a href="#l6187" class="line" id="l6187">   6187</a> &lt;a href=&quot;#l6168&quot; class=&quot;line&quot; id=&quot;l6168&quot;&gt;   6168&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1068&amp;quot; id=&amp;quot;h4-0-1068&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6207 <a href="#l6188" class="line" id="l6188">   6188</a> &lt;a href=&quot;#l6169&quot; class=&quot;line&quot; id=&quot;l6169&quot;&gt;   6169&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1069&amp;quot; id=&amp;quot;h4-0-1069&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 pixelScale;
   6208 <a href="#l6189" class="line" id="l6189">   6189</a> &lt;a href=&quot;#l6170&quot; class=&quot;line&quot; id=&quot;l6170&quot;&gt;   6170&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1070&amp;quot; id=&amp;quot;h4-0-1070&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 coverage = vec2(0.0);
   6209 <a href="#l6190" class="line" id="l6190">   6190</a> &lt;a href=&quot;#l6171&quot; class=&quot;line&quot; id=&quot;l6171&quot;&gt;   6171&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1071&amp;quot; id=&amp;quot;h4-0-1071&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 weight = vec2(0.5);
   6210 <a href="#l6191" class="line" id="l6191">   6191</a> &lt;a href=&quot;#l6172&quot; class=&quot;line&quot; id=&quot;l6172&quot;&gt;   6172&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1072&amp;quot; id=&amp;quot;h4-0-1072&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const float minDistance = 1.0/8192.0;
   6211 <a href="#l6192" class="line" id="l6192">   6192</a> &lt;a href=&quot;#l6173&quot; class=&quot;line&quot; id=&quot;l6173&quot;&gt;   6173&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1073&amp;quot; id=&amp;quot;h4-0-1073&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const float hardness = 1.05; // amount of antialias
   6212 <a href="#l6193" class="line" id="l6193">   6193</a> &lt;a href=&quot;#l6174&quot; class=&quot;line&quot; id=&quot;l6174&quot;&gt;   6174&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1074&amp;quot; id=&amp;quot;h4-0-1074&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6213 <a href="#l6194" class="line" id="l6194">   6194</a> &lt;a href=&quot;#l6175&quot; class=&quot;line&quot; id=&quot;l6175&quot;&gt;   6175&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1075&amp;quot; id=&amp;quot;h4-0-1075&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// the maximum number of curves in a glyph
   6214 <a href="#l6195" class="line" id="l6195">   6195</a> &lt;a href=&quot;#l6176&quot; class=&quot;line&quot; id=&quot;l6176&quot;&gt;   6176&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1076&amp;quot; id=&amp;quot;h4-0-1076&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const int N = INT(250);
   6215 <a href="#l6196" class="line" id="l6196">   6196</a> &lt;a href=&quot;#l6177&quot; class=&quot;line&quot; id=&quot;l6177&quot;&gt;   6177&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1077&amp;quot; id=&amp;quot;h4-0-1077&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6216 <a href="#l6197" class="line" id="l6197">   6197</a> &lt;a href=&quot;#l6178&quot; class=&quot;line&quot; id=&quot;l6178&quot;&gt;   6178&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1078&amp;quot; id=&amp;quot;h4-0-1078&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// retrieves an indexed pixel from a sampler
   6217 <a href="#l6198" class="line" id="l6198">   6198</a> &lt;a href=&quot;#l6179&quot; class=&quot;line&quot; id=&quot;l6179&quot;&gt;   6179&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1079&amp;quot; id=&amp;quot;h4-0-1079&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec4 getTexel(sampler2D sampler, int pos, ivec2 size) {
   6218 <a href="#l6199" class="line" id="l6199">   6199</a> &lt;a href=&quot;#l6180&quot; class=&quot;line&quot; id=&quot;l6180&quot;&gt;   6180&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1080&amp;quot; id=&amp;quot;h4-0-1080&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  int width = size.x;
   6219 <a href="#l6200" class="line" id="l6200">   6200</a> &lt;a href=&quot;#l6181&quot; class=&quot;line&quot; id=&quot;l6181&quot;&gt;   6181&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1081&amp;quot; id=&amp;quot;h4-0-1081&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  int y = ifloor(pos / width);
   6220 <a href="#l6201" class="line" id="l6201">   6201</a> &lt;a href=&quot;#l6182&quot; class=&quot;line&quot; id=&quot;l6182&quot;&gt;   6182&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1082&amp;quot; id=&amp;quot;h4-0-1082&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  int x = pos - y * width;  // pos % width
   6221 <a href="#l6202" class="line" id="l6202">   6202</a> &lt;a href=&quot;#l6183&quot; class=&quot;line&quot; id=&quot;l6183&quot;&gt;   6183&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1083&amp;quot; id=&amp;quot;h4-0-1083&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6222 <a href="#l6203" class="line" id="l6203">   6203</a> &lt;a href=&quot;#l6184&quot; class=&quot;line&quot; id=&quot;l6184&quot;&gt;   6184&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1084&amp;quot; id=&amp;quot;h4-0-1084&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return TEXTURE(sampler, (vec2(x, y) + 0.5) / vec2(size));
   6223 <a href="#l6204" class="line" id="l6204">   6204</a> &lt;a href=&quot;#l6185&quot; class=&quot;line&quot; id=&quot;l6185&quot;&gt;   6185&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1085&amp;quot; id=&amp;quot;h4-0-1085&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6224 <a href="#l6205" class="line" id="l6205">   6205</a> &lt;a href=&quot;#l6186&quot; class=&quot;line&quot; id=&quot;l6186&quot;&gt;   6186&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1086&amp;quot; id=&amp;quot;h4-0-1086&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6225 <a href="#l6206" class="line" id="l6206">   6206</a> &lt;a href=&quot;#l6187&quot; class=&quot;line&quot; id=&quot;l6187&quot;&gt;   6187&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1087&amp;quot; id=&amp;quot;h4-0-1087&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void calulateCrossings(vec2 p0, vec2 p1, vec2 p2, out vec2 C1, out vec2 C2) {
   6226 <a href="#l6207" class="line" id="l6207">   6207</a> &lt;a href=&quot;#l6188&quot; class=&quot;line&quot; id=&quot;l6188&quot;&gt;   6188&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1088&amp;quot; id=&amp;quot;h4-0-1088&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6227 <a href="#l6208" class="line" id="l6208">   6208</a> &lt;a href=&quot;#l6189&quot; class=&quot;line&quot; id=&quot;l6189&quot;&gt;   6189&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1089&amp;quot; id=&amp;quot;h4-0-1089&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // get the coefficients of the quadratic in t
   6228 <a href="#l6209" class="line" id="l6209">   6209</a> &lt;a href=&quot;#l6190&quot; class=&quot;line&quot; id=&quot;l6190&quot;&gt;   6190&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1090&amp;quot; id=&amp;quot;h4-0-1090&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 a = p0 - p1 * 2.0 + p2;
   6229 <a href="#l6210" class="line" id="l6210">   6210</a> &lt;a href=&quot;#l6191&quot; class=&quot;line&quot; id=&quot;l6191&quot;&gt;   6191&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1091&amp;quot; id=&amp;quot;h4-0-1091&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 b = p0 - p1;
   6230 <a href="#l6211" class="line" id="l6211">   6211</a> &lt;a href=&quot;#l6192&quot; class=&quot;line&quot; id=&quot;l6192&quot;&gt;   6192&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1092&amp;quot; id=&amp;quot;h4-0-1092&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 c = p0 - vTexCoord;
   6231 <a href="#l6212" class="line" id="l6212">   6212</a> &lt;a href=&quot;#l6193&quot; class=&quot;line&quot; id=&quot;l6193&quot;&gt;   6193&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1093&amp;quot; id=&amp;quot;h4-0-1093&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6232 <a href="#l6213" class="line" id="l6213">   6213</a> &lt;a href=&quot;#l6194&quot; class=&quot;line&quot; id=&quot;l6194&quot;&gt;   6194&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1094&amp;quot; id=&amp;quot;h4-0-1094&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // found out which values of &amp;amp;#39;t&amp;amp;#39; it crosses the axes
   6233 <a href="#l6214" class="line" id="l6214">   6214</a> &lt;a href=&quot;#l6195&quot; class=&quot;line&quot; id=&quot;l6195&quot;&gt;   6195&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1095&amp;quot; id=&amp;quot;h4-0-1095&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 surd = sqrt(max(vec2(0.0), b * b - a * c));
   6234 <a href="#l6215" class="line" id="l6215">   6215</a> &lt;a href=&quot;#l6196&quot; class=&quot;line&quot; id=&quot;l6196&quot;&gt;   6196&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1096&amp;quot; id=&amp;quot;h4-0-1096&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 t1 = ((b - surd) / a).yx;
   6235 <a href="#l6216" class="line" id="l6216">   6216</a> &lt;a href=&quot;#l6197&quot; class=&quot;line&quot; id=&quot;l6197&quot;&gt;   6197&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1097&amp;quot; id=&amp;quot;h4-0-1097&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 t2 = ((b + surd) / a).yx;
   6236 <a href="#l6217" class="line" id="l6217">   6217</a> &lt;a href=&quot;#l6198&quot; class=&quot;line&quot; id=&quot;l6198&quot;&gt;   6198&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1098&amp;quot; id=&amp;quot;h4-0-1098&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6237 <a href="#l6218" class="line" id="l6218">   6218</a> &lt;a href=&quot;#l6199&quot; class=&quot;line&quot; id=&quot;l6199&quot;&gt;   6199&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1099&amp;quot; id=&amp;quot;h4-0-1099&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // approximate straight lines to avoid rounding errors
   6238 <a href="#l6219" class="line" id="l6219">   6219</a> &lt;a href=&quot;#l6200&quot; class=&quot;line&quot; id=&quot;l6200&quot;&gt;   6200&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1100&amp;quot; id=&amp;quot;h4-0-1100&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (abs(a.y) &amp;amp;lt; 0.001)
   6239 <a href="#l6220" class="line" id="l6220">   6220</a> &lt;a href=&quot;#l6201&quot; class=&quot;line&quot; id=&quot;l6201&quot;&gt;   6201&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1101&amp;quot; id=&amp;quot;h4-0-1101&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    t1.x = t2.x = c.y / (2.0 * b.y);
   6240 <a href="#l6221" class="line" id="l6221">   6221</a> &lt;a href=&quot;#l6202&quot; class=&quot;line&quot; id=&quot;l6202&quot;&gt;   6202&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1102&amp;quot; id=&amp;quot;h4-0-1102&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6241 <a href="#l6222" class="line" id="l6222">   6222</a> &lt;a href=&quot;#l6203&quot; class=&quot;line&quot; id=&quot;l6203&quot;&gt;   6203&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1103&amp;quot; id=&amp;quot;h4-0-1103&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (abs(a.x) &amp;amp;lt; 0.001)
   6242 <a href="#l6223" class="line" id="l6223">   6223</a> &lt;a href=&quot;#l6204&quot; class=&quot;line&quot; id=&quot;l6204&quot;&gt;   6204&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1104&amp;quot; id=&amp;quot;h4-0-1104&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    t1.y = t2.y = c.x / (2.0 * b.x);
   6243 <a href="#l6224" class="line" id="l6224">   6224</a> &lt;a href=&quot;#l6205&quot; class=&quot;line&quot; id=&quot;l6205&quot;&gt;   6205&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1105&amp;quot; id=&amp;quot;h4-0-1105&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6244 <a href="#l6225" class="line" id="l6225">   6225</a> &lt;a href=&quot;#l6206&quot; class=&quot;line&quot; id=&quot;l6206&quot;&gt;   6206&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1106&amp;quot; id=&amp;quot;h4-0-1106&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // plug into quadratic formula to find the corrdinates of the crossings
   6245 <a href="#l6226" class="line" id="l6226">   6226</a> &lt;a href=&quot;#l6207&quot; class=&quot;line&quot; id=&quot;l6207&quot;&gt;   6207&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1107&amp;quot; id=&amp;quot;h4-0-1107&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  C1 = ((a * t1 - b * 2.0) * t1 + c) * pixelScale;
   6246 <a href="#l6227" class="line" id="l6227">   6227</a> &lt;a href=&quot;#l6208&quot; class=&quot;line&quot; id=&quot;l6208&quot;&gt;   6208&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1108&amp;quot; id=&amp;quot;h4-0-1108&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  C2 = ((a * t2 - b * 2.0) * t2 + c) * pixelScale;
   6247 <a href="#l6228" class="line" id="l6228">   6228</a> &lt;a href=&quot;#l6209&quot; class=&quot;line&quot; id=&quot;l6209&quot;&gt;   6209&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1109&amp;quot; id=&amp;quot;h4-0-1109&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6248 <a href="#l6229" class="line" id="l6229">   6229</a> &lt;a href=&quot;#l6210&quot; class=&quot;line&quot; id=&quot;l6210&quot;&gt;   6210&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1110&amp;quot; id=&amp;quot;h4-0-1110&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6249 <a href="#l6230" class="line" id="l6230">   6230</a> &lt;a href=&quot;#l6211&quot; class=&quot;line&quot; id=&quot;l6211&quot;&gt;   6211&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1111&amp;quot; id=&amp;quot;h4-0-1111&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void coverageX(vec2 p0, vec2 p1, vec2 p2) {
   6250 <a href="#l6231" class="line" id="l6231">   6231</a> &lt;a href=&quot;#l6212&quot; class=&quot;line&quot; id=&quot;l6212&quot;&gt;   6212&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1112&amp;quot; id=&amp;quot;h4-0-1112&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6251 <a href="#l6232" class="line" id="l6232">   6232</a> &lt;a href=&quot;#l6213&quot; class=&quot;line&quot; id=&quot;l6213&quot;&gt;   6213&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1113&amp;quot; id=&amp;quot;h4-0-1113&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 C1, C2;
   6252 <a href="#l6233" class="line" id="l6233">   6233</a> &lt;a href=&quot;#l6214&quot; class=&quot;line&quot; id=&quot;l6214&quot;&gt;   6214&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1114&amp;quot; id=&amp;quot;h4-0-1114&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  calulateCrossings(p0, p1, p2, C1, C2);
   6253 <a href="#l6234" class="line" id="l6234">   6234</a> &lt;a href=&quot;#l6215&quot; class=&quot;line&quot; id=&quot;l6215&quot;&gt;   6215&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1115&amp;quot; id=&amp;quot;h4-0-1115&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6254 <a href="#l6235" class="line" id="l6235">   6235</a> &lt;a href=&quot;#l6216&quot; class=&quot;line&quot; id=&quot;l6216&quot;&gt;   6216&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1116&amp;quot; id=&amp;quot;h4-0-1116&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // determine on which side of the x-axis the points lie
   6255 <a href="#l6236" class="line" id="l6236">   6236</a> &lt;a href=&quot;#l6217&quot; class=&quot;line&quot; id=&quot;l6217&quot;&gt;   6217&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1117&amp;quot; id=&amp;quot;h4-0-1117&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  bool y0 = p0.y &amp;amp;gt; vTexCoord.y;
   6256 <a href="#l6237" class="line" id="l6237">   6237</a> &lt;a href=&quot;#l6218&quot; class=&quot;line&quot; id=&quot;l6218&quot;&gt;   6218&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1118&amp;quot; id=&amp;quot;h4-0-1118&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  bool y1 = p1.y &amp;amp;gt; vTexCoord.y;
   6257 <a href="#l6238" class="line" id="l6238">   6238</a> &lt;a href=&quot;#l6219&quot; class=&quot;line&quot; id=&quot;l6219&quot;&gt;   6219&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1119&amp;quot; id=&amp;quot;h4-0-1119&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  bool y2 = p2.y &amp;amp;gt; vTexCoord.y;
   6258 <a href="#l6239" class="line" id="l6239">   6239</a> &lt;a href=&quot;#l6220&quot; class=&quot;line&quot; id=&quot;l6220&quot;&gt;   6220&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1120&amp;quot; id=&amp;quot;h4-0-1120&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6259 <a href="#l6240" class="line" id="l6240">   6240</a> &lt;a href=&quot;#l6221&quot; class=&quot;line&quot; id=&quot;l6221&quot;&gt;   6221&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1121&amp;quot; id=&amp;quot;h4-0-1121&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // could web be under the curve (after t1)?
   6260 <a href="#l6241" class="line" id="l6241">   6241</a> &lt;a href=&quot;#l6222&quot; class=&quot;line&quot; id=&quot;l6222&quot;&gt;   6222&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1122&amp;quot; id=&amp;quot;h4-0-1122&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (y1 ? !y2 : y0) {
   6261 <a href="#l6242" class="line" id="l6242">   6242</a> &lt;a href=&quot;#l6223&quot; class=&quot;line&quot; id=&quot;l6223&quot;&gt;   6223&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1123&amp;quot; id=&amp;quot;h4-0-1123&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // add the coverage for t1
   6262 <a href="#l6243" class="line" id="l6243">   6243</a> &lt;a href=&quot;#l6224&quot; class=&quot;line&quot; id=&quot;l6224&quot;&gt;   6224&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1124&amp;quot; id=&amp;quot;h4-0-1124&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    coverage.x += saturate(C1.x + 0.5);
   6263 <a href="#l6244" class="line" id="l6244">   6244</a> &lt;a href=&quot;#l6225&quot; class=&quot;line&quot; id=&quot;l6225&quot;&gt;   6225&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1125&amp;quot; id=&amp;quot;h4-0-1125&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // calculate the anti-aliasing for t1
   6264 <a href="#l6245" class="line" id="l6245">   6245</a> &lt;a href=&quot;#l6226&quot; class=&quot;line&quot; id=&quot;l6226&quot;&gt;   6226&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1126&amp;quot; id=&amp;quot;h4-0-1126&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    weight.x = min(weight.x, abs(C1.x));
   6265 <a href="#l6246" class="line" id="l6246">   6246</a> &lt;a href=&quot;#l6227&quot; class=&quot;line&quot; id=&quot;l6227&quot;&gt;   6227&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1127&amp;quot; id=&amp;quot;h4-0-1127&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6266 <a href="#l6247" class="line" id="l6247">   6247</a> &lt;a href=&quot;#l6228&quot; class=&quot;line&quot; id=&quot;l6228&quot;&gt;   6228&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1128&amp;quot; id=&amp;quot;h4-0-1128&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6267 <a href="#l6248" class="line" id="l6248">   6248</a> &lt;a href=&quot;#l6229&quot; class=&quot;line&quot; id=&quot;l6229&quot;&gt;   6229&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1129&amp;quot; id=&amp;quot;h4-0-1129&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // are we outside the curve (after t2)?
   6268 <a href="#l6249" class="line" id="l6249">   6249</a> &lt;a href=&quot;#l6230&quot; class=&quot;line&quot; id=&quot;l6230&quot;&gt;   6230&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1130&amp;quot; id=&amp;quot;h4-0-1130&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (y1 ? !y0 : y2) {
   6269 <a href="#l6250" class="line" id="l6250">   6250</a> &lt;a href=&quot;#l6231&quot; class=&quot;line&quot; id=&quot;l6231&quot;&gt;   6231&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1131&amp;quot; id=&amp;quot;h4-0-1131&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // subtract the coverage for t2
   6270 <a href="#l6251" class="line" id="l6251">   6251</a> &lt;a href=&quot;#l6232&quot; class=&quot;line&quot; id=&quot;l6232&quot;&gt;   6232&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1132&amp;quot; id=&amp;quot;h4-0-1132&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    coverage.x -= saturate(C2.x + 0.5);
   6271 <a href="#l6252" class="line" id="l6252">   6252</a> &lt;a href=&quot;#l6233&quot; class=&quot;line&quot; id=&quot;l6233&quot;&gt;   6233&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1133&amp;quot; id=&amp;quot;h4-0-1133&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // calculate the anti-aliasing for t2
   6272 <a href="#l6253" class="line" id="l6253">   6253</a> &lt;a href=&quot;#l6234&quot; class=&quot;line&quot; id=&quot;l6234&quot;&gt;   6234&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1134&amp;quot; id=&amp;quot;h4-0-1134&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    weight.x = min(weight.x, abs(C2.x));
   6273 <a href="#l6254" class="line" id="l6254">   6254</a> &lt;a href=&quot;#l6235&quot; class=&quot;line&quot; id=&quot;l6235&quot;&gt;   6235&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1135&amp;quot; id=&amp;quot;h4-0-1135&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6274 <a href="#l6255" class="line" id="l6255">   6255</a> &lt;a href=&quot;#l6236&quot; class=&quot;line&quot; id=&quot;l6236&quot;&gt;   6236&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1136&amp;quot; id=&amp;quot;h4-0-1136&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6275 <a href="#l6256" class="line" id="l6256">   6256</a> &lt;a href=&quot;#l6237&quot; class=&quot;line&quot; id=&quot;l6237&quot;&gt;   6237&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1137&amp;quot; id=&amp;quot;h4-0-1137&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6276 <a href="#l6257" class="line" id="l6257">   6257</a> &lt;a href=&quot;#l6238&quot; class=&quot;line&quot; id=&quot;l6238&quot;&gt;   6238&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1138&amp;quot; id=&amp;quot;h4-0-1138&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// this is essentially the same as coverageX, but with the axes swapped
   6277 <a href="#l6258" class="line" id="l6258">   6258</a> &lt;a href=&quot;#l6239&quot; class=&quot;line&quot; id=&quot;l6239&quot;&gt;   6239&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1139&amp;quot; id=&amp;quot;h4-0-1139&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void coverageY(vec2 p0, vec2 p1, vec2 p2) {
   6278 <a href="#l6259" class="line" id="l6259">   6259</a> &lt;a href=&quot;#l6240&quot; class=&quot;line&quot; id=&quot;l6240&quot;&gt;   6240&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1140&amp;quot; id=&amp;quot;h4-0-1140&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6279 <a href="#l6260" class="line" id="l6260">   6260</a> &lt;a href=&quot;#l6241&quot; class=&quot;line&quot; id=&quot;l6241&quot;&gt;   6241&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1141&amp;quot; id=&amp;quot;h4-0-1141&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 C1, C2;
   6280 <a href="#l6261" class="line" id="l6261">   6261</a> &lt;a href=&quot;#l6242&quot; class=&quot;line&quot; id=&quot;l6242&quot;&gt;   6242&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1142&amp;quot; id=&amp;quot;h4-0-1142&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  calulateCrossings(p0, p1, p2, C1, C2);
   6281 <a href="#l6262" class="line" id="l6262">   6262</a> &lt;a href=&quot;#l6243&quot; class=&quot;line&quot; id=&quot;l6243&quot;&gt;   6243&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1143&amp;quot; id=&amp;quot;h4-0-1143&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6282 <a href="#l6263" class="line" id="l6263">   6263</a> &lt;a href=&quot;#l6244&quot; class=&quot;line&quot; id=&quot;l6244&quot;&gt;   6244&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1144&amp;quot; id=&amp;quot;h4-0-1144&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  bool x0 = p0.x &amp;amp;gt; vTexCoord.x;
   6283 <a href="#l6264" class="line" id="l6264">   6264</a> &lt;a href=&quot;#l6245&quot; class=&quot;line&quot; id=&quot;l6245&quot;&gt;   6245&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1145&amp;quot; id=&amp;quot;h4-0-1145&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  bool x1 = p1.x &amp;amp;gt; vTexCoord.x;
   6284 <a href="#l6265" class="line" id="l6265">   6265</a> &lt;a href=&quot;#l6246&quot; class=&quot;line&quot; id=&quot;l6246&quot;&gt;   6246&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1146&amp;quot; id=&amp;quot;h4-0-1146&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  bool x2 = p2.x &amp;amp;gt; vTexCoord.x;
   6285 <a href="#l6266" class="line" id="l6266">   6266</a> &lt;a href=&quot;#l6247&quot; class=&quot;line&quot; id=&quot;l6247&quot;&gt;   6247&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1147&amp;quot; id=&amp;quot;h4-0-1147&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6286 <a href="#l6267" class="line" id="l6267">   6267</a> &lt;a href=&quot;#l6248&quot; class=&quot;line&quot; id=&quot;l6248&quot;&gt;   6248&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1148&amp;quot; id=&amp;quot;h4-0-1148&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (x1 ? !x2 : x0) {
   6287 <a href="#l6268" class="line" id="l6268">   6268</a> &lt;a href=&quot;#l6249&quot; class=&quot;line&quot; id=&quot;l6249&quot;&gt;   6249&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1149&amp;quot; id=&amp;quot;h4-0-1149&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    coverage.y -= saturate(C1.y + 0.5);
   6288 <a href="#l6269" class="line" id="l6269">   6269</a> &lt;a href=&quot;#l6250&quot; class=&quot;line&quot; id=&quot;l6250&quot;&gt;   6250&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1150&amp;quot; id=&amp;quot;h4-0-1150&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    weight.y = min(weight.y, abs(C1.y));
   6289 <a href="#l6270" class="line" id="l6270">   6270</a> &lt;a href=&quot;#l6251&quot; class=&quot;line&quot; id=&quot;l6251&quot;&gt;   6251&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1151&amp;quot; id=&amp;quot;h4-0-1151&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6290 <a href="#l6271" class="line" id="l6271">   6271</a> &lt;a href=&quot;#l6252&quot; class=&quot;line&quot; id=&quot;l6252&quot;&gt;   6252&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1152&amp;quot; id=&amp;quot;h4-0-1152&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6291 <a href="#l6272" class="line" id="l6272">   6272</a> &lt;a href=&quot;#l6253&quot; class=&quot;line&quot; id=&quot;l6253&quot;&gt;   6253&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1153&amp;quot; id=&amp;quot;h4-0-1153&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (x1 ? !x0 : x2) {
   6292 <a href="#l6273" class="line" id="l6273">   6273</a> &lt;a href=&quot;#l6254&quot; class=&quot;line&quot; id=&quot;l6254&quot;&gt;   6254&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1154&amp;quot; id=&amp;quot;h4-0-1154&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    coverage.y += saturate(C2.y + 0.5);
   6293 <a href="#l6274" class="line" id="l6274">   6274</a> &lt;a href=&quot;#l6255&quot; class=&quot;line&quot; id=&quot;l6255&quot;&gt;   6255&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1155&amp;quot; id=&amp;quot;h4-0-1155&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    weight.y = min(weight.y, abs(C2.y));
   6294 <a href="#l6275" class="line" id="l6275">   6275</a> &lt;a href=&quot;#l6256&quot; class=&quot;line&quot; id=&quot;l6256&quot;&gt;   6256&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1156&amp;quot; id=&amp;quot;h4-0-1156&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6295 <a href="#l6276" class="line" id="l6276">   6276</a> &lt;a href=&quot;#l6257&quot; class=&quot;line&quot; id=&quot;l6257&quot;&gt;   6257&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1157&amp;quot; id=&amp;quot;h4-0-1157&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6296 <a href="#l6277" class="line" id="l6277">   6277</a> &lt;a href=&quot;#l6258&quot; class=&quot;line&quot; id=&quot;l6258&quot;&gt;   6258&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1158&amp;quot; id=&amp;quot;h4-0-1158&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6297 <a href="#l6278" class="line" id="l6278">   6278</a> &lt;a href=&quot;#l6259&quot; class=&quot;line&quot; id=&quot;l6259&quot;&gt;   6259&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1159&amp;quot; id=&amp;quot;h4-0-1159&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   6298 <a href="#l6279" class="line" id="l6279">   6279</a> &lt;a href=&quot;#l6260&quot; class=&quot;line&quot; id=&quot;l6260&quot;&gt;   6260&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1160&amp;quot; id=&amp;quot;h4-0-1160&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6299 <a href="#l6280" class="line" id="l6280">   6280</a> &lt;a href=&quot;#l6261&quot; class=&quot;line&quot; id=&quot;l6261&quot;&gt;   6261&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1161&amp;quot; id=&amp;quot;h4-0-1161&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // calculate the pixel scale based on screen-coordinates
   6300 <a href="#l6281" class="line" id="l6281">   6281</a> &lt;a href=&quot;#l6262&quot; class=&quot;line&quot; id=&quot;l6262&quot;&gt;   6262&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1162&amp;quot; id=&amp;quot;h4-0-1162&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  pixelScale = hardness / fwidth(vTexCoord);
   6301 <a href="#l6282" class="line" id="l6282">   6282</a> &lt;a href=&quot;#l6263&quot; class=&quot;line&quot; id=&quot;l6263&quot;&gt;   6263&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1163&amp;quot; id=&amp;quot;h4-0-1163&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6302 <a href="#l6283" class="line" id="l6283">   6283</a> &lt;a href=&quot;#l6264&quot; class=&quot;line&quot; id=&quot;l6264&quot;&gt;   6264&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1164&amp;quot; id=&amp;quot;h4-0-1164&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // which grid cell is this pixel in?
   6303 <a href="#l6284" class="line" id="l6284">   6284</a> &lt;a href=&quot;#l6265&quot; class=&quot;line&quot; id=&quot;l6265&quot;&gt;   6265&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1165&amp;quot; id=&amp;quot;h4-0-1165&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  ivec2 gridCoord = ifloor(vTexCoord * vec2(uGridSize));
   6304 <a href="#l6285" class="line" id="l6285">   6285</a> &lt;a href=&quot;#l6266&quot; class=&quot;line&quot; id=&quot;l6266&quot;&gt;   6266&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1166&amp;quot; id=&amp;quot;h4-0-1166&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6305 <a href="#l6286" class="line" id="l6286">   6286</a> &lt;a href=&quot;#l6267&quot; class=&quot;line&quot; id=&quot;l6267&quot;&gt;   6267&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1167&amp;quot; id=&amp;quot;h4-0-1167&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // intersect curves in this row
   6306 <a href="#l6287" class="line" id="l6287">   6287</a> &lt;a href=&quot;#l6268&quot; class=&quot;line&quot; id=&quot;l6268&quot;&gt;   6268&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1168&amp;quot; id=&amp;quot;h4-0-1168&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  {
   6307 <a href="#l6288" class="line" id="l6288">   6288</a> &lt;a href=&quot;#l6269&quot; class=&quot;line&quot; id=&quot;l6269&quot;&gt;   6269&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1169&amp;quot; id=&amp;quot;h4-0-1169&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // the index into the row info bitmap
   6308 <a href="#l6289" class="line" id="l6289">   6289</a> &lt;a href=&quot;#l6270&quot; class=&quot;line&quot; id=&quot;l6270&quot;&gt;   6270&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1170&amp;quot; id=&amp;quot;h4-0-1170&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    int rowIndex = gridCoord.y + uGridOffset.y;
   6309 <a href="#l6290" class="line" id="l6290">   6290</a> &lt;a href=&quot;#l6271&quot; class=&quot;line&quot; id=&quot;l6271&quot;&gt;   6271&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1171&amp;quot; id=&amp;quot;h4-0-1171&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // fetch the info texel
   6310 <a href="#l6291" class="line" id="l6291">   6291</a> &lt;a href=&quot;#l6272&quot; class=&quot;line&quot; id=&quot;l6272&quot;&gt;   6272&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1172&amp;quot; id=&amp;quot;h4-0-1172&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec4 rowInfo = getTexel(uSamplerRows, rowIndex, uGridImageSize);
   6311 <a href="#l6292" class="line" id="l6292">   6292</a> &lt;a href=&quot;#l6273&quot; class=&quot;line&quot; id=&quot;l6273&quot;&gt;   6273&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1173&amp;quot; id=&amp;quot;h4-0-1173&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // unpack the rowInfo
   6312 <a href="#l6293" class="line" id="l6293">   6293</a> &lt;a href=&quot;#l6274&quot; class=&quot;line&quot; id=&quot;l6274&quot;&gt;   6274&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1174&amp;quot; id=&amp;quot;h4-0-1174&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    int rowStrokeIndex = getInt16(rowInfo.xy);
   6313 <a href="#l6294" class="line" id="l6294">   6294</a> &lt;a href=&quot;#l6275&quot; class=&quot;line&quot; id=&quot;l6275&quot;&gt;   6275&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1175&amp;quot; id=&amp;quot;h4-0-1175&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    int rowStrokeCount = getInt16(rowInfo.zw);
   6314 <a href="#l6295" class="line" id="l6295">   6295</a> &lt;a href=&quot;#l6276&quot; class=&quot;line&quot; id=&quot;l6276&quot;&gt;   6276&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1176&amp;quot; id=&amp;quot;h4-0-1176&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6315 <a href="#l6296" class="line" id="l6296">   6296</a> &lt;a href=&quot;#l6277&quot; class=&quot;line&quot; id=&quot;l6277&quot;&gt;   6277&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1177&amp;quot; id=&amp;quot;h4-0-1177&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    for (int iRowStroke = INT(0); iRowStroke &amp;amp;lt; N; iRowStroke++) {
   6316 <a href="#l6297" class="line" id="l6297">   6297</a> &lt;a href=&quot;#l6278&quot; class=&quot;line&quot; id=&quot;l6278&quot;&gt;   6278&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1178&amp;quot; id=&amp;quot;h4-0-1178&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      if (iRowStroke &amp;amp;gt;= rowStrokeCount)
   6317 <a href="#l6298" class="line" id="l6298">   6298</a> &lt;a href=&quot;#l6279&quot; class=&quot;line&quot; id=&quot;l6279&quot;&gt;   6279&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1179&amp;quot; id=&amp;quot;h4-0-1179&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        break;
   6318 <a href="#l6299" class="line" id="l6299">   6299</a> &lt;a href=&quot;#l6280&quot; class=&quot;line&quot; id=&quot;l6280&quot;&gt;   6280&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1180&amp;quot; id=&amp;quot;h4-0-1180&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6319 <a href="#l6300" class="line" id="l6300">   6300</a> &lt;a href=&quot;#l6281&quot; class=&quot;line&quot; id=&quot;l6281&quot;&gt;   6281&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1181&amp;quot; id=&amp;quot;h4-0-1181&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // each stroke is made up of 3 points: the start and control point
   6320 <a href="#l6301" class="line" id="l6301">   6301</a> &lt;a href=&quot;#l6282&quot; class=&quot;line&quot; id=&quot;l6282&quot;&gt;   6282&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1182&amp;quot; id=&amp;quot;h4-0-1182&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // and the start of the next curve.
   6321 <a href="#l6302" class="line" id="l6302">   6302</a> &lt;a href=&quot;#l6283&quot; class=&quot;line&quot; id=&quot;l6283&quot;&gt;   6283&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1183&amp;quot; id=&amp;quot;h4-0-1183&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // fetch the indices of this pair of strokes:
   6322 <a href="#l6303" class="line" id="l6303">   6303</a> &lt;a href=&quot;#l6284&quot; class=&quot;line&quot; id=&quot;l6284&quot;&gt;   6284&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1184&amp;quot; id=&amp;quot;h4-0-1184&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec4 strokeIndices = getTexel(uSamplerRowStrokes, rowStrokeIndex++, uCellsImageSize);
   6323 <a href="#l6304" class="line" id="l6304">   6304</a> &lt;a href=&quot;#l6285&quot; class=&quot;line&quot; id=&quot;l6285&quot;&gt;   6285&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1185&amp;quot; id=&amp;quot;h4-0-1185&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6324 <a href="#l6305" class="line" id="l6305">   6305</a> &lt;a href=&quot;#l6286&quot; class=&quot;line&quot; id=&quot;l6286&quot;&gt;   6286&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1186&amp;quot; id=&amp;quot;h4-0-1186&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // unpack the stroke index
   6325 <a href="#l6306" class="line" id="l6306">   6306</a> &lt;a href=&quot;#l6287&quot; class=&quot;line&quot; id=&quot;l6287&quot;&gt;   6287&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1187&amp;quot; id=&amp;quot;h4-0-1187&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      int strokePos = getInt16(strokeIndices.xy);
   6326 <a href="#l6307" class="line" id="l6307">   6307</a> &lt;a href=&quot;#l6288&quot; class=&quot;line&quot; id=&quot;l6288&quot;&gt;   6288&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1188&amp;quot; id=&amp;quot;h4-0-1188&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6327 <a href="#l6308" class="line" id="l6308">   6308</a> &lt;a href=&quot;#l6289&quot; class=&quot;line&quot; id=&quot;l6289&quot;&gt;   6289&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1189&amp;quot; id=&amp;quot;h4-0-1189&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // fetch the two strokes
   6328 <a href="#l6309" class="line" id="l6309">   6309</a> &lt;a href=&quot;#l6290&quot; class=&quot;line&quot; id=&quot;l6290&quot;&gt;   6290&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1190&amp;quot; id=&amp;quot;h4-0-1190&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec4 stroke0 = getTexel(uSamplerStrokes, strokePos + INT(0), uStrokeImageSize);
   6329 <a href="#l6310" class="line" id="l6310">   6310</a> &lt;a href=&quot;#l6291&quot; class=&quot;line&quot; id=&quot;l6291&quot;&gt;   6291&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1191&amp;quot; id=&amp;quot;h4-0-1191&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec4 stroke1 = getTexel(uSamplerStrokes, strokePos + INT(1), uStrokeImageSize);
   6330 <a href="#l6311" class="line" id="l6311">   6311</a> &lt;a href=&quot;#l6292&quot; class=&quot;line&quot; id=&quot;l6292&quot;&gt;   6292&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1192&amp;quot; id=&amp;quot;h4-0-1192&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6331 <a href="#l6312" class="line" id="l6312">   6312</a> &lt;a href=&quot;#l6293&quot; class=&quot;line&quot; id=&quot;l6293&quot;&gt;   6293&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1193&amp;quot; id=&amp;quot;h4-0-1193&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // calculate the coverage
   6332 <a href="#l6313" class="line" id="l6313">   6313</a> &lt;a href=&quot;#l6294&quot; class=&quot;line&quot; id=&quot;l6294&quot;&gt;   6294&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1194&amp;quot; id=&amp;quot;h4-0-1194&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      coverageX(stroke0.xy, stroke0.zw, stroke1.xy);
   6333 <a href="#l6314" class="line" id="l6314">   6314</a> &lt;a href=&quot;#l6295&quot; class=&quot;line&quot; id=&quot;l6295&quot;&gt;   6295&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1195&amp;quot; id=&amp;quot;h4-0-1195&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   6334 <a href="#l6315" class="line" id="l6315">   6315</a> &lt;a href=&quot;#l6296&quot; class=&quot;line&quot; id=&quot;l6296&quot;&gt;   6296&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1196&amp;quot; id=&amp;quot;h4-0-1196&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6335 <a href="#l6316" class="line" id="l6316">   6316</a> &lt;a href=&quot;#l6297&quot; class=&quot;line&quot; id=&quot;l6297&quot;&gt;   6297&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1197&amp;quot; id=&amp;quot;h4-0-1197&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6336 <a href="#l6317" class="line" id="l6317">   6317</a> &lt;a href=&quot;#l6298&quot; class=&quot;line&quot; id=&quot;l6298&quot;&gt;   6298&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1198&amp;quot; id=&amp;quot;h4-0-1198&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // intersect curves in this column
   6337 <a href="#l6318" class="line" id="l6318">   6318</a> &lt;a href=&quot;#l6299&quot; class=&quot;line&quot; id=&quot;l6299&quot;&gt;   6299&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1199&amp;quot; id=&amp;quot;h4-0-1199&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  {
   6338 <a href="#l6319" class="line" id="l6319">   6319</a> &lt;a href=&quot;#l6300&quot; class=&quot;line&quot; id=&quot;l6300&quot;&gt;   6300&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1200&amp;quot; id=&amp;quot;h4-0-1200&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    int colIndex = gridCoord.x + uGridOffset.x;
   6339 <a href="#l6320" class="line" id="l6320">   6320</a> &lt;a href=&quot;#l6301&quot; class=&quot;line&quot; id=&quot;l6301&quot;&gt;   6301&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1201&amp;quot; id=&amp;quot;h4-0-1201&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec4 colInfo = getTexel(uSamplerCols, colIndex, uGridImageSize);
   6340 <a href="#l6321" class="line" id="l6321">   6321</a> &lt;a href=&quot;#l6302&quot; class=&quot;line&quot; id=&quot;l6302&quot;&gt;   6302&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1202&amp;quot; id=&amp;quot;h4-0-1202&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    int colStrokeIndex = getInt16(colInfo.xy);
   6341 <a href="#l6322" class="line" id="l6322">   6322</a> &lt;a href=&quot;#l6303&quot; class=&quot;line&quot; id=&quot;l6303&quot;&gt;   6303&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1203&amp;quot; id=&amp;quot;h4-0-1203&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    int colStrokeCount = getInt16(colInfo.zw);
   6342 <a href="#l6323" class="line" id="l6323">   6323</a> &lt;a href=&quot;#l6304&quot; class=&quot;line&quot; id=&quot;l6304&quot;&gt;   6304&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1204&amp;quot; id=&amp;quot;h4-0-1204&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6343 <a href="#l6324" class="line" id="l6324">   6324</a> &lt;a href=&quot;#l6305&quot; class=&quot;line&quot; id=&quot;l6305&quot;&gt;   6305&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1205&amp;quot; id=&amp;quot;h4-0-1205&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    for (int iColStroke = INT(0); iColStroke &amp;amp;lt; N; iColStroke++) {
   6344 <a href="#l6325" class="line" id="l6325">   6325</a> &lt;a href=&quot;#l6306&quot; class=&quot;line&quot; id=&quot;l6306&quot;&gt;   6306&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1206&amp;quot; id=&amp;quot;h4-0-1206&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      if (iColStroke &amp;amp;gt;= colStrokeCount)
   6345 <a href="#l6326" class="line" id="l6326">   6326</a> &lt;a href=&quot;#l6307&quot; class=&quot;line&quot; id=&quot;l6307&quot;&gt;   6307&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1207&amp;quot; id=&amp;quot;h4-0-1207&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        break;
   6346 <a href="#l6327" class="line" id="l6327">   6327</a> &lt;a href=&quot;#l6308&quot; class=&quot;line&quot; id=&quot;l6308&quot;&gt;   6308&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1208&amp;quot; id=&amp;quot;h4-0-1208&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6347 <a href="#l6328" class="line" id="l6328">   6328</a> &lt;a href=&quot;#l6309&quot; class=&quot;line&quot; id=&quot;l6309&quot;&gt;   6309&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1209&amp;quot; id=&amp;quot;h4-0-1209&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec4 strokeIndices = getTexel(uSamplerColStrokes, colStrokeIndex++, uCellsImageSize);
   6348 <a href="#l6329" class="line" id="l6329">   6329</a> &lt;a href=&quot;#l6310&quot; class=&quot;line&quot; id=&quot;l6310&quot;&gt;   6310&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1210&amp;quot; id=&amp;quot;h4-0-1210&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6349 <a href="#l6330" class="line" id="l6330">   6330</a> &lt;a href=&quot;#l6311&quot; class=&quot;line&quot; id=&quot;l6311&quot;&gt;   6311&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1211&amp;quot; id=&amp;quot;h4-0-1211&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      int strokePos = getInt16(strokeIndices.xy);
   6350 <a href="#l6331" class="line" id="l6331">   6331</a> &lt;a href=&quot;#l6312&quot; class=&quot;line&quot; id=&quot;l6312&quot;&gt;   6312&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1212&amp;quot; id=&amp;quot;h4-0-1212&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec4 stroke0 = getTexel(uSamplerStrokes, strokePos + INT(0), uStrokeImageSize);
   6351 <a href="#l6332" class="line" id="l6332">   6332</a> &lt;a href=&quot;#l6313&quot; class=&quot;line&quot; id=&quot;l6313&quot;&gt;   6313&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1213&amp;quot; id=&amp;quot;h4-0-1213&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec4 stroke1 = getTexel(uSamplerStrokes, strokePos + INT(1), uStrokeImageSize);
   6352 <a href="#l6333" class="line" id="l6333">   6333</a> &lt;a href=&quot;#l6314&quot; class=&quot;line&quot; id=&quot;l6314&quot;&gt;   6314&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1214&amp;quot; id=&amp;quot;h4-0-1214&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      coverageY(stroke0.xy, stroke0.zw, stroke1.xy);
   6353 <a href="#l6334" class="line" id="l6334">   6334</a> &lt;a href=&quot;#l6315&quot; class=&quot;line&quot; id=&quot;l6315&quot;&gt;   6315&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1215&amp;quot; id=&amp;quot;h4-0-1215&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   6354 <a href="#l6335" class="line" id="l6335">   6335</a> &lt;a href=&quot;#l6316&quot; class=&quot;line&quot; id=&quot;l6316&quot;&gt;   6316&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1216&amp;quot; id=&amp;quot;h4-0-1216&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6355 <a href="#l6336" class="line" id="l6336">   6336</a> &lt;a href=&quot;#l6317&quot; class=&quot;line&quot; id=&quot;l6317&quot;&gt;   6317&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1217&amp;quot; id=&amp;quot;h4-0-1217&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6356 <a href="#l6337" class="line" id="l6337">   6337</a> &lt;a href=&quot;#l6318&quot; class=&quot;line&quot; id=&quot;l6318&quot;&gt;   6318&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1218&amp;quot; id=&amp;quot;h4-0-1218&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  weight = saturate(1.0 - weight * 2.0);
   6357 <a href="#l6338" class="line" id="l6338">   6338</a> &lt;a href=&quot;#l6319&quot; class=&quot;line&quot; id=&quot;l6319&quot;&gt;   6319&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1219&amp;quot; id=&amp;quot;h4-0-1219&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float distance = max(weight.x + weight.y, minDistance); // manhattan approx.
   6358 <a href="#l6339" class="line" id="l6339">   6339</a> &lt;a href=&quot;#l6320&quot; class=&quot;line&quot; id=&quot;l6320&quot;&gt;   6320&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1220&amp;quot; id=&amp;quot;h4-0-1220&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float antialias = abs(dot(coverage, weight) / distance);
   6359 <a href="#l6340" class="line" id="l6340">   6340</a> &lt;a href=&quot;#l6321&quot; class=&quot;line&quot; id=&quot;l6321&quot;&gt;   6321&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1221&amp;quot; id=&amp;quot;h4-0-1221&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float cover = min(abs(coverage.x), abs(coverage.y));
   6360 <a href="#l6341" class="line" id="l6341">   6341</a> &lt;a href=&quot;#l6322&quot; class=&quot;line&quot; id=&quot;l6322&quot;&gt;   6322&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1222&amp;quot; id=&amp;quot;h4-0-1222&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR = vec4(uMaterialColor.rgb, 1.) * uMaterialColor.a;
   6361 <a href="#l6342" class="line" id="l6342">   6342</a> &lt;a href=&quot;#l6323&quot; class=&quot;line&quot; id=&quot;l6323&quot;&gt;   6323&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1223&amp;quot; id=&amp;quot;h4-0-1223&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR *= saturate(max(antialias, cover));
   6362 <a href="#l6343" class="line" id="l6343">   6343</a> &lt;a href=&quot;#l6324&quot; class=&quot;line&quot; id=&quot;l6324&quot;&gt;   6324&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1224&amp;quot; id=&amp;quot;h4-0-1224&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6363 <a href="#l6344" class="line" id="l6344">   6344</a> &lt;a href=&quot;#l6325&quot; class=&quot;line&quot; id=&quot;l6325&quot;&gt;   6325&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1225&amp;quot; id=&amp;quot;h4-0-1225&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Fb=`/*
   6364 <a href="#l6345" class="line" id="l6345">   6345</a> &lt;a href=&quot;#l6326&quot; class=&quot;line&quot; id=&quot;l6326&quot;&gt;   6326&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1226&amp;quot; id=&amp;quot;h4-0-1226&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Part of the Processing project - http://processing.org
   6365 <a href="#l6346" class="line" id="l6346">   6346</a> &lt;a href=&quot;#l6327&quot; class=&quot;line&quot; id=&quot;l6327&quot;&gt;   6327&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1227&amp;quot; id=&amp;quot;h4-0-1227&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Copyright (c) 2012-15 The Processing Foundation
   6366 <a href="#l6347" class="line" id="l6347">   6347</a> &lt;a href=&quot;#l6328&quot; class=&quot;line&quot; id=&quot;l6328&quot;&gt;   6328&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1228&amp;quot; id=&amp;quot;h4-0-1228&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Copyright (c) 2004-12 Ben Fry and Casey Reas
   6367 <a href="#l6348" class="line" id="l6348">   6348</a> &lt;a href=&quot;#l6329&quot; class=&quot;line&quot; id=&quot;l6329&quot;&gt;   6329&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1229&amp;quot; id=&amp;quot;h4-0-1229&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Copyright (c) 2001-04 Massachusetts Institute of Technology
   6368 <a href="#l6349" class="line" id="l6349">   6349</a> &lt;a href=&quot;#l6330&quot; class=&quot;line&quot; id=&quot;l6330&quot;&gt;   6330&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1230&amp;quot; id=&amp;quot;h4-0-1230&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  This library is free software; you can redistribute it and/or
   6369 <a href="#l6350" class="line" id="l6350">   6350</a> &lt;a href=&quot;#l6331&quot; class=&quot;line&quot; id=&quot;l6331&quot;&gt;   6331&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1231&amp;quot; id=&amp;quot;h4-0-1231&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  modify it under the terms of the GNU Lesser General Public
   6370 <a href="#l6351" class="line" id="l6351">   6351</a> &lt;a href=&quot;#l6332&quot; class=&quot;line&quot; id=&quot;l6332&quot;&gt;   6332&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1232&amp;quot; id=&amp;quot;h4-0-1232&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  License as published by the Free Software Foundation, version 2.1.
   6371 <a href="#l6352" class="line" id="l6352">   6352</a> &lt;a href=&quot;#l6333&quot; class=&quot;line&quot; id=&quot;l6333&quot;&gt;   6333&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1233&amp;quot; id=&amp;quot;h4-0-1233&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  This library is distributed in the hope that it will be useful,
   6372 <a href="#l6353" class="line" id="l6353">   6353</a> &lt;a href=&quot;#l6334&quot; class=&quot;line&quot; id=&quot;l6334&quot;&gt;   6334&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1234&amp;quot; id=&amp;quot;h4-0-1234&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  but WITHOUT ANY WARRANTY; without even the implied warranty of
   6373 <a href="#l6354" class="line" id="l6354">   6354</a> &lt;a href=&quot;#l6335&quot; class=&quot;line&quot; id=&quot;l6335&quot;&gt;   6335&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1235&amp;quot; id=&amp;quot;h4-0-1235&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   6374 <a href="#l6355" class="line" id="l6355">   6355</a> &lt;a href=&quot;#l6336&quot; class=&quot;line&quot; id=&quot;l6336&quot;&gt;   6336&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1236&amp;quot; id=&amp;quot;h4-0-1236&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Lesser General Public License for more details.
   6375 <a href="#l6356" class="line" id="l6356">   6356</a> &lt;a href=&quot;#l6337&quot; class=&quot;line&quot; id=&quot;l6337&quot;&gt;   6337&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1237&amp;quot; id=&amp;quot;h4-0-1237&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  You should have received a copy of the GNU Lesser General
   6376 <a href="#l6357" class="line" id="l6357">   6357</a> &lt;a href=&quot;#l6338&quot; class=&quot;line&quot; id=&quot;l6338&quot;&gt;   6338&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1238&amp;quot; id=&amp;quot;h4-0-1238&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Public License along with this library; if not, write to the
   6377 <a href="#l6358" class="line" id="l6358">   6358</a> &lt;a href=&quot;#l6339&quot; class=&quot;line&quot; id=&quot;l6339&quot;&gt;   6339&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1239&amp;quot; id=&amp;quot;h4-0-1239&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
   6378 <a href="#l6359" class="line" id="l6359">   6359</a> &lt;a href=&quot;#l6340&quot; class=&quot;line&quot; id=&quot;l6340&quot;&gt;   6340&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1240&amp;quot; id=&amp;quot;h4-0-1240&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Boston, MA  02111-1307  USA
   6379 <a href="#l6360" class="line" id="l6360">   6360</a> &lt;a href=&quot;#l6341&quot; class=&quot;line&quot; id=&quot;l6341&quot;&gt;   6341&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1241&amp;quot; id=&amp;quot;h4-0-1241&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+*/
   6380 <a href="#l6361" class="line" id="l6361">   6361</a> &lt;a href=&quot;#l6342&quot; class=&quot;line&quot; id=&quot;l6342&quot;&gt;   6342&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1242&amp;quot; id=&amp;quot;h4-0-1242&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6381 <a href="#l6362" class="line" id="l6362">   6362</a> &lt;a href=&quot;#l6343&quot; class=&quot;line&quot; id=&quot;l6343&quot;&gt;   6343&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1243&amp;quot; id=&amp;quot;h4-0-1243&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define PROCESSING_LINE_SHADER
   6382 <a href="#l6363" class="line" id="l6363">   6363</a> &lt;a href=&quot;#l6344&quot; class=&quot;line&quot; id=&quot;l6344&quot;&gt;   6344&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1244&amp;quot; id=&amp;quot;h4-0-1244&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6383 <a href="#l6364" class="line" id="l6364">   6364</a> &lt;a href=&quot;#l6345&quot; class=&quot;line&quot; id=&quot;l6345&quot;&gt;   6345&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1245&amp;quot; id=&amp;quot;h4-0-1245&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define HOOK_DEFINES
   6384 <a href="#l6365" class="line" id="l6365">   6365</a> &lt;a href=&quot;#l6346&quot; class=&quot;line&quot; id=&quot;l6346&quot;&gt;   6346&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1246&amp;quot; id=&amp;quot;h4-0-1246&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6385 <a href="#l6366" class="line" id="l6366">   6366</a> &lt;a href=&quot;#l6347&quot; class=&quot;line&quot; id=&quot;l6347&quot;&gt;   6347&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1247&amp;quot; id=&amp;quot;h4-0-1247&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp int;
   6386 <a href="#l6367" class="line" id="l6367">   6367</a> &lt;a href=&quot;#l6348&quot; class=&quot;line&quot; id=&quot;l6348&quot;&gt;   6348&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1248&amp;quot; id=&amp;quot;h4-0-1248&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   6387 <a href="#l6368" class="line" id="l6368">   6368</a> &lt;a href=&quot;#l6349&quot; class=&quot;line&quot; id=&quot;l6349&quot;&gt;   6349&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1249&amp;quot; id=&amp;quot;h4-0-1249&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6388 <a href="#l6369" class="line" id="l6369">   6369</a> &lt;a href=&quot;#l6350&quot; class=&quot;line&quot; id=&quot;l6350&quot;&gt;   6350&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1250&amp;quot; id=&amp;quot;h4-0-1250&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   6389 <a href="#l6370" class="line" id="l6370">   6370</a> &lt;a href=&quot;#l6351&quot; class=&quot;line&quot; id=&quot;l6351&quot;&gt;   6351&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1251&amp;quot; id=&amp;quot;h4-0-1251&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelMatrix;
   6390 <a href="#l6371" class="line" id="l6371">   6371</a> &lt;a href=&quot;#l6352&quot; class=&quot;line&quot; id=&quot;l6352&quot;&gt;   6352&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1252&amp;quot; id=&amp;quot;h4-0-1252&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uViewMatrix;
   6391 <a href="#l6372" class="line" id="l6372">   6372</a> &lt;a href=&quot;#l6353&quot; class=&quot;line&quot; id=&quot;l6353&quot;&gt;   6353&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1253&amp;quot; id=&amp;quot;h4-0-1253&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   6392 <a href="#l6373" class="line" id="l6373">   6373</a> &lt;a href=&quot;#l6354&quot; class=&quot;line&quot; id=&quot;l6354&quot;&gt;   6354&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1254&amp;quot; id=&amp;quot;h4-0-1254&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelViewMatrix;
   6393 <a href="#l6374" class="line" id="l6374">   6374</a> &lt;a href=&quot;#l6355&quot; class=&quot;line&quot; id=&quot;l6355&quot;&gt;   6355&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1255&amp;quot; id=&amp;quot;h4-0-1255&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   6394 <a href="#l6375" class="line" id="l6375">   6375</a> &lt;a href=&quot;#l6356&quot; class=&quot;line&quot; id=&quot;l6356&quot;&gt;   6356&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1256&amp;quot; id=&amp;quot;h4-0-1256&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6395 <a href="#l6376" class="line" id="l6376">   6376</a> &lt;a href=&quot;#l6357&quot; class=&quot;line&quot; id=&quot;l6357&quot;&gt;   6357&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1257&amp;quot; id=&amp;quot;h4-0-1257&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   6396 <a href="#l6377" class="line" id="l6377">   6377</a> &lt;a href=&quot;#l6358&quot; class=&quot;line&quot; id=&quot;l6358&quot;&gt;   6358&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1258&amp;quot; id=&amp;quot;h4-0-1258&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uStrokeWeight;
   6397 <a href="#l6378" class="line" id="l6378">   6378</a> &lt;a href=&quot;#l6359&quot; class=&quot;line&quot; id=&quot;l6359&quot;&gt;   6359&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1259&amp;quot; id=&amp;quot;h4-0-1259&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6398 <a href="#l6379" class="line" id="l6379">   6379</a> &lt;a href=&quot;#l6360&quot; class=&quot;line&quot; id=&quot;l6360&quot;&gt;   6360&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1260&amp;quot; id=&amp;quot;h4-0-1260&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uUseLineColor;
   6399 <a href="#l6380" class="line" id="l6380">   6380</a> &lt;a href=&quot;#l6361&quot; class=&quot;line&quot; id=&quot;l6361&quot;&gt;   6361&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1261&amp;quot; id=&amp;quot;h4-0-1261&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform bool uSimpleLines;
   6400 <a href="#l6381" class="line" id="l6381">   6381</a> &lt;a href=&quot;#l6362&quot; class=&quot;line&quot; id=&quot;l6362&quot;&gt;   6362&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1262&amp;quot; id=&amp;quot;h4-0-1262&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uMaterialColor;
   6401 <a href="#l6382" class="line" id="l6382">   6382</a> &lt;a href=&quot;#l6363&quot; class=&quot;line&quot; id=&quot;l6363&quot;&gt;   6363&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1263&amp;quot; id=&amp;quot;h4-0-1263&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6402 <a href="#l6383" class="line" id="l6383">   6383</a> &lt;a href=&quot;#l6364&quot; class=&quot;line&quot; id=&quot;l6364&quot;&gt;   6364&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1264&amp;quot; id=&amp;quot;h4-0-1264&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uViewport;
   6403 <a href="#l6384" class="line" id="l6384">   6384</a> &lt;a href=&quot;#l6365&quot; class=&quot;line&quot; id=&quot;l6365&quot;&gt;   6365&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1265&amp;quot; id=&amp;quot;h4-0-1265&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uPerspective;
   6404 <a href="#l6385" class="line" id="l6385">   6385</a> &lt;a href=&quot;#l6366&quot; class=&quot;line&quot; id=&quot;l6366&quot;&gt;   6366&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1266&amp;quot; id=&amp;quot;h4-0-1266&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uStrokeJoin;
   6405 <a href="#l6386" class="line" id="l6386">   6386</a> &lt;a href=&quot;#l6367&quot; class=&quot;line&quot; id=&quot;l6367&quot;&gt;   6367&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1267&amp;quot; id=&amp;quot;h4-0-1267&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6406 <a href="#l6387" class="line" id="l6387">   6387</a> &lt;a href=&quot;#l6368&quot; class=&quot;line&quot; id=&quot;l6368&quot;&gt;   6368&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1268&amp;quot; id=&amp;quot;h4-0-1268&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aPosition;
   6407 <a href="#l6388" class="line" id="l6388">   6388</a> &lt;a href=&quot;#l6369&quot; class=&quot;line&quot; id=&quot;l6369&quot;&gt;   6369&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1269&amp;quot; id=&amp;quot;h4-0-1269&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aTangentIn;
   6408 <a href="#l6389" class="line" id="l6389">   6389</a> &lt;a href=&quot;#l6370&quot; class=&quot;line&quot; id=&quot;l6370&quot;&gt;   6370&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1270&amp;quot; id=&amp;quot;h4-0-1270&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec3 aTangentOut;
   6409 <a href="#l6390" class="line" id="l6390">   6390</a> &lt;a href=&quot;#l6371&quot; class=&quot;line&quot; id=&quot;l6371&quot;&gt;   6371&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1271&amp;quot; id=&amp;quot;h4-0-1271&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN float aSide;
   6410 <a href="#l6391" class="line" id="l6391">   6391</a> &lt;a href=&quot;#l6372&quot; class=&quot;line&quot; id=&quot;l6372&quot;&gt;   6372&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1272&amp;quot; id=&amp;quot;h4-0-1272&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec4 aVertexColor;
   6411 <a href="#l6392" class="line" id="l6392">   6392</a> &lt;a href=&quot;#l6373&quot; class=&quot;line&quot; id=&quot;l6373&quot;&gt;   6373&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1273&amp;quot; id=&amp;quot;h4-0-1273&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6412 <a href="#l6393" class="line" id="l6393">   6393</a> &lt;a href=&quot;#l6374&quot; class=&quot;line&quot; id=&quot;l6374&quot;&gt;   6374&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1274&amp;quot; id=&amp;quot;h4-0-1274&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec4 vColor;
   6413 <a href="#l6394" class="line" id="l6394">   6394</a> &lt;a href=&quot;#l6375&quot; class=&quot;line&quot; id=&quot;l6375&quot;&gt;   6375&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1275&amp;quot; id=&amp;quot;h4-0-1275&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec2 vTangent;
   6414 <a href="#l6395" class="line" id="l6395">   6395</a> &lt;a href=&quot;#l6376&quot; class=&quot;line&quot; id=&quot;l6376&quot;&gt;   6376&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1276&amp;quot; id=&amp;quot;h4-0-1276&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec2 vCenter;
   6415 <a href="#l6396" class="line" id="l6396">   6396</a> &lt;a href=&quot;#l6377&quot; class=&quot;line&quot; id=&quot;l6377&quot;&gt;   6377&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1277&amp;quot; id=&amp;quot;h4-0-1277&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT vec2 vPosition;
   6416 <a href="#l6397" class="line" id="l6397">   6397</a> &lt;a href=&quot;#l6378&quot; class=&quot;line&quot; id=&quot;l6378&quot;&gt;   6378&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1278&amp;quot; id=&amp;quot;h4-0-1278&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT float vMaxDist;
   6417 <a href="#l6398" class="line" id="l6398">   6398</a> &lt;a href=&quot;#l6379&quot; class=&quot;line&quot; id=&quot;l6379&quot;&gt;   6379&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1279&amp;quot; id=&amp;quot;h4-0-1279&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT float vCap;
   6418 <a href="#l6399" class="line" id="l6399">   6399</a> &lt;a href=&quot;#l6380&quot; class=&quot;line&quot; id=&quot;l6380&quot;&gt;   6380&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1280&amp;quot; id=&amp;quot;h4-0-1280&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT float vJoin;
   6419 <a href="#l6400" class="line" id="l6400">   6400</a> &lt;a href=&quot;#l6381&quot; class=&quot;line&quot; id=&quot;l6381&quot;&gt;   6381&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1281&amp;quot; id=&amp;quot;h4-0-1281&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT float vStrokeWeight;
   6420 <a href="#l6401" class="line" id="l6401">   6401</a> &lt;a href=&quot;#l6382&quot; class=&quot;line&quot; id=&quot;l6382&quot;&gt;   6382&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1282&amp;quot; id=&amp;quot;h4-0-1282&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6421 <a href="#l6402" class="line" id="l6402">   6402</a> &lt;a href=&quot;#l6383&quot; class=&quot;line&quot; id=&quot;l6383&quot;&gt;   6383&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1283&amp;quot; id=&amp;quot;h4-0-1283&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 lineIntersection(vec2 aPoint, vec2 aDir, vec2 bPoint, vec2 bDir) {
   6422 <a href="#l6403" class="line" id="l6403">   6403</a> &lt;a href=&quot;#l6384&quot; class=&quot;line&quot; id=&quot;l6384&quot;&gt;   6384&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1284&amp;quot; id=&amp;quot;h4-0-1284&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Rotate and translate so a starts at the origin and goes out to the right
   6423 <a href="#l6404" class="line" id="l6404">   6404</a> &lt;a href=&quot;#l6385&quot; class=&quot;line&quot; id=&quot;l6385&quot;&gt;   6385&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1285&amp;quot; id=&amp;quot;h4-0-1285&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  bPoint -= aPoint;
   6424 <a href="#l6405" class="line" id="l6405">   6405</a> &lt;a href=&quot;#l6386&quot; class=&quot;line&quot; id=&quot;l6386&quot;&gt;   6386&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1286&amp;quot; id=&amp;quot;h4-0-1286&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 rotatedBFrom = vec2(
   6425 <a href="#l6406" class="line" id="l6406">   6406</a> &lt;a href=&quot;#l6387&quot; class=&quot;line&quot; id=&quot;l6387&quot;&gt;   6387&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1287&amp;quot; id=&amp;quot;h4-0-1287&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bPoint.x*aDir.x + bPoint.y*aDir.y,
   6426 <a href="#l6407" class="line" id="l6407">   6407</a> &lt;a href=&quot;#l6388&quot; class=&quot;line&quot; id=&quot;l6388&quot;&gt;   6388&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1288&amp;quot; id=&amp;quot;h4-0-1288&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bPoint.y*aDir.x - bPoint.x*aDir.y
   6427 <a href="#l6408" class="line" id="l6408">   6408</a> &lt;a href=&quot;#l6389&quot; class=&quot;line&quot; id=&quot;l6389&quot;&gt;   6389&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1289&amp;quot; id=&amp;quot;h4-0-1289&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  );
   6428 <a href="#l6409" class="line" id="l6409">   6409</a> &lt;a href=&quot;#l6390&quot; class=&quot;line&quot; id=&quot;l6390&quot;&gt;   6390&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1290&amp;quot; id=&amp;quot;h4-0-1290&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 bTo = bPoint + bDir;
   6429 <a href="#l6410" class="line" id="l6410">   6410</a> &lt;a href=&quot;#l6391&quot; class=&quot;line&quot; id=&quot;l6391&quot;&gt;   6391&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1291&amp;quot; id=&amp;quot;h4-0-1291&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 rotatedBTo = vec2(
   6430 <a href="#l6411" class="line" id="l6411">   6411</a> &lt;a href=&quot;#l6392&quot; class=&quot;line&quot; id=&quot;l6392&quot;&gt;   6392&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1292&amp;quot; id=&amp;quot;h4-0-1292&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bTo.x*aDir.x + bTo.y*aDir.y,
   6431 <a href="#l6412" class="line" id="l6412">   6412</a> &lt;a href=&quot;#l6393&quot; class=&quot;line&quot; id=&quot;l6393&quot;&gt;   6393&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1293&amp;quot; id=&amp;quot;h4-0-1293&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bTo.y*aDir.x - bTo.x*aDir.y
   6432 <a href="#l6413" class="line" id="l6413">   6413</a> &lt;a href=&quot;#l6394&quot; class=&quot;line&quot; id=&quot;l6394&quot;&gt;   6394&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1294&amp;quot; id=&amp;quot;h4-0-1294&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  );
   6433 <a href="#l6414" class="line" id="l6414">   6414</a> &lt;a href=&quot;#l6395&quot; class=&quot;line&quot; id=&quot;l6395&quot;&gt;   6395&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1295&amp;quot; id=&amp;quot;h4-0-1295&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float intersectionDistance =
   6434 <a href="#l6415" class="line" id="l6415">   6415</a> &lt;a href=&quot;#l6396&quot; class=&quot;line&quot; id=&quot;l6396&quot;&gt;   6396&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1296&amp;quot; id=&amp;quot;h4-0-1296&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    rotatedBTo.x + (rotatedBFrom.x - rotatedBTo.x) * rotatedBTo.y /
   6435 <a href="#l6416" class="line" id="l6416">   6416</a> &lt;a href=&quot;#l6397&quot; class=&quot;line&quot; id=&quot;l6397&quot;&gt;   6397&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1297&amp;quot; id=&amp;quot;h4-0-1297&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    (rotatedBTo.y - rotatedBFrom.y);
   6436 <a href="#l6417" class="line" id="l6417">   6417</a> &lt;a href=&quot;#l6398&quot; class=&quot;line&quot; id=&quot;l6398&quot;&gt;   6398&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1298&amp;quot; id=&amp;quot;h4-0-1298&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return aPoint + aDir * intersectionDistance;
   6437 <a href="#l6418" class="line" id="l6418">   6418</a> &lt;a href=&quot;#l6399&quot; class=&quot;line&quot; id=&quot;l6399&quot;&gt;   6399&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1299&amp;quot; id=&amp;quot;h4-0-1299&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6438 <a href="#l6419" class="line" id="l6419">   6419</a> &lt;a href=&quot;#l6400&quot; class=&quot;line&quot; id=&quot;l6400&quot;&gt;   6400&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1300&amp;quot; id=&amp;quot;h4-0-1300&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6439 <a href="#l6420" class="line" id="l6420">   6420</a> &lt;a href=&quot;#l6401&quot; class=&quot;line&quot; id=&quot;l6401&quot;&gt;   6401&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1301&amp;quot; id=&amp;quot;h4-0-1301&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct StrokeVertex {
   6440 <a href="#l6421" class="line" id="l6421">   6421</a> &lt;a href=&quot;#l6402&quot; class=&quot;line&quot; id=&quot;l6402&quot;&gt;   6402&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1302&amp;quot; id=&amp;quot;h4-0-1302&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 position;
   6441 <a href="#l6422" class="line" id="l6422">   6422</a> &lt;a href=&quot;#l6403&quot; class=&quot;line&quot; id=&quot;l6403&quot;&gt;   6403&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1303&amp;quot; id=&amp;quot;h4-0-1303&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 tangentIn;
   6442 <a href="#l6423" class="line" id="l6423">   6423</a> &lt;a href=&quot;#l6404&quot; class=&quot;line&quot; id=&quot;l6404&quot;&gt;   6404&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1304&amp;quot; id=&amp;quot;h4-0-1304&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 tangentOut;
   6443 <a href="#l6424" class="line" id="l6424">   6424</a> &lt;a href=&quot;#l6405&quot; class=&quot;line&quot; id=&quot;l6405&quot;&gt;   6405&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1305&amp;quot; id=&amp;quot;h4-0-1305&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color;
   6444 <a href="#l6425" class="line" id="l6425">   6425</a> &lt;a href=&quot;#l6406&quot; class=&quot;line&quot; id=&quot;l6406&quot;&gt;   6406&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1306&amp;quot; id=&amp;quot;h4-0-1306&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float weight;
   6445 <a href="#l6426" class="line" id="l6426">   6426</a> &lt;a href=&quot;#l6407&quot; class=&quot;line&quot; id=&quot;l6407&quot;&gt;   6407&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1307&amp;quot; id=&amp;quot;h4-0-1307&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   6446 <a href="#l6427" class="line" id="l6427">   6427</a> &lt;a href=&quot;#l6408&quot; class=&quot;line&quot; id=&quot;l6408&quot;&gt;   6408&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1308&amp;quot; id=&amp;quot;h4-0-1308&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6447 <a href="#l6428" class="line" id="l6428">   6428</a> &lt;a href=&quot;#l6409&quot; class=&quot;line&quot; id=&quot;l6409&quot;&gt;   6409&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1309&amp;quot; id=&amp;quot;h4-0-1309&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   6448 <a href="#l6429" class="line" id="l6429">   6429</a> &lt;a href=&quot;#l6410&quot; class=&quot;line&quot; id=&quot;l6410&quot;&gt;   6410&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1310&amp;quot; id=&amp;quot;h4-0-1310&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeVertex();
   6449 <a href="#l6430" class="line" id="l6430">   6430</a> &lt;a href=&quot;#l6411&quot; class=&quot;line&quot; id=&quot;l6411&quot;&gt;   6411&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1311&amp;quot; id=&amp;quot;h4-0-1311&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6450 <a href="#l6431" class="line" id="l6431">   6431</a> &lt;a href=&quot;#l6412&quot; class=&quot;line&quot; id=&quot;l6412&quot;&gt;   6412&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1312&amp;quot; id=&amp;quot;h4-0-1312&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (!uSimpleLines) {
   6451 <a href="#l6432" class="line" id="l6432">   6432</a> &lt;a href=&quot;#l6413&quot; class=&quot;line&quot; id=&quot;l6413&quot;&gt;   6413&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1313&amp;quot; id=&amp;quot;h4-0-1313&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // Caps have one of either the in or out tangent set to 0
   6452 <a href="#l6433" class="line" id="l6433">   6433</a> &lt;a href=&quot;#l6414&quot; class=&quot;line&quot; id=&quot;l6414&quot;&gt;   6414&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1314&amp;quot; id=&amp;quot;h4-0-1314&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vCap = (aTangentIn == vec3(0.)) != (aTangentOut == vec3(0.)) ? 1. : 0.;
   6453 <a href="#l6434" class="line" id="l6434">   6434</a> &lt;a href=&quot;#l6415&quot; class=&quot;line&quot; id=&quot;l6415&quot;&gt;   6415&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1315&amp;quot; id=&amp;quot;h4-0-1315&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6454 <a href="#l6435" class="line" id="l6435">   6435</a> &lt;a href=&quot;#l6416&quot; class=&quot;line&quot; id=&quot;l6416&quot;&gt;   6416&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1316&amp;quot; id=&amp;quot;h4-0-1316&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // Joins have two unique, defined tangents
   6455 <a href="#l6436" class="line" id="l6436">   6436</a> &lt;a href=&quot;#l6417&quot; class=&quot;line&quot; id=&quot;l6417&quot;&gt;   6417&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1317&amp;quot; id=&amp;quot;h4-0-1317&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vJoin = (
   6456 <a href="#l6437" class="line" id="l6437">   6437</a> &lt;a href=&quot;#l6418&quot; class=&quot;line&quot; id=&quot;l6418&quot;&gt;   6418&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1318&amp;quot; id=&amp;quot;h4-0-1318&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          aTangentIn != vec3(0.) &amp;amp;amp;&amp;amp;amp;
   6457 <a href="#l6438" class="line" id="l6438">   6438</a> &lt;a href=&quot;#l6419&quot; class=&quot;line&quot; id=&quot;l6419&quot;&gt;   6419&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1319&amp;quot; id=&amp;quot;h4-0-1319&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          aTangentOut != vec3(0.) &amp;amp;amp;&amp;amp;amp;
   6458 <a href="#l6439" class="line" id="l6439">   6439</a> &lt;a href=&quot;#l6420&quot; class=&quot;line&quot; id=&quot;l6420&quot;&gt;   6420&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1320&amp;quot; id=&amp;quot;h4-0-1320&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          aTangentIn != aTangentOut
   6459 <a href="#l6440" class="line" id="l6440">   6440</a> &lt;a href=&quot;#l6421&quot; class=&quot;line&quot; id=&quot;l6421&quot;&gt;   6421&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1321&amp;quot; id=&amp;quot;h4-0-1321&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      ) ? 1. : 0.;
   6460 <a href="#l6441" class="line" id="l6441">   6441</a> &lt;a href=&quot;#l6422&quot; class=&quot;line&quot; id=&quot;l6422&quot;&gt;   6422&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1322&amp;quot; id=&amp;quot;h4-0-1322&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6461 <a href="#l6442" class="line" id="l6442">   6442</a> &lt;a href=&quot;#l6423&quot; class=&quot;line&quot; id=&quot;l6423&quot;&gt;   6423&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1323&amp;quot; id=&amp;quot;h4-0-1323&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6462 <a href="#l6443" class="line" id="l6443">   6443</a> &lt;a href=&quot;#l6424&quot; class=&quot;line&quot; id=&quot;l6424&quot;&gt;   6424&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1324&amp;quot; id=&amp;quot;h4-0-1324&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  StrokeVertex inputs;
   6463 <a href="#l6444" class="line" id="l6444">   6444</a> &lt;a href=&quot;#l6425&quot; class=&quot;line&quot; id=&quot;l6425&quot;&gt;   6425&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1325&amp;quot; id=&amp;quot;h4-0-1325&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = aPosition.xyz;
   6464 <a href="#l6445" class="line" id="l6445">   6445</a> &lt;a href=&quot;#l6426&quot; class=&quot;line&quot; id=&quot;l6426&quot;&gt;   6426&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1326&amp;quot; id=&amp;quot;h4-0-1326&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.color = uUseLineColor ? aVertexColor : uMaterialColor;
   6465 <a href="#l6446" class="line" id="l6446">   6446</a> &lt;a href=&quot;#l6427&quot; class=&quot;line&quot; id=&quot;l6427&quot;&gt;   6427&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1327&amp;quot; id=&amp;quot;h4-0-1327&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.weight = uStrokeWeight;
   6466 <a href="#l6447" class="line" id="l6447">   6447</a> &lt;a href=&quot;#l6428&quot; class=&quot;line&quot; id=&quot;l6428&quot;&gt;   6428&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1328&amp;quot; id=&amp;quot;h4-0-1328&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangentIn = aTangentIn;
   6467 <a href="#l6448" class="line" id="l6448">   6448</a> &lt;a href=&quot;#l6429&quot; class=&quot;line&quot; id=&quot;l6429&quot;&gt;   6429&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1329&amp;quot; id=&amp;quot;h4-0-1329&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangentOut = aTangentOut;
   6468 <a href="#l6449" class="line" id="l6449">   6449</a> &lt;a href=&quot;#l6430&quot; class=&quot;line&quot; id=&quot;l6430&quot;&gt;   6430&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1330&amp;quot; id=&amp;quot;h4-0-1330&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6469 <a href="#l6450" class="line" id="l6450">   6450</a> &lt;a href=&quot;#l6431&quot; class=&quot;line&quot; id=&quot;l6431&quot;&gt;   6431&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1331&amp;quot; id=&amp;quot;h4-0-1331&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getObjectInputs
   6470 <a href="#l6451" class="line" id="l6451">   6451</a> &lt;a href=&quot;#l6432&quot; class=&quot;line&quot; id=&quot;l6432&quot;&gt;   6432&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1332&amp;quot; id=&amp;quot;h4-0-1332&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getObjectInputs(inputs);
   6471 <a href="#l6452" class="line" id="l6452">   6452</a> &lt;a href=&quot;#l6433&quot; class=&quot;line&quot; id=&quot;l6433&quot;&gt;   6433&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1333&amp;quot; id=&amp;quot;h4-0-1333&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   6472 <a href="#l6453" class="line" id="l6453">   6453</a> &lt;a href=&quot;#l6434&quot; class=&quot;line&quot; id=&quot;l6434&quot;&gt;   6434&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1334&amp;quot; id=&amp;quot;h4-0-1334&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6473 <a href="#l6454" class="line" id="l6454">   6454</a> &lt;a href=&quot;#l6435&quot; class=&quot;line&quot; id=&quot;l6435&quot;&gt;   6435&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1335&amp;quot; id=&amp;quot;h4-0-1335&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   6474 <a href="#l6455" class="line" id="l6455">   6455</a> &lt;a href=&quot;#l6436&quot; class=&quot;line&quot; id=&quot;l6436&quot;&gt;   6436&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1336&amp;quot; id=&amp;quot;h4-0-1336&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uModelMatrix * vec4(inputs.position, 1.)).xyz;
   6475 <a href="#l6456" class="line" id="l6456">   6456</a> &lt;a href=&quot;#l6437&quot; class=&quot;line&quot; id=&quot;l6437&quot;&gt;   6437&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1337&amp;quot; id=&amp;quot;h4-0-1337&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangentIn = (uModelMatrix * vec4(aTangentIn, 0.)).xyz;
   6476 <a href="#l6457" class="line" id="l6457">   6457</a> &lt;a href=&quot;#l6438&quot; class=&quot;line&quot; id=&quot;l6438&quot;&gt;   6438&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1338&amp;quot; id=&amp;quot;h4-0-1338&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangentOut = (uModelMatrix * vec4(aTangentOut, 0.)).xyz;
   6477 <a href="#l6458" class="line" id="l6458">   6458</a> &lt;a href=&quot;#l6439&quot; class=&quot;line&quot; id=&quot;l6439&quot;&gt;   6439&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1339&amp;quot; id=&amp;quot;h4-0-1339&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getWorldInputs(inputs);
   6478 <a href="#l6459" class="line" id="l6459">   6459</a> &lt;a href=&quot;#l6440&quot; class=&quot;line&quot; id=&quot;l6440&quot;&gt;   6440&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1340&amp;quot; id=&amp;quot;h4-0-1340&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   6479 <a href="#l6460" class="line" id="l6460">   6460</a> &lt;a href=&quot;#l6441&quot; class=&quot;line&quot; id=&quot;l6441&quot;&gt;   6441&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1341&amp;quot; id=&amp;quot;h4-0-1341&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6480 <a href="#l6461" class="line" id="l6461">   6461</a> &lt;a href=&quot;#l6442&quot; class=&quot;line&quot; id=&quot;l6442&quot;&gt;   6442&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1342&amp;quot; id=&amp;quot;h4-0-1342&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getWorldInputs
   6481 <a href="#l6462" class="line" id="l6462">   6462</a> &lt;a href=&quot;#l6443&quot; class=&quot;line&quot; id=&quot;l6443&quot;&gt;   6443&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1343&amp;quot; id=&amp;quot;h4-0-1343&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Already multiplied by the model matrix, just apply view
   6482 <a href="#l6463" class="line" id="l6463">   6463</a> &lt;a href=&quot;#l6444&quot; class=&quot;line&quot; id=&quot;l6444&quot;&gt;   6444&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1344&amp;quot; id=&amp;quot;h4-0-1344&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uViewMatrix * vec4(inputs.position, 1.)).xyz;
   6483 <a href="#l6464" class="line" id="l6464">   6464</a> &lt;a href=&quot;#l6445&quot; class=&quot;line&quot; id=&quot;l6445&quot;&gt;   6445&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1345&amp;quot; id=&amp;quot;h4-0-1345&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangentIn = (uViewMatrix * vec4(aTangentIn, 0.)).xyz;
   6484 <a href="#l6465" class="line" id="l6465">   6465</a> &lt;a href=&quot;#l6446&quot; class=&quot;line&quot; id=&quot;l6446&quot;&gt;   6446&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1346&amp;quot; id=&amp;quot;h4-0-1346&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangentOut = (uViewMatrix * vec4(aTangentOut, 0.)).xyz;
   6485 <a href="#l6466" class="line" id="l6466">   6466</a> &lt;a href=&quot;#l6447&quot; class=&quot;line&quot; id=&quot;l6447&quot;&gt;   6447&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1347&amp;quot; id=&amp;quot;h4-0-1347&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else
   6486 <a href="#l6467" class="line" id="l6467">   6467</a> &lt;a href=&quot;#l6448&quot; class=&quot;line&quot; id=&quot;l6448&quot;&gt;   6448&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1348&amp;quot; id=&amp;quot;h4-0-1348&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Apply both at once
   6487 <a href="#l6468" class="line" id="l6468">   6468</a> &lt;a href=&quot;#l6449&quot; class=&quot;line&quot; id=&quot;l6449&quot;&gt;   6449&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1349&amp;quot; id=&amp;quot;h4-0-1349&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = (uModelViewMatrix * vec4(inputs.position, 1.)).xyz;
   6488 <a href="#l6469" class="line" id="l6469">   6469</a> &lt;a href=&quot;#l6450&quot; class=&quot;line&quot; id=&quot;l6450&quot;&gt;   6450&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1350&amp;quot; id=&amp;quot;h4-0-1350&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangentIn = (uModelViewMatrix * vec4(aTangentIn, 0.)).xyz;
   6489 <a href="#l6470" class="line" id="l6470">   6470</a> &lt;a href=&quot;#l6451&quot; class=&quot;line&quot; id=&quot;l6451&quot;&gt;   6451&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1351&amp;quot; id=&amp;quot;h4-0-1351&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangentOut = (uModelViewMatrix * vec4(aTangentOut, 0.)).xyz;
   6490 <a href="#l6471" class="line" id="l6471">   6471</a> &lt;a href=&quot;#l6452&quot; class=&quot;line&quot; id=&quot;l6452&quot;&gt;   6452&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1352&amp;quot; id=&amp;quot;h4-0-1352&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   6491 <a href="#l6472" class="line" id="l6472">   6472</a> &lt;a href=&quot;#l6453&quot; class=&quot;line&quot; id=&quot;l6453&quot;&gt;   6453&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1353&amp;quot; id=&amp;quot;h4-0-1353&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef AUGMENTED_HOOK_getCameraInputs
   6492 <a href="#l6473" class="line" id="l6473">   6473</a> &lt;a href=&quot;#l6454&quot; class=&quot;line&quot; id=&quot;l6454&quot;&gt;   6454&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1354&amp;quot; id=&amp;quot;h4-0-1354&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = hook_getCameraInputs(inputs);
   6493 <a href="#l6474" class="line" id="l6474">   6474</a> &lt;a href=&quot;#l6455&quot; class=&quot;line&quot; id=&quot;l6455&quot;&gt;   6455&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1355&amp;quot; id=&amp;quot;h4-0-1355&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif
   6494 <a href="#l6475" class="line" id="l6475">   6475</a> &lt;a href=&quot;#l6456&quot; class=&quot;line&quot; id=&quot;l6456&quot;&gt;   6456&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1356&amp;quot; id=&amp;quot;h4-0-1356&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6495 <a href="#l6476" class="line" id="l6476">   6476</a> &lt;a href=&quot;#l6457&quot; class=&quot;line&quot; id=&quot;l6457&quot;&gt;   6457&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1357&amp;quot; id=&amp;quot;h4-0-1357&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 posp = vec4(inputs.position, 1.);
   6496 <a href="#l6477" class="line" id="l6477">   6477</a> &lt;a href=&quot;#l6458&quot; class=&quot;line&quot; id=&quot;l6458&quot;&gt;   6458&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1358&amp;quot; id=&amp;quot;h4-0-1358&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 posqIn = vec4(inputs.position + inputs.tangentIn, 1.);
   6497 <a href="#l6478" class="line" id="l6478">   6478</a> &lt;a href=&quot;#l6459&quot; class=&quot;line&quot; id=&quot;l6459&quot;&gt;   6459&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1359&amp;quot; id=&amp;quot;h4-0-1359&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 posqOut = vec4(inputs.position + inputs.tangentOut, 1.);
   6498 <a href="#l6479" class="line" id="l6479">   6479</a> &lt;a href=&quot;#l6460&quot; class=&quot;line&quot; id=&quot;l6460&quot;&gt;   6460&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1360&amp;quot; id=&amp;quot;h4-0-1360&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vStrokeWeight = inputs.weight;
   6499 <a href="#l6480" class="line" id="l6480">   6480</a> &lt;a href=&quot;#l6461&quot; class=&quot;line&quot; id=&quot;l6461&quot;&gt;   6461&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1361&amp;quot; id=&amp;quot;h4-0-1361&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6500 <a href="#l6481" class="line" id="l6481">   6481</a> &lt;a href=&quot;#l6462&quot; class=&quot;line&quot; id=&quot;l6462&quot;&gt;   6462&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1362&amp;quot; id=&amp;quot;h4-0-1362&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float facingCamera = pow(
   6501 <a href="#l6482" class="line" id="l6482">   6482</a> &lt;a href=&quot;#l6463&quot; class=&quot;line&quot; id=&quot;l6463&quot;&gt;   6463&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1363&amp;quot; id=&amp;quot;h4-0-1363&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // The word space tangent&amp;amp;#39;s z value is 0 if it&amp;amp;#39;s facing the camera
   6502 <a href="#l6483" class="line" id="l6483">   6483</a> &lt;a href=&quot;#l6464&quot; class=&quot;line&quot; id=&quot;l6464&quot;&gt;   6464&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1364&amp;quot; id=&amp;quot;h4-0-1364&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    abs(normalize(posqIn-posp).z),
   6503 <a href="#l6484" class="line" id="l6484">   6484</a> &lt;a href=&quot;#l6465&quot; class=&quot;line&quot; id=&quot;l6465&quot;&gt;   6465&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1365&amp;quot; id=&amp;quot;h4-0-1365&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6504 <a href="#l6485" class="line" id="l6485">   6485</a> &lt;a href=&quot;#l6466&quot; class=&quot;line&quot; id=&quot;l6466&quot;&gt;   6466&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1366&amp;quot; id=&amp;quot;h4-0-1366&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Using pow() here to ramp \`facingCamera\` up from 0 to 1 really quickly
   6505 <a href="#l6486" class="line" id="l6486">   6486</a> &lt;a href=&quot;#l6467&quot; class=&quot;line&quot; id=&quot;l6467&quot;&gt;   6467&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1367&amp;quot; id=&amp;quot;h4-0-1367&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // so most lines get scaled and don&amp;amp;#39;t get clipped
   6506 <a href="#l6487" class="line" id="l6487">   6487</a> &lt;a href=&quot;#l6468&quot; class=&quot;line&quot; id=&quot;l6468&quot;&gt;   6468&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1368&amp;quot; id=&amp;quot;h4-0-1368&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    0.25
   6507 <a href="#l6488" class="line" id="l6488">   6488</a> &lt;a href=&quot;#l6469&quot; class=&quot;line&quot; id=&quot;l6469&quot;&gt;   6469&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1369&amp;quot; id=&amp;quot;h4-0-1369&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  );
   6508 <a href="#l6489" class="line" id="l6489">   6489</a> &lt;a href=&quot;#l6470&quot; class=&quot;line&quot; id=&quot;l6470&quot;&gt;   6470&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1370&amp;quot; id=&amp;quot;h4-0-1370&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6509 <a href="#l6490" class="line" id="l6490">   6490</a> &lt;a href=&quot;#l6471&quot; class=&quot;line&quot; id=&quot;l6471&quot;&gt;   6471&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1371&amp;quot; id=&amp;quot;h4-0-1371&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Moving vertices slightly toward the camera
   6510 <a href="#l6491" class="line" id="l6491">   6491</a> &lt;a href=&quot;#l6472&quot; class=&quot;line&quot; id=&quot;l6472&quot;&gt;   6472&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1372&amp;quot; id=&amp;quot;h4-0-1372&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // to avoid depth-fighting with the fill triangles.
   6511 <a href="#l6492" class="line" id="l6492">   6492</a> &lt;a href=&quot;#l6473&quot; class=&quot;line&quot; id=&quot;l6473&quot;&gt;   6473&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1373&amp;quot; id=&amp;quot;h4-0-1373&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // A mix of scaling and offsetting is used based on distance
   6512 <a href="#l6493" class="line" id="l6493">   6493</a> &lt;a href=&quot;#l6474&quot; class=&quot;line&quot; id=&quot;l6474&quot;&gt;   6474&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1374&amp;quot; id=&amp;quot;h4-0-1374&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Discussion here:
   6513 <a href="#l6494" class="line" id="l6494">   6494</a> &lt;a href=&quot;#l6475&quot; class=&quot;line&quot; id=&quot;l6475&quot;&gt;   6475&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1375&amp;quot; id=&amp;quot;h4-0-1375&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // https://github.com/processing/p5.js/issues/7200
   6514 <a href="#l6495" class="line" id="l6495">   6495</a> &lt;a href=&quot;#l6476&quot; class=&quot;line&quot; id=&quot;l6476&quot;&gt;   6476&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1376&amp;quot; id=&amp;quot;h4-0-1376&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6515 <a href="#l6496" class="line" id="l6496">   6496</a> &lt;a href=&quot;#l6477&quot; class=&quot;line&quot; id=&quot;l6477&quot;&gt;   6477&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1377&amp;quot; id=&amp;quot;h4-0-1377&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // using a scale &amp;amp;lt;1 moves the lines towards nearby camera
   6516 <a href="#l6497" class="line" id="l6497">   6497</a> &lt;a href=&quot;#l6478&quot; class=&quot;line&quot; id=&quot;l6478&quot;&gt;   6478&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1378&amp;quot; id=&amp;quot;h4-0-1378&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // in order to prevent popping effects due to half of
   6517 <a href="#l6498" class="line" id="l6498">   6498</a> &lt;a href=&quot;#l6479&quot; class=&quot;line&quot; id=&quot;l6479&quot;&gt;   6479&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1379&amp;quot; id=&amp;quot;h4-0-1379&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // the line disappearing behind the geometry faces.
   6518 <a href="#l6499" class="line" id="l6499">   6499</a> &lt;a href=&quot;#l6480&quot; class=&quot;line&quot; id=&quot;l6480&quot;&gt;   6480&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1380&amp;quot; id=&amp;quot;h4-0-1380&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float zDistance = -posp.z;
   6519 <a href="#l6500" class="line" id="l6500">   6500</a> &lt;a href=&quot;#l6481&quot; class=&quot;line&quot; id=&quot;l6481&quot;&gt;   6481&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1381&amp;quot; id=&amp;quot;h4-0-1381&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float distanceFactor = smoothstep(0.0, 800.0, zDistance);
   6520 <a href="#l6501" class="line" id="l6501">   6501</a> &lt;a href=&quot;#l6482&quot; class=&quot;line&quot; id=&quot;l6482&quot;&gt;   6482&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1382&amp;quot; id=&amp;quot;h4-0-1382&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6521 <a href="#l6502" class="line" id="l6502">   6502</a> &lt;a href=&quot;#l6483&quot; class=&quot;line&quot; id=&quot;l6483&quot;&gt;   6483&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1383&amp;quot; id=&amp;quot;h4-0-1383&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Discussed here:
   6522 <a href="#l6503" class="line" id="l6503">   6503</a> &lt;a href=&quot;#l6484&quot; class=&quot;line&quot; id=&quot;l6484&quot;&gt;   6484&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1384&amp;quot; id=&amp;quot;h4-0-1384&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&amp;amp;amp;Number=252848
   6523 <a href="#l6504" class="line" id="l6504">   6504</a> &lt;a href=&quot;#l6485&quot; class=&quot;line&quot; id=&quot;l6485&quot;&gt;   6485&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1385&amp;quot; id=&amp;quot;h4-0-1385&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float scale = mix(1., 0.995, facingCamera);
   6524 <a href="#l6505" class="line" id="l6505">   6505</a> &lt;a href=&quot;#l6486&quot; class=&quot;line&quot; id=&quot;l6486&quot;&gt;   6486&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1386&amp;quot; id=&amp;quot;h4-0-1386&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float dynamicScale = mix(scale, 1.0, distanceFactor); // Closer = more scale, farther = less
   6525 <a href="#l6506" class="line" id="l6506">   6506</a> &lt;a href=&quot;#l6487&quot; class=&quot;line&quot; id=&quot;l6487&quot;&gt;   6487&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1387&amp;quot; id=&amp;quot;h4-0-1387&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6526 <a href="#l6507" class="line" id="l6507">   6507</a> &lt;a href=&quot;#l6488&quot; class=&quot;line&quot; id=&quot;l6488&quot;&gt;   6488&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1388&amp;quot; id=&amp;quot;h4-0-1388&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  posp.xyz = posp.xyz * dynamicScale;
   6527 <a href="#l6508" class="line" id="l6508">   6508</a> &lt;a href=&quot;#l6489&quot; class=&quot;line&quot; id=&quot;l6489&quot;&gt;   6489&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1389&amp;quot; id=&amp;quot;h4-0-1389&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  posqIn.xyz = posqIn.xyz * dynamicScale;
   6528 <a href="#l6509" class="line" id="l6509">   6509</a> &lt;a href=&quot;#l6490&quot; class=&quot;line&quot; id=&quot;l6490&quot;&gt;   6490&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1390&amp;quot; id=&amp;quot;h4-0-1390&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  posqOut.xyz = posqOut.xyz * dynamicScale;
   6529 <a href="#l6510" class="line" id="l6510">   6510</a> &lt;a href=&quot;#l6491&quot; class=&quot;line&quot; id=&quot;l6491&quot;&gt;   6491&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1391&amp;quot; id=&amp;quot;h4-0-1391&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6530 <a href="#l6511" class="line" id="l6511">   6511</a> &lt;a href=&quot;#l6492&quot; class=&quot;line&quot; id=&quot;l6492&quot;&gt;   6492&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1392&amp;quot; id=&amp;quot;h4-0-1392&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Moving vertices slightly toward camera when far away
   6531 <a href="#l6512" class="line" id="l6512">   6512</a> &lt;a href=&quot;#l6493&quot; class=&quot;line&quot; id=&quot;l6493&quot;&gt;   6493&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1393&amp;quot; id=&amp;quot;h4-0-1393&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // https://github.com/processing/p5.js/issues/6956
   6532 <a href="#l6513" class="line" id="l6513">   6513</a> &lt;a href=&quot;#l6494&quot; class=&quot;line&quot; id=&quot;l6494&quot;&gt;   6494&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1394&amp;quot; id=&amp;quot;h4-0-1394&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float zOffset = mix(0., -1., facingCamera);
   6533 <a href="#l6514" class="line" id="l6514">   6514</a> &lt;a href=&quot;#l6495&quot; class=&quot;line&quot; id=&quot;l6495&quot;&gt;   6495&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1395&amp;quot; id=&amp;quot;h4-0-1395&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float dynamicZAdjustment = mix(0.0, zOffset, distanceFactor); // Closer = less zAdjustment, farther = more
   6534 <a href="#l6515" class="line" id="l6515">   6515</a> &lt;a href=&quot;#l6496&quot; class=&quot;line&quot; id=&quot;l6496&quot;&gt;   6496&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1396&amp;quot; id=&amp;quot;h4-0-1396&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6535 <a href="#l6516" class="line" id="l6516">   6516</a> &lt;a href=&quot;#l6497&quot; class=&quot;line&quot; id=&quot;l6497&quot;&gt;   6497&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1397&amp;quot; id=&amp;quot;h4-0-1397&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  posp.z -= dynamicZAdjustment;
   6536 <a href="#l6517" class="line" id="l6517">   6517</a> &lt;a href=&quot;#l6498&quot; class=&quot;line&quot; id=&quot;l6498&quot;&gt;   6498&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1398&amp;quot; id=&amp;quot;h4-0-1398&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  posqIn.z -= dynamicZAdjustment;
   6537 <a href="#l6518" class="line" id="l6518">   6518</a> &lt;a href=&quot;#l6499&quot; class=&quot;line&quot; id=&quot;l6499&quot;&gt;   6499&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1399&amp;quot; id=&amp;quot;h4-0-1399&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  posqOut.z -= dynamicZAdjustment;
   6538 <a href="#l6519" class="line" id="l6519">   6519</a> &lt;a href=&quot;#l6500&quot; class=&quot;line&quot; id=&quot;l6500&quot;&gt;   6500&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1400&amp;quot; id=&amp;quot;h4-0-1400&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6539 <a href="#l6520" class="line" id="l6520">   6520</a> &lt;a href=&quot;#l6501&quot; class=&quot;line&quot; id=&quot;l6501&quot;&gt;   6501&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1401&amp;quot; id=&amp;quot;h4-0-1401&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 p = uProjectionMatrix * posp;
   6540 <a href="#l6521" class="line" id="l6521">   6521</a> &lt;a href=&quot;#l6502&quot; class=&quot;line&quot; id=&quot;l6502&quot;&gt;   6502&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1402&amp;quot; id=&amp;quot;h4-0-1402&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 qIn = uProjectionMatrix * posqIn;
   6541 <a href="#l6522" class="line" id="l6522">   6522</a> &lt;a href=&quot;#l6503&quot; class=&quot;line&quot; id=&quot;l6503&quot;&gt;   6503&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1403&amp;quot; id=&amp;quot;h4-0-1403&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 qOut = uProjectionMatrix * posqOut;
   6542 <a href="#l6523" class="line" id="l6523">   6523</a> &lt;a href=&quot;#l6504&quot; class=&quot;line&quot; id=&quot;l6504&quot;&gt;   6504&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1404&amp;quot; id=&amp;quot;h4-0-1404&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6543 <a href="#l6524" class="line" id="l6524">   6524</a> &lt;a href=&quot;#l6505&quot; class=&quot;line&quot; id=&quot;l6505&quot;&gt;   6505&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1405&amp;quot; id=&amp;quot;h4-0-1405&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // formula to convert from clip space (range -1..1) to screen space (range 0..[width or height])
   6544 <a href="#l6525" class="line" id="l6525">   6525</a> &lt;a href=&quot;#l6506&quot; class=&quot;line&quot; id=&quot;l6506&quot;&gt;   6506&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1406&amp;quot; id=&amp;quot;h4-0-1406&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // screen_p = (p.xy/p.w + &amp;amp;lt;1,1&amp;amp;gt;) * 0.5 * uViewport.zw
   6545 <a href="#l6526" class="line" id="l6526">   6526</a> &lt;a href=&quot;#l6507&quot; class=&quot;line&quot; id=&quot;l6507&quot;&gt;   6507&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1407&amp;quot; id=&amp;quot;h4-0-1407&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6546 <a href="#l6527" class="line" id="l6527">   6527</a> &lt;a href=&quot;#l6508&quot; class=&quot;line&quot; id=&quot;l6508&quot;&gt;   6508&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1408&amp;quot; id=&amp;quot;h4-0-1408&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // prevent division by W by transforming the tangent formula (div by 0 causes
   6547 <a href="#l6528" class="line" id="l6528">   6528</a> &lt;a href=&quot;#l6509&quot; class=&quot;line&quot; id=&quot;l6509&quot;&gt;   6509&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1409&amp;quot; id=&amp;quot;h4-0-1409&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // the line to disappear, see https://github.com/processing/processing/issues/5183)
   6548 <a href="#l6529" class="line" id="l6529">   6529</a> &lt;a href=&quot;#l6510&quot; class=&quot;line&quot; id=&quot;l6510&quot;&gt;   6510&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1410&amp;quot; id=&amp;quot;h4-0-1410&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // t = screen_q - screen_p
   6549 <a href="#l6530" class="line" id="l6530">   6530</a> &lt;a href=&quot;#l6511&quot; class=&quot;line&quot; id=&quot;l6511&quot;&gt;   6511&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1411&amp;quot; id=&amp;quot;h4-0-1411&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  //
   6550 <a href="#l6531" class="line" id="l6531">   6531</a> &lt;a href=&quot;#l6512&quot; class=&quot;line&quot; id=&quot;l6512&quot;&gt;   6512&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1412&amp;quot; id=&amp;quot;h4-0-1412&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // tangent is normalized and we don&amp;amp;#39;t care which aDirection it points to (+-)
   6551 <a href="#l6532" class="line" id="l6532">   6532</a> &lt;a href=&quot;#l6513&quot; class=&quot;line&quot; id=&quot;l6513&quot;&gt;   6513&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1413&amp;quot; id=&amp;quot;h4-0-1413&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // t = +- normalize( screen_q - screen_p )
   6552 <a href="#l6533" class="line" id="l6533">   6533</a> &lt;a href=&quot;#l6514&quot; class=&quot;line&quot; id=&quot;l6514&quot;&gt;   6514&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1414&amp;quot; id=&amp;quot;h4-0-1414&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // t = +- normalize( (q.xy/q.w+&amp;amp;lt;1,1&amp;amp;gt;)*0.5*uViewport.zw - (p.xy/p.w+&amp;amp;lt;1,1&amp;amp;gt;)*0.5*uViewport.zw )
   6553 <a href="#l6534" class="line" id="l6534">   6534</a> &lt;a href=&quot;#l6515&quot; class=&quot;line&quot; id=&quot;l6515&quot;&gt;   6515&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1415&amp;quot; id=&amp;quot;h4-0-1415&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  //
   6554 <a href="#l6535" class="line" id="l6535">   6535</a> &lt;a href=&quot;#l6516&quot; class=&quot;line&quot; id=&quot;l6516&quot;&gt;   6516&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1416&amp;quot; id=&amp;quot;h4-0-1416&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // extract common factor, &amp;amp;lt;1,1&amp;amp;gt; - &amp;amp;lt;1,1&amp;amp;gt; cancels out
   6555 <a href="#l6536" class="line" id="l6536">   6536</a> &lt;a href=&quot;#l6517&quot; class=&quot;line&quot; id=&quot;l6517&quot;&gt;   6517&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1417&amp;quot; id=&amp;quot;h4-0-1417&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // t = +- normalize( (q.xy/q.w - p.xy/p.w) * 0.5 * uViewport.zw )
   6556 <a href="#l6537" class="line" id="l6537">   6537</a> &lt;a href=&quot;#l6518&quot; class=&quot;line&quot; id=&quot;l6518&quot;&gt;   6518&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1418&amp;quot; id=&amp;quot;h4-0-1418&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  //
   6557 <a href="#l6538" class="line" id="l6538">   6538</a> &lt;a href=&quot;#l6519&quot; class=&quot;line&quot; id=&quot;l6519&quot;&gt;   6519&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1419&amp;quot; id=&amp;quot;h4-0-1419&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // convert to common divisor
   6558 <a href="#l6539" class="line" id="l6539">   6539</a> &lt;a href=&quot;#l6520&quot; class=&quot;line&quot; id=&quot;l6520&quot;&gt;   6520&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1420&amp;quot; id=&amp;quot;h4-0-1420&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // t = +- normalize( ((q.xy*p.w - p.xy*q.w) / (p.w*q.w)) * 0.5 * uViewport.zw )
   6559 <a href="#l6540" class="line" id="l6540">   6540</a> &lt;a href=&quot;#l6521&quot; class=&quot;line&quot; id=&quot;l6521&quot;&gt;   6521&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1421&amp;quot; id=&amp;quot;h4-0-1421&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  //
   6560 <a href="#l6541" class="line" id="l6541">   6541</a> &lt;a href=&quot;#l6522&quot; class=&quot;line&quot; id=&quot;l6522&quot;&gt;   6522&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1422&amp;quot; id=&amp;quot;h4-0-1422&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // remove the common scalar divisor/factor, not needed due to normalize and +-
   6561 <a href="#l6542" class="line" id="l6542">   6542</a> &lt;a href=&quot;#l6523&quot; class=&quot;line&quot; id=&quot;l6523&quot;&gt;   6523&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1423&amp;quot; id=&amp;quot;h4-0-1423&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // (keep uViewport - can&amp;amp;#39;t remove because it has different components for x and y
   6562 <a href="#l6543" class="line" id="l6543">   6543</a> &lt;a href=&quot;#l6524&quot; class=&quot;line&quot; id=&quot;l6524&quot;&gt;   6524&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1424&amp;quot; id=&amp;quot;h4-0-1424&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  //  and corrects for aspect ratio, see https://github.com/processing/processing/issues/5181)
   6563 <a href="#l6544" class="line" id="l6544">   6544</a> &lt;a href=&quot;#l6525&quot; class=&quot;line&quot; id=&quot;l6525&quot;&gt;   6525&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1425&amp;quot; id=&amp;quot;h4-0-1425&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // t = +- normalize( (q.xy*p.w - p.xy*q.w) * uViewport.zw )
   6564 <a href="#l6545" class="line" id="l6545">   6545</a> &lt;a href=&quot;#l6526&quot; class=&quot;line&quot; id=&quot;l6526&quot;&gt;   6526&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1426&amp;quot; id=&amp;quot;h4-0-1426&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6565 <a href="#l6546" class="line" id="l6546">   6546</a> &lt;a href=&quot;#l6527&quot; class=&quot;line&quot; id=&quot;l6527&quot;&gt;   6527&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1427&amp;quot; id=&amp;quot;h4-0-1427&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 tangentIn = normalize((qIn.xy*p.w - p.xy*qIn.w) * uViewport.zw);
   6566 <a href="#l6547" class="line" id="l6547">   6547</a> &lt;a href=&quot;#l6528&quot; class=&quot;line&quot; id=&quot;l6528&quot;&gt;   6528&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1428&amp;quot; id=&amp;quot;h4-0-1428&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 tangentOut = normalize((qOut.xy*p.w - p.xy*qOut.w) * uViewport.zw);
   6567 <a href="#l6548" class="line" id="l6548">   6548</a> &lt;a href=&quot;#l6529&quot; class=&quot;line&quot; id=&quot;l6529&quot;&gt;   6529&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1429&amp;quot; id=&amp;quot;h4-0-1429&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6568 <a href="#l6549" class="line" id="l6549">   6549</a> &lt;a href=&quot;#l6530&quot; class=&quot;line&quot; id=&quot;l6530&quot;&gt;   6530&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1430&amp;quot; id=&amp;quot;h4-0-1430&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 curPerspScale;
   6569 <a href="#l6550" class="line" id="l6550">   6550</a> &lt;a href=&quot;#l6531&quot; class=&quot;line&quot; id=&quot;l6531&quot;&gt;   6531&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1431&amp;quot; id=&amp;quot;h4-0-1431&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if(uPerspective == 1) {
   6570 <a href="#l6551" class="line" id="l6551">   6551</a> &lt;a href=&quot;#l6532&quot; class=&quot;line&quot; id=&quot;l6532&quot;&gt;   6532&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1432&amp;quot; id=&amp;quot;h4-0-1432&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Perspective ---
   6571 <a href="#l6552" class="line" id="l6552">   6552</a> &lt;a href=&quot;#l6533&quot; class=&quot;line&quot; id=&quot;l6533&quot;&gt;   6533&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1433&amp;quot; id=&amp;quot;h4-0-1433&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // convert from world to clip by multiplying with projection scaling factor
   6572 <a href="#l6553" class="line" id="l6553">   6553</a> &lt;a href=&quot;#l6534&quot; class=&quot;line&quot; id=&quot;l6534&quot;&gt;   6534&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1434&amp;quot; id=&amp;quot;h4-0-1434&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // to get the right thickness (see https://github.com/processing/processing/issues/5182)
   6573 <a href="#l6554" class="line" id="l6554">   6554</a> &lt;a href=&quot;#l6535&quot; class=&quot;line&quot; id=&quot;l6535&quot;&gt;   6535&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1435&amp;quot; id=&amp;quot;h4-0-1435&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6574 <a href="#l6555" class="line" id="l6555">   6555</a> &lt;a href=&quot;#l6536&quot; class=&quot;line&quot; id=&quot;l6536&quot;&gt;   6536&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1436&amp;quot; id=&amp;quot;h4-0-1436&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // The y value of the projection matrix may be flipped if rendering to a Framebuffer.
   6575 <a href="#l6556" class="line" id="l6556">   6556</a> &lt;a href=&quot;#l6537&quot; class=&quot;line&quot; id=&quot;l6537&quot;&gt;   6537&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1437&amp;quot; id=&amp;quot;h4-0-1437&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Multiplying again by its sign here negates the flip to get just the scale.
   6576 <a href="#l6557" class="line" id="l6557">   6557</a> &lt;a href=&quot;#l6538&quot; class=&quot;line&quot; id=&quot;l6538&quot;&gt;   6538&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1438&amp;quot; id=&amp;quot;h4-0-1438&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    curPerspScale = (uProjectionMatrix * vec4(1, sign(uProjectionMatrix[1][1]), 0, 0)).xy;
   6577 <a href="#l6558" class="line" id="l6558">   6558</a> &lt;a href=&quot;#l6539&quot; class=&quot;line&quot; id=&quot;l6539&quot;&gt;   6539&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1439&amp;quot; id=&amp;quot;h4-0-1439&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  } else {
   6578 <a href="#l6559" class="line" id="l6559">   6559</a> &lt;a href=&quot;#l6540&quot; class=&quot;line&quot; id=&quot;l6540&quot;&gt;   6540&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1440&amp;quot; id=&amp;quot;h4-0-1440&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // No Perspective ---
   6579 <a href="#l6560" class="line" id="l6560">   6560</a> &lt;a href=&quot;#l6541&quot; class=&quot;line&quot; id=&quot;l6541&quot;&gt;   6541&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1441&amp;quot; id=&amp;quot;h4-0-1441&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // multiply by W (to cancel out division by W later in the pipeline) and
   6580 <a href="#l6561" class="line" id="l6561">   6561</a> &lt;a href=&quot;#l6542&quot; class=&quot;line&quot; id=&quot;l6542&quot;&gt;   6542&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1442&amp;quot; id=&amp;quot;h4-0-1442&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // convert from screen to clip (derived from clip to screen above)
   6581 <a href="#l6562" class="line" id="l6562">   6562</a> &lt;a href=&quot;#l6543&quot; class=&quot;line&quot; id=&quot;l6543&quot;&gt;   6543&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1443&amp;quot; id=&amp;quot;h4-0-1443&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    curPerspScale = p.w / (0.5 * uViewport.zw);
   6582 <a href="#l6563" class="line" id="l6563">   6563</a> &lt;a href=&quot;#l6544&quot; class=&quot;line&quot; id=&quot;l6544&quot;&gt;   6544&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1444&amp;quot; id=&amp;quot;h4-0-1444&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6583 <a href="#l6564" class="line" id="l6564">   6564</a> &lt;a href=&quot;#l6545&quot; class=&quot;line&quot; id=&quot;l6545&quot;&gt;   6545&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1445&amp;quot; id=&amp;quot;h4-0-1445&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6584 <a href="#l6565" class="line" id="l6565">   6565</a> &lt;a href=&quot;#l6546&quot; class=&quot;line&quot; id=&quot;l6546&quot;&gt;   6546&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1446&amp;quot; id=&amp;quot;h4-0-1446&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 offset;
   6585 <a href="#l6566" class="line" id="l6566">   6566</a> &lt;a href=&quot;#l6547&quot; class=&quot;line&quot; id=&quot;l6547&quot;&gt;   6547&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1447&amp;quot; id=&amp;quot;h4-0-1447&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (vJoin == 1. &amp;amp;amp;&amp;amp;amp; !uSimpleLines) {
   6586 <a href="#l6567" class="line" id="l6567">   6567</a> &lt;a href=&quot;#l6548&quot; class=&quot;line&quot; id=&quot;l6548&quot;&gt;   6548&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1448&amp;quot; id=&amp;quot;h4-0-1448&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vTangent = normalize(tangentIn + tangentOut);
   6587 <a href="#l6568" class="line" id="l6568">   6568</a> &lt;a href=&quot;#l6549&quot; class=&quot;line&quot; id=&quot;l6549&quot;&gt;   6549&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1449&amp;quot; id=&amp;quot;h4-0-1449&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec2 normalIn = vec2(-tangentIn.y, tangentIn.x);
   6588 <a href="#l6569" class="line" id="l6569">   6569</a> &lt;a href=&quot;#l6550&quot; class=&quot;line&quot; id=&quot;l6550&quot;&gt;   6550&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1450&amp;quot; id=&amp;quot;h4-0-1450&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec2 normalOut = vec2(-tangentOut.y, tangentOut.x);
   6589 <a href="#l6570" class="line" id="l6570">   6570</a> &lt;a href=&quot;#l6551&quot; class=&quot;line&quot; id=&quot;l6551&quot;&gt;   6551&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1451&amp;quot; id=&amp;quot;h4-0-1451&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float side = sign(aSide);
   6590 <a href="#l6571" class="line" id="l6571">   6571</a> &lt;a href=&quot;#l6552&quot; class=&quot;line&quot; id=&quot;l6552&quot;&gt;   6552&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1452&amp;quot; id=&amp;quot;h4-0-1452&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float sideEnum = abs(aSide);
   6591 <a href="#l6572" class="line" id="l6572">   6572</a> &lt;a href=&quot;#l6553&quot; class=&quot;line&quot; id=&quot;l6553&quot;&gt;   6553&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1453&amp;quot; id=&amp;quot;h4-0-1453&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6592 <a href="#l6573" class="line" id="l6573">   6573</a> &lt;a href=&quot;#l6554&quot; class=&quot;line&quot; id=&quot;l6554&quot;&gt;   6554&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1454&amp;quot; id=&amp;quot;h4-0-1454&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // We generate vertices for joins on either side of the centerline, but
   6593 <a href="#l6574" class="line" id="l6574">   6574</a> &lt;a href=&quot;#l6555&quot; class=&quot;line&quot; id=&quot;l6555&quot;&gt;   6555&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1455&amp;quot; id=&amp;quot;h4-0-1455&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // the &amp;amp;quot;elbow&amp;amp;quot; side is the only one needing a join. By not setting the
   6594 <a href="#l6575" class="line" id="l6575">   6575</a> &lt;a href=&quot;#l6556&quot; class=&quot;line&quot; id=&quot;l6556&quot;&gt;   6556&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1456&amp;quot; id=&amp;quot;h4-0-1456&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // offset for the other side, all its vertices will end up in the same
   6595 <a href="#l6576" class="line" id="l6576">   6576</a> &lt;a href=&quot;#l6557&quot; class=&quot;line&quot; id=&quot;l6557&quot;&gt;   6557&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1457&amp;quot; id=&amp;quot;h4-0-1457&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // spot and not render, effectively discarding it.
   6596 <a href="#l6577" class="line" id="l6577">   6577</a> &lt;a href=&quot;#l6558&quot; class=&quot;line&quot; id=&quot;l6558&quot;&gt;   6558&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1458&amp;quot; id=&amp;quot;h4-0-1458&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (sign(dot(tangentOut, vec2(-tangentIn.y, tangentIn.x))) != side) {
   6597 <a href="#l6578" class="line" id="l6578">   6578</a> &lt;a href=&quot;#l6559&quot; class=&quot;line&quot; id=&quot;l6559&quot;&gt;   6559&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1459&amp;quot; id=&amp;quot;h4-0-1459&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // Side enums:
   6598 <a href="#l6579" class="line" id="l6579">   6579</a> &lt;a href=&quot;#l6560&quot; class=&quot;line&quot; id=&quot;l6560&quot;&gt;   6560&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1460&amp;quot; id=&amp;quot;h4-0-1460&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      //   1: the side going into the join
   6599 <a href="#l6580" class="line" id="l6580">   6580</a> &lt;a href=&quot;#l6561&quot; class=&quot;line&quot; id=&quot;l6561&quot;&gt;   6561&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1461&amp;quot; id=&amp;quot;h4-0-1461&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      //   2: the middle of the join
   6600 <a href="#l6581" class="line" id="l6581">   6581</a> &lt;a href=&quot;#l6562&quot; class=&quot;line&quot; id=&quot;l6562&quot;&gt;   6562&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1462&amp;quot; id=&amp;quot;h4-0-1462&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      //   3: the side going out of the join
   6601 <a href="#l6582" class="line" id="l6582">   6582</a> &lt;a href=&quot;#l6563&quot; class=&quot;line&quot; id=&quot;l6563&quot;&gt;   6563&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1463&amp;quot; id=&amp;quot;h4-0-1463&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      if (sideEnum == 2.) {
   6602 <a href="#l6583" class="line" id="l6583">   6583</a> &lt;a href=&quot;#l6564&quot; class=&quot;line&quot; id=&quot;l6564&quot;&gt;   6564&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1464&amp;quot; id=&amp;quot;h4-0-1464&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // Calculate the position + tangent on either side of the join, and
   6603 <a href="#l6584" class="line" id="l6584">   6584</a> &lt;a href=&quot;#l6565&quot; class=&quot;line&quot; id=&quot;l6565&quot;&gt;   6565&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1465&amp;quot; id=&amp;quot;h4-0-1465&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // find where the lines intersect to find the elbow of the join
   6604 <a href="#l6585" class="line" id="l6585">   6585</a> &lt;a href=&quot;#l6566&quot; class=&quot;line&quot; id=&quot;l6566&quot;&gt;   6566&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1466&amp;quot; id=&amp;quot;h4-0-1466&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        vec2 c = (posp.xy/posp.w + vec2(1.,1.)) * 0.5 * uViewport.zw;
   6605 <a href="#l6586" class="line" id="l6586">   6586</a> &lt;a href=&quot;#l6567&quot; class=&quot;line&quot; id=&quot;l6567&quot;&gt;   6567&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1467&amp;quot; id=&amp;quot;h4-0-1467&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        vec2 intersection = lineIntersection(
   6606 <a href="#l6587" class="line" id="l6587">   6587</a> &lt;a href=&quot;#l6568&quot; class=&quot;line&quot; id=&quot;l6568&quot;&gt;   6568&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1468&amp;quot; id=&amp;quot;h4-0-1468&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          c + (side * normalIn * inputs.weight / 2.),
   6607 <a href="#l6588" class="line" id="l6588">   6588</a> &lt;a href=&quot;#l6569&quot; class=&quot;line&quot; id=&quot;l6569&quot;&gt;   6569&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1469&amp;quot; id=&amp;quot;h4-0-1469&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          tangentIn,
   6608 <a href="#l6589" class="line" id="l6589">   6589</a> &lt;a href=&quot;#l6570&quot; class=&quot;line&quot; id=&quot;l6570&quot;&gt;   6570&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1470&amp;quot; id=&amp;quot;h4-0-1470&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          c + (side * normalOut * inputs.weight / 2.),
   6609 <a href="#l6590" class="line" id="l6590">   6590</a> &lt;a href=&quot;#l6571&quot; class=&quot;line&quot; id=&quot;l6571&quot;&gt;   6571&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1471&amp;quot; id=&amp;quot;h4-0-1471&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          tangentOut
   6610 <a href="#l6591" class="line" id="l6591">   6591</a> &lt;a href=&quot;#l6572&quot; class=&quot;line&quot; id=&quot;l6572&quot;&gt;   6572&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1472&amp;quot; id=&amp;quot;h4-0-1472&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        );
   6611 <a href="#l6592" class="line" id="l6592">   6592</a> &lt;a href=&quot;#l6573&quot; class=&quot;line&quot; id=&quot;l6573&quot;&gt;   6573&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1473&amp;quot; id=&amp;quot;h4-0-1473&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        offset = (intersection - c);
   6612 <a href="#l6593" class="line" id="l6593">   6593</a> &lt;a href=&quot;#l6574&quot; class=&quot;line&quot; id=&quot;l6574&quot;&gt;   6574&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1474&amp;quot; id=&amp;quot;h4-0-1474&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6613 <a href="#l6594" class="line" id="l6594">   6594</a> &lt;a href=&quot;#l6575&quot; class=&quot;line&quot; id=&quot;l6575&quot;&gt;   6575&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1475&amp;quot; id=&amp;quot;h4-0-1475&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // When lines are thick and the angle of the join approaches 180, the
   6614 <a href="#l6595" class="line" id="l6595">   6595</a> &lt;a href=&quot;#l6576&quot; class=&quot;line&quot; id=&quot;l6576&quot;&gt;   6576&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1476&amp;quot; id=&amp;quot;h4-0-1476&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // elbow might be really far from the center. We&amp;amp;#39;ll apply a limit to
   6615 <a href="#l6596" class="line" id="l6596">   6596</a> &lt;a href=&quot;#l6577&quot; class=&quot;line&quot; id=&quot;l6577&quot;&gt;   6577&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1477&amp;quot; id=&amp;quot;h4-0-1477&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // the magnitude to avoid lines going across the whole screen when this
   6616 <a href="#l6597" class="line" id="l6597">   6597</a> &lt;a href=&quot;#l6578&quot; class=&quot;line&quot; id=&quot;l6578&quot;&gt;   6578&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1478&amp;quot; id=&amp;quot;h4-0-1478&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // happens.
   6617 <a href="#l6598" class="line" id="l6598">   6598</a> &lt;a href=&quot;#l6579&quot; class=&quot;line&quot; id=&quot;l6579&quot;&gt;   6579&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1479&amp;quot; id=&amp;quot;h4-0-1479&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        float mag = length(offset);
   6618 <a href="#l6599" class="line" id="l6599">   6599</a> &lt;a href=&quot;#l6580&quot; class=&quot;line&quot; id=&quot;l6580&quot;&gt;   6580&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1480&amp;quot; id=&amp;quot;h4-0-1480&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        float maxMag = 3. * inputs.weight;
   6619 <a href="#l6600" class="line" id="l6600">   6600</a> &lt;a href=&quot;#l6581&quot; class=&quot;line&quot; id=&quot;l6581&quot;&gt;   6581&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1481&amp;quot; id=&amp;quot;h4-0-1481&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        if (mag &amp;amp;gt; maxMag) {
   6620 <a href="#l6601" class="line" id="l6601">   6601</a> &lt;a href=&quot;#l6582&quot; class=&quot;line&quot; id=&quot;l6582&quot;&gt;   6582&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1482&amp;quot; id=&amp;quot;h4-0-1482&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+          offset *= maxMag / mag;
   6621 <a href="#l6602" class="line" id="l6602">   6602</a> &lt;a href=&quot;#l6583&quot; class=&quot;line&quot; id=&quot;l6583&quot;&gt;   6583&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1483&amp;quot; id=&amp;quot;h4-0-1483&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        }
   6622 <a href="#l6603" class="line" id="l6603">   6603</a> &lt;a href=&quot;#l6584&quot; class=&quot;line&quot; id=&quot;l6584&quot;&gt;   6584&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1484&amp;quot; id=&amp;quot;h4-0-1484&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      } else if (sideEnum == 1.) {
   6623 <a href="#l6604" class="line" id="l6604">   6604</a> &lt;a href=&quot;#l6585&quot; class=&quot;line&quot; id=&quot;l6585&quot;&gt;   6585&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1485&amp;quot; id=&amp;quot;h4-0-1485&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        offset = side * normalIn * inputs.weight / 2.;
   6624 <a href="#l6605" class="line" id="l6605">   6605</a> &lt;a href=&quot;#l6586&quot; class=&quot;line&quot; id=&quot;l6586&quot;&gt;   6586&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1486&amp;quot; id=&amp;quot;h4-0-1486&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      } else if (sideEnum == 3.) {
   6625 <a href="#l6606" class="line" id="l6606">   6606</a> &lt;a href=&quot;#l6587&quot; class=&quot;line&quot; id=&quot;l6587&quot;&gt;   6587&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1487&amp;quot; id=&amp;quot;h4-0-1487&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        offset = side * normalOut * inputs.weight / 2.;
   6626 <a href="#l6607" class="line" id="l6607">   6607</a> &lt;a href=&quot;#l6588&quot; class=&quot;line&quot; id=&quot;l6588&quot;&gt;   6588&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1488&amp;quot; id=&amp;quot;h4-0-1488&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   6627 <a href="#l6608" class="line" id="l6608">   6608</a> &lt;a href=&quot;#l6589&quot; class=&quot;line&quot; id=&quot;l6589&quot;&gt;   6589&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1489&amp;quot; id=&amp;quot;h4-0-1489&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   6628 <a href="#l6609" class="line" id="l6609">   6609</a> &lt;a href=&quot;#l6590&quot; class=&quot;line&quot; id=&quot;l6590&quot;&gt;   6590&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1490&amp;quot; id=&amp;quot;h4-0-1490&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (uStrokeJoin == STROKE_JOIN_BEVEL) {
   6629 <a href="#l6610" class="line" id="l6610">   6610</a> &lt;a href=&quot;#l6591&quot; class=&quot;line&quot; id=&quot;l6591&quot;&gt;   6591&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1491&amp;quot; id=&amp;quot;h4-0-1491&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec2 avgNormal = vec2(-vTangent.y, vTangent.x);
   6630 <a href="#l6611" class="line" id="l6611">   6611</a> &lt;a href=&quot;#l6592&quot; class=&quot;line&quot; id=&quot;l6592&quot;&gt;   6592&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1492&amp;quot; id=&amp;quot;h4-0-1492&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vMaxDist = abs(dot(avgNormal, normalIn * inputs.weight / 2.));
   6631 <a href="#l6612" class="line" id="l6612">   6612</a> &lt;a href=&quot;#l6593&quot; class=&quot;line&quot; id=&quot;l6593&quot;&gt;   6593&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1493&amp;quot; id=&amp;quot;h4-0-1493&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    } else {
   6632 <a href="#l6613" class="line" id="l6613">   6613</a> &lt;a href=&quot;#l6594&quot; class=&quot;line&quot; id=&quot;l6594&quot;&gt;   6594&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1494&amp;quot; id=&amp;quot;h4-0-1494&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vMaxDist = inputs.weight / 2.;
   6633 <a href="#l6614" class="line" id="l6614">   6614</a> &lt;a href=&quot;#l6595&quot; class=&quot;line&quot; id=&quot;l6595&quot;&gt;   6595&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1495&amp;quot; id=&amp;quot;h4-0-1495&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   6634 <a href="#l6615" class="line" id="l6615">   6615</a> &lt;a href=&quot;#l6596&quot; class=&quot;line&quot; id=&quot;l6596&quot;&gt;   6596&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1496&amp;quot; id=&amp;quot;h4-0-1496&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  } else {
   6635 <a href="#l6616" class="line" id="l6616">   6616</a> &lt;a href=&quot;#l6597&quot; class=&quot;line&quot; id=&quot;l6597&quot;&gt;   6597&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1497&amp;quot; id=&amp;quot;h4-0-1497&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec2 tangent = aTangentIn == vec3(0.) ? tangentOut : tangentIn;
   6636 <a href="#l6617" class="line" id="l6617">   6617</a> &lt;a href=&quot;#l6598&quot; class=&quot;line&quot; id=&quot;l6598&quot;&gt;   6598&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1498&amp;quot; id=&amp;quot;h4-0-1498&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vTangent = tangent;
   6637 <a href="#l6618" class="line" id="l6618">   6618</a> &lt;a href=&quot;#l6599&quot; class=&quot;line&quot; id=&quot;l6599&quot;&gt;   6599&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1499&amp;quot; id=&amp;quot;h4-0-1499&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec2 normal = vec2(-tangent.y, tangent.x);
   6638 <a href="#l6619" class="line" id="l6619">   6619</a> &lt;a href=&quot;#l6600&quot; class=&quot;line&quot; id=&quot;l6600&quot;&gt;   6600&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1500&amp;quot; id=&amp;quot;h4-0-1500&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6639 <a href="#l6620" class="line" id="l6620">   6620</a> &lt;a href=&quot;#l6601&quot; class=&quot;line&quot; id=&quot;l6601&quot;&gt;   6601&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1501&amp;quot; id=&amp;quot;h4-0-1501&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float normalOffset = sign(aSide);
   6640 <a href="#l6621" class="line" id="l6621">   6621</a> &lt;a href=&quot;#l6602&quot; class=&quot;line&quot; id=&quot;l6602&quot;&gt;   6602&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1502&amp;quot; id=&amp;quot;h4-0-1502&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Caps will have side values of -2 or 2 on the edge of the cap that
   6641 <a href="#l6622" class="line" id="l6622">   6622</a> &lt;a href=&quot;#l6603&quot; class=&quot;line&quot; id=&quot;l6603&quot;&gt;   6603&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1503&amp;quot; id=&amp;quot;h4-0-1503&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // extends out from the line
   6642 <a href="#l6623" class="line" id="l6623">   6623</a> &lt;a href=&quot;#l6604&quot; class=&quot;line&quot; id=&quot;l6604&quot;&gt;   6604&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1504&amp;quot; id=&amp;quot;h4-0-1504&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float tangentOffset = abs(aSide) - 1.;
   6643 <a href="#l6624" class="line" id="l6624">   6624</a> &lt;a href=&quot;#l6605&quot; class=&quot;line&quot; id=&quot;l6605&quot;&gt;   6605&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1505&amp;quot; id=&amp;quot;h4-0-1505&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    offset = (normal * normalOffset + tangent * tangentOffset) *
   6644 <a href="#l6625" class="line" id="l6625">   6625</a> &lt;a href=&quot;#l6606&quot; class=&quot;line&quot; id=&quot;l6606&quot;&gt;   6606&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1506&amp;quot; id=&amp;quot;h4-0-1506&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      inputs.weight * 0.5;
   6645 <a href="#l6626" class="line" id="l6626">   6626</a> &lt;a href=&quot;#l6607&quot; class=&quot;line&quot; id=&quot;l6607&quot;&gt;   6607&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1507&amp;quot; id=&amp;quot;h4-0-1507&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vMaxDist = inputs.weight / 2.;
   6646 <a href="#l6627" class="line" id="l6627">   6627</a> &lt;a href=&quot;#l6608&quot; class=&quot;line&quot; id=&quot;l6608&quot;&gt;   6608&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1508&amp;quot; id=&amp;quot;h4-0-1508&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6647 <a href="#l6628" class="line" id="l6628">   6628</a> &lt;a href=&quot;#l6609&quot; class=&quot;line&quot; id=&quot;l6609&quot;&gt;   6609&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1509&amp;quot; id=&amp;quot;h4-0-1509&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6648 <a href="#l6629" class="line" id="l6629">   6629</a> &lt;a href=&quot;#l6610&quot; class=&quot;line&quot; id=&quot;l6610&quot;&gt;   6610&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1510&amp;quot; id=&amp;quot;h4-0-1510&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vCenter = p.xy;
   6649 <a href="#l6630" class="line" id="l6630">   6630</a> &lt;a href=&quot;#l6611&quot; class=&quot;line&quot; id=&quot;l6611&quot;&gt;   6611&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1511&amp;quot; id=&amp;quot;h4-0-1511&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vPosition = vCenter + offset;
   6650 <a href="#l6631" class="line" id="l6631">   6631</a> &lt;a href=&quot;#l6612&quot; class=&quot;line&quot; id=&quot;l6612&quot;&gt;   6612&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1512&amp;quot; id=&amp;quot;h4-0-1512&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vColor = inputs.color;
   6651 <a href="#l6632" class="line" id="l6632">   6632</a> &lt;a href=&quot;#l6613&quot; class=&quot;line&quot; id=&quot;l6613&quot;&gt;   6613&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1513&amp;quot; id=&amp;quot;h4-0-1513&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6652 <a href="#l6633" class="line" id="l6633">   6633</a> &lt;a href=&quot;#l6614&quot; class=&quot;line&quot; id=&quot;l6614&quot;&gt;   6614&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1514&amp;quot; id=&amp;quot;h4-0-1514&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position.xy = p.xy + offset.xy * curPerspScale;
   6653 <a href="#l6634" class="line" id="l6634">   6634</a> &lt;a href=&quot;#l6615&quot; class=&quot;line&quot; id=&quot;l6615&quot;&gt;   6615&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1515&amp;quot; id=&amp;quot;h4-0-1515&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position.zw = p.zw;
   6654 <a href="#l6635" class="line" id="l6635">   6635</a> &lt;a href=&quot;#l6616&quot; class=&quot;line&quot; id=&quot;l6616&quot;&gt;   6616&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1516&amp;quot; id=&amp;quot;h4-0-1516&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6655 <a href="#l6636" class="line" id="l6636">   6636</a> &lt;a href=&quot;#l6617&quot; class=&quot;line&quot; id=&quot;l6617&quot;&gt;   6617&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1517&amp;quot; id=&amp;quot;h4-0-1517&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterVertex();
   6656 <a href="#l6637" class="line" id="l6637">   6637</a> &lt;a href=&quot;#l6618&quot; class=&quot;line&quot; id=&quot;l6618&quot;&gt;   6618&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1518&amp;quot; id=&amp;quot;h4-0-1518&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6657 <a href="#l6638" class="line" id="l6638">   6638</a> &lt;a href=&quot;#l6619&quot; class=&quot;line&quot; id=&quot;l6619&quot;&gt;   6619&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1519&amp;quot; id=&amp;quot;h4-0-1519&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Tb=`precision highp int;
   6658 <a href="#l6639" class="line" id="l6639">   6639</a> &lt;a href=&quot;#l6620&quot; class=&quot;line&quot; id=&quot;l6620&quot;&gt;   6620&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1520&amp;quot; id=&amp;quot;h4-0-1520&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   6659 <a href="#l6640" class="line" id="l6640">   6640</a> &lt;a href=&quot;#l6621&quot; class=&quot;line&quot; id=&quot;l6621&quot;&gt;   6621&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1521&amp;quot; id=&amp;quot;h4-0-1521&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6660 <a href="#l6641" class="line" id="l6641">   6641</a> &lt;a href=&quot;#l6622&quot; class=&quot;line&quot; id=&quot;l6622&quot;&gt;   6622&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1522&amp;quot; id=&amp;quot;h4-0-1522&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uMaterialColor;
   6661 <a href="#l6642" class="line" id="l6642">   6642</a> &lt;a href=&quot;#l6623&quot; class=&quot;line&quot; id=&quot;l6623&quot;&gt;   6623&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1523&amp;quot; id=&amp;quot;h4-0-1523&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uStrokeCap;
   6662 <a href="#l6643" class="line" id="l6643">   6643</a> &lt;a href=&quot;#l6624&quot; class=&quot;line&quot; id=&quot;l6624&quot;&gt;   6624&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1524&amp;quot; id=&amp;quot;h4-0-1524&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform int uStrokeJoin;
   6663 <a href="#l6644" class="line" id="l6644">   6644</a> &lt;a href=&quot;#l6625&quot; class=&quot;line&quot; id=&quot;l6625&quot;&gt;   6625&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1525&amp;quot; id=&amp;quot;h4-0-1525&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6664 <a href="#l6645" class="line" id="l6645">   6645</a> &lt;a href=&quot;#l6626&quot; class=&quot;line&quot; id=&quot;l6626&quot;&gt;   6626&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1526&amp;quot; id=&amp;quot;h4-0-1526&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec4 vColor;
   6665 <a href="#l6646" class="line" id="l6646">   6646</a> &lt;a href=&quot;#l6627&quot; class=&quot;line&quot; id=&quot;l6627&quot;&gt;   6627&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1527&amp;quot; id=&amp;quot;h4-0-1527&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 vTangent;
   6666 <a href="#l6647" class="line" id="l6647">   6647</a> &lt;a href=&quot;#l6628&quot; class=&quot;line&quot; id=&quot;l6628&quot;&gt;   6628&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1528&amp;quot; id=&amp;quot;h4-0-1528&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 vCenter;
   6667 <a href="#l6648" class="line" id="l6648">   6648</a> &lt;a href=&quot;#l6629&quot; class=&quot;line&quot; id=&quot;l6629&quot;&gt;   6629&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1529&amp;quot; id=&amp;quot;h4-0-1529&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 vPosition;
   6668 <a href="#l6649" class="line" id="l6649">   6649</a> &lt;a href=&quot;#l6630&quot; class=&quot;line&quot; id=&quot;l6630&quot;&gt;   6630&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1530&amp;quot; id=&amp;quot;h4-0-1530&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN float vStrokeWeight;
   6669 <a href="#l6650" class="line" id="l6650">   6650</a> &lt;a href=&quot;#l6631&quot; class=&quot;line&quot; id=&quot;l6631&quot;&gt;   6631&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1531&amp;quot; id=&amp;quot;h4-0-1531&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN float vMaxDist;
   6670 <a href="#l6651" class="line" id="l6651">   6651</a> &lt;a href=&quot;#l6632&quot; class=&quot;line&quot; id=&quot;l6632&quot;&gt;   6632&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1532&amp;quot; id=&amp;quot;h4-0-1532&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN float vCap;
   6671 <a href="#l6652" class="line" id="l6652">   6652</a> &lt;a href=&quot;#l6633&quot; class=&quot;line&quot; id=&quot;l6633&quot;&gt;   6633&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1533&amp;quot; id=&amp;quot;h4-0-1533&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN float vJoin;
   6672 <a href="#l6653" class="line" id="l6653">   6653</a> &lt;a href=&quot;#l6634&quot; class=&quot;line&quot; id=&quot;l6634&quot;&gt;   6634&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1534&amp;quot; id=&amp;quot;h4-0-1534&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6673 <a href="#l6654" class="line" id="l6654">   6654</a> &lt;a href=&quot;#l6635&quot; class=&quot;line&quot; id=&quot;l6635&quot;&gt;   6635&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1535&amp;quot; id=&amp;quot;h4-0-1535&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float distSquared(vec2 a, vec2 b) {
   6674 <a href="#l6655" class="line" id="l6655">   6655</a> &lt;a href=&quot;#l6636&quot; class=&quot;line&quot; id=&quot;l6636&quot;&gt;   6636&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1536&amp;quot; id=&amp;quot;h4-0-1536&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 aToB = b - a;
   6675 <a href="#l6656" class="line" id="l6656">   6656</a> &lt;a href=&quot;#l6637&quot; class=&quot;line&quot; id=&quot;l6637&quot;&gt;   6637&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1537&amp;quot; id=&amp;quot;h4-0-1537&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return dot(aToB, aToB);
   6676 <a href="#l6657" class="line" id="l6657">   6657</a> &lt;a href=&quot;#l6638&quot; class=&quot;line&quot; id=&quot;l6638&quot;&gt;   6638&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1538&amp;quot; id=&amp;quot;h4-0-1538&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6677 <a href="#l6658" class="line" id="l6658">   6658</a> &lt;a href=&quot;#l6639&quot; class=&quot;line&quot; id=&quot;l6639&quot;&gt;   6639&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1539&amp;quot; id=&amp;quot;h4-0-1539&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6678 <a href="#l6659" class="line" id="l6659">   6659</a> &lt;a href=&quot;#l6640&quot; class=&quot;line&quot; id=&quot;l6640&quot;&gt;   6640&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1540&amp;quot; id=&amp;quot;h4-0-1540&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct Inputs {
   6679 <a href="#l6660" class="line" id="l6660">   6660</a> &lt;a href=&quot;#l6641&quot; class=&quot;line&quot; id=&quot;l6641&quot;&gt;   6641&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1541&amp;quot; id=&amp;quot;h4-0-1541&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color;
   6680 <a href="#l6661" class="line" id="l6661">   6661</a> &lt;a href=&quot;#l6642&quot; class=&quot;line&quot; id=&quot;l6642&quot;&gt;   6642&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1542&amp;quot; id=&amp;quot;h4-0-1542&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 tangent;
   6681 <a href="#l6662" class="line" id="l6662">   6662</a> &lt;a href=&quot;#l6643&quot; class=&quot;line&quot; id=&quot;l6643&quot;&gt;   6643&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1543&amp;quot; id=&amp;quot;h4-0-1543&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 center;
   6682 <a href="#l6663" class="line" id="l6663">   6663</a> &lt;a href=&quot;#l6644&quot; class=&quot;line&quot; id=&quot;l6644&quot;&gt;   6644&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1544&amp;quot; id=&amp;quot;h4-0-1544&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 position;
   6683 <a href="#l6664" class="line" id="l6664">   6664</a> &lt;a href=&quot;#l6645&quot; class=&quot;line&quot; id=&quot;l6645&quot;&gt;   6645&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1545&amp;quot; id=&amp;quot;h4-0-1545&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float strokeWeight;
   6684 <a href="#l6665" class="line" id="l6665">   6665</a> &lt;a href=&quot;#l6646&quot; class=&quot;line&quot; id=&quot;l6646&quot;&gt;   6646&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1546&amp;quot; id=&amp;quot;h4-0-1546&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   6685 <a href="#l6666" class="line" id="l6666">   6666</a> &lt;a href=&quot;#l6647&quot; class=&quot;line&quot; id=&quot;l6647&quot;&gt;   6647&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1547&amp;quot; id=&amp;quot;h4-0-1547&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6686 <a href="#l6667" class="line" id="l6667">   6667</a> &lt;a href=&quot;#l6648&quot; class=&quot;line&quot; id=&quot;l6648&quot;&gt;   6648&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1548&amp;quot; id=&amp;quot;h4-0-1548&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   6687 <a href="#l6668" class="line" id="l6668">   6668</a> &lt;a href=&quot;#l6649&quot; class=&quot;line&quot; id=&quot;l6649&quot;&gt;   6649&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1549&amp;quot; id=&amp;quot;h4-0-1549&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeFragment();
   6688 <a href="#l6669" class="line" id="l6669">   6669</a> &lt;a href=&quot;#l6650&quot; class=&quot;line&quot; id=&quot;l6650&quot;&gt;   6650&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1550&amp;quot; id=&amp;quot;h4-0-1550&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6689 <a href="#l6670" class="line" id="l6670">   6670</a> &lt;a href=&quot;#l6651&quot; class=&quot;line&quot; id=&quot;l6651&quot;&gt;   6651&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1551&amp;quot; id=&amp;quot;h4-0-1551&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  Inputs inputs;
   6690 <a href="#l6671" class="line" id="l6671">   6671</a> &lt;a href=&quot;#l6652&quot; class=&quot;line&quot; id=&quot;l6652&quot;&gt;   6652&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1552&amp;quot; id=&amp;quot;h4-0-1552&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.color = vColor;
   6691 <a href="#l6672" class="line" id="l6672">   6672</a> &lt;a href=&quot;#l6653&quot; class=&quot;line&quot; id=&quot;l6653&quot;&gt;   6653&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1553&amp;quot; id=&amp;quot;h4-0-1553&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.tangent = vTangent;
   6692 <a href="#l6673" class="line" id="l6673">   6673</a> &lt;a href=&quot;#l6654&quot; class=&quot;line&quot; id=&quot;l6654&quot;&gt;   6654&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1554&amp;quot; id=&amp;quot;h4-0-1554&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.center = vCenter;
   6693 <a href="#l6674" class="line" id="l6674">   6674</a> &lt;a href=&quot;#l6655&quot; class=&quot;line&quot; id=&quot;l6655&quot;&gt;   6655&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1555&amp;quot; id=&amp;quot;h4-0-1555&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.position = vPosition;
   6694 <a href="#l6675" class="line" id="l6675">   6675</a> &lt;a href=&quot;#l6656&quot; class=&quot;line&quot; id=&quot;l6656&quot;&gt;   6656&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1556&amp;quot; id=&amp;quot;h4-0-1556&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.strokeWeight = vStrokeWeight;
   6695 <a href="#l6676" class="line" id="l6676">   6676</a> &lt;a href=&quot;#l6657&quot; class=&quot;line&quot; id=&quot;l6657&quot;&gt;   6657&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1557&amp;quot; id=&amp;quot;h4-0-1557&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs = HOOK_getPixelInputs(inputs);
   6696 <a href="#l6677" class="line" id="l6677">   6677</a> &lt;a href=&quot;#l6658&quot; class=&quot;line&quot; id=&quot;l6658&quot;&gt;   6658&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1558&amp;quot; id=&amp;quot;h4-0-1558&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6697 <a href="#l6678" class="line" id="l6678">   6678</a> &lt;a href=&quot;#l6659&quot; class=&quot;line&quot; id=&quot;l6659&quot;&gt;   6659&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1559&amp;quot; id=&amp;quot;h4-0-1559&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (vCap &amp;amp;gt; 0.) {
   6698 <a href="#l6679" class="line" id="l6679">   6679</a> &lt;a href=&quot;#l6660&quot; class=&quot;line&quot; id=&quot;l6660&quot;&gt;   6660&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1560&amp;quot; id=&amp;quot;h4-0-1560&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (
   6699 <a href="#l6680" class="line" id="l6680">   6680</a> &lt;a href=&quot;#l6661&quot; class=&quot;line&quot; id=&quot;l6661&quot;&gt;   6661&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1561&amp;quot; id=&amp;quot;h4-0-1561&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      uStrokeCap == STROKE_CAP_ROUND &amp;amp;amp;&amp;amp;amp;
   6700 <a href="#l6681" class="line" id="l6681">   6681</a> &lt;a href=&quot;#l6662&quot; class=&quot;line&quot; id=&quot;l6662&quot;&gt;   6662&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1562&amp;quot; id=&amp;quot;h4-0-1562&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      HOOK_shouldDiscard(distSquared(inputs.position, inputs.center) &amp;amp;gt; inputs.strokeWeight * inputs.strokeWeight * 0.25)
   6701 <a href="#l6682" class="line" id="l6682">   6682</a> &lt;a href=&quot;#l6663&quot; class=&quot;line&quot; id=&quot;l6663&quot;&gt;   6663&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1563&amp;quot; id=&amp;quot;h4-0-1563&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    ) {
   6702 <a href="#l6683" class="line" id="l6683">   6683</a> &lt;a href=&quot;#l6664&quot; class=&quot;line&quot; id=&quot;l6664&quot;&gt;   6664&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1564&amp;quot; id=&amp;quot;h4-0-1564&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      discard;
   6703 <a href="#l6684" class="line" id="l6684">   6684</a> &lt;a href=&quot;#l6665&quot; class=&quot;line&quot; id=&quot;l6665&quot;&gt;   6665&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1565&amp;quot; id=&amp;quot;h4-0-1565&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    } else if (
   6704 <a href="#l6685" class="line" id="l6685">   6685</a> &lt;a href=&quot;#l6666&quot; class=&quot;line&quot; id=&quot;l6666&quot;&gt;   6666&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1566&amp;quot; id=&amp;quot;h4-0-1566&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      uStrokeCap == STROKE_CAP_SQUARE &amp;amp;amp;&amp;amp;amp;
   6705 <a href="#l6686" class="line" id="l6686">   6686</a> &lt;a href=&quot;#l6667&quot; class=&quot;line&quot; id=&quot;l6667&quot;&gt;   6667&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1567&amp;quot; id=&amp;quot;h4-0-1567&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      HOOK_shouldDiscard(dot(inputs.position - inputs.center, inputs.tangent) &amp;amp;gt; 0.)
   6706 <a href="#l6687" class="line" id="l6687">   6687</a> &lt;a href=&quot;#l6668&quot; class=&quot;line&quot; id=&quot;l6668&quot;&gt;   6668&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1568&amp;quot; id=&amp;quot;h4-0-1568&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    ) {
   6707 <a href="#l6688" class="line" id="l6688">   6688</a> &lt;a href=&quot;#l6669&quot; class=&quot;line&quot; id=&quot;l6669&quot;&gt;   6669&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1569&amp;quot; id=&amp;quot;h4-0-1569&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      discard;
   6708 <a href="#l6689" class="line" id="l6689">   6689</a> &lt;a href=&quot;#l6670&quot; class=&quot;line&quot; id=&quot;l6670&quot;&gt;   6670&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1570&amp;quot; id=&amp;quot;h4-0-1570&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Use full area for PROJECT
   6709 <a href="#l6690" class="line" id="l6690">   6690</a> &lt;a href=&quot;#l6671&quot; class=&quot;line&quot; id=&quot;l6671&quot;&gt;   6671&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1571&amp;quot; id=&amp;quot;h4-0-1571&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    } else if (HOOK_shouldDiscard(false)) {
   6710 <a href="#l6691" class="line" id="l6691">   6691</a> &lt;a href=&quot;#l6672&quot; class=&quot;line&quot; id=&quot;l6672&quot;&gt;   6672&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1572&amp;quot; id=&amp;quot;h4-0-1572&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      discard;
   6711 <a href="#l6692" class="line" id="l6692">   6692</a> &lt;a href=&quot;#l6673&quot; class=&quot;line&quot; id=&quot;l6673&quot;&gt;   6673&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1573&amp;quot; id=&amp;quot;h4-0-1573&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   6712 <a href="#l6693" class="line" id="l6693">   6693</a> &lt;a href=&quot;#l6674&quot; class=&quot;line&quot; id=&quot;l6674&quot;&gt;   6674&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1574&amp;quot; id=&amp;quot;h4-0-1574&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  } else if (vJoin &amp;amp;gt; 0.) {
   6713 <a href="#l6694" class="line" id="l6694">   6694</a> &lt;a href=&quot;#l6675&quot; class=&quot;line&quot; id=&quot;l6675&quot;&gt;   6675&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1575&amp;quot; id=&amp;quot;h4-0-1575&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (
   6714 <a href="#l6695" class="line" id="l6695">   6695</a> &lt;a href=&quot;#l6676&quot; class=&quot;line&quot; id=&quot;l6676&quot;&gt;   6676&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1576&amp;quot; id=&amp;quot;h4-0-1576&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      uStrokeJoin == STROKE_JOIN_ROUND &amp;amp;amp;&amp;amp;amp;
   6715 <a href="#l6696" class="line" id="l6696">   6696</a> &lt;a href=&quot;#l6677&quot; class=&quot;line&quot; id=&quot;l6677&quot;&gt;   6677&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1577&amp;quot; id=&amp;quot;h4-0-1577&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      HOOK_shouldDiscard(distSquared(inputs.position, inputs.center) &amp;amp;gt; inputs.strokeWeight * inputs.strokeWeight * 0.25)
   6716 <a href="#l6697" class="line" id="l6697">   6697</a> &lt;a href=&quot;#l6678&quot; class=&quot;line&quot; id=&quot;l6678&quot;&gt;   6678&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1578&amp;quot; id=&amp;quot;h4-0-1578&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    ) {
   6717 <a href="#l6698" class="line" id="l6698">   6698</a> &lt;a href=&quot;#l6679&quot; class=&quot;line&quot; id=&quot;l6679&quot;&gt;   6679&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1579&amp;quot; id=&amp;quot;h4-0-1579&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      discard;
   6718 <a href="#l6699" class="line" id="l6699">   6699</a> &lt;a href=&quot;#l6680&quot; class=&quot;line&quot; id=&quot;l6680&quot;&gt;   6680&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1580&amp;quot; id=&amp;quot;h4-0-1580&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    } else if (uStrokeJoin == STROKE_JOIN_BEVEL) {
   6719 <a href="#l6700" class="line" id="l6700">   6700</a> &lt;a href=&quot;#l6681&quot; class=&quot;line&quot; id=&quot;l6681&quot;&gt;   6681&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1581&amp;quot; id=&amp;quot;h4-0-1581&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec2 normal = vec2(-inputs.tangent.y, inputs.tangent.x);
   6720 <a href="#l6701" class="line" id="l6701">   6701</a> &lt;a href=&quot;#l6682&quot; class=&quot;line&quot; id=&quot;l6682&quot;&gt;   6682&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1582&amp;quot; id=&amp;quot;h4-0-1582&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      if (HOOK_shouldDiscard(abs(dot(inputs.position - inputs.center, normal)) &amp;amp;gt; vMaxDist)) {
   6721 <a href="#l6702" class="line" id="l6702">   6702</a> &lt;a href=&quot;#l6683&quot; class=&quot;line&quot; id=&quot;l6683&quot;&gt;   6683&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1583&amp;quot; id=&amp;quot;h4-0-1583&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        discard;
   6722 <a href="#l6703" class="line" id="l6703">   6703</a> &lt;a href=&quot;#l6684&quot; class=&quot;line&quot; id=&quot;l6684&quot;&gt;   6684&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1584&amp;quot; id=&amp;quot;h4-0-1584&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   6723 <a href="#l6704" class="line" id="l6704">   6704</a> &lt;a href=&quot;#l6685&quot; class=&quot;line&quot; id=&quot;l6685&quot;&gt;   6685&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1585&amp;quot; id=&amp;quot;h4-0-1585&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Use full area for MITER
   6724 <a href="#l6705" class="line" id="l6705">   6705</a> &lt;a href=&quot;#l6686&quot; class=&quot;line&quot; id=&quot;l6686&quot;&gt;   6686&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1586&amp;quot; id=&amp;quot;h4-0-1586&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    } else if (HOOK_shouldDiscard(false)) {
   6725 <a href="#l6706" class="line" id="l6706">   6706</a> &lt;a href=&quot;#l6687&quot; class=&quot;line&quot; id=&quot;l6687&quot;&gt;   6687&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1587&amp;quot; id=&amp;quot;h4-0-1587&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      discard;
   6726 <a href="#l6707" class="line" id="l6707">   6707</a> &lt;a href=&quot;#l6688&quot; class=&quot;line&quot; id=&quot;l6688&quot;&gt;   6688&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1588&amp;quot; id=&amp;quot;h4-0-1588&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   6727 <a href="#l6708" class="line" id="l6708">   6708</a> &lt;a href=&quot;#l6689&quot; class=&quot;line&quot; id=&quot;l6689&quot;&gt;   6689&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1589&amp;quot; id=&amp;quot;h4-0-1589&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6728 <a href="#l6709" class="line" id="l6709">   6709</a> &lt;a href=&quot;#l6690&quot; class=&quot;line&quot; id=&quot;l6690&quot;&gt;   6690&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1590&amp;quot; id=&amp;quot;h4-0-1590&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR = HOOK_getFinalColor(vec4(inputs.color.rgb, 1.) * inputs.color.a);
   6729 <a href="#l6710" class="line" id="l6710">   6710</a> &lt;a href=&quot;#l6691&quot; class=&quot;line&quot; id=&quot;l6691&quot;&gt;   6691&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1591&amp;quot; id=&amp;quot;h4-0-1591&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterFragment();
   6730 <a href="#l6711" class="line" id="l6711">   6711</a> &lt;a href=&quot;#l6692&quot; class=&quot;line&quot; id=&quot;l6692&quot;&gt;   6692&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1592&amp;quot; id=&amp;quot;h4-0-1592&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6731 <a href="#l6712" class="line" id="l6712">   6712</a> &lt;a href=&quot;#l6693&quot; class=&quot;line&quot; id=&quot;l6693&quot;&gt;   6693&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1593&amp;quot; id=&amp;quot;h4-0-1593&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Nb=`IN vec3 aPosition;
   6732 <a href="#l6713" class="line" id="l6713">   6713</a> &lt;a href=&quot;#l6694&quot; class=&quot;line&quot; id=&quot;l6694&quot;&gt;   6694&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1594&amp;quot; id=&amp;quot;h4-0-1594&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float uPointSize;
   6733 <a href="#l6714" class="line" id="l6714">   6714</a> &lt;a href=&quot;#l6695&quot; class=&quot;line&quot; id=&quot;l6695&quot;&gt;   6695&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1595&amp;quot; id=&amp;quot;h4-0-1595&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+OUT float vStrokeWeight;
   6734 <a href="#l6715" class="line" id="l6715">   6715</a> &lt;a href=&quot;#l6696&quot; class=&quot;line&quot; id=&quot;l6696&quot;&gt;   6696&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1596&amp;quot; id=&amp;quot;h4-0-1596&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelViewMatrix;
   6735 <a href="#l6716" class="line" id="l6716">   6716</a> &lt;a href=&quot;#l6697&quot; class=&quot;line&quot; id=&quot;l6697&quot;&gt;   6697&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1597&amp;quot; id=&amp;quot;h4-0-1597&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   6736 <a href="#l6717" class="line" id="l6717">   6717</a> &lt;a href=&quot;#l6698&quot; class=&quot;line&quot; id=&quot;l6698&quot;&gt;   6698&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1598&amp;quot; id=&amp;quot;h4-0-1598&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6737 <a href="#l6718" class="line" id="l6718">   6718</a> &lt;a href=&quot;#l6699&quot; class=&quot;line&quot; id=&quot;l6699&quot;&gt;   6699&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1599&amp;quot; id=&amp;quot;h4-0-1599&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   6738 <a href="#l6719" class="line" id="l6719">   6719</a> &lt;a href=&quot;#l6700&quot; class=&quot;line&quot; id=&quot;l6700&quot;&gt;   6700&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1600&amp;quot; id=&amp;quot;h4-0-1600&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeVertex();
   6739 <a href="#l6720" class="line" id="l6720">   6720</a> &lt;a href=&quot;#l6701&quot; class=&quot;line&quot; id=&quot;l6701&quot;&gt;   6701&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1601&amp;quot; id=&amp;quot;h4-0-1601&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 viewModelPosition = vec4(HOOK_getWorldPosition(
   6740 <a href="#l6721" class="line" id="l6721">   6721</a> &lt;a href=&quot;#l6702&quot; class=&quot;line&quot; id=&quot;l6702&quot;&gt;   6702&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1602&amp;quot; id=&amp;quot;h4-0-1602&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    (uModelViewMatrix * vec4(HOOK_getLocalPosition(aPosition), 1.0)).xyz
   6741 <a href="#l6722" class="line" id="l6722">   6722</a> &lt;a href=&quot;#l6703&quot; class=&quot;line&quot; id=&quot;l6703&quot;&gt;   6703&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1603&amp;quot; id=&amp;quot;h4-0-1603&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  ), 1.);
   6742 <a href="#l6723" class="line" id="l6723">   6723</a> &lt;a href=&quot;#l6704&quot; class=&quot;line&quot; id=&quot;l6704&quot;&gt;   6704&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1604&amp;quot; id=&amp;quot;h4-0-1604&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position = uProjectionMatrix * viewModelPosition;
   6743 <a href="#l6724" class="line" id="l6724">   6724</a> &lt;a href=&quot;#l6705&quot; class=&quot;line&quot; id=&quot;l6705&quot;&gt;   6705&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1605&amp;quot; id=&amp;quot;h4-0-1605&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6744 <a href="#l6725" class="line" id="l6725">   6725</a> &lt;a href=&quot;#l6706&quot; class=&quot;line&quot; id=&quot;l6706&quot;&gt;   6706&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1606&amp;quot; id=&amp;quot;h4-0-1606&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float pointSize = HOOK_getPointSize(uPointSize);
   6745 <a href="#l6726" class="line" id="l6726">   6726</a> &lt;a href=&quot;#l6707&quot; class=&quot;line&quot; id=&quot;l6707&quot;&gt;   6707&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1607&amp;quot; id=&amp;quot;h4-0-1607&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6746 <a href="#l6727" class="line" id="l6727">   6727</a> &lt;a href=&quot;#l6708&quot; class=&quot;line&quot; id=&quot;l6708&quot;&gt;   6708&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1608&amp;quot; id=&amp;quot;h4-0-1608&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_PointSize = pointSize;
   6747 <a href="#l6728" class="line" id="l6728">   6728</a> &lt;a href=&quot;#l6709&quot; class=&quot;line&quot; id=&quot;l6709&quot;&gt;   6709&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1609&amp;quot; id=&amp;quot;h4-0-1609&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vStrokeWeight = pointSize;
   6748 <a href="#l6729" class="line" id="l6729">   6729</a> &lt;a href=&quot;#l6710&quot; class=&quot;line&quot; id=&quot;l6710&quot;&gt;   6710&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1610&amp;quot; id=&amp;quot;h4-0-1610&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterVertex();
   6749 <a href="#l6730" class="line" id="l6730">   6730</a> &lt;a href=&quot;#l6711&quot; class=&quot;line&quot; id=&quot;l6711&quot;&gt;   6711&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1611&amp;quot; id=&amp;quot;h4-0-1611&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6750 <a href="#l6731" class="line" id="l6731">   6731</a> &lt;a href=&quot;#l6712&quot; class=&quot;line&quot; id=&quot;l6712&quot;&gt;   6712&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1612&amp;quot; id=&amp;quot;h4-0-1612&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Ib=`precision mediump int;
   6751 <a href="#l6732" class="line" id="l6732">   6732</a> &lt;a href=&quot;#l6713&quot; class=&quot;line&quot; id=&quot;l6713&quot;&gt;   6713&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1613&amp;quot; id=&amp;quot;h4-0-1613&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec4 uMaterialColor;
   6752 <a href="#l6733" class="line" id="l6733">   6733</a> &lt;a href=&quot;#l6714&quot; class=&quot;line&quot; id=&quot;l6714&quot;&gt;   6714&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1614&amp;quot; id=&amp;quot;h4-0-1614&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN float vStrokeWeight;
   6753 <a href="#l6734" class="line" id="l6734">   6734</a> &lt;a href=&quot;#l6715&quot; class=&quot;line&quot; id=&quot;l6715&quot;&gt;   6715&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1615&amp;quot; id=&amp;quot;h4-0-1615&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6754 <a href="#l6735" class="line" id="l6735">   6735</a> &lt;a href=&quot;#l6716&quot; class=&quot;line&quot; id=&quot;l6716&quot;&gt;   6716&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1616&amp;quot; id=&amp;quot;h4-0-1616&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(){
   6755 <a href="#l6736" class="line" id="l6736">   6736</a> &lt;a href=&quot;#l6717&quot; class=&quot;line&quot; id=&quot;l6717&quot;&gt;   6717&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1617&amp;quot; id=&amp;quot;h4-0-1617&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_beforeFragment();
   6756 <a href="#l6737" class="line" id="l6737">   6737</a> &lt;a href=&quot;#l6718&quot; class=&quot;line&quot; id=&quot;l6718&quot;&gt;   6718&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1618&amp;quot; id=&amp;quot;h4-0-1618&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float mask = 0.0;
   6757 <a href="#l6738" class="line" id="l6738">   6738</a> &lt;a href=&quot;#l6719&quot; class=&quot;line&quot; id=&quot;l6719&quot;&gt;   6719&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1619&amp;quot; id=&amp;quot;h4-0-1619&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6758 <a href="#l6739" class="line" id="l6739">   6739</a> &lt;a href=&quot;#l6720&quot; class=&quot;line&quot; id=&quot;l6720&quot;&gt;   6720&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1620&amp;quot; id=&amp;quot;h4-0-1620&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // make a circular mask using the gl_PointCoord (goes from 0 - 1 on a point)
   6759 <a href="#l6740" class="line" id="l6740">   6740</a> &lt;a href=&quot;#l6721&quot; class=&quot;line&quot; id=&quot;l6721&quot;&gt;   6721&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1621&amp;quot; id=&amp;quot;h4-0-1621&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // might be able to get a nicer edge on big strokeweights with smoothstep but slightly less performant
   6760 <a href="#l6741" class="line" id="l6741">   6741</a> &lt;a href=&quot;#l6722&quot; class=&quot;line&quot; id=&quot;l6722&quot;&gt;   6722&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1622&amp;quot; id=&amp;quot;h4-0-1622&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6761 <a href="#l6742" class="line" id="l6742">   6742</a> &lt;a href=&quot;#l6723&quot; class=&quot;line&quot; id=&quot;l6723&quot;&gt;   6723&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1623&amp;quot; id=&amp;quot;h4-0-1623&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  mask = step(0.98, length(gl_PointCoord * 2.0 - 1.0));
   6762 <a href="#l6743" class="line" id="l6743">   6743</a> &lt;a href=&quot;#l6724&quot; class=&quot;line&quot; id=&quot;l6724&quot;&gt;   6724&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1624&amp;quot; id=&amp;quot;h4-0-1624&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6763 <a href="#l6744" class="line" id="l6744">   6744</a> &lt;a href=&quot;#l6725&quot; class=&quot;line&quot; id=&quot;l6725&quot;&gt;   6725&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1625&amp;quot; id=&amp;quot;h4-0-1625&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // if strokeWeight is 1 or less lets just draw a square
   6764 <a href="#l6745" class="line" id="l6745">   6745</a> &lt;a href=&quot;#l6726&quot; class=&quot;line&quot; id=&quot;l6726&quot;&gt;   6726&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1626&amp;quot; id=&amp;quot;h4-0-1626&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // this prevents weird artifacting from carving circles when our points are really small
   6765 <a href="#l6746" class="line" id="l6746">   6746</a> &lt;a href=&quot;#l6727&quot; class=&quot;line&quot; id=&quot;l6727&quot;&gt;   6727&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1627&amp;quot; id=&amp;quot;h4-0-1627&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // if strokeWeight is larger than 1, we just use it as is
   6766 <a href="#l6747" class="line" id="l6747">   6747</a> &lt;a href=&quot;#l6728&quot; class=&quot;line&quot; id=&quot;l6728&quot;&gt;   6728&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1628&amp;quot; id=&amp;quot;h4-0-1628&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6767 <a href="#l6748" class="line" id="l6748">   6748</a> &lt;a href=&quot;#l6729&quot; class=&quot;line&quot; id=&quot;l6729&quot;&gt;   6729&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1629&amp;quot; id=&amp;quot;h4-0-1629&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  mask = mix(0.0, mask, clamp(floor(vStrokeWeight - 0.5),0.0,1.0));
   6768 <a href="#l6749" class="line" id="l6749">   6749</a> &lt;a href=&quot;#l6730&quot; class=&quot;line&quot; id=&quot;l6730&quot;&gt;   6730&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1630&amp;quot; id=&amp;quot;h4-0-1630&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6769 <a href="#l6750" class="line" id="l6750">   6750</a> &lt;a href=&quot;#l6731&quot; class=&quot;line&quot; id=&quot;l6731&quot;&gt;   6731&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1631&amp;quot; id=&amp;quot;h4-0-1631&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // throw away the borders of the mask
   6770 <a href="#l6751" class="line" id="l6751">   6751</a> &lt;a href=&quot;#l6732&quot; class=&quot;line&quot; id=&quot;l6732&quot;&gt;   6732&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1632&amp;quot; id=&amp;quot;h4-0-1632&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // otherwise we get weird alpha blending issues
   6771 <a href="#l6752" class="line" id="l6752">   6752</a> &lt;a href=&quot;#l6733&quot; class=&quot;line&quot; id=&quot;l6733&quot;&gt;   6733&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1633&amp;quot; id=&amp;quot;h4-0-1633&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6772 <a href="#l6753" class="line" id="l6753">   6753</a> &lt;a href=&quot;#l6734&quot; class=&quot;line&quot; id=&quot;l6734&quot;&gt;   6734&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1634&amp;quot; id=&amp;quot;h4-0-1634&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if(HOOK_shouldDiscard(mask &amp;amp;gt; 0.98)){
   6773 <a href="#l6754" class="line" id="l6754">   6754</a> &lt;a href=&quot;#l6735&quot; class=&quot;line&quot; id=&quot;l6735&quot;&gt;   6735&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1635&amp;quot; id=&amp;quot;h4-0-1635&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    discard;
   6774 <a href="#l6755" class="line" id="l6755">   6755</a> &lt;a href=&quot;#l6736&quot; class=&quot;line&quot; id=&quot;l6736&quot;&gt;   6736&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1636&amp;quot; id=&amp;quot;h4-0-1636&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6775 <a href="#l6756" class="line" id="l6756">   6756</a> &lt;a href=&quot;#l6737&quot; class=&quot;line&quot; id=&quot;l6737&quot;&gt;   6737&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1637&amp;quot; id=&amp;quot;h4-0-1637&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6776 <a href="#l6757" class="line" id="l6757">   6757</a> &lt;a href=&quot;#l6738&quot; class=&quot;line&quot; id=&quot;l6738&quot;&gt;   6738&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1638&amp;quot; id=&amp;quot;h4-0-1638&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR = HOOK_getFinalColor(vec4(uMaterialColor.rgb, 1.) * uMaterialColor.a);
   6777 <a href="#l6758" class="line" id="l6758">   6758</a> &lt;a href=&quot;#l6739&quot; class=&quot;line&quot; id=&quot;l6739&quot;&gt;   6739&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1639&amp;quot; id=&amp;quot;h4-0-1639&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  HOOK_afterFragment();
   6778 <a href="#l6759" class="line" id="l6759">   6759</a> &lt;a href=&quot;#l6740&quot; class=&quot;line&quot; id=&quot;l6740&quot;&gt;   6740&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1640&amp;quot; id=&amp;quot;h4-0-1640&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6779 <a href="#l6760" class="line" id="l6760">   6760</a> &lt;a href=&quot;#l6741&quot; class=&quot;line&quot; id=&quot;l6741&quot;&gt;   6741&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1641&amp;quot; id=&amp;quot;h4-0-1641&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,kb=`precision highp float;
   6780 <a href="#l6761" class="line" id="l6761">   6761</a> &lt;a href=&quot;#l6742&quot; class=&quot;line&quot; id=&quot;l6742&quot;&gt;   6742&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1642&amp;quot; id=&amp;quot;h4-0-1642&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+attribute vec3 aPosition;
   6781 <a href="#l6762" class="line" id="l6762">   6762</a> &lt;a href=&quot;#l6743&quot; class=&quot;line&quot; id=&quot;l6743&quot;&gt;   6743&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1643&amp;quot; id=&amp;quot;h4-0-1643&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+attribute vec3 aNormal;
   6782 <a href="#l6763" class="line" id="l6763">   6763</a> &lt;a href=&quot;#l6744&quot; class=&quot;line&quot; id=&quot;l6744&quot;&gt;   6744&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1644&amp;quot; id=&amp;quot;h4-0-1644&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+attribute vec2 aTexCoord;
   6783 <a href="#l6764" class="line" id="l6764">   6764</a> &lt;a href=&quot;#l6745&quot; class=&quot;line&quot; id=&quot;l6745&quot;&gt;   6745&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1645&amp;quot; id=&amp;quot;h4-0-1645&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6784 <a href="#l6765" class="line" id="l6765">   6765</a> &lt;a href=&quot;#l6746&quot; class=&quot;line&quot; id=&quot;l6746&quot;&gt;   6746&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1646&amp;quot; id=&amp;quot;h4-0-1646&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 localPos;
   6785 <a href="#l6766" class="line" id="l6766">   6766</a> &lt;a href=&quot;#l6747&quot; class=&quot;line&quot; id=&quot;l6747&quot;&gt;   6747&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1647&amp;quot; id=&amp;quot;h4-0-1647&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vWorldNormal;
   6786 <a href="#l6767" class="line" id="l6767">   6767</a> &lt;a href=&quot;#l6748&quot; class=&quot;line&quot; id=&quot;l6748&quot;&gt;   6748&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1648&amp;quot; id=&amp;quot;h4-0-1648&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 vWorldPosition;
   6787 <a href="#l6768" class="line" id="l6768">   6768</a> &lt;a href=&quot;#l6749&quot; class=&quot;line&quot; id=&quot;l6749&quot;&gt;   6749&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1649&amp;quot; id=&amp;quot;h4-0-1649&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   6788 <a href="#l6769" class="line" id="l6769">   6769</a> &lt;a href=&quot;#l6750&quot; class=&quot;line&quot; id=&quot;l6750&quot;&gt;   6750&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1650&amp;quot; id=&amp;quot;h4-0-1650&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6789 <a href="#l6770" class="line" id="l6770">   6770</a> &lt;a href=&quot;#l6751&quot; class=&quot;line&quot; id=&quot;l6751&quot;&gt;   6751&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1651&amp;quot; id=&amp;quot;h4-0-1651&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uModelViewMatrix;
   6790 <a href="#l6771" class="line" id="l6771">   6771</a> &lt;a href=&quot;#l6752&quot; class=&quot;line&quot; id=&quot;l6752&quot;&gt;   6752&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1652&amp;quot; id=&amp;quot;h4-0-1652&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   6791 <a href="#l6772" class="line" id="l6772">   6772</a> &lt;a href=&quot;#l6753&quot; class=&quot;line&quot; id=&quot;l6753&quot;&gt;   6753&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1653&amp;quot; id=&amp;quot;h4-0-1653&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat3 uNormalMatrix;
   6792 <a href="#l6773" class="line" id="l6773">   6773</a> &lt;a href=&quot;#l6754&quot; class=&quot;line&quot; id=&quot;l6754&quot;&gt;   6754&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1654&amp;quot; id=&amp;quot;h4-0-1654&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6793 <a href="#l6774" class="line" id="l6774">   6774</a> &lt;a href=&quot;#l6755&quot; class=&quot;line&quot; id=&quot;l6755&quot;&gt;   6755&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1655&amp;quot; id=&amp;quot;h4-0-1655&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   6794 <a href="#l6775" class="line" id="l6775">   6775</a> &lt;a href=&quot;#l6756&quot; class=&quot;line&quot; id=&quot;l6756&quot;&gt;   6756&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1656&amp;quot; id=&amp;quot;h4-0-1656&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Multiply the position by the matrix.
   6795 <a href="#l6776" class="line" id="l6776">   6776</a> &lt;a href=&quot;#l6757&quot; class=&quot;line&quot; id=&quot;l6757&quot;&gt;   6757&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1657&amp;quot; id=&amp;quot;h4-0-1657&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 viewModelPosition = uModelViewMatrix * vec4(aPosition, 1.0);
   6796 <a href="#l6777" class="line" id="l6777">   6777</a> &lt;a href=&quot;#l6758&quot; class=&quot;line&quot; id=&quot;l6758&quot;&gt;   6758&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1658&amp;quot; id=&amp;quot;h4-0-1658&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position = uProjectionMatrix * viewModelPosition;
   6797 <a href="#l6778" class="line" id="l6778">   6778</a> &lt;a href=&quot;#l6759&quot; class=&quot;line&quot; id=&quot;l6759&quot;&gt;   6759&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1659&amp;quot; id=&amp;quot;h4-0-1659&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6798 <a href="#l6779" class="line" id="l6779">   6779</a> &lt;a href=&quot;#l6760&quot; class=&quot;line&quot; id=&quot;l6760&quot;&gt;   6760&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1660&amp;quot; id=&amp;quot;h4-0-1660&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // orient the normals and pass to the fragment shader
   6799 <a href="#l6780" class="line" id="l6780">   6780</a> &lt;a href=&quot;#l6761&quot; class=&quot;line&quot; id=&quot;l6761&quot;&gt;   6761&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1661&amp;quot; id=&amp;quot;h4-0-1661&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vWorldNormal = uNormalMatrix * aNormal;
   6800 <a href="#l6781" class="line" id="l6781">   6781</a> &lt;a href=&quot;#l6762&quot; class=&quot;line&quot; id=&quot;l6762&quot;&gt;   6762&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1662&amp;quot; id=&amp;quot;h4-0-1662&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6801 <a href="#l6782" class="line" id="l6782">   6782</a> &lt;a href=&quot;#l6763&quot; class=&quot;line&quot; id=&quot;l6763&quot;&gt;   6763&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1663&amp;quot; id=&amp;quot;h4-0-1663&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // send the view position to the fragment shader
   6802 <a href="#l6783" class="line" id="l6783">   6783</a> &lt;a href=&quot;#l6764&quot; class=&quot;line&quot; id=&quot;l6764&quot;&gt;   6764&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1664&amp;quot; id=&amp;quot;h4-0-1664&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vWorldPosition = (uModelViewMatrix * vec4(aPosition, 1.0)).xyz;
   6803 <a href="#l6784" class="line" id="l6784">   6784</a> &lt;a href=&quot;#l6765&quot; class=&quot;line&quot; id=&quot;l6765&quot;&gt;   6765&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1665&amp;quot; id=&amp;quot;h4-0-1665&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6804 <a href="#l6785" class="line" id="l6785">   6785</a> &lt;a href=&quot;#l6766&quot; class=&quot;line&quot; id=&quot;l6766&quot;&gt;   6766&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1666&amp;quot; id=&amp;quot;h4-0-1666&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  localPos = vWorldPosition;
   6805 <a href="#l6786" class="line" id="l6786">   6786</a> &lt;a href=&quot;#l6767&quot; class=&quot;line&quot; id=&quot;l6767&quot;&gt;   6767&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1667&amp;quot; id=&amp;quot;h4-0-1667&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vTexCoord = aTexCoord;
   6806 <a href="#l6787" class="line" id="l6787">   6787</a> &lt;a href=&quot;#l6768&quot; class=&quot;line&quot; id=&quot;l6768&quot;&gt;   6768&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1668&amp;quot; id=&amp;quot;h4-0-1668&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6807 <a href="#l6788" class="line" id="l6788">   6788</a> &lt;a href=&quot;#l6769&quot; class=&quot;line&quot; id=&quot;l6769&quot;&gt;   6769&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1669&amp;quot; id=&amp;quot;h4-0-1669&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6808 <a href="#l6789" class="line" id="l6789">   6789</a> &lt;a href=&quot;#l6770&quot; class=&quot;line&quot; id=&quot;l6770&quot;&gt;   6770&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1670&amp;quot; id=&amp;quot;h4-0-1670&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6809 <a href="#l6790" class="line" id="l6790">   6790</a> &lt;a href=&quot;#l6771&quot; class=&quot;line&quot; id=&quot;l6771&quot;&gt;   6771&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1671&amp;quot; id=&amp;quot;h4-0-1671&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+/*
   6810 <a href="#l6791" class="line" id="l6791">   6791</a> &lt;a href=&quot;#l6772&quot; class=&quot;line&quot; id=&quot;l6772&quot;&gt;   6772&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1672&amp;quot; id=&amp;quot;h4-0-1672&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+in the vertex shader we&amp;amp;#39;ll compute the world position and world oriented normal of the vertices and pass those to the fragment shader as varyings.
   6811 <a href="#l6792" class="line" id="l6792">   6792</a> &lt;a href=&quot;#l6773&quot; class=&quot;line&quot; id=&quot;l6773&quot;&gt;   6773&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1673&amp;quot; id=&amp;quot;h4-0-1673&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+*/
   6812 <a href="#l6793" class="line" id="l6793">   6793</a> &lt;a href=&quot;#l6774&quot; class=&quot;line&quot; id=&quot;l6774&quot;&gt;   6774&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1674&amp;quot; id=&amp;quot;h4-0-1674&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Mb=`precision highp float;
   6813 <a href="#l6794" class="line" id="l6794">   6794</a> &lt;a href=&quot;#l6775&quot; class=&quot;line&quot; id=&quot;l6775&quot;&gt;   6775&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1675&amp;quot; id=&amp;quot;h4-0-1675&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 localPos;
   6814 <a href="#l6795" class="line" id="l6795">   6795</a> &lt;a href=&quot;#l6776&quot; class=&quot;line&quot; id=&quot;l6776&quot;&gt;   6776&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1676&amp;quot; id=&amp;quot;h4-0-1676&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6815 <a href="#l6796" class="line" id="l6796">   6796</a> &lt;a href=&quot;#l6777&quot; class=&quot;line&quot; id=&quot;l6777&quot;&gt;   6777&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1677&amp;quot; id=&amp;quot;h4-0-1677&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// the HDR cubemap converted (can be from an equirectangular environment map.)
   6816 <a href="#l6797" class="line" id="l6797">   6797</a> &lt;a href=&quot;#l6778&quot; class=&quot;line&quot; id=&quot;l6778&quot;&gt;   6778&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1678&amp;quot; id=&amp;quot;h4-0-1678&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D environmentMap;
   6817 <a href="#l6798" class="line" id="l6798">   6798</a> &lt;a href=&quot;#l6779&quot; class=&quot;line&quot; id=&quot;l6779&quot;&gt;   6779&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1679&amp;quot; id=&amp;quot;h4-0-1679&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   6818 <a href="#l6799" class="line" id="l6799">   6799</a> &lt;a href=&quot;#l6780&quot; class=&quot;line&quot; id=&quot;l6780&quot;&gt;   6780&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1680&amp;quot; id=&amp;quot;h4-0-1680&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6819 <a href="#l6800" class="line" id="l6800">   6800</a> &lt;a href=&quot;#l6781&quot; class=&quot;line&quot; id=&quot;l6781&quot;&gt;   6781&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1681&amp;quot; id=&amp;quot;h4-0-1681&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const float PI = 3.14159265359;
   6820 <a href="#l6801" class="line" id="l6801">   6801</a> &lt;a href=&quot;#l6782&quot; class=&quot;line&quot; id=&quot;l6782&quot;&gt;   6782&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1682&amp;quot; id=&amp;quot;h4-0-1682&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6821 <a href="#l6802" class="line" id="l6802">   6802</a> &lt;a href=&quot;#l6783&quot; class=&quot;line&quot; id=&quot;l6783&quot;&gt;   6783&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1683&amp;quot; id=&amp;quot;h4-0-1683&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 nTOE( vec3 v ){
   6822 <a href="#l6803" class="line" id="l6803">   6803</a> &lt;a href=&quot;#l6784&quot; class=&quot;line&quot; id=&quot;l6784&quot;&gt;   6784&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1684&amp;quot; id=&amp;quot;h4-0-1684&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // x = r sin(phi) cos(theta)
   6823 <a href="#l6804" class="line" id="l6804">   6804</a> &lt;a href=&quot;#l6785&quot; class=&quot;line&quot; id=&quot;l6785&quot;&gt;   6785&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1685&amp;quot; id=&amp;quot;h4-0-1685&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // y = r cos(phi)
   6824 <a href="#l6805" class="line" id="l6805">   6805</a> &lt;a href=&quot;#l6786&quot; class=&quot;line&quot; id=&quot;l6786&quot;&gt;   6786&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1686&amp;quot; id=&amp;quot;h4-0-1686&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // z = r sin(phi) sin(theta)
   6825 <a href="#l6806" class="line" id="l6806">   6806</a> &lt;a href=&quot;#l6787&quot; class=&quot;line&quot; id=&quot;l6787&quot;&gt;   6787&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1687&amp;quot; id=&amp;quot;h4-0-1687&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float phi = acos( v.y );
   6826 <a href="#l6807" class="line" id="l6807">   6807</a> &lt;a href=&quot;#l6788&quot; class=&quot;line&quot; id=&quot;l6788&quot;&gt;   6788&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1688&amp;quot; id=&amp;quot;h4-0-1688&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // if phi is 0, then there are no x, z components
   6827 <a href="#l6808" class="line" id="l6808">   6808</a> &lt;a href=&quot;#l6789&quot; class=&quot;line&quot; id=&quot;l6789&quot;&gt;   6789&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1689&amp;quot; id=&amp;quot;h4-0-1689&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float theta = 0.0;
   6828 <a href="#l6809" class="line" id="l6809">   6809</a> &lt;a href=&quot;#l6790&quot; class=&quot;line&quot; id=&quot;l6790&quot;&gt;   6790&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1690&amp;quot; id=&amp;quot;h4-0-1690&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // else
   6829 <a href="#l6810" class="line" id="l6810">   6810</a> &lt;a href=&quot;#l6791&quot; class=&quot;line&quot; id=&quot;l6791&quot;&gt;   6791&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1691&amp;quot; id=&amp;quot;h4-0-1691&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  theta = acos(v.x / sin(phi));
   6830 <a href="#l6811" class="line" id="l6811">   6811</a> &lt;a href=&quot;#l6792&quot; class=&quot;line&quot; id=&quot;l6792&quot;&gt;   6792&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1692&amp;quot; id=&amp;quot;h4-0-1692&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float sinTheta = v.z / sin(phi);
   6831 <a href="#l6812" class="line" id="l6812">   6812</a> &lt;a href=&quot;#l6793&quot; class=&quot;line&quot; id=&quot;l6793&quot;&gt;   6793&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1693&amp;quot; id=&amp;quot;h4-0-1693&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (sinTheta &amp;amp;lt; 0.0) {
   6832 <a href="#l6813" class="line" id="l6813">   6813</a> &lt;a href=&quot;#l6794&quot; class=&quot;line&quot; id=&quot;l6794&quot;&gt;   6794&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1694&amp;quot; id=&amp;quot;h4-0-1694&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Turn it into -theta, but in the 0-2PI range
   6833 <a href="#l6814" class="line" id="l6814">   6814</a> &lt;a href=&quot;#l6795&quot; class=&quot;line&quot; id=&quot;l6795&quot;&gt;   6795&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1695&amp;quot; id=&amp;quot;h4-0-1695&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    theta = 2.0 * PI - theta;
   6834 <a href="#l6815" class="line" id="l6815">   6815</a> &lt;a href=&quot;#l6796&quot; class=&quot;line&quot; id=&quot;l6796&quot;&gt;   6796&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1696&amp;quot; id=&amp;quot;h4-0-1696&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   6835 <a href="#l6816" class="line" id="l6816">   6816</a> &lt;a href=&quot;#l6797&quot; class=&quot;line&quot; id=&quot;l6797&quot;&gt;   6797&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1697&amp;quot; id=&amp;quot;h4-0-1697&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  theta = theta / (2.0 * 3.14159);
   6836 <a href="#l6817" class="line" id="l6817">   6817</a> &lt;a href=&quot;#l6798&quot; class=&quot;line&quot; id=&quot;l6798&quot;&gt;   6798&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1698&amp;quot; id=&amp;quot;h4-0-1698&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  phi = phi / 3.14159 ;
   6837 <a href="#l6818" class="line" id="l6818">   6818</a> &lt;a href=&quot;#l6799&quot; class=&quot;line&quot; id=&quot;l6799&quot;&gt;   6799&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1699&amp;quot; id=&amp;quot;h4-0-1699&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6838 <a href="#l6819" class="line" id="l6819">   6819</a> &lt;a href=&quot;#l6800&quot; class=&quot;line&quot; id=&quot;l6800&quot;&gt;   6800&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1700&amp;quot; id=&amp;quot;h4-0-1700&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 angles = vec2( phi, theta );
   6839 <a href="#l6820" class="line" id="l6820">   6820</a> &lt;a href=&quot;#l6801&quot; class=&quot;line&quot; id=&quot;l6801&quot;&gt;   6801&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1701&amp;quot; id=&amp;quot;h4-0-1701&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return angles;
   6840 <a href="#l6821" class="line" id="l6821">   6821</a> &lt;a href=&quot;#l6802&quot; class=&quot;line&quot; id=&quot;l6802&quot;&gt;   6802&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1702&amp;quot; id=&amp;quot;h4-0-1702&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6841 <a href="#l6822" class="line" id="l6822">   6822</a> &lt;a href=&quot;#l6803&quot; class=&quot;line&quot; id=&quot;l6803&quot;&gt;   6803&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1703&amp;quot; id=&amp;quot;h4-0-1703&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6842 <a href="#l6823" class="line" id="l6823">   6823</a> &lt;a href=&quot;#l6804&quot; class=&quot;line&quot; id=&quot;l6804&quot;&gt;   6804&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1704&amp;quot; id=&amp;quot;h4-0-1704&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float random(vec2 p) {
   6843 <a href="#l6824" class="line" id="l6824">   6824</a> &lt;a href=&quot;#l6805&quot; class=&quot;line&quot; id=&quot;l6805&quot;&gt;   6805&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1705&amp;quot; id=&amp;quot;h4-0-1705&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 p3  = fract(vec3(p.xyx) * .1031);
   6844 <a href="#l6825" class="line" id="l6825">   6825</a> &lt;a href=&quot;#l6806&quot; class=&quot;line&quot; id=&quot;l6806&quot;&gt;   6806&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1706&amp;quot; id=&amp;quot;h4-0-1706&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  p3 += dot(p3, p3.yzx + 33.33);
   6845 <a href="#l6826" class="line" id="l6826">   6826</a> &lt;a href=&quot;#l6807&quot; class=&quot;line&quot; id=&quot;l6807&quot;&gt;   6807&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1707&amp;quot; id=&amp;quot;h4-0-1707&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return fract((p3.x + p3.y) * p3.z);
   6846 <a href="#l6827" class="line" id="l6827">   6827</a> &lt;a href=&quot;#l6808&quot; class=&quot;line&quot; id=&quot;l6808&quot;&gt;   6808&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1708&amp;quot; id=&amp;quot;h4-0-1708&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   6847 <a href="#l6828" class="line" id="l6828">   6828</a> &lt;a href=&quot;#l6809&quot; class=&quot;line&quot; id=&quot;l6809&quot;&gt;   6809&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1709&amp;quot; id=&amp;quot;h4-0-1709&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6848 <a href="#l6829" class="line" id="l6829">   6829</a> &lt;a href=&quot;#l6810&quot; class=&quot;line&quot; id=&quot;l6810&quot;&gt;   6810&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1710&amp;quot; id=&amp;quot;h4-0-1710&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main()
   6849 <a href="#l6830" class="line" id="l6830">   6830</a> &lt;a href=&quot;#l6811&quot; class=&quot;line&quot; id=&quot;l6811&quot;&gt;   6811&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1711&amp;quot; id=&amp;quot;h4-0-1711&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{
   6850 <a href="#l6831" class="line" id="l6831">   6831</a> &lt;a href=&quot;#l6812&quot; class=&quot;line&quot; id=&quot;l6812&quot;&gt;   6812&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1712&amp;quot; id=&amp;quot;h4-0-1712&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	// the sample direction equals the hemisphere&amp;amp;#39;s orientation
   6851 <a href="#l6832" class="line" id="l6832">   6832</a> &lt;a href=&quot;#l6813&quot; class=&quot;line&quot; id=&quot;l6813&quot;&gt;   6813&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1713&amp;quot; id=&amp;quot;h4-0-1713&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float phi = vTexCoord.x * 2.0 * PI;
   6852 <a href="#l6833" class="line" id="l6833">   6833</a> &lt;a href=&quot;#l6814&quot; class=&quot;line&quot; id=&quot;l6814&quot;&gt;   6814&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1714&amp;quot; id=&amp;quot;h4-0-1714&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float theta = vTexCoord.y * PI;
   6853 <a href="#l6834" class="line" id="l6834">   6834</a> &lt;a href=&quot;#l6815&quot; class=&quot;line&quot; id=&quot;l6815&quot;&gt;   6815&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1715&amp;quot; id=&amp;quot;h4-0-1715&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float x = sin(theta) * cos(phi);
   6854 <a href="#l6835" class="line" id="l6835">   6835</a> &lt;a href=&quot;#l6816&quot; class=&quot;line&quot; id=&quot;l6816&quot;&gt;   6816&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1716&amp;quot; id=&amp;quot;h4-0-1716&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float y = sin(theta) * sin(phi);
   6855 <a href="#l6836" class="line" id="l6836">   6836</a> &lt;a href=&quot;#l6817&quot; class=&quot;line&quot; id=&quot;l6817&quot;&gt;   6817&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1717&amp;quot; id=&amp;quot;h4-0-1717&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float z = cos(theta);
   6856 <a href="#l6837" class="line" id="l6837">   6837</a> &lt;a href=&quot;#l6818&quot; class=&quot;line&quot; id=&quot;l6818&quot;&gt;   6818&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1718&amp;quot; id=&amp;quot;h4-0-1718&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 normal = vec3( x, y, z);
   6857 <a href="#l6838" class="line" id="l6838">   6838</a> &lt;a href=&quot;#l6819&quot; class=&quot;line&quot; id=&quot;l6819&quot;&gt;   6819&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1719&amp;quot; id=&amp;quot;h4-0-1719&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6858 <a href="#l6839" class="line" id="l6839">   6839</a> &lt;a href=&quot;#l6820&quot; class=&quot;line&quot; id=&quot;l6820&quot;&gt;   6820&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1720&amp;quot; id=&amp;quot;h4-0-1720&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	// Discretely sampling the hemisphere given the integral&amp;amp;#39;s
   6859 <a href="#l6840" class="line" id="l6840">   6840</a> &lt;a href=&quot;#l6821&quot; class=&quot;line&quot; id=&quot;l6821&quot;&gt;   6821&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1721&amp;quot; id=&amp;quot;h4-0-1721&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // spherical coordinates translates to the following fragment code:
   6860 <a href="#l6841" class="line" id="l6841">   6841</a> &lt;a href=&quot;#l6822&quot; class=&quot;line&quot; id=&quot;l6822&quot;&gt;   6822&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1722&amp;quot; id=&amp;quot;h4-0-1722&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 irradiance = vec3(0.0);
   6861 <a href="#l6842" class="line" id="l6842">   6842</a> &lt;a href=&quot;#l6823&quot; class=&quot;line&quot; id=&quot;l6823&quot;&gt;   6823&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1723&amp;quot; id=&amp;quot;h4-0-1723&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 up	= vec3(0.0, 1.0, 0.0);
   6862 <a href="#l6843" class="line" id="l6843">   6843</a> &lt;a href=&quot;#l6824&quot; class=&quot;line&quot; id=&quot;l6824&quot;&gt;   6824&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1724&amp;quot; id=&amp;quot;h4-0-1724&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	vec3 right = normalize(cross(up, normal));
   6863 <a href="#l6844" class="line" id="l6844">   6844</a> &lt;a href=&quot;#l6825&quot; class=&quot;line&quot; id=&quot;l6825&quot;&gt;   6825&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1725&amp;quot; id=&amp;quot;h4-0-1725&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	up = normalize(cross(normal, right));
   6864 <a href="#l6845" class="line" id="l6845">   6845</a> &lt;a href=&quot;#l6826&quot; class=&quot;line&quot; id=&quot;l6826&quot;&gt;   6826&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1726&amp;quot; id=&amp;quot;h4-0-1726&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6865 <a href="#l6846" class="line" id="l6846">   6846</a> &lt;a href=&quot;#l6827&quot; class=&quot;line&quot; id=&quot;l6827&quot;&gt;   6827&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1727&amp;quot; id=&amp;quot;h4-0-1727&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	//  We specify a fixed sampleDelta delta value to traverse
   6866 <a href="#l6847" class="line" id="l6847">   6847</a> &lt;a href=&quot;#l6828&quot; class=&quot;line&quot; id=&quot;l6828&quot;&gt;   6828&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1728&amp;quot; id=&amp;quot;h4-0-1728&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // the hemisphere; decreasing or increasing the sample delta
   6867 <a href="#l6848" class="line" id="l6848">   6848</a> &lt;a href=&quot;#l6829&quot; class=&quot;line&quot; id=&quot;l6829&quot;&gt;   6829&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1729&amp;quot; id=&amp;quot;h4-0-1729&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // will increase or decrease the accuracy respectively.
   6868 <a href="#l6849" class="line" id="l6849">   6849</a> &lt;a href=&quot;#l6830&quot; class=&quot;line&quot; id=&quot;l6830&quot;&gt;   6830&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1730&amp;quot; id=&amp;quot;h4-0-1730&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	const float sampleDelta = 0.100;
   6869 <a href="#l6850" class="line" id="l6850">   6850</a> &lt;a href=&quot;#l6831&quot; class=&quot;line&quot; id=&quot;l6831&quot;&gt;   6831&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1731&amp;quot; id=&amp;quot;h4-0-1731&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	float nrSamples = 0.0;
   6870 <a href="#l6851" class="line" id="l6851">   6851</a> &lt;a href=&quot;#l6832&quot; class=&quot;line&quot; id=&quot;l6832&quot;&gt;   6832&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1732&amp;quot; id=&amp;quot;h4-0-1732&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float randomOffset = random(gl_FragCoord.xy) * sampleDelta;
   6871 <a href="#l6852" class="line" id="l6852">   6852</a> &lt;a href=&quot;#l6833&quot; class=&quot;line&quot; id=&quot;l6833&quot;&gt;   6833&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1733&amp;quot; id=&amp;quot;h4-0-1733&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	for(float rawPhi = 0.0; rawPhi &amp;amp;lt; 2.0 * PI; rawPhi += sampleDelta)
   6872 <a href="#l6853" class="line" id="l6853">   6853</a> &lt;a href=&quot;#l6834&quot; class=&quot;line&quot; id=&quot;l6834&quot;&gt;   6834&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1734&amp;quot; id=&amp;quot;h4-0-1734&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	{
   6873 <a href="#l6854" class="line" id="l6854">   6854</a> &lt;a href=&quot;#l6835&quot; class=&quot;line&quot; id=&quot;l6835&quot;&gt;   6835&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1735&amp;quot; id=&amp;quot;h4-0-1735&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float phi = rawPhi + randomOffset;
   6874 <a href="#l6855" class="line" id="l6855">   6855</a> &lt;a href=&quot;#l6836&quot; class=&quot;line&quot; id=&quot;l6836&quot;&gt;   6836&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1736&amp;quot; id=&amp;quot;h4-0-1736&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    for(float rawTheta = 0.0; rawTheta &amp;amp;lt; ( 0.5 ) * PI; rawTheta += sampleDelta)
   6875 <a href="#l6856" class="line" id="l6856">   6856</a> &lt;a href=&quot;#l6837&quot; class=&quot;line&quot; id=&quot;l6837&quot;&gt;   6837&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1737&amp;quot; id=&amp;quot;h4-0-1737&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    {
   6876 <a href="#l6857" class="line" id="l6857">   6857</a> &lt;a href=&quot;#l6838&quot; class=&quot;line&quot; id=&quot;l6838&quot;&gt;   6838&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1738&amp;quot; id=&amp;quot;h4-0-1738&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float theta = rawTheta + randomOffset;
   6877 <a href="#l6858" class="line" id="l6858">   6858</a> &lt;a href=&quot;#l6839&quot; class=&quot;line&quot; id=&quot;l6839&quot;&gt;   6839&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1739&amp;quot; id=&amp;quot;h4-0-1739&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // spherical to cartesian (in tangent space) // tangent space to world // add each sample result to irradiance
   6878 <a href="#l6859" class="line" id="l6859">   6859</a> &lt;a href=&quot;#l6840&quot; class=&quot;line&quot; id=&quot;l6840&quot;&gt;   6840&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1740&amp;quot; id=&amp;quot;h4-0-1740&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float x = sin(theta) * cos(phi);
   6879 <a href="#l6860" class="line" id="l6860">   6860</a> &lt;a href=&quot;#l6841&quot; class=&quot;line&quot; id=&quot;l6841&quot;&gt;   6841&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1741&amp;quot; id=&amp;quot;h4-0-1741&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float y = sin(theta) * sin(phi);
   6880 <a href="#l6861" class="line" id="l6861">   6861</a> &lt;a href=&quot;#l6842&quot; class=&quot;line&quot; id=&quot;l6842&quot;&gt;   6842&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1742&amp;quot; id=&amp;quot;h4-0-1742&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      float z = cos(theta);
   6881 <a href="#l6862" class="line" id="l6862">   6862</a> &lt;a href=&quot;#l6843&quot; class=&quot;line&quot; id=&quot;l6843&quot;&gt;   6843&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1743&amp;quot; id=&amp;quot;h4-0-1743&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 tangentSample = vec3( x, y, z);
   6882 <a href="#l6863" class="line" id="l6863">   6863</a> &lt;a href=&quot;#l6844&quot; class=&quot;line&quot; id=&quot;l6844&quot;&gt;   6844&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1744&amp;quot; id=&amp;quot;h4-0-1744&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6883 <a href="#l6864" class="line" id="l6864">   6864</a> &lt;a href=&quot;#l6845&quot; class=&quot;line&quot; id=&quot;l6845&quot;&gt;   6845&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1745&amp;quot; id=&amp;quot;h4-0-1745&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      vec3 sampleVec = tangentSample.x * right + tangentSample.y * up + tangentSample.z * normal;
   6884 <a href="#l6865" class="line" id="l6865">   6865</a> &lt;a href=&quot;#l6846&quot; class=&quot;line&quot; id=&quot;l6846&quot;&gt;   6846&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1746&amp;quot; id=&amp;quot;h4-0-1746&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        irradiance += (texture2D(environmentMap, nTOE(sampleVec)).xyz) * cos(theta) * sin(theta);
   6885 <a href="#l6866" class="line" id="l6866">   6866</a> &lt;a href=&quot;#l6847&quot; class=&quot;line&quot; id=&quot;l6847&quot;&gt;   6847&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1747&amp;quot; id=&amp;quot;h4-0-1747&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      nrSamples++;
   6886 <a href="#l6867" class="line" id="l6867">   6867</a> &lt;a href=&quot;#l6848&quot; class=&quot;line&quot; id=&quot;l6848&quot;&gt;   6848&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1748&amp;quot; id=&amp;quot;h4-0-1748&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   6887 <a href="#l6868" class="line" id="l6868">   6868</a> &lt;a href=&quot;#l6849&quot; class=&quot;line&quot; id=&quot;l6849&quot;&gt;   6849&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1749&amp;quot; id=&amp;quot;h4-0-1749&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	}
   6888 <a href="#l6869" class="line" id="l6869">   6869</a> &lt;a href=&quot;#l6850&quot; class=&quot;line&quot; id=&quot;l6850&quot;&gt;   6850&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1750&amp;quot; id=&amp;quot;h4-0-1750&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	// divide by the total number of samples taken, giving us the average sampled irradiance.
   6889 <a href="#l6870" class="line" id="l6870">   6870</a> &lt;a href=&quot;#l6851&quot; class=&quot;line&quot; id=&quot;l6851&quot;&gt;   6851&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1751&amp;quot; id=&amp;quot;h4-0-1751&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	irradiance = PI * irradiance * (1.0 / float(nrSamples )) ;
   6890 <a href="#l6871" class="line" id="l6871">   6871</a> &lt;a href=&quot;#l6852&quot; class=&quot;line&quot; id=&quot;l6852&quot;&gt;   6852&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1752&amp;quot; id=&amp;quot;h4-0-1752&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6891 <a href="#l6872" class="line" id="l6872">   6872</a> &lt;a href=&quot;#l6853&quot; class=&quot;line&quot; id=&quot;l6853&quot;&gt;   6853&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1753&amp;quot; id=&amp;quot;h4-0-1753&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   6892 <a href="#l6873" class="line" id="l6873">   6873</a> &lt;a href=&quot;#l6854&quot; class=&quot;line&quot; id=&quot;l6854&quot;&gt;   6854&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1754&amp;quot; id=&amp;quot;h4-0-1754&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	gl_FragColor = vec4(irradiance, 1.0);
   6893 <a href="#l6874" class="line" id="l6874">   6874</a> &lt;a href=&quot;#l6855&quot; class=&quot;line&quot; id=&quot;l6855&quot;&gt;   6855&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1755&amp;quot; id=&amp;quot;h4-0-1755&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}`,Lb=`precision highp float;\r
   6894 <a href="#l6875" class="line" id="l6875">   6875</a> &lt;a href=&quot;#l6856&quot; class=&quot;line&quot; id=&quot;l6856&quot;&gt;   6856&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1756&amp;quot; id=&amp;quot;h4-0-1756&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec3 localPos;\r
   6895 <a href="#l6876" class="line" id="l6876">   6876</a> &lt;a href=&quot;#l6857&quot; class=&quot;line&quot; id=&quot;l6857&quot;&gt;   6857&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1757&amp;quot; id=&amp;quot;h4-0-1757&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;\r
   6896 <a href="#l6877" class="line" id="l6877">   6877</a> &lt;a href=&quot;#l6858&quot; class=&quot;line&quot; id=&quot;l6858&quot;&gt;   6858&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1758&amp;quot; id=&amp;quot;h4-0-1758&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6897 <a href="#l6878" class="line" id="l6878">   6878</a> &lt;a href=&quot;#l6859&quot; class=&quot;line&quot; id=&quot;l6859&quot;&gt;   6859&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1759&amp;quot; id=&amp;quot;h4-0-1759&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// our texture\r
   6898 <a href="#l6879" class="line" id="l6879">   6879</a> &lt;a href=&quot;#l6860&quot; class=&quot;line&quot; id=&quot;l6860&quot;&gt;   6860&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1760&amp;quot; id=&amp;quot;h4-0-1760&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D environmentMap;\r
   6899 <a href="#l6880" class="line" id="l6880">   6880</a> &lt;a href=&quot;#l6861&quot; class=&quot;line&quot; id=&quot;l6861&quot;&gt;   6861&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1761&amp;quot; id=&amp;quot;h4-0-1761&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float roughness;\r
   6900 <a href="#l6881" class="line" id="l6881">   6881</a> &lt;a href=&quot;#l6862&quot; class=&quot;line&quot; id=&quot;l6862&quot;&gt;   6862&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1762&amp;quot; id=&amp;quot;h4-0-1762&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6901 <a href="#l6882" class="line" id="l6882">   6882</a> &lt;a href=&quot;#l6863&quot; class=&quot;line&quot; id=&quot;l6863&quot;&gt;   6863&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1763&amp;quot; id=&amp;quot;h4-0-1763&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const float PI = 3.14159265359;\r
   6902 <a href="#l6883" class="line" id="l6883">   6883</a> &lt;a href=&quot;#l6864&quot; class=&quot;line&quot; id=&quot;l6864&quot;&gt;   6864&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1764&amp;quot; id=&amp;quot;h4-0-1764&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6903 <a href="#l6884" class="line" id="l6884">   6884</a> &lt;a href=&quot;#l6865&quot; class=&quot;line&quot; id=&quot;l6865&quot;&gt;   6865&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1765&amp;quot; id=&amp;quot;h4-0-1765&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float VanDerCorput(int bits);\r
   6904 <a href="#l6885" class="line" id="l6885">   6885</a> &lt;a href=&quot;#l6866&quot; class=&quot;line&quot; id=&quot;l6866&quot;&gt;   6866&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1766&amp;quot; id=&amp;quot;h4-0-1766&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 HammersleyNoBitOps(int i, int N);\r
   6905 <a href="#l6886" class="line" id="l6886">   6886</a> &lt;a href=&quot;#l6867&quot; class=&quot;line&quot; id=&quot;l6867&quot;&gt;   6867&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1767&amp;quot; id=&amp;quot;h4-0-1767&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness);\r
   6906 <a href="#l6887" class="line" id="l6887">   6887</a> &lt;a href=&quot;#l6868&quot; class=&quot;line&quot; id=&quot;l6868&quot;&gt;   6868&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1768&amp;quot; id=&amp;quot;h4-0-1768&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6907 <a href="#l6888" class="line" id="l6888">   6888</a> &lt;a href=&quot;#l6869&quot; class=&quot;line&quot; id=&quot;l6869&quot;&gt;   6869&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1769&amp;quot; id=&amp;quot;h4-0-1769&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6908 <a href="#l6889" class="line" id="l6889">   6889</a> &lt;a href=&quot;#l6870&quot; class=&quot;line&quot; id=&quot;l6870&quot;&gt;   6870&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1770&amp;quot; id=&amp;quot;h4-0-1770&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 nTOE( vec3 v ){\r
   6909 <a href="#l6890" class="line" id="l6890">   6890</a> &lt;a href=&quot;#l6871&quot; class=&quot;line&quot; id=&quot;l6871&quot;&gt;   6871&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1771&amp;quot; id=&amp;quot;h4-0-1771&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // x = r sin(phi) cos(theta)   \r
   6910 <a href="#l6891" class="line" id="l6891">   6891</a> &lt;a href=&quot;#l6872&quot; class=&quot;line&quot; id=&quot;l6872&quot;&gt;   6872&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1772&amp;quot; id=&amp;quot;h4-0-1772&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // y = r cos(phi)  \r
   6911 <a href="#l6892" class="line" id="l6892">   6892</a> &lt;a href=&quot;#l6873&quot; class=&quot;line&quot; id=&quot;l6873&quot;&gt;   6873&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1773&amp;quot; id=&amp;quot;h4-0-1773&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // z = r sin(phi) sin(theta)\r
   6912 <a href="#l6893" class="line" id="l6893">   6893</a> &lt;a href=&quot;#l6874&quot; class=&quot;line&quot; id=&quot;l6874&quot;&gt;   6874&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1774&amp;quot; id=&amp;quot;h4-0-1774&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float phi = acos( v.y );\r
   6913 <a href="#l6894" class="line" id="l6894">   6894</a> &lt;a href=&quot;#l6875&quot; class=&quot;line&quot; id=&quot;l6875&quot;&gt;   6875&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1775&amp;quot; id=&amp;quot;h4-0-1775&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // if phi is 0, then there are no x, z components\r
   6914 <a href="#l6895" class="line" id="l6895">   6895</a> &lt;a href=&quot;#l6876&quot; class=&quot;line&quot; id=&quot;l6876&quot;&gt;   6876&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1776&amp;quot; id=&amp;quot;h4-0-1776&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float theta = 0.0;\r
   6915 <a href="#l6896" class="line" id="l6896">   6896</a> &lt;a href=&quot;#l6877&quot; class=&quot;line&quot; id=&quot;l6877&quot;&gt;   6877&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1777&amp;quot; id=&amp;quot;h4-0-1777&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // else \r
   6916 <a href="#l6897" class="line" id="l6897">   6897</a> &lt;a href=&quot;#l6878&quot; class=&quot;line&quot; id=&quot;l6878&quot;&gt;   6878&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1778&amp;quot; id=&amp;quot;h4-0-1778&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  theta = acos(v.x / sin(phi));\r
   6917 <a href="#l6898" class="line" id="l6898">   6898</a> &lt;a href=&quot;#l6879&quot; class=&quot;line&quot; id=&quot;l6879&quot;&gt;   6879&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1779&amp;quot; id=&amp;quot;h4-0-1779&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float sinTheta = v.z / sin(phi);\r
   6918 <a href="#l6899" class="line" id="l6899">   6899</a> &lt;a href=&quot;#l6880&quot; class=&quot;line&quot; id=&quot;l6880&quot;&gt;   6880&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1780&amp;quot; id=&amp;quot;h4-0-1780&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (sinTheta &amp;amp;lt; 0.0) {\r
   6919 <a href="#l6900" class="line" id="l6900">   6900</a> &lt;a href=&quot;#l6881&quot; class=&quot;line&quot; id=&quot;l6881&quot;&gt;   6881&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1781&amp;quot; id=&amp;quot;h4-0-1781&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // Turn it into -theta, but in the 0-2PI range\r
   6920 <a href="#l6901" class="line" id="l6901">   6901</a> &lt;a href=&quot;#l6882&quot; class=&quot;line&quot; id=&quot;l6882&quot;&gt;   6882&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1782&amp;quot; id=&amp;quot;h4-0-1782&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    theta = 2.0 * PI - theta;\r
   6921 <a href="#l6902" class="line" id="l6902">   6902</a> &lt;a href=&quot;#l6883&quot; class=&quot;line&quot; id=&quot;l6883&quot;&gt;   6883&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1783&amp;quot; id=&amp;quot;h4-0-1783&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }\r
   6922 <a href="#l6903" class="line" id="l6903">   6903</a> &lt;a href=&quot;#l6884&quot; class=&quot;line&quot; id=&quot;l6884&quot;&gt;   6884&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1784&amp;quot; id=&amp;quot;h4-0-1784&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  theta = theta / (2.0 * 3.14159);\r
   6923 <a href="#l6904" class="line" id="l6904">   6904</a> &lt;a href=&quot;#l6885&quot; class=&quot;line&quot; id=&quot;l6885&quot;&gt;   6885&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1785&amp;quot; id=&amp;quot;h4-0-1785&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  phi = phi / 3.14159 ;\r
   6924 <a href="#l6905" class="line" id="l6905">   6905</a> &lt;a href=&quot;#l6886&quot; class=&quot;line&quot; id=&quot;l6886&quot;&gt;   6886&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1786&amp;quot; id=&amp;quot;h4-0-1786&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  \r
   6925 <a href="#l6906" class="line" id="l6906">   6906</a> &lt;a href=&quot;#l6887&quot; class=&quot;line&quot; id=&quot;l6887&quot;&gt;   6887&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1787&amp;quot; id=&amp;quot;h4-0-1787&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 angles = vec2( phi, theta );\r
   6926 <a href="#l6907" class="line" id="l6907">   6907</a> &lt;a href=&quot;#l6888&quot; class=&quot;line&quot; id=&quot;l6888&quot;&gt;   6888&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1788&amp;quot; id=&amp;quot;h4-0-1788&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return angles;\r
   6927 <a href="#l6908" class="line" id="l6908">   6908</a> &lt;a href=&quot;#l6889&quot; class=&quot;line&quot; id=&quot;l6889&quot;&gt;   6889&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1789&amp;quot; id=&amp;quot;h4-0-1789&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}\r
   6928 <a href="#l6909" class="line" id="l6909">   6909</a> &lt;a href=&quot;#l6890&quot; class=&quot;line&quot; id=&quot;l6890&quot;&gt;   6890&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1790&amp;quot; id=&amp;quot;h4-0-1790&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6929 <a href="#l6910" class="line" id="l6910">   6910</a> &lt;a href=&quot;#l6891&quot; class=&quot;line&quot; id=&quot;l6891&quot;&gt;   6891&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1791&amp;quot; id=&amp;quot;h4-0-1791&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6930 <a href="#l6911" class="line" id="l6911">   6911</a> &lt;a href=&quot;#l6892&quot; class=&quot;line&quot; id=&quot;l6892&quot;&gt;   6892&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1792&amp;quot; id=&amp;quot;h4-0-1792&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(){\r
   6931 <a href="#l6912" class="line" id="l6912">   6912</a> &lt;a href=&quot;#l6893&quot; class=&quot;line&quot; id=&quot;l6893&quot;&gt;   6893&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1793&amp;quot; id=&amp;quot;h4-0-1793&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  const int SAMPLE_COUNT = 400; // 4096\r
   6932 <a href="#l6913" class="line" id="l6913">   6913</a> &lt;a href=&quot;#l6894&quot; class=&quot;line&quot; id=&quot;l6894&quot;&gt;   6894&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1794&amp;quot; id=&amp;quot;h4-0-1794&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  int lowRoughnessLimit = int(pow(2.0,(roughness+0.1)*20.0));\r
   6933 <a href="#l6914" class="line" id="l6914">   6914</a> &lt;a href=&quot;#l6895&quot; class=&quot;line&quot; id=&quot;l6895&quot;&gt;   6895&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1795&amp;quot; id=&amp;quot;h4-0-1795&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float totalWeight = 0.0;\r
   6934 <a href="#l6915" class="line" id="l6915">   6915</a> &lt;a href=&quot;#l6896&quot; class=&quot;line&quot; id=&quot;l6896&quot;&gt;   6896&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1796&amp;quot; id=&amp;quot;h4-0-1796&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 prefilteredColor = vec3(0.0);\r
   6935 <a href="#l6916" class="line" id="l6916">   6916</a> &lt;a href=&quot;#l6897&quot; class=&quot;line&quot; id=&quot;l6897&quot;&gt;   6897&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1797&amp;quot; id=&amp;quot;h4-0-1797&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float phi = vTexCoord.x * 2.0 * PI;\r
   6936 <a href="#l6917" class="line" id="l6917">   6917</a> &lt;a href=&quot;#l6898&quot; class=&quot;line&quot; id=&quot;l6898&quot;&gt;   6898&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1798&amp;quot; id=&amp;quot;h4-0-1798&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float theta = vTexCoord.y * PI;\r
   6937 <a href="#l6918" class="line" id="l6918">   6918</a> &lt;a href=&quot;#l6899&quot; class=&quot;line&quot; id=&quot;l6899&quot;&gt;   6899&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1799&amp;quot; id=&amp;quot;h4-0-1799&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float x = sin(theta) * cos(phi);\r
   6938 <a href="#l6919" class="line" id="l6919">   6919</a> &lt;a href=&quot;#l6900&quot; class=&quot;line&quot; id=&quot;l6900&quot;&gt;   6900&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1800&amp;quot; id=&amp;quot;h4-0-1800&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float y = sin(theta) * sin(phi);\r
   6939 <a href="#l6920" class="line" id="l6920">   6920</a> &lt;a href=&quot;#l6901&quot; class=&quot;line&quot; id=&quot;l6901&quot;&gt;   6901&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1801&amp;quot; id=&amp;quot;h4-0-1801&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float z = cos(theta);\r
   6940 <a href="#l6921" class="line" id="l6921">   6921</a> &lt;a href=&quot;#l6902&quot; class=&quot;line&quot; id=&quot;l6902&quot;&gt;   6902&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1802&amp;quot; id=&amp;quot;h4-0-1802&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 N = vec3(x,y,z);\r
   6941 <a href="#l6922" class="line" id="l6922">   6922</a> &lt;a href=&quot;#l6903&quot; class=&quot;line&quot; id=&quot;l6903&quot;&gt;   6903&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1803&amp;quot; id=&amp;quot;h4-0-1803&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 V = N;\r
   6942 <a href="#l6923" class="line" id="l6923">   6923</a> &lt;a href=&quot;#l6904&quot; class=&quot;line&quot; id=&quot;l6904&quot;&gt;   6904&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1804&amp;quot; id=&amp;quot;h4-0-1804&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  for (int i = 0; i &amp;amp;lt; SAMPLE_COUNT; ++i)\r
   6943 <a href="#l6924" class="line" id="l6924">   6924</a> &lt;a href=&quot;#l6905&quot; class=&quot;line&quot; id=&quot;l6905&quot;&gt;   6905&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1805&amp;quot; id=&amp;quot;h4-0-1805&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  {\r
   6944 <a href="#l6925" class="line" id="l6925">   6925</a> &lt;a href=&quot;#l6906&quot; class=&quot;line&quot; id=&quot;l6906&quot;&gt;   6906&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1806&amp;quot; id=&amp;quot;h4-0-1806&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    // break at smaller sample numbers for low roughness levels\r
   6945 <a href="#l6926" class="line" id="l6926">   6926</a> &lt;a href=&quot;#l6907&quot; class=&quot;line&quot; id=&quot;l6907&quot;&gt;   6907&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1807&amp;quot; id=&amp;quot;h4-0-1807&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if(i == lowRoughnessLimit)\r
   6946 <a href="#l6927" class="line" id="l6927">   6927</a> &lt;a href=&quot;#l6908&quot; class=&quot;line&quot; id=&quot;l6908&quot;&gt;   6908&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1808&amp;quot; id=&amp;quot;h4-0-1808&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    {\r
   6947 <a href="#l6928" class="line" id="l6928">   6928</a> &lt;a href=&quot;#l6909&quot; class=&quot;line&quot; id=&quot;l6909&quot;&gt;   6909&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1809&amp;quot; id=&amp;quot;h4-0-1809&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      break;\r
   6948 <a href="#l6929" class="line" id="l6929">   6929</a> &lt;a href=&quot;#l6910&quot; class=&quot;line&quot; id=&quot;l6910&quot;&gt;   6910&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1810&amp;quot; id=&amp;quot;h4-0-1810&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }\r
   6949 <a href="#l6930" class="line" id="l6930">   6930</a> &lt;a href=&quot;#l6911&quot; class=&quot;line&quot; id=&quot;l6911&quot;&gt;   6911&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1811&amp;quot; id=&amp;quot;h4-0-1811&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec2 Xi = HammersleyNoBitOps(i, SAMPLE_COUNT);\r
   6950 <a href="#l6931" class="line" id="l6931">   6931</a> &lt;a href=&quot;#l6912&quot; class=&quot;line&quot; id=&quot;l6912&quot;&gt;   6912&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1812&amp;quot; id=&amp;quot;h4-0-1812&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec3 H = ImportanceSampleGGX(Xi, N, roughness);\r
   6951 <a href="#l6932" class="line" id="l6932">   6932</a> &lt;a href=&quot;#l6913&quot; class=&quot;line&quot; id=&quot;l6913&quot;&gt;   6913&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1813&amp;quot; id=&amp;quot;h4-0-1813&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec3 L = normalize(2.0 * dot(V, H) * H - V);\r
   6952 <a href="#l6933" class="line" id="l6933">   6933</a> &lt;a href=&quot;#l6914&quot; class=&quot;line&quot; id=&quot;l6914&quot;&gt;   6914&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1814&amp;quot; id=&amp;quot;h4-0-1814&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6953 <a href="#l6934" class="line" id="l6934">   6934</a> &lt;a href=&quot;#l6915&quot; class=&quot;line&quot; id=&quot;l6915&quot;&gt;   6915&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1815&amp;quot; id=&amp;quot;h4-0-1815&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float NdotL = max(dot(N, L), 0.0);\r
   6954 <a href="#l6935" class="line" id="l6935">   6935</a> &lt;a href=&quot;#l6916&quot; class=&quot;line&quot; id=&quot;l6916&quot;&gt;   6916&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1816&amp;quot; id=&amp;quot;h4-0-1816&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (NdotL &amp;amp;gt; 0.0)\r
   6955 <a href="#l6936" class="line" id="l6936">   6936</a> &lt;a href=&quot;#l6917&quot; class=&quot;line&quot; id=&quot;l6917&quot;&gt;   6917&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1817&amp;quot; id=&amp;quot;h4-0-1817&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    {\r
   6956 <a href="#l6937" class="line" id="l6937">   6937</a> &lt;a href=&quot;#l6918&quot; class=&quot;line&quot; id=&quot;l6918&quot;&gt;   6918&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1818&amp;quot; id=&amp;quot;h4-0-1818&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      prefilteredColor += texture2D(environmentMap, nTOE(L)).xyz * NdotL;\r
   6957 <a href="#l6938" class="line" id="l6938">   6938</a> &lt;a href=&quot;#l6919&quot; class=&quot;line&quot; id=&quot;l6919&quot;&gt;   6919&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1819&amp;quot; id=&amp;quot;h4-0-1819&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      totalWeight += NdotL;\r
   6958 <a href="#l6939" class="line" id="l6939">   6939</a> &lt;a href=&quot;#l6920&quot; class=&quot;line&quot; id=&quot;l6920&quot;&gt;   6920&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1820&amp;quot; id=&amp;quot;h4-0-1820&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }\r
   6959 <a href="#l6940" class="line" id="l6940">   6940</a> &lt;a href=&quot;#l6921&quot; class=&quot;line&quot; id=&quot;l6921&quot;&gt;   6921&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1821&amp;quot; id=&amp;quot;h4-0-1821&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }\r
   6960 <a href="#l6941" class="line" id="l6941">   6941</a> &lt;a href=&quot;#l6922&quot; class=&quot;line&quot; id=&quot;l6922&quot;&gt;   6922&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1822&amp;quot; id=&amp;quot;h4-0-1822&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  prefilteredColor = prefilteredColor / totalWeight;\r
   6961 <a href="#l6942" class="line" id="l6942">   6942</a> &lt;a href=&quot;#l6923&quot; class=&quot;line&quot; id=&quot;l6923&quot;&gt;   6923&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1823&amp;quot; id=&amp;quot;h4-0-1823&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6962 <a href="#l6943" class="line" id="l6943">   6943</a> &lt;a href=&quot;#l6924&quot; class=&quot;line&quot; id=&quot;l6924&quot;&gt;   6924&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1824&amp;quot; id=&amp;quot;h4-0-1824&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_FragColor = vec4(prefilteredColor, 1.0);\r
   6963 <a href="#l6944" class="line" id="l6944">   6944</a> &lt;a href=&quot;#l6925&quot; class=&quot;line&quot; id=&quot;l6925&quot;&gt;   6925&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1825&amp;quot; id=&amp;quot;h4-0-1825&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}\r
   6964 <a href="#l6945" class="line" id="l6945">   6945</a> &lt;a href=&quot;#l6926&quot; class=&quot;line&quot; id=&quot;l6926&quot;&gt;   6926&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1826&amp;quot; id=&amp;quot;h4-0-1826&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6965 <a href="#l6946" class="line" id="l6946">   6946</a> &lt;a href=&quot;#l6927&quot; class=&quot;line&quot; id=&quot;l6927&quot;&gt;   6927&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1827&amp;quot; id=&amp;quot;h4-0-1827&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness){\r
   6966 <a href="#l6947" class="line" id="l6947">   6947</a> &lt;a href=&quot;#l6928&quot; class=&quot;line&quot; id=&quot;l6928&quot;&gt;   6928&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1828&amp;quot; id=&amp;quot;h4-0-1828&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float a = roughness * roughness;\r
   6967 <a href="#l6948" class="line" id="l6948">   6948</a> &lt;a href=&quot;#l6929&quot; class=&quot;line&quot; id=&quot;l6929&quot;&gt;   6929&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1829&amp;quot; id=&amp;quot;h4-0-1829&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6968 <a href="#l6949" class="line" id="l6949">   6949</a> &lt;a href=&quot;#l6930&quot; class=&quot;line&quot; id=&quot;l6930&quot;&gt;   6930&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1830&amp;quot; id=&amp;quot;h4-0-1830&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float phi = 2.0 * PI * Xi.x;\r
   6969 <a href="#l6950" class="line" id="l6950">   6950</a> &lt;a href=&quot;#l6931&quot; class=&quot;line&quot; id=&quot;l6931&quot;&gt;   6931&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1831&amp;quot; id=&amp;quot;h4-0-1831&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float cosTheta = sqrt((1.0 - Xi.y) / (1.0 + (a * a - 1.0) * Xi.y));\r
   6970 <a href="#l6951" class="line" id="l6951">   6951</a> &lt;a href=&quot;#l6932&quot; class=&quot;line&quot; id=&quot;l6932&quot;&gt;   6932&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1832&amp;quot; id=&amp;quot;h4-0-1832&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float sinTheta = sqrt(1.0 - cosTheta * cosTheta);\r
   6971 <a href="#l6952" class="line" id="l6952">   6952</a> &lt;a href=&quot;#l6933&quot; class=&quot;line&quot; id=&quot;l6933&quot;&gt;   6933&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1833&amp;quot; id=&amp;quot;h4-0-1833&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // from spherical coordinates to cartesian coordinates\r
   6972 <a href="#l6953" class="line" id="l6953">   6953</a> &lt;a href=&quot;#l6934&quot; class=&quot;line&quot; id=&quot;l6934&quot;&gt;   6934&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1834&amp;quot; id=&amp;quot;h4-0-1834&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 H;\r
   6973 <a href="#l6954" class="line" id="l6954">   6954</a> &lt;a href=&quot;#l6935&quot; class=&quot;line&quot; id=&quot;l6935&quot;&gt;   6935&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1835&amp;quot; id=&amp;quot;h4-0-1835&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  H.x = cos(phi) * sinTheta;\r
   6974 <a href="#l6955" class="line" id="l6955">   6955</a> &lt;a href=&quot;#l6936&quot; class=&quot;line&quot; id=&quot;l6936&quot;&gt;   6936&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1836&amp;quot; id=&amp;quot;h4-0-1836&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  H.y = sin(phi) * sinTheta;\r
   6975 <a href="#l6956" class="line" id="l6956">   6956</a> &lt;a href=&quot;#l6937&quot; class=&quot;line&quot; id=&quot;l6937&quot;&gt;   6937&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1837&amp;quot; id=&amp;quot;h4-0-1837&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  H.z = cosTheta;\r
   6976 <a href="#l6957" class="line" id="l6957">   6957</a> &lt;a href=&quot;#l6938&quot; class=&quot;line&quot; id=&quot;l6938&quot;&gt;   6938&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1838&amp;quot; id=&amp;quot;h4-0-1838&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6977 <a href="#l6958" class="line" id="l6958">   6958</a> &lt;a href=&quot;#l6939&quot; class=&quot;line&quot; id=&quot;l6939&quot;&gt;   6939&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1839&amp;quot; id=&amp;quot;h4-0-1839&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // from tangent-space vector to world-space sample vector\r
   6978 <a href="#l6959" class="line" id="l6959">   6959</a> &lt;a href=&quot;#l6940&quot; class=&quot;line&quot; id=&quot;l6940&quot;&gt;   6940&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1840&amp;quot; id=&amp;quot;h4-0-1840&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 up = abs(N.z) &amp;amp;lt; 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);\r
   6979 <a href="#l6960" class="line" id="l6960">   6960</a> &lt;a href=&quot;#l6941&quot; class=&quot;line&quot; id=&quot;l6941&quot;&gt;   6941&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1841&amp;quot; id=&amp;quot;h4-0-1841&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 tangent = normalize(cross(up, N));\r
   6980 <a href="#l6961" class="line" id="l6961">   6961</a> &lt;a href=&quot;#l6942&quot; class=&quot;line&quot; id=&quot;l6942&quot;&gt;   6942&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1842&amp;quot; id=&amp;quot;h4-0-1842&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 bitangent = cross(N, tangent);\r
   6981 <a href="#l6962" class="line" id="l6962">   6962</a> &lt;a href=&quot;#l6943&quot; class=&quot;line&quot; id=&quot;l6943&quot;&gt;   6943&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1843&amp;quot; id=&amp;quot;h4-0-1843&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6982 <a href="#l6963" class="line" id="l6963">   6963</a> &lt;a href=&quot;#l6944&quot; class=&quot;line&quot; id=&quot;l6944&quot;&gt;   6944&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1844&amp;quot; id=&amp;quot;h4-0-1844&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 sampleVec = tangent * H.x + bitangent * H.y + N * H.z;\r
   6983 <a href="#l6964" class="line" id="l6964">   6964</a> &lt;a href=&quot;#l6945&quot; class=&quot;line&quot; id=&quot;l6945&quot;&gt;   6945&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1845&amp;quot; id=&amp;quot;h4-0-1845&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return normalize(sampleVec);\r
   6984 <a href="#l6965" class="line" id="l6965">   6965</a> &lt;a href=&quot;#l6946&quot; class=&quot;line&quot; id=&quot;l6946&quot;&gt;   6946&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1846&amp;quot; id=&amp;quot;h4-0-1846&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}\r
   6985 <a href="#l6966" class="line" id="l6966">   6966</a> &lt;a href=&quot;#l6947&quot; class=&quot;line&quot; id=&quot;l6947&quot;&gt;   6947&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1847&amp;quot; id=&amp;quot;h4-0-1847&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6986 <a href="#l6967" class="line" id="l6967">   6967</a> &lt;a href=&quot;#l6948&quot; class=&quot;line&quot; id=&quot;l6948&quot;&gt;   6948&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1848&amp;quot; id=&amp;quot;h4-0-1848&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6987 <a href="#l6968" class="line" id="l6968">   6968</a> &lt;a href=&quot;#l6949&quot; class=&quot;line&quot; id=&quot;l6949&quot;&gt;   6949&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1849&amp;quot; id=&amp;quot;h4-0-1849&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float VanDerCorput(int n, int base)\r
   6988 <a href="#l6969" class="line" id="l6969">   6969</a> &lt;a href=&quot;#l6950&quot; class=&quot;line&quot; id=&quot;l6950&quot;&gt;   6950&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1850&amp;quot; id=&amp;quot;h4-0-1850&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{\r
   6989 <a href="#l6970" class="line" id="l6970">   6970</a> &lt;a href=&quot;#l6951&quot; class=&quot;line&quot; id=&quot;l6951&quot;&gt;   6951&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1851&amp;quot; id=&amp;quot;h4-0-1851&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#ifdef WEBGL2\r
   6990 <a href="#l6971" class="line" id="l6971">   6971</a> &lt;a href=&quot;#l6952&quot; class=&quot;line&quot; id=&quot;l6952&quot;&gt;   6952&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1852&amp;quot; id=&amp;quot;h4-0-1852&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6991 <a href="#l6972" class="line" id="l6972">   6972</a> &lt;a href=&quot;#l6953&quot; class=&quot;line&quot; id=&quot;l6953&quot;&gt;   6953&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1853&amp;quot; id=&amp;quot;h4-0-1853&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    uint bits = uint(n);\r
   6992 <a href="#l6973" class="line" id="l6973">   6973</a> &lt;a href=&quot;#l6954&quot; class=&quot;line&quot; id=&quot;l6954&quot;&gt;   6954&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1854&amp;quot; id=&amp;quot;h4-0-1854&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bits = (bits &amp;amp;lt;&amp;amp;lt; 16u) | (bits &amp;amp;gt;&amp;amp;gt; 16u);\r
   6993 <a href="#l6974" class="line" id="l6974">   6974</a> &lt;a href=&quot;#l6955&quot; class=&quot;line&quot; id=&quot;l6955&quot;&gt;   6955&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1855&amp;quot; id=&amp;quot;h4-0-1855&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bits = ((bits &amp;amp;amp; 0x55555555u) &amp;amp;lt;&amp;amp;lt; 1u) | ((bits &amp;amp;amp; 0xAAAAAAAAu) &amp;amp;gt;&amp;amp;gt; 1u);\r
   6994 <a href="#l6975" class="line" id="l6975">   6975</a> &lt;a href=&quot;#l6956&quot; class=&quot;line&quot; id=&quot;l6956&quot;&gt;   6956&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1856&amp;quot; id=&amp;quot;h4-0-1856&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bits = ((bits &amp;amp;amp; 0x33333333u) &amp;amp;lt;&amp;amp;lt; 2u) | ((bits &amp;amp;amp; 0xCCCCCCCCu) &amp;amp;gt;&amp;amp;gt; 2u);\r
   6995 <a href="#l6976" class="line" id="l6976">   6976</a> &lt;a href=&quot;#l6957&quot; class=&quot;line&quot; id=&quot;l6957&quot;&gt;   6957&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1857&amp;quot; id=&amp;quot;h4-0-1857&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bits = ((bits &amp;amp;amp; 0x0F0F0F0Fu) &amp;amp;lt;&amp;amp;lt; 4u) | ((bits &amp;amp;amp; 0xF0F0F0F0u) &amp;amp;gt;&amp;amp;gt; 4u);\r
   6996 <a href="#l6977" class="line" id="l6977">   6977</a> &lt;a href=&quot;#l6958&quot; class=&quot;line&quot; id=&quot;l6958&quot;&gt;   6958&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1858&amp;quot; id=&amp;quot;h4-0-1858&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    bits = ((bits &amp;amp;amp; 0x00FF00FFu) &amp;amp;lt;&amp;amp;lt; 8u) | ((bits &amp;amp;amp; 0xFF00FF00u) &amp;amp;gt;&amp;amp;gt; 8u);\r
   6997 <a href="#l6978" class="line" id="l6978">   6978</a> &lt;a href=&quot;#l6959&quot; class=&quot;line&quot; id=&quot;l6959&quot;&gt;   6959&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1859&amp;quot; id=&amp;quot;h4-0-1859&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    return float(bits) * 2.3283064365386963e-10; // / 0x100000000\r
   6998 <a href="#l6979" class="line" id="l6979">   6979</a> &lt;a href=&quot;#l6960&quot; class=&quot;line&quot; id=&quot;l6960&quot;&gt;   6960&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1860&amp;quot; id=&amp;quot;h4-0-1860&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   6999 <a href="#l6980" class="line" id="l6980">   6980</a> &lt;a href=&quot;#l6961&quot; class=&quot;line&quot; id=&quot;l6961&quot;&gt;   6961&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1861&amp;quot; id=&amp;quot;h4-0-1861&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#else\r
   7000 <a href="#l6981" class="line" id="l6981">   6981</a> &lt;a href=&quot;#l6962&quot; class=&quot;line&quot; id=&quot;l6962&quot;&gt;   6962&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1862&amp;quot; id=&amp;quot;h4-0-1862&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   7001 <a href="#l6982" class="line" id="l6982">   6982</a> &lt;a href=&quot;#l6963&quot; class=&quot;line&quot; id=&quot;l6963&quot;&gt;   6963&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1863&amp;quot; id=&amp;quot;h4-0-1863&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float invBase = 1.0 / float(base);\r
   7002 <a href="#l6983" class="line" id="l6983">   6983</a> &lt;a href=&quot;#l6964&quot; class=&quot;line&quot; id=&quot;l6964&quot;&gt;   6964&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1864&amp;quot; id=&amp;quot;h4-0-1864&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float denom = 1.0;\r
   7003 <a href="#l6984" class="line" id="l6984">   6984</a> &lt;a href=&quot;#l6965&quot; class=&quot;line&quot; id=&quot;l6965&quot;&gt;   6965&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1865&amp;quot; id=&amp;quot;h4-0-1865&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float result = 0.0;\r
   7004 <a href="#l6985" class="line" id="l6985">   6985</a> &lt;a href=&quot;#l6966&quot; class=&quot;line&quot; id=&quot;l6966&quot;&gt;   6966&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1866&amp;quot; id=&amp;quot;h4-0-1866&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   7005 <a href="#l6986" class="line" id="l6986">   6986</a> &lt;a href=&quot;#l6967&quot; class=&quot;line&quot; id=&quot;l6967&quot;&gt;   6967&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1867&amp;quot; id=&amp;quot;h4-0-1867&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   7006 <a href="#l6987" class="line" id="l6987">   6987</a> &lt;a href=&quot;#l6968&quot; class=&quot;line&quot; id=&quot;l6968&quot;&gt;   6968&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1868&amp;quot; id=&amp;quot;h4-0-1868&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  for (int i = 0; i &amp;amp;lt; 32; ++i)\r
   7007 <a href="#l6988" class="line" id="l6988">   6988</a> &lt;a href=&quot;#l6969&quot; class=&quot;line&quot; id=&quot;l6969&quot;&gt;   6969&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1869&amp;quot; id=&amp;quot;h4-0-1869&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  {\r
   7008 <a href="#l6989" class="line" id="l6989">   6989</a> &lt;a href=&quot;#l6970&quot; class=&quot;line&quot; id=&quot;l6970&quot;&gt;   6970&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1870&amp;quot; id=&amp;quot;h4-0-1870&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        if (n &amp;amp;gt; 0)\r
   7009 <a href="#l6990" class="line" id="l6990">   6990</a> &lt;a href=&quot;#l6971&quot; class=&quot;line&quot; id=&quot;l6971&quot;&gt;   6971&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1871&amp;quot; id=&amp;quot;h4-0-1871&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        {\r
   7010 <a href="#l6991" class="line" id="l6991">   6991</a> &lt;a href=&quot;#l6972&quot; class=&quot;line&quot; id=&quot;l6972&quot;&gt;   6972&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1872&amp;quot; id=&amp;quot;h4-0-1872&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        denom = mod(float(n), 2.0);\r
   7011 <a href="#l6992" class="line" id="l6992">   6992</a> &lt;a href=&quot;#l6973&quot; class=&quot;line&quot; id=&quot;l6973&quot;&gt;   6973&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1873&amp;quot; id=&amp;quot;h4-0-1873&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        result += denom * invBase;\r
   7012 <a href="#l6993" class="line" id="l6993">   6993</a> &lt;a href=&quot;#l6974&quot; class=&quot;line&quot; id=&quot;l6974&quot;&gt;   6974&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1874&amp;quot; id=&amp;quot;h4-0-1874&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        invBase = invBase / 2.0;\r
   7013 <a href="#l6994" class="line" id="l6994">   6994</a> &lt;a href=&quot;#l6975&quot; class=&quot;line&quot; id=&quot;l6975&quot;&gt;   6975&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1875&amp;quot; id=&amp;quot;h4-0-1875&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        n = int(float(n) / 2.0);\r
   7014 <a href="#l6995" class="line" id="l6995">   6995</a> &lt;a href=&quot;#l6976&quot; class=&quot;line&quot; id=&quot;l6976&quot;&gt;   6976&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1876&amp;quot; id=&amp;quot;h4-0-1876&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        }\r
   7015 <a href="#l6996" class="line" id="l6996">   6996</a> &lt;a href=&quot;#l6977&quot; class=&quot;line&quot; id=&quot;l6977&quot;&gt;   6977&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1877&amp;quot; id=&amp;quot;h4-0-1877&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }\r
   7016 <a href="#l6997" class="line" id="l6997">   6997</a> &lt;a href=&quot;#l6978&quot; class=&quot;line&quot; id=&quot;l6978&quot;&gt;   6978&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1878&amp;quot; id=&amp;quot;h4-0-1878&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   7017 <a href="#l6998" class="line" id="l6998">   6998</a> &lt;a href=&quot;#l6979&quot; class=&quot;line&quot; id=&quot;l6979&quot;&gt;   6979&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1879&amp;quot; id=&amp;quot;h4-0-1879&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   7018 <a href="#l6999" class="line" id="l6999">   6999</a> &lt;a href=&quot;#l6980&quot; class=&quot;line&quot; id=&quot;l6980&quot;&gt;   6980&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1880&amp;quot; id=&amp;quot;h4-0-1880&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return result;\r
   7019 <a href="#l7000" class="line" id="l7000">   7000</a> &lt;a href=&quot;#l6981&quot; class=&quot;line&quot; id=&quot;l6981&quot;&gt;   6981&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1881&amp;quot; id=&amp;quot;h4-0-1881&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   7020 <a href="#l7001" class="line" id="l7001">   7001</a> &lt;a href=&quot;#l6982&quot; class=&quot;line&quot; id=&quot;l6982&quot;&gt;   6982&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1882&amp;quot; id=&amp;quot;h4-0-1882&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#endif\r
   7021 <a href="#l7002" class="line" id="l7002">   7002</a> &lt;a href=&quot;#l6983&quot; class=&quot;line&quot; id=&quot;l6983&quot;&gt;   6983&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1883&amp;quot; id=&amp;quot;h4-0-1883&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}\r
   7022 <a href="#l7003" class="line" id="l7003">   7003</a> &lt;a href=&quot;#l6984&quot; class=&quot;line&quot; id=&quot;l6984&quot;&gt;   6984&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1884&amp;quot; id=&amp;quot;h4-0-1884&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\r
   7023 <a href="#l7004" class="line" id="l7004">   7004</a> &lt;a href=&quot;#l6985&quot; class=&quot;line&quot; id=&quot;l6985&quot;&gt;   6985&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1885&amp;quot; id=&amp;quot;h4-0-1885&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec2 HammersleyNoBitOps(int i, int N)\r
   7024 <a href="#l7005" class="line" id="l7005">   7005</a> &lt;a href=&quot;#l6986&quot; class=&quot;line&quot; id=&quot;l6986&quot;&gt;   6986&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1886&amp;quot; id=&amp;quot;h4-0-1886&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{\r
   7025 <a href="#l7006" class="line" id="l7006">   7006</a> &lt;a href=&quot;#l6987&quot; class=&quot;line&quot; id=&quot;l6987&quot;&gt;   6987&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1887&amp;quot; id=&amp;quot;h4-0-1887&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return vec2(float(i) / float(N), VanDerCorput(i, 2));\r
   7026 <a href="#l7007" class="line" id="l7007">   7007</a> &lt;a href=&quot;#l6988&quot; class=&quot;line&quot; id=&quot;l6988&quot;&gt;   6988&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1888&amp;quot; id=&amp;quot;h4-0-1888&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}\r
   7027 <a href="#l7008" class="line" id="l7008">   7008</a> &lt;a href=&quot;#l6989&quot; class=&quot;line&quot; id=&quot;l6989&quot;&gt;   6989&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1889&amp;quot; id=&amp;quot;h4-0-1889&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Dc=`precision highp float;
   7028 <a href="#l7009" class="line" id="l7009">   7009</a> &lt;a href=&quot;#l6990&quot; class=&quot;line&quot; id=&quot;l6990&quot;&gt;   6990&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1890&amp;quot; id=&amp;quot;h4-0-1890&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7029 <a href="#l7010" class="line" id="l7010">   7010</a> &lt;a href=&quot;#l6991&quot; class=&quot;line&quot; id=&quot;l6991&quot;&gt;   6991&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1891&amp;quot; id=&amp;quot;h4-0-1891&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7030 <a href="#l7011" class="line" id="l7011">   7011</a> &lt;a href=&quot;#l6992&quot; class=&quot;line&quot; id=&quot;l6992&quot;&gt;   6992&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1892&amp;quot; id=&amp;quot;h4-0-1892&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec2 canvasSize;
   7031 <a href="#l7012" class="line" id="l7012">   7012</a> &lt;a href=&quot;#l6993&quot; class=&quot;line&quot; id=&quot;l6993&quot;&gt;   6993&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1893&amp;quot; id=&amp;quot;h4-0-1893&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec2 texelSize;
   7032 <a href="#l7013" class="line" id="l7013">   7013</a> &lt;a href=&quot;#l6994&quot; class=&quot;line&quot; id=&quot;l6994&quot;&gt;   6994&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1894&amp;quot; id=&amp;quot;h4-0-1894&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7033 <a href="#l7014" class="line" id="l7014">   7014</a> &lt;a href=&quot;#l6995&quot; class=&quot;line&quot; id=&quot;l6995&quot;&gt;   6995&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1895&amp;quot; id=&amp;quot;h4-0-1895&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+IN vec2 vTexCoord;
   7034 <a href="#l7015" class="line" id="l7015">   7015</a> &lt;a href=&quot;#l6996&quot; class=&quot;line&quot; id=&quot;l6996&quot;&gt;   6996&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1896&amp;quot; id=&amp;quot;h4-0-1896&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7035 <a href="#l7016" class="line" id="l7016">   7016</a> &lt;a href=&quot;#l6997&quot; class=&quot;line&quot; id=&quot;l6997&quot;&gt;   6997&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1897&amp;quot; id=&amp;quot;h4-0-1897&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+struct FilterInputs {
   7036 <a href="#l7017" class="line" id="l7017">   7017</a> &lt;a href=&quot;#l6998&quot; class=&quot;line&quot; id=&quot;l6998&quot;&gt;   6998&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1898&amp;quot; id=&amp;quot;h4-0-1898&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 texCoord;
   7037 <a href="#l7018" class="line" id="l7018">   7018</a> &lt;a href=&quot;#l6999&quot; class=&quot;line&quot; id=&quot;l6999&quot;&gt;   6999&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1899&amp;quot; id=&amp;quot;h4-0-1899&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 canvasSize;
   7038 <a href="#l7019" class="line" id="l7019">   7019</a> &lt;a href=&quot;#l7000&quot; class=&quot;line&quot; id=&quot;l7000&quot;&gt;   7000&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1900&amp;quot; id=&amp;quot;h4-0-1900&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 texelSize;
   7039 <a href="#l7020" class="line" id="l7020">   7020</a> &lt;a href=&quot;#l7001&quot; class=&quot;line&quot; id=&quot;l7001&quot;&gt;   7001&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1901&amp;quot; id=&amp;quot;h4-0-1901&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   7040 <a href="#l7021" class="line" id="l7021">   7021</a> &lt;a href=&quot;#l7002&quot; class=&quot;line&quot; id=&quot;l7002&quot;&gt;   7002&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1902&amp;quot; id=&amp;quot;h4-0-1902&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7041 <a href="#l7022" class="line" id="l7022">   7022</a> &lt;a href=&quot;#l7003&quot; class=&quot;line&quot; id=&quot;l7003&quot;&gt;   7003&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1903&amp;quot; id=&amp;quot;h4-0-1903&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(void) {
   7042 <a href="#l7023" class="line" id="l7023">   7023</a> &lt;a href=&quot;#l7004&quot; class=&quot;line&quot; id=&quot;l7004&quot;&gt;   7004&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1904&amp;quot; id=&amp;quot;h4-0-1904&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  FilterInputs inputs;
   7043 <a href="#l7024" class="line" id="l7024">   7024</a> &lt;a href=&quot;#l7005&quot; class=&quot;line&quot; id=&quot;l7005&quot;&gt;   7005&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1905&amp;quot; id=&amp;quot;h4-0-1905&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.texCoord = vTexCoord;
   7044 <a href="#l7025" class="line" id="l7025">   7025</a> &lt;a href=&quot;#l7006&quot; class=&quot;line&quot; id=&quot;l7006&quot;&gt;   7006&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1906&amp;quot; id=&amp;quot;h4-0-1906&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.canvasSize = canvasSize;
   7045 <a href="#l7026" class="line" id="l7026">   7026</a> &lt;a href=&quot;#l7007&quot; class=&quot;line&quot; id=&quot;l7007&quot;&gt;   7007&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1907&amp;quot; id=&amp;quot;h4-0-1907&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  inputs.texelSize = texelSize;
   7046 <a href="#l7027" class="line" id="l7027">   7027</a> &lt;a href=&quot;#l7008&quot; class=&quot;line&quot; id=&quot;l7008&quot;&gt;   7008&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1908&amp;quot; id=&amp;quot;h4-0-1908&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR = HOOK_getColor(inputs, tex0);
   7047 <a href="#l7028" class="line" id="l7028">   7028</a> &lt;a href=&quot;#l7009&quot; class=&quot;line&quot; id=&quot;l7009&quot;&gt;   7009&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1909&amp;quot; id=&amp;quot;h4-0-1909&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  OUT_COLOR.rgb *= outColor.a;
   7048 <a href="#l7029" class="line" id="l7029">   7029</a> &lt;a href=&quot;#l7010&quot; class=&quot;line&quot; id=&quot;l7010&quot;&gt;   7010&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1910&amp;quot; id=&amp;quot;h4-0-1910&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7049 <a href="#l7030" class="line" id="l7030">   7030</a> &lt;a href=&quot;#l7011&quot; class=&quot;line&quot; id=&quot;l7011&quot;&gt;   7011&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1911&amp;quot; id=&amp;quot;h4-0-1911&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Fc=`precision highp float;
   7050 <a href="#l7031" class="line" id="l7031">   7031</a> &lt;a href=&quot;#l7012&quot; class=&quot;line&quot; id=&quot;l7012&quot;&gt;   7012&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1912&amp;quot; id=&amp;quot;h4-0-1912&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7051 <a href="#l7032" class="line" id="l7032">   7032</a> &lt;a href=&quot;#l7013&quot; class=&quot;line&quot; id=&quot;l7013&quot;&gt;   7013&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1913&amp;quot; id=&amp;quot;h4-0-1913&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7052 <a href="#l7033" class="line" id="l7033">   7033</a> &lt;a href=&quot;#l7014&quot; class=&quot;line&quot; id=&quot;l7014&quot;&gt;   7014&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1914&amp;quot; id=&amp;quot;h4-0-1914&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7053 <a href="#l7034" class="line" id="l7034">   7034</a> &lt;a href=&quot;#l7015&quot; class=&quot;line&quot; id=&quot;l7015&quot;&gt;   7015&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1915&amp;quot; id=&amp;quot;h4-0-1915&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7054 <a href="#l7035" class="line" id="l7035">   7035</a> &lt;a href=&quot;#l7016&quot; class=&quot;line&quot; id=&quot;l7016&quot;&gt;   7016&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1916&amp;quot; id=&amp;quot;h4-0-1916&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7055 <a href="#l7036" class="line" id="l7036">   7036</a> &lt;a href=&quot;#l7017&quot; class=&quot;line&quot; id=&quot;l7017&quot;&gt;   7017&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1917&amp;quot; id=&amp;quot;h4-0-1917&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float luma(vec3 color) {
   7056 <a href="#l7037" class="line" id="l7037">   7037</a> &lt;a href=&quot;#l7018&quot; class=&quot;line&quot; id=&quot;l7018&quot;&gt;   7018&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1918&amp;quot; id=&amp;quot;h4-0-1918&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // weighted grayscale with luminance values
   7057 <a href="#l7038" class="line" id="l7038">   7038</a> &lt;a href=&quot;#l7019&quot; class=&quot;line&quot; id=&quot;l7019&quot;&gt;   7019&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1919&amp;quot; id=&amp;quot;h4-0-1919&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return dot(color, vec3(0.2126, 0.7152, 0.0722));
   7058 <a href="#l7039" class="line" id="l7039">   7039</a> &lt;a href=&quot;#l7020&quot; class=&quot;line&quot; id=&quot;l7020&quot;&gt;   7020&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1920&amp;quot; id=&amp;quot;h4-0-1920&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7059 <a href="#l7040" class="line" id="l7040">   7040</a> &lt;a href=&quot;#l7021&quot; class=&quot;line&quot; id=&quot;l7021&quot;&gt;   7021&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1921&amp;quot; id=&amp;quot;h4-0-1921&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7060 <a href="#l7041" class="line" id="l7041">   7041</a> &lt;a href=&quot;#l7022&quot; class=&quot;line&quot; id=&quot;l7022&quot;&gt;   7022&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1922&amp;quot; id=&amp;quot;h4-0-1922&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   7061 <a href="#l7042" class="line" id="l7042">   7042</a> &lt;a href=&quot;#l7023&quot; class=&quot;line&quot; id=&quot;l7023&quot;&gt;   7023&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1923&amp;quot; id=&amp;quot;h4-0-1923&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 tex = texture2D(tex0, vTexCoord);
   7062 <a href="#l7043" class="line" id="l7043">   7043</a> &lt;a href=&quot;#l7024&quot; class=&quot;line&quot; id=&quot;l7024&quot;&gt;   7024&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1924&amp;quot; id=&amp;quot;h4-0-1924&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float gray = luma(tex.rgb);
   7063 <a href="#l7044" class="line" id="l7044">   7044</a> &lt;a href=&quot;#l7025&quot; class=&quot;line&quot; id=&quot;l7025&quot;&gt;   7025&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1925&amp;quot; id=&amp;quot;h4-0-1925&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_FragColor = vec4(gray, gray, gray, tex.a);
   7064 <a href="#l7045" class="line" id="l7045">   7045</a> &lt;a href=&quot;#l7026&quot; class=&quot;line&quot; id=&quot;l7026&quot;&gt;   7026&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1926&amp;quot; id=&amp;quot;h4-0-1926&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7065 <a href="#l7046" class="line" id="l7046">   7046</a> &lt;a href=&quot;#l7027&quot; class=&quot;line&quot; id=&quot;l7027&quot;&gt;   7027&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1927&amp;quot; id=&amp;quot;h4-0-1927&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Tc=`// Reduces the bright areas in an image
   7066 <a href="#l7047" class="line" id="l7047">   7047</a> &lt;a href=&quot;#l7028&quot; class=&quot;line&quot; id=&quot;l7028&quot;&gt;   7028&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1928&amp;quot; id=&amp;quot;h4-0-1928&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7067 <a href="#l7048" class="line" id="l7048">   7048</a> &lt;a href=&quot;#l7029&quot; class=&quot;line&quot; id=&quot;l7029&quot;&gt;   7029&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1929&amp;quot; id=&amp;quot;h4-0-1929&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   7068 <a href="#l7049" class="line" id="l7049">   7049</a> &lt;a href=&quot;#l7030&quot; class=&quot;line&quot; id=&quot;l7030&quot;&gt;   7030&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1930&amp;quot; id=&amp;quot;h4-0-1930&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7069 <a href="#l7050" class="line" id="l7050">   7050</a> &lt;a href=&quot;#l7031&quot; class=&quot;line&quot; id=&quot;l7031&quot;&gt;   7031&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1931&amp;quot; id=&amp;quot;h4-0-1931&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7070 <a href="#l7051" class="line" id="l7051">   7051</a> &lt;a href=&quot;#l7032&quot; class=&quot;line&quot; id=&quot;l7032&quot;&gt;   7032&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1932&amp;quot; id=&amp;quot;h4-0-1932&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7071 <a href="#l7052" class="line" id="l7052">   7052</a> &lt;a href=&quot;#l7033&quot; class=&quot;line&quot; id=&quot;l7033&quot;&gt;   7033&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1933&amp;quot; id=&amp;quot;h4-0-1933&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7072 <a href="#l7053" class="line" id="l7053">   7053</a> &lt;a href=&quot;#l7034&quot; class=&quot;line&quot; id=&quot;l7034&quot;&gt;   7034&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1934&amp;quot; id=&amp;quot;h4-0-1934&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec2 texelSize;
   7073 <a href="#l7054" class="line" id="l7054">   7054</a> &lt;a href=&quot;#l7035&quot; class=&quot;line&quot; id=&quot;l7035&quot;&gt;   7035&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1935&amp;quot; id=&amp;quot;h4-0-1935&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7074 <a href="#l7055" class="line" id="l7055">   7055</a> &lt;a href=&quot;#l7036&quot; class=&quot;line&quot; id=&quot;l7036&quot;&gt;   7036&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1936&amp;quot; id=&amp;quot;h4-0-1936&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float luma(vec3 color) {
   7075 <a href="#l7056" class="line" id="l7056">   7056</a> &lt;a href=&quot;#l7037&quot; class=&quot;line&quot; id=&quot;l7037&quot;&gt;   7037&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1937&amp;quot; id=&amp;quot;h4-0-1937&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // weighted grayscale with luminance values
   7076 <a href="#l7057" class="line" id="l7057">   7057</a> &lt;a href=&quot;#l7038&quot; class=&quot;line&quot; id=&quot;l7038&quot;&gt;   7038&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1938&amp;quot; id=&amp;quot;h4-0-1938&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // weights 77, 151, 28 taken from src/image/filters.js
   7077 <a href="#l7058" class="line" id="l7058">   7058</a> &lt;a href=&quot;#l7039&quot; class=&quot;line&quot; id=&quot;l7039&quot;&gt;   7039&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1939&amp;quot; id=&amp;quot;h4-0-1939&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return dot(color, vec3(0.300781, 0.589844, 0.109375));
   7078 <a href="#l7059" class="line" id="l7059">   7059</a> &lt;a href=&quot;#l7040&quot; class=&quot;line&quot; id=&quot;l7040&quot;&gt;   7040&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1940&amp;quot; id=&amp;quot;h4-0-1940&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7079 <a href="#l7060" class="line" id="l7060">   7060</a> &lt;a href=&quot;#l7041&quot; class=&quot;line&quot; id=&quot;l7041&quot;&gt;   7041&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1941&amp;quot; id=&amp;quot;h4-0-1941&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7080 <a href="#l7061" class="line" id="l7061">   7061</a> &lt;a href=&quot;#l7042&quot; class=&quot;line&quot; id=&quot;l7042&quot;&gt;   7042&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1942&amp;quot; id=&amp;quot;h4-0-1942&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   7081 <a href="#l7062" class="line" id="l7062">   7062</a> &lt;a href=&quot;#l7043&quot; class=&quot;line&quot; id=&quot;l7043&quot;&gt;   7043&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1943&amp;quot; id=&amp;quot;h4-0-1943&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color = texture2D(tex0, vTexCoord);
   7082 <a href="#l7063" class="line" id="l7063">   7063</a> &lt;a href=&quot;#l7044&quot; class=&quot;line&quot; id=&quot;l7044&quot;&gt;   7044&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1944&amp;quot; id=&amp;quot;h4-0-1944&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float lum = luma(color.rgb);
   7083 <a href="#l7064" class="line" id="l7064">   7064</a> &lt;a href=&quot;#l7045&quot; class=&quot;line&quot; id=&quot;l7045&quot;&gt;   7045&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1945&amp;quot; id=&amp;quot;h4-0-1945&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7084 <a href="#l7065" class="line" id="l7065">   7065</a> &lt;a href=&quot;#l7046&quot; class=&quot;line&quot; id=&quot;l7046&quot;&gt;   7046&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1946&amp;quot; id=&amp;quot;h4-0-1946&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // set current color as the darkest neighbor color
   7085 <a href="#l7066" class="line" id="l7066">   7066</a> &lt;a href=&quot;#l7047&quot; class=&quot;line&quot; id=&quot;l7047&quot;&gt;   7047&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1947&amp;quot; id=&amp;quot;h4-0-1947&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7086 <a href="#l7067" class="line" id="l7067">   7067</a> &lt;a href=&quot;#l7048&quot; class=&quot;line&quot; id=&quot;l7048&quot;&gt;   7048&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1948&amp;quot; id=&amp;quot;h4-0-1948&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 neighbors[4];
   7087 <a href="#l7068" class="line" id="l7068">   7068</a> &lt;a href=&quot;#l7049&quot; class=&quot;line&quot; id=&quot;l7049&quot;&gt;   7049&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1949&amp;quot; id=&amp;quot;h4-0-1949&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  neighbors[0] = texture2D(tex0, vTexCoord + vec2( texelSize.x, 0.0));
   7088 <a href="#l7069" class="line" id="l7069">   7069</a> &lt;a href=&quot;#l7050&quot; class=&quot;line&quot; id=&quot;l7050&quot;&gt;   7050&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1950&amp;quot; id=&amp;quot;h4-0-1950&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  neighbors[1] = texture2D(tex0, vTexCoord + vec2(-texelSize.x, 0.0));
   7089 <a href="#l7070" class="line" id="l7070">   7070</a> &lt;a href=&quot;#l7051&quot; class=&quot;line&quot; id=&quot;l7051&quot;&gt;   7051&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1951&amp;quot; id=&amp;quot;h4-0-1951&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  neighbors[2] = texture2D(tex0, vTexCoord + vec2(0.0,  texelSize.y));
   7090 <a href="#l7071" class="line" id="l7071">   7071</a> &lt;a href=&quot;#l7052&quot; class=&quot;line&quot; id=&quot;l7052&quot;&gt;   7052&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1952&amp;quot; id=&amp;quot;h4-0-1952&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  neighbors[3] = texture2D(tex0, vTexCoord + vec2(0.0, -texelSize.y));
   7091 <a href="#l7072" class="line" id="l7072">   7072</a> &lt;a href=&quot;#l7053&quot; class=&quot;line&quot; id=&quot;l7053&quot;&gt;   7053&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1953&amp;quot; id=&amp;quot;h4-0-1953&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7092 <a href="#l7073" class="line" id="l7073">   7073</a> &lt;a href=&quot;#l7054&quot; class=&quot;line&quot; id=&quot;l7054&quot;&gt;   7054&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1954&amp;quot; id=&amp;quot;h4-0-1954&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  for (int i = 0; i &amp;amp;lt; 4; i++) {
   7093 <a href="#l7074" class="line" id="l7074">   7074</a> &lt;a href=&quot;#l7055&quot; class=&quot;line&quot; id=&quot;l7055&quot;&gt;   7055&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1955&amp;quot; id=&amp;quot;h4-0-1955&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec4 neighborColor = neighbors[i];
   7094 <a href="#l7075" class="line" id="l7075">   7075</a> &lt;a href=&quot;#l7056&quot; class=&quot;line&quot; id=&quot;l7056&quot;&gt;   7056&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1956&amp;quot; id=&amp;quot;h4-0-1956&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float neighborLum = luma(neighborColor.rgb);
   7095 <a href="#l7076" class="line" id="l7076">   7076</a> &lt;a href=&quot;#l7057&quot; class=&quot;line&quot; id=&quot;l7057&quot;&gt;   7057&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1957&amp;quot; id=&amp;quot;h4-0-1957&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7096 <a href="#l7077" class="line" id="l7077">   7077</a> &lt;a href=&quot;#l7058&quot; class=&quot;line&quot; id=&quot;l7058&quot;&gt;   7058&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1958&amp;quot; id=&amp;quot;h4-0-1958&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (neighborLum &amp;amp;lt; lum) {
   7097 <a href="#l7078" class="line" id="l7078">   7078</a> &lt;a href=&quot;#l7059&quot; class=&quot;line&quot; id=&quot;l7059&quot;&gt;   7059&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1959&amp;quot; id=&amp;quot;h4-0-1959&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      color = neighborColor;
   7098 <a href="#l7079" class="line" id="l7079">   7079</a> &lt;a href=&quot;#l7060&quot; class=&quot;line&quot; id=&quot;l7060&quot;&gt;   7060&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1960&amp;quot; id=&amp;quot;h4-0-1960&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      lum = neighborLum;
   7099 <a href="#l7080" class="line" id="l7080">   7080</a> &lt;a href=&quot;#l7061&quot; class=&quot;line&quot; id=&quot;l7061&quot;&gt;   7061&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1961&amp;quot; id=&amp;quot;h4-0-1961&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   7100 <a href="#l7081" class="line" id="l7081">   7081</a> &lt;a href=&quot;#l7062&quot; class=&quot;line&quot; id=&quot;l7062&quot;&gt;   7062&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1962&amp;quot; id=&amp;quot;h4-0-1962&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   7101 <a href="#l7082" class="line" id="l7082">   7082</a> &lt;a href=&quot;#l7063&quot; class=&quot;line&quot; id=&quot;l7063&quot;&gt;   7063&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1963&amp;quot; id=&amp;quot;h4-0-1963&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7102 <a href="#l7083" class="line" id="l7083">   7083</a> &lt;a href=&quot;#l7064&quot; class=&quot;line&quot; id=&quot;l7064&quot;&gt;   7064&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1964&amp;quot; id=&amp;quot;h4-0-1964&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_FragColor = color;
   7103 <a href="#l7084" class="line" id="l7084">   7084</a> &lt;a href=&quot;#l7065&quot; class=&quot;line&quot; id=&quot;l7065&quot;&gt;   7065&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1965&amp;quot; id=&amp;quot;h4-0-1965&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7104 <a href="#l7085" class="line" id="l7085">   7085</a> &lt;a href=&quot;#l7066&quot; class=&quot;line&quot; id=&quot;l7066&quot;&gt;   7066&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1966&amp;quot; id=&amp;quot;h4-0-1966&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Nc=`// Increase the bright areas in an image
   7105 <a href="#l7086" class="line" id="l7086">   7086</a> &lt;a href=&quot;#l7067&quot; class=&quot;line&quot; id=&quot;l7067&quot;&gt;   7067&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1967&amp;quot; id=&amp;quot;h4-0-1967&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7106 <a href="#l7087" class="line" id="l7087">   7087</a> &lt;a href=&quot;#l7068&quot; class=&quot;line&quot; id=&quot;l7068&quot;&gt;   7068&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1968&amp;quot; id=&amp;quot;h4-0-1968&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   7107 <a href="#l7088" class="line" id="l7088">   7088</a> &lt;a href=&quot;#l7069&quot; class=&quot;line&quot; id=&quot;l7069&quot;&gt;   7069&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1969&amp;quot; id=&amp;quot;h4-0-1969&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7108 <a href="#l7089" class="line" id="l7089">   7089</a> &lt;a href=&quot;#l7070&quot; class=&quot;line&quot; id=&quot;l7070&quot;&gt;   7070&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1970&amp;quot; id=&amp;quot;h4-0-1970&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7109 <a href="#l7090" class="line" id="l7090">   7090</a> &lt;a href=&quot;#l7071&quot; class=&quot;line&quot; id=&quot;l7071&quot;&gt;   7071&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1971&amp;quot; id=&amp;quot;h4-0-1971&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7110 <a href="#l7091" class="line" id="l7091">   7091</a> &lt;a href=&quot;#l7072&quot; class=&quot;line&quot; id=&quot;l7072&quot;&gt;   7072&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1972&amp;quot; id=&amp;quot;h4-0-1972&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7111 <a href="#l7092" class="line" id="l7092">   7092</a> &lt;a href=&quot;#l7073&quot; class=&quot;line&quot; id=&quot;l7073&quot;&gt;   7073&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1973&amp;quot; id=&amp;quot;h4-0-1973&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec2 texelSize;
   7112 <a href="#l7093" class="line" id="l7093">   7093</a> &lt;a href=&quot;#l7074&quot; class=&quot;line&quot; id=&quot;l7074&quot;&gt;   7074&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1974&amp;quot; id=&amp;quot;h4-0-1974&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7113 <a href="#l7094" class="line" id="l7094">   7094</a> &lt;a href=&quot;#l7075&quot; class=&quot;line&quot; id=&quot;l7075&quot;&gt;   7075&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1975&amp;quot; id=&amp;quot;h4-0-1975&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float luma(vec3 color) {
   7114 <a href="#l7095" class="line" id="l7095">   7095</a> &lt;a href=&quot;#l7076&quot; class=&quot;line&quot; id=&quot;l7076&quot;&gt;   7076&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1976&amp;quot; id=&amp;quot;h4-0-1976&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // weighted grayscale with luminance values
   7115 <a href="#l7096" class="line" id="l7096">   7096</a> &lt;a href=&quot;#l7077&quot; class=&quot;line&quot; id=&quot;l7077&quot;&gt;   7077&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1977&amp;quot; id=&amp;quot;h4-0-1977&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // weights 77, 151, 28 taken from src/image/filters.js
   7116 <a href="#l7097" class="line" id="l7097">   7097</a> &lt;a href=&quot;#l7078&quot; class=&quot;line&quot; id=&quot;l7078&quot;&gt;   7078&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1978&amp;quot; id=&amp;quot;h4-0-1978&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return dot(color, vec3(0.300781, 0.589844, 0.109375));
   7117 <a href="#l7098" class="line" id="l7098">   7098</a> &lt;a href=&quot;#l7079&quot; class=&quot;line&quot; id=&quot;l7079&quot;&gt;   7079&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1979&amp;quot; id=&amp;quot;h4-0-1979&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7118 <a href="#l7099" class="line" id="l7099">   7099</a> &lt;a href=&quot;#l7080&quot; class=&quot;line&quot; id=&quot;l7080&quot;&gt;   7080&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1980&amp;quot; id=&amp;quot;h4-0-1980&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7119 <a href="#l7100" class="line" id="l7100">   7100</a> &lt;a href=&quot;#l7081&quot; class=&quot;line&quot; id=&quot;l7081&quot;&gt;   7081&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1981&amp;quot; id=&amp;quot;h4-0-1981&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   7120 <a href="#l7101" class="line" id="l7101">   7101</a> &lt;a href=&quot;#l7082&quot; class=&quot;line&quot; id=&quot;l7082&quot;&gt;   7082&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1982&amp;quot; id=&amp;quot;h4-0-1982&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color = texture2D(tex0, vTexCoord);
   7121 <a href="#l7102" class="line" id="l7102">   7102</a> &lt;a href=&quot;#l7083&quot; class=&quot;line&quot; id=&quot;l7083&quot;&gt;   7083&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1983&amp;quot; id=&amp;quot;h4-0-1983&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float lum = luma(color.rgb);
   7122 <a href="#l7103" class="line" id="l7103">   7103</a> &lt;a href=&quot;#l7084&quot; class=&quot;line&quot; id=&quot;l7084&quot;&gt;   7084&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1984&amp;quot; id=&amp;quot;h4-0-1984&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7123 <a href="#l7104" class="line" id="l7104">   7104</a> &lt;a href=&quot;#l7085&quot; class=&quot;line&quot; id=&quot;l7085&quot;&gt;   7085&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1985&amp;quot; id=&amp;quot;h4-0-1985&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // set current color as the brightest neighbor color
   7124 <a href="#l7105" class="line" id="l7105">   7105</a> &lt;a href=&quot;#l7086&quot; class=&quot;line&quot; id=&quot;l7086&quot;&gt;   7086&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1986&amp;quot; id=&amp;quot;h4-0-1986&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7125 <a href="#l7106" class="line" id="l7106">   7106</a> &lt;a href=&quot;#l7087&quot; class=&quot;line&quot; id=&quot;l7087&quot;&gt;   7087&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1987&amp;quot; id=&amp;quot;h4-0-1987&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 neighbors[4];
   7126 <a href="#l7107" class="line" id="l7107">   7107</a> &lt;a href=&quot;#l7088&quot; class=&quot;line&quot; id=&quot;l7088&quot;&gt;   7088&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1988&amp;quot; id=&amp;quot;h4-0-1988&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  neighbors[0] = texture2D(tex0, vTexCoord + vec2( texelSize.x, 0.0));
   7127 <a href="#l7108" class="line" id="l7108">   7108</a> &lt;a href=&quot;#l7089&quot; class=&quot;line&quot; id=&quot;l7089&quot;&gt;   7089&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1989&amp;quot; id=&amp;quot;h4-0-1989&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  neighbors[1] = texture2D(tex0, vTexCoord + vec2(-texelSize.x, 0.0));
   7128 <a href="#l7109" class="line" id="l7109">   7109</a> &lt;a href=&quot;#l7090&quot; class=&quot;line&quot; id=&quot;l7090&quot;&gt;   7090&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1990&amp;quot; id=&amp;quot;h4-0-1990&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  neighbors[2] = texture2D(tex0, vTexCoord + vec2(0.0,  texelSize.y));
   7129 <a href="#l7110" class="line" id="l7110">   7110</a> &lt;a href=&quot;#l7091&quot; class=&quot;line&quot; id=&quot;l7091&quot;&gt;   7091&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1991&amp;quot; id=&amp;quot;h4-0-1991&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  neighbors[3] = texture2D(tex0, vTexCoord + vec2(0.0, -texelSize.y));
   7130 <a href="#l7111" class="line" id="l7111">   7111</a> &lt;a href=&quot;#l7092&quot; class=&quot;line&quot; id=&quot;l7092&quot;&gt;   7092&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1992&amp;quot; id=&amp;quot;h4-0-1992&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7131 <a href="#l7112" class="line" id="l7112">   7112</a> &lt;a href=&quot;#l7093&quot; class=&quot;line&quot; id=&quot;l7093&quot;&gt;   7093&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1993&amp;quot; id=&amp;quot;h4-0-1993&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  for (int i = 0; i &amp;amp;lt; 4; i++) {
   7132 <a href="#l7113" class="line" id="l7113">   7113</a> &lt;a href=&quot;#l7094&quot; class=&quot;line&quot; id=&quot;l7094&quot;&gt;   7094&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1994&amp;quot; id=&amp;quot;h4-0-1994&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec4 neighborColor = neighbors[i];
   7133 <a href="#l7114" class="line" id="l7114">   7114</a> &lt;a href=&quot;#l7095&quot; class=&quot;line&quot; id=&quot;l7095&quot;&gt;   7095&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1995&amp;quot; id=&amp;quot;h4-0-1995&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float neighborLum = luma(neighborColor.rgb);
   7134 <a href="#l7115" class="line" id="l7115">   7115</a> &lt;a href=&quot;#l7096&quot; class=&quot;line&quot; id=&quot;l7096&quot;&gt;   7096&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1996&amp;quot; id=&amp;quot;h4-0-1996&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7135 <a href="#l7116" class="line" id="l7116">   7116</a> &lt;a href=&quot;#l7097&quot; class=&quot;line&quot; id=&quot;l7097&quot;&gt;   7097&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1997&amp;quot; id=&amp;quot;h4-0-1997&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (neighborLum &amp;amp;gt; lum) {
   7136 <a href="#l7117" class="line" id="l7117">   7117</a> &lt;a href=&quot;#l7098&quot; class=&quot;line&quot; id=&quot;l7098&quot;&gt;   7098&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1998&amp;quot; id=&amp;quot;h4-0-1998&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      color = neighborColor;
   7137 <a href="#l7118" class="line" id="l7118">   7118</a> &lt;a href=&quot;#l7099&quot; class=&quot;line&quot; id=&quot;l7099&quot;&gt;   7099&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-1999&amp;quot; id=&amp;quot;h4-0-1999&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      lum = neighborLum;
   7138 <a href="#l7119" class="line" id="l7119">   7119</a> &lt;a href=&quot;#l7100&quot; class=&quot;line&quot; id=&quot;l7100&quot;&gt;   7100&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2000&amp;quot; id=&amp;quot;h4-0-2000&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   7139 <a href="#l7120" class="line" id="l7120">   7120</a> &lt;a href=&quot;#l7101&quot; class=&quot;line&quot; id=&quot;l7101&quot;&gt;   7101&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2001&amp;quot; id=&amp;quot;h4-0-2001&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   7140 <a href="#l7121" class="line" id="l7121">   7121</a> &lt;a href=&quot;#l7102&quot; class=&quot;line&quot; id=&quot;l7102&quot;&gt;   7102&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2002&amp;quot; id=&amp;quot;h4-0-2002&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7141 <a href="#l7122" class="line" id="l7122">   7122</a> &lt;a href=&quot;#l7103&quot; class=&quot;line&quot; id=&quot;l7103&quot;&gt;   7103&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2003&amp;quot; id=&amp;quot;h4-0-2003&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_FragColor = color;
   7142 <a href="#l7123" class="line" id="l7123">   7123</a> &lt;a href=&quot;#l7104&quot; class=&quot;line&quot; id=&quot;l7104&quot;&gt;   7104&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2004&amp;quot; id=&amp;quot;h4-0-2004&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7143 <a href="#l7124" class="line" id="l7124">   7124</a> &lt;a href=&quot;#l7105&quot; class=&quot;line&quot; id=&quot;l7105&quot;&gt;   7105&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2005&amp;quot; id=&amp;quot;h4-0-2005&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Ic=`precision highp float;
   7144 <a href="#l7125" class="line" id="l7125">   7125</a> &lt;a href=&quot;#l7106&quot; class=&quot;line&quot; id=&quot;l7106&quot;&gt;   7106&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2006&amp;quot; id=&amp;quot;h4-0-2006&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7145 <a href="#l7126" class="line" id="l7126">   7126</a> &lt;a href=&quot;#l7107&quot; class=&quot;line&quot; id=&quot;l7107&quot;&gt;   7107&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2007&amp;quot; id=&amp;quot;h4-0-2007&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// Two-pass blur filter, unweighted kernel.
   7146 <a href="#l7127" class="line" id="l7127">   7127</a> &lt;a href=&quot;#l7108&quot; class=&quot;line&quot; id=&quot;l7108&quot;&gt;   7108&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2008&amp;quot; id=&amp;quot;h4-0-2008&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// See also a similar blur at Adam Ferriss&amp;amp;#39; repo of shader examples:
   7147 <a href="#l7128" class="line" id="l7128">   7128</a> &lt;a href=&quot;#l7109&quot; class=&quot;line&quot; id=&quot;l7109&quot;&gt;   7109&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2009&amp;quot; id=&amp;quot;h4-0-2009&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// https://github.com/aferriss/p5jsShaderExamples/blob/gh-pages/4_image-effects/4-9_single-pass-blur/effect.frag
   7148 <a href="#l7129" class="line" id="l7129">   7129</a> &lt;a href=&quot;#l7110&quot; class=&quot;line&quot; id=&quot;l7110&quot;&gt;   7110&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2010&amp;quot; id=&amp;quot;h4-0-2010&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7149 <a href="#l7130" class="line" id="l7130">   7130</a> &lt;a href=&quot;#l7111&quot; class=&quot;line&quot; id=&quot;l7111&quot;&gt;   7111&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2011&amp;quot; id=&amp;quot;h4-0-2011&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7150 <a href="#l7131" class="line" id="l7131">   7131</a> &lt;a href=&quot;#l7112&quot; class=&quot;line&quot; id=&quot;l7112&quot;&gt;   7112&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2012&amp;quot; id=&amp;quot;h4-0-2012&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7151 <a href="#l7132" class="line" id="l7132">   7132</a> &lt;a href=&quot;#l7113&quot; class=&quot;line&quot; id=&quot;l7113&quot;&gt;   7113&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2013&amp;quot; id=&amp;quot;h4-0-2013&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7152 <a href="#l7133" class="line" id="l7133">   7133</a> &lt;a href=&quot;#l7114&quot; class=&quot;line&quot; id=&quot;l7114&quot;&gt;   7114&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2014&amp;quot; id=&amp;quot;h4-0-2014&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec2 direction;
   7153 <a href="#l7134" class="line" id="l7134">   7134</a> &lt;a href=&quot;#l7115&quot; class=&quot;line&quot; id=&quot;l7115&quot;&gt;   7115&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2015&amp;quot; id=&amp;quot;h4-0-2015&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform vec2 canvasSize;
   7154 <a href="#l7135" class="line" id="l7135">   7135</a> &lt;a href=&quot;#l7116&quot; class=&quot;line&quot; id=&quot;l7116&quot;&gt;   7116&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2016&amp;quot; id=&amp;quot;h4-0-2016&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float radius;
   7155 <a href="#l7136" class="line" id="l7136">   7136</a> &lt;a href=&quot;#l7117&quot; class=&quot;line&quot; id=&quot;l7117&quot;&gt;   7117&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2017&amp;quot; id=&amp;quot;h4-0-2017&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7156 <a href="#l7137" class="line" id="l7137">   7137</a> &lt;a href=&quot;#l7118&quot; class=&quot;line&quot; id=&quot;l7118&quot;&gt;   7118&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2018&amp;quot; id=&amp;quot;h4-0-2018&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float random(vec2 p) {
   7157 <a href="#l7138" class="line" id="l7138">   7138</a> &lt;a href=&quot;#l7119&quot; class=&quot;line&quot; id=&quot;l7119&quot;&gt;   7119&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2019&amp;quot; id=&amp;quot;h4-0-2019&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 p3  = fract(vec3(p.xyx) * .1031);
   7158 <a href="#l7139" class="line" id="l7139">   7139</a> &lt;a href=&quot;#l7120&quot; class=&quot;line&quot; id=&quot;l7120&quot;&gt;   7120&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2020&amp;quot; id=&amp;quot;h4-0-2020&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  p3 += dot(p3, p3.yzx + 33.33);
   7159 <a href="#l7140" class="line" id="l7140">   7140</a> &lt;a href=&quot;#l7121&quot; class=&quot;line&quot; id=&quot;l7121&quot;&gt;   7121&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2021&amp;quot; id=&amp;quot;h4-0-2021&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return fract((p3.x + p3.y) * p3.z);
   7160 <a href="#l7141" class="line" id="l7141">   7141</a> &lt;a href=&quot;#l7122&quot; class=&quot;line&quot; id=&quot;l7122&quot;&gt;   7122&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2022&amp;quot; id=&amp;quot;h4-0-2022&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7161 <a href="#l7142" class="line" id="l7142">   7142</a> &lt;a href=&quot;#l7123&quot; class=&quot;line&quot; id=&quot;l7123&quot;&gt;   7123&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2023&amp;quot; id=&amp;quot;h4-0-2023&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7162 <a href="#l7143" class="line" id="l7143">   7143</a> &lt;a href=&quot;#l7124&quot; class=&quot;line&quot; id=&quot;l7124&quot;&gt;   7124&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2024&amp;quot; id=&amp;quot;h4-0-2024&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// This isn&amp;amp;#39;t a real Gaussian weight, it&amp;amp;#39;s a quadratic weight. It&amp;amp;#39;s what the
   7163 <a href="#l7144" class="line" id="l7144">   7144</a> &lt;a href=&quot;#l7125&quot; class=&quot;line&quot; id=&quot;l7125&quot;&gt;   7125&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2025&amp;quot; id=&amp;quot;h4-0-2025&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// CPU mode&amp;amp;#39;s blur uses though, so we also use it here to match.
   7164 <a href="#l7145" class="line" id="l7145">   7145</a> &lt;a href=&quot;#l7126&quot; class=&quot;line&quot; id=&quot;l7126&quot;&gt;   7126&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2026&amp;quot; id=&amp;quot;h4-0-2026&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float quadWeight(float x, float e) {
   7165 <a href="#l7146" class="line" id="l7146">   7146</a> &lt;a href=&quot;#l7127&quot; class=&quot;line&quot; id=&quot;l7127&quot;&gt;   7127&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2027&amp;quot; id=&amp;quot;h4-0-2027&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return pow(e-abs(x), 2.);
   7166 <a href="#l7147" class="line" id="l7147">   7147</a> &lt;a href=&quot;#l7128&quot; class=&quot;line&quot; id=&quot;l7128&quot;&gt;   7128&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2028&amp;quot; id=&amp;quot;h4-0-2028&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7167 <a href="#l7148" class="line" id="l7148">   7148</a> &lt;a href=&quot;#l7129&quot; class=&quot;line&quot; id=&quot;l7129&quot;&gt;   7129&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2029&amp;quot; id=&amp;quot;h4-0-2029&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7168 <a href="#l7149" class="line" id="l7149">   7149</a> &lt;a href=&quot;#l7130&quot; class=&quot;line&quot; id=&quot;l7130&quot;&gt;   7130&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2030&amp;quot; id=&amp;quot;h4-0-2030&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main(){
   7169 <a href="#l7150" class="line" id="l7150">   7150</a> &lt;a href=&quot;#l7131&quot; class=&quot;line&quot; id=&quot;l7131&quot;&gt;   7131&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2031&amp;quot; id=&amp;quot;h4-0-2031&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec2 uv = vTexCoord;
   7170 <a href="#l7151" class="line" id="l7151">   7151</a> &lt;a href=&quot;#l7132&quot; class=&quot;line&quot; id=&quot;l7132&quot;&gt;   7132&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2032&amp;quot; id=&amp;quot;h4-0-2032&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7171 <a href="#l7152" class="line" id="l7152">   7152</a> &lt;a href=&quot;#l7133&quot; class=&quot;line&quot; id=&quot;l7133&quot;&gt;   7133&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2033&amp;quot; id=&amp;quot;h4-0-2033&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // A reasonable maximum number of samples
   7172 <a href="#l7153" class="line" id="l7153">   7153</a> &lt;a href=&quot;#l7134&quot; class=&quot;line&quot; id=&quot;l7134&quot;&gt;   7134&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2034&amp;quot; id=&amp;quot;h4-0-2034&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  const float maxSamples = 64.0;
   7173 <a href="#l7154" class="line" id="l7154">   7154</a> &lt;a href=&quot;#l7135&quot; class=&quot;line&quot; id=&quot;l7135&quot;&gt;   7135&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2035&amp;quot; id=&amp;quot;h4-0-2035&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7174 <a href="#l7155" class="line" id="l7155">   7155</a> &lt;a href=&quot;#l7136&quot; class=&quot;line&quot; id=&quot;l7136&quot;&gt;   7136&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2036&amp;quot; id=&amp;quot;h4-0-2036&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float numSamples = floor(7. * radius);
   7175 <a href="#l7156" class="line" id="l7156">   7156</a> &lt;a href=&quot;#l7137&quot; class=&quot;line&quot; id=&quot;l7137&quot;&gt;   7137&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2037&amp;quot; id=&amp;quot;h4-0-2037&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (fract(numSamples / 2.) == 0.) {
   7176 <a href="#l7157" class="line" id="l7157">   7157</a> &lt;a href=&quot;#l7138&quot; class=&quot;line&quot; id=&quot;l7138&quot;&gt;   7138&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2038&amp;quot; id=&amp;quot;h4-0-2038&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    numSamples++;
   7177 <a href="#l7158" class="line" id="l7158">   7158</a> &lt;a href=&quot;#l7139&quot; class=&quot;line&quot; id=&quot;l7139&quot;&gt;   7139&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2039&amp;quot; id=&amp;quot;h4-0-2039&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   7178 <a href="#l7159" class="line" id="l7159">   7159</a> &lt;a href=&quot;#l7140&quot; class=&quot;line&quot; id=&quot;l7140&quot;&gt;   7140&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2040&amp;quot; id=&amp;quot;h4-0-2040&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 avg = vec4(0.0);
   7179 <a href="#l7160" class="line" id="l7160">   7160</a> &lt;a href=&quot;#l7141&quot; class=&quot;line&quot; id=&quot;l7141&quot;&gt;   7141&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2041&amp;quot; id=&amp;quot;h4-0-2041&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float total = 0.0;
   7180 <a href="#l7161" class="line" id="l7161">   7161</a> &lt;a href=&quot;#l7142&quot; class=&quot;line&quot; id=&quot;l7142&quot;&gt;   7142&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2042&amp;quot; id=&amp;quot;h4-0-2042&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7181 <a href="#l7162" class="line" id="l7162">   7162</a> &lt;a href=&quot;#l7143&quot; class=&quot;line&quot; id=&quot;l7143&quot;&gt;   7143&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2043&amp;quot; id=&amp;quot;h4-0-2043&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // Calculate the spacing to avoid skewing if numSamples &amp;amp;gt; maxSamples
   7182 <a href="#l7163" class="line" id="l7163">   7163</a> &lt;a href=&quot;#l7144&quot; class=&quot;line&quot; id=&quot;l7144&quot;&gt;   7144&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2044&amp;quot; id=&amp;quot;h4-0-2044&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float spacing = 1.0;
   7183 <a href="#l7164" class="line" id="l7164">   7164</a> &lt;a href=&quot;#l7145&quot; class=&quot;line&quot; id=&quot;l7145&quot;&gt;   7145&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2045&amp;quot; id=&amp;quot;h4-0-2045&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (numSamples &amp;amp;gt; maxSamples) {
   7184 <a href="#l7165" class="line" id="l7165">   7165</a> &lt;a href=&quot;#l7146&quot; class=&quot;line&quot; id=&quot;l7146&quot;&gt;   7146&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2046&amp;quot; id=&amp;quot;h4-0-2046&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    spacing = numSamples / maxSamples;
   7185 <a href="#l7166" class="line" id="l7166">   7166</a> &lt;a href=&quot;#l7147&quot; class=&quot;line&quot; id=&quot;l7147&quot;&gt;   7147&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2047&amp;quot; id=&amp;quot;h4-0-2047&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    numSamples = maxSamples;
   7186 <a href="#l7167" class="line" id="l7167">   7167</a> &lt;a href=&quot;#l7148&quot; class=&quot;line&quot; id=&quot;l7148&quot;&gt;   7148&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2048&amp;quot; id=&amp;quot;h4-0-2048&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   7187 <a href="#l7168" class="line" id="l7168">   7168</a> &lt;a href=&quot;#l7149&quot; class=&quot;line&quot; id=&quot;l7149&quot;&gt;   7149&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2049&amp;quot; id=&amp;quot;h4-0-2049&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7188 <a href="#l7169" class="line" id="l7169">   7169</a> &lt;a href=&quot;#l7150&quot; class=&quot;line&quot; id=&quot;l7150&quot;&gt;   7150&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2050&amp;quot; id=&amp;quot;h4-0-2050&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float randomOffset = (spacing - 1.0) * mix(-0.5, 0.5, random(gl_FragCoord.xy));
   7189 <a href="#l7170" class="line" id="l7170">   7170</a> &lt;a href=&quot;#l7151&quot; class=&quot;line&quot; id=&quot;l7151&quot;&gt;   7151&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2051&amp;quot; id=&amp;quot;h4-0-2051&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  for (float i = 0.0; i &amp;amp;lt; maxSamples; i++) {
   7190 <a href="#l7171" class="line" id="l7171">   7171</a> &lt;a href=&quot;#l7152&quot; class=&quot;line&quot; id=&quot;l7152&quot;&gt;   7152&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2052&amp;quot; id=&amp;quot;h4-0-2052&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (i &amp;amp;gt;= numSamples) break;
   7191 <a href="#l7172" class="line" id="l7172">   7172</a> &lt;a href=&quot;#l7153&quot; class=&quot;line&quot; id=&quot;l7153&quot;&gt;   7153&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2053&amp;quot; id=&amp;quot;h4-0-2053&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7192 <a href="#l7173" class="line" id="l7173">   7173</a> &lt;a href=&quot;#l7154&quot; class=&quot;line&quot; id=&quot;l7154&quot;&gt;   7154&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2054&amp;quot; id=&amp;quot;h4-0-2054&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float sample = i * spacing - (numSamples - 1.0) * 0.5 * spacing + randomOffset;
   7193 <a href="#l7174" class="line" id="l7174">   7174</a> &lt;a href=&quot;#l7155&quot; class=&quot;line&quot; id=&quot;l7155&quot;&gt;   7155&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2055&amp;quot; id=&amp;quot;h4-0-2055&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    vec2 sampleCoord = uv + vec2(sample, sample) / canvasSize * direction;
   7194 <a href="#l7175" class="line" id="l7175">   7175</a> &lt;a href=&quot;#l7156&quot; class=&quot;line&quot; id=&quot;l7156&quot;&gt;   7156&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2056&amp;quot; id=&amp;quot;h4-0-2056&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    float weight = quadWeight(sample, (numSamples - 1.0) * 0.5 * spacing);
   7195 <a href="#l7176" class="line" id="l7176">   7176</a> &lt;a href=&quot;#l7157&quot; class=&quot;line&quot; id=&quot;l7157&quot;&gt;   7157&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2057&amp;quot; id=&amp;quot;h4-0-2057&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7196 <a href="#l7177" class="line" id="l7177">   7177</a> &lt;a href=&quot;#l7158&quot; class=&quot;line&quot; id=&quot;l7158&quot;&gt;   7158&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2058&amp;quot; id=&amp;quot;h4-0-2058&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    avg += weight * texture2D(tex0, sampleCoord);
   7197 <a href="#l7178" class="line" id="l7178">   7178</a> &lt;a href=&quot;#l7159&quot; class=&quot;line&quot; id=&quot;l7159&quot;&gt;   7159&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2059&amp;quot; id=&amp;quot;h4-0-2059&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    total += weight;
   7198 <a href="#l7179" class="line" id="l7179">   7179</a> &lt;a href=&quot;#l7160&quot; class=&quot;line&quot; id=&quot;l7160&quot;&gt;   7160&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2060&amp;quot; id=&amp;quot;h4-0-2060&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   7199 <a href="#l7180" class="line" id="l7180">   7180</a> &lt;a href=&quot;#l7161&quot; class=&quot;line&quot; id=&quot;l7161&quot;&gt;   7161&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2061&amp;quot; id=&amp;quot;h4-0-2061&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7200 <a href="#l7181" class="line" id="l7181">   7181</a> &lt;a href=&quot;#l7162&quot; class=&quot;line&quot; id=&quot;l7162&quot;&gt;   7162&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2062&amp;quot; id=&amp;quot;h4-0-2062&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  avg /= total;
   7201 <a href="#l7182" class="line" id="l7182">   7182</a> &lt;a href=&quot;#l7163&quot; class=&quot;line&quot; id=&quot;l7163&quot;&gt;   7163&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2063&amp;quot; id=&amp;quot;h4-0-2063&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_FragColor = avg;
   7202 <a href="#l7183" class="line" id="l7183">   7183</a> &lt;a href=&quot;#l7164&quot; class=&quot;line&quot; id=&quot;l7164&quot;&gt;   7164&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2064&amp;quot; id=&amp;quot;h4-0-2064&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7203 <a href="#l7184" class="line" id="l7184">   7184</a> &lt;a href=&quot;#l7165&quot; class=&quot;line&quot; id=&quot;l7165&quot;&gt;   7165&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2065&amp;quot; id=&amp;quot;h4-0-2065&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,kc=`// Limit color space for a stylized cartoon / poster effect
   7204 <a href="#l7185" class="line" id="l7185">   7185</a> &lt;a href=&quot;#l7166&quot; class=&quot;line&quot; id=&quot;l7166&quot;&gt;   7166&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2066&amp;quot; id=&amp;quot;h4-0-2066&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7205 <a href="#l7186" class="line" id="l7186">   7186</a> &lt;a href=&quot;#l7167&quot; class=&quot;line&quot; id=&quot;l7167&quot;&gt;   7167&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2067&amp;quot; id=&amp;quot;h4-0-2067&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   7206 <a href="#l7187" class="line" id="l7187">   7187</a> &lt;a href=&quot;#l7168&quot; class=&quot;line&quot; id=&quot;l7168&quot;&gt;   7168&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2068&amp;quot; id=&amp;quot;h4-0-2068&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7207 <a href="#l7188" class="line" id="l7188">   7188</a> &lt;a href=&quot;#l7169&quot; class=&quot;line&quot; id=&quot;l7169&quot;&gt;   7169&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2069&amp;quot; id=&amp;quot;h4-0-2069&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7208 <a href="#l7189" class="line" id="l7189">   7189</a> &lt;a href=&quot;#l7170&quot; class=&quot;line&quot; id=&quot;l7170&quot;&gt;   7170&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2070&amp;quot; id=&amp;quot;h4-0-2070&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7209 <a href="#l7190" class="line" id="l7190">   7190</a> &lt;a href=&quot;#l7171&quot; class=&quot;line&quot; id=&quot;l7171&quot;&gt;   7171&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2071&amp;quot; id=&amp;quot;h4-0-2071&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7210 <a href="#l7191" class="line" id="l7191">   7191</a> &lt;a href=&quot;#l7172&quot; class=&quot;line&quot; id=&quot;l7172&quot;&gt;   7172&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2072&amp;quot; id=&amp;quot;h4-0-2072&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float filterParameter;
   7211 <a href="#l7192" class="line" id="l7192">   7192</a> &lt;a href=&quot;#l7173&quot; class=&quot;line&quot; id=&quot;l7173&quot;&gt;   7173&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2073&amp;quot; id=&amp;quot;h4-0-2073&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7212 <a href="#l7193" class="line" id="l7193">   7193</a> &lt;a href=&quot;#l7174&quot; class=&quot;line&quot; id=&quot;l7174&quot;&gt;   7174&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2074&amp;quot; id=&amp;quot;h4-0-2074&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 quantize(vec3 color, float n) {
   7213 <a href="#l7194" class="line" id="l7194">   7194</a> &lt;a href=&quot;#l7175&quot; class=&quot;line&quot; id=&quot;l7175&quot;&gt;   7175&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2075&amp;quot; id=&amp;quot;h4-0-2075&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // restrict values to N options/bins
   7214 <a href="#l7195" class="line" id="l7195">   7195</a> &lt;a href=&quot;#l7176&quot; class=&quot;line&quot; id=&quot;l7176&quot;&gt;   7176&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2076&amp;quot; id=&amp;quot;h4-0-2076&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // and floor each channel to nearest value
   7215 <a href="#l7196" class="line" id="l7196">   7196</a> &lt;a href=&quot;#l7177&quot; class=&quot;line&quot; id=&quot;l7177&quot;&gt;   7177&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2077&amp;quot; id=&amp;quot;h4-0-2077&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  //
   7216 <a href="#l7197" class="line" id="l7197">   7197</a> &lt;a href=&quot;#l7178&quot; class=&quot;line&quot; id=&quot;l7178&quot;&gt;   7178&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2078&amp;quot; id=&amp;quot;h4-0-2078&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // eg. when N = 5, values = 0.0, 0.25, 0.50, 0.75, 1.0
   7217 <a href="#l7198" class="line" id="l7198">   7198</a> &lt;a href=&quot;#l7179&quot; class=&quot;line&quot; id=&quot;l7179&quot;&gt;   7179&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2079&amp;quot; id=&amp;quot;h4-0-2079&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // then quantize (0.1, 0.7, 0.9) -&amp;amp;gt; (0.0, 0.5, 1.0)
   7218 <a href="#l7199" class="line" id="l7199">   7199</a> &lt;a href=&quot;#l7180&quot; class=&quot;line&quot; id=&quot;l7180&quot;&gt;   7180&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2080&amp;quot; id=&amp;quot;h4-0-2080&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7219 <a href="#l7200" class="line" id="l7200">   7200</a> &lt;a href=&quot;#l7181&quot; class=&quot;line&quot; id=&quot;l7181&quot;&gt;   7181&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2081&amp;quot; id=&amp;quot;h4-0-2081&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  color = color * n;
   7220 <a href="#l7201" class="line" id="l7201">   7201</a> &lt;a href=&quot;#l7182&quot; class=&quot;line&quot; id=&quot;l7182&quot;&gt;   7182&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2082&amp;quot; id=&amp;quot;h4-0-2082&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  color = floor(color);
   7221 <a href="#l7202" class="line" id="l7202">   7202</a> &lt;a href=&quot;#l7183&quot; class=&quot;line&quot; id=&quot;l7183&quot;&gt;   7183&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2083&amp;quot; id=&amp;quot;h4-0-2083&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  color = color / (n - 1.0);
   7222 <a href="#l7203" class="line" id="l7203">   7203</a> &lt;a href=&quot;#l7184&quot; class=&quot;line&quot; id=&quot;l7184&quot;&gt;   7184&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2084&amp;quot; id=&amp;quot;h4-0-2084&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return color;
   7223 <a href="#l7204" class="line" id="l7204">   7204</a> &lt;a href=&quot;#l7185&quot; class=&quot;line&quot; id=&quot;l7185&quot;&gt;   7185&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2085&amp;quot; id=&amp;quot;h4-0-2085&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7224 <a href="#l7205" class="line" id="l7205">   7205</a> &lt;a href=&quot;#l7186&quot; class=&quot;line&quot; id=&quot;l7186&quot;&gt;   7186&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2086&amp;quot; id=&amp;quot;h4-0-2086&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7225 <a href="#l7206" class="line" id="l7206">   7206</a> &lt;a href=&quot;#l7187&quot; class=&quot;line&quot; id=&quot;l7187&quot;&gt;   7187&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2087&amp;quot; id=&amp;quot;h4-0-2087&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   7226 <a href="#l7207" class="line" id="l7207">   7207</a> &lt;a href=&quot;#l7188&quot; class=&quot;line&quot; id=&quot;l7188&quot;&gt;   7188&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2088&amp;quot; id=&amp;quot;h4-0-2088&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color = texture2D(tex0, vTexCoord);
   7227 <a href="#l7208" class="line" id="l7208">   7208</a> &lt;a href=&quot;#l7189&quot; class=&quot;line&quot; id=&quot;l7189&quot;&gt;   7189&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2089&amp;quot; id=&amp;quot;h4-0-2089&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7228 <a href="#l7209" class="line" id="l7209">   7209</a> &lt;a href=&quot;#l7190&quot; class=&quot;line&quot; id=&quot;l7190&quot;&gt;   7190&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2090&amp;quot; id=&amp;quot;h4-0-2090&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec3 restrictedColor = quantize(color.rgb / color.a, filterParameter);
   7229 <a href="#l7210" class="line" id="l7210">   7210</a> &lt;a href=&quot;#l7191&quot; class=&quot;line&quot; id=&quot;l7191&quot;&gt;   7191&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2091&amp;quot; id=&amp;quot;h4-0-2091&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7230 <a href="#l7211" class="line" id="l7211">   7211</a> &lt;a href=&quot;#l7192&quot; class=&quot;line&quot; id=&quot;l7192&quot;&gt;   7192&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2092&amp;quot; id=&amp;quot;h4-0-2092&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_FragColor = vec4(restrictedColor.rgb * color.a, color.a);
   7231 <a href="#l7212" class="line" id="l7212">   7212</a> &lt;a href=&quot;#l7193&quot; class=&quot;line&quot; id=&quot;l7193&quot;&gt;   7193&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2093&amp;quot; id=&amp;quot;h4-0-2093&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7232 <a href="#l7213" class="line" id="l7213">   7213</a> &lt;a href=&quot;#l7194&quot; class=&quot;line&quot; id=&quot;l7194&quot;&gt;   7194&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2094&amp;quot; id=&amp;quot;h4-0-2094&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Mc=`// Set alpha channel to entirely opaque
   7233 <a href="#l7214" class="line" id="l7214">   7214</a> &lt;a href=&quot;#l7195&quot; class=&quot;line&quot; id=&quot;l7195&quot;&gt;   7195&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2095&amp;quot; id=&amp;quot;h4-0-2095&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7234 <a href="#l7215" class="line" id="l7215">   7215</a> &lt;a href=&quot;#l7196&quot; class=&quot;line&quot; id=&quot;l7196&quot;&gt;   7196&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2096&amp;quot; id=&amp;quot;h4-0-2096&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   7235 <a href="#l7216" class="line" id="l7216">   7216</a> &lt;a href=&quot;#l7197&quot; class=&quot;line&quot; id=&quot;l7197&quot;&gt;   7197&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2097&amp;quot; id=&amp;quot;h4-0-2097&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7236 <a href="#l7217" class="line" id="l7217">   7217</a> &lt;a href=&quot;#l7198&quot; class=&quot;line&quot; id=&quot;l7198&quot;&gt;   7198&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2098&amp;quot; id=&amp;quot;h4-0-2098&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7237 <a href="#l7218" class="line" id="l7218">   7218</a> &lt;a href=&quot;#l7199&quot; class=&quot;line&quot; id=&quot;l7199&quot;&gt;   7199&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2099&amp;quot; id=&amp;quot;h4-0-2099&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7238 <a href="#l7219" class="line" id="l7219">   7219</a> &lt;a href=&quot;#l7200&quot; class=&quot;line&quot; id=&quot;l7200&quot;&gt;   7200&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2100&amp;quot; id=&amp;quot;h4-0-2100&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7239 <a href="#l7220" class="line" id="l7220">   7220</a> &lt;a href=&quot;#l7201&quot; class=&quot;line&quot; id=&quot;l7201&quot;&gt;   7201&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2101&amp;quot; id=&amp;quot;h4-0-2101&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7240 <a href="#l7221" class="line" id="l7221">   7221</a> &lt;a href=&quot;#l7202&quot; class=&quot;line&quot; id=&quot;l7202&quot;&gt;   7202&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2102&amp;quot; id=&amp;quot;h4-0-2102&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   7241 <a href="#l7222" class="line" id="l7222">   7222</a> &lt;a href=&quot;#l7203&quot; class=&quot;line&quot; id=&quot;l7203&quot;&gt;   7203&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2103&amp;quot; id=&amp;quot;h4-0-2103&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color = texture2D(tex0, vTexCoord);
   7242 <a href="#l7223" class="line" id="l7223">   7223</a> &lt;a href=&quot;#l7204&quot; class=&quot;line&quot; id=&quot;l7204&quot;&gt;   7204&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2104&amp;quot; id=&amp;quot;h4-0-2104&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_FragColor = vec4(color.rgb / color.a, 1.0);
   7243 <a href="#l7224" class="line" id="l7224">   7224</a> &lt;a href=&quot;#l7205&quot; class=&quot;line&quot; id=&quot;l7205&quot;&gt;   7205&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2105&amp;quot; id=&amp;quot;h4-0-2105&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7244 <a href="#l7225" class="line" id="l7225">   7225</a> &lt;a href=&quot;#l7206&quot; class=&quot;line&quot; id=&quot;l7206&quot;&gt;   7206&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2106&amp;quot; id=&amp;quot;h4-0-2106&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Lc=`// Set each pixel to inverse value
   7245 <a href="#l7226" class="line" id="l7226">   7226</a> &lt;a href=&quot;#l7207&quot; class=&quot;line&quot; id=&quot;l7207&quot;&gt;   7207&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2107&amp;quot; id=&amp;quot;h4-0-2107&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// Note that original INVERT does not change the opacity, so this follows suit
   7246 <a href="#l7227" class="line" id="l7227">   7227</a> &lt;a href=&quot;#l7208&quot; class=&quot;line&quot; id=&quot;l7208&quot;&gt;   7208&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2108&amp;quot; id=&amp;quot;h4-0-2108&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7247 <a href="#l7228" class="line" id="l7228">   7228</a> &lt;a href=&quot;#l7209&quot; class=&quot;line&quot; id=&quot;l7209&quot;&gt;   7209&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2109&amp;quot; id=&amp;quot;h4-0-2109&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   7248 <a href="#l7229" class="line" id="l7229">   7229</a> &lt;a href=&quot;#l7210&quot; class=&quot;line&quot; id=&quot;l7210&quot;&gt;   7210&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2110&amp;quot; id=&amp;quot;h4-0-2110&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7249 <a href="#l7230" class="line" id="l7230">   7230</a> &lt;a href=&quot;#l7211&quot; class=&quot;line&quot; id=&quot;l7211&quot;&gt;   7211&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2111&amp;quot; id=&amp;quot;h4-0-2111&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7250 <a href="#l7231" class="line" id="l7231">   7231</a> &lt;a href=&quot;#l7212&quot; class=&quot;line&quot; id=&quot;l7212&quot;&gt;   7212&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2112&amp;quot; id=&amp;quot;h4-0-2112&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7251 <a href="#l7232" class="line" id="l7232">   7232</a> &lt;a href=&quot;#l7213&quot; class=&quot;line&quot; id=&quot;l7213&quot;&gt;   7213&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2113&amp;quot; id=&amp;quot;h4-0-2113&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7252 <a href="#l7233" class="line" id="l7233">   7233</a> &lt;a href=&quot;#l7214&quot; class=&quot;line&quot; id=&quot;l7214&quot;&gt;   7214&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2114&amp;quot; id=&amp;quot;h4-0-2114&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7253 <a href="#l7234" class="line" id="l7234">   7234</a> &lt;a href=&quot;#l7215&quot; class=&quot;line&quot; id=&quot;l7215&quot;&gt;   7215&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2115&amp;quot; id=&amp;quot;h4-0-2115&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   7254 <a href="#l7235" class="line" id="l7235">   7235</a> &lt;a href=&quot;#l7216&quot; class=&quot;line&quot; id=&quot;l7216&quot;&gt;   7216&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2116&amp;quot; id=&amp;quot;h4-0-2116&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec4 color = texture2D(tex0, vTexCoord);
   7255 <a href="#l7236" class="line" id="l7236">   7236</a> &lt;a href=&quot;#l7217&quot; class=&quot;line&quot; id=&quot;l7217&quot;&gt;   7217&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2117&amp;quot; id=&amp;quot;h4-0-2117&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 origColor = color.rgb / color.a;
   7256 <a href="#l7237" class="line" id="l7237">   7237</a> &lt;a href=&quot;#l7218&quot; class=&quot;line&quot; id=&quot;l7218&quot;&gt;   7218&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2118&amp;quot; id=&amp;quot;h4-0-2118&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+vec3 invertedColor = vec3(1.0) - origColor;
   7257 <a href="#l7238" class="line" id="l7238">   7238</a> &lt;a href=&quot;#l7219&quot; class=&quot;line&quot; id=&quot;l7219&quot;&gt;   7219&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2119&amp;quot; id=&amp;quot;h4-0-2119&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+gl_FragColor = vec4(invertedColor * color.a, color.a);
   7258 <a href="#l7239" class="line" id="l7239">   7239</a> &lt;a href=&quot;#l7220&quot; class=&quot;line&quot; id=&quot;l7220&quot;&gt;   7220&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2120&amp;quot; id=&amp;quot;h4-0-2120&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7259 <a href="#l7240" class="line" id="l7240">   7240</a> &lt;a href=&quot;#l7221&quot; class=&quot;line&quot; id=&quot;l7221&quot;&gt;   7221&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2121&amp;quot; id=&amp;quot;h4-0-2121&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Rc=`// Convert pixels to either white or black,
   7260 <a href="#l7241" class="line" id="l7241">   7241</a> &lt;a href=&quot;#l7222&quot; class=&quot;line&quot; id=&quot;l7222&quot;&gt;   7222&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2122&amp;quot; id=&amp;quot;h4-0-2122&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// depending on if their luma is above or below filterParameter
   7261 <a href="#l7242" class="line" id="l7242">   7242</a> &lt;a href=&quot;#l7223&quot; class=&quot;line&quot; id=&quot;l7223&quot;&gt;   7223&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2123&amp;quot; id=&amp;quot;h4-0-2123&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7262 <a href="#l7243" class="line" id="l7243">   7243</a> &lt;a href=&quot;#l7224&quot; class=&quot;line&quot; id=&quot;l7224&quot;&gt;   7224&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2124&amp;quot; id=&amp;quot;h4-0-2124&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+precision highp float;
   7263 <a href="#l7244" class="line" id="l7244">   7244</a> &lt;a href=&quot;#l7225&quot; class=&quot;line&quot; id=&quot;l7225&quot;&gt;   7225&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2125&amp;quot; id=&amp;quot;h4-0-2125&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7264 <a href="#l7245" class="line" id="l7245">   7245</a> &lt;a href=&quot;#l7226&quot; class=&quot;line&quot; id=&quot;l7226&quot;&gt;   7226&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2126&amp;quot; id=&amp;quot;h4-0-2126&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7265 <a href="#l7246" class="line" id="l7246">   7246</a> &lt;a href=&quot;#l7227&quot; class=&quot;line&quot; id=&quot;l7227&quot;&gt;   7227&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2127&amp;quot; id=&amp;quot;h4-0-2127&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7266 <a href="#l7247" class="line" id="l7247">   7247</a> &lt;a href=&quot;#l7228&quot; class=&quot;line&quot; id=&quot;l7228&quot;&gt;   7228&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2128&amp;quot; id=&amp;quot;h4-0-2128&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform sampler2D tex0;
   7267 <a href="#l7248" class="line" id="l7248">   7248</a> &lt;a href=&quot;#l7229&quot; class=&quot;line&quot; id=&quot;l7229&quot;&gt;   7229&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2129&amp;quot; id=&amp;quot;h4-0-2129&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform float filterParameter;
   7268 <a href="#l7249" class="line" id="l7249">   7249</a> &lt;a href=&quot;#l7230&quot; class=&quot;line&quot; id=&quot;l7230&quot;&gt;   7230&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2130&amp;quot; id=&amp;quot;h4-0-2130&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7269 <a href="#l7250" class="line" id="l7250">   7250</a> &lt;a href=&quot;#l7231&quot; class=&quot;line&quot; id=&quot;l7231&quot;&gt;   7231&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2131&amp;quot; id=&amp;quot;h4-0-2131&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+float luma(vec3 color) {
   7270 <a href="#l7251" class="line" id="l7251">   7251</a> &lt;a href=&quot;#l7232&quot; class=&quot;line&quot; id=&quot;l7232&quot;&gt;   7232&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2132&amp;quot; id=&amp;quot;h4-0-2132&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // weighted grayscale with luminance values
   7271 <a href="#l7252" class="line" id="l7252">   7252</a> &lt;a href=&quot;#l7233&quot; class=&quot;line&quot; id=&quot;l7233&quot;&gt;   7233&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2133&amp;quot; id=&amp;quot;h4-0-2133&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return dot(color, vec3(0.2126, 0.7152, 0.0722));
   7272 <a href="#l7253" class="line" id="l7253">   7253</a> &lt;a href=&quot;#l7234&quot; class=&quot;line&quot; id=&quot;l7234&quot;&gt;   7234&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2134&amp;quot; id=&amp;quot;h4-0-2134&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7273 <a href="#l7254" class="line" id="l7254">   7254</a> &lt;a href=&quot;#l7235&quot; class=&quot;line&quot; id=&quot;l7235&quot;&gt;   7235&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2135&amp;quot; id=&amp;quot;h4-0-2135&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7274 <a href="#l7255" class="line" id="l7255">   7255</a> &lt;a href=&quot;#l7236&quot; class=&quot;line&quot; id=&quot;l7236&quot;&gt;   7236&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2136&amp;quot; id=&amp;quot;h4-0-2136&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   7275 <a href="#l7256" class="line" id="l7256">   7256</a> &lt;a href=&quot;#l7237&quot; class=&quot;line&quot; id=&quot;l7237&quot;&gt;   7237&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2137&amp;quot; id=&amp;quot;h4-0-2137&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 color = texture2D(tex0, vTexCoord);
   7276 <a href="#l7257" class="line" id="l7257">   7257</a> &lt;a href=&quot;#l7238&quot; class=&quot;line&quot; id=&quot;l7238&quot;&gt;   7238&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2138&amp;quot; id=&amp;quot;h4-0-2138&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float gray = luma(color.rgb / color.a);
   7277 <a href="#l7258" class="line" id="l7258">   7258</a> &lt;a href=&quot;#l7239&quot; class=&quot;line&quot; id=&quot;l7239&quot;&gt;   7239&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2139&amp;quot; id=&amp;quot;h4-0-2139&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // floor() used to match src/image/filters.js
   7278 <a href="#l7259" class="line" id="l7259">   7259</a> &lt;a href=&quot;#l7240&quot; class=&quot;line&quot; id=&quot;l7240&quot;&gt;   7240&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2140&amp;quot; id=&amp;quot;h4-0-2140&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float threshold = floor(filterParameter * 255.0) / 255.0;
   7279 <a href="#l7260" class="line" id="l7260">   7260</a> &lt;a href=&quot;#l7241&quot; class=&quot;line&quot; id=&quot;l7241&quot;&gt;   7241&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2141&amp;quot; id=&amp;quot;h4-0-2141&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  float blackOrWhite = step(threshold, gray);
   7280 <a href="#l7261" class="line" id="l7261">   7261</a> &lt;a href=&quot;#l7242&quot; class=&quot;line&quot; id=&quot;l7242&quot;&gt;   7242&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2142&amp;quot; id=&amp;quot;h4-0-2142&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_FragColor = vec4(vec3(blackOrWhite) * color.a, color.a);
   7281 <a href="#l7262" class="line" id="l7262">   7262</a> &lt;a href=&quot;#l7243&quot; class=&quot;line&quot; id=&quot;l7243&quot;&gt;   7243&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2143&amp;quot; id=&amp;quot;h4-0-2143&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7282 <a href="#l7263" class="line" id="l7263">   7263</a> &lt;a href=&quot;#l7244&quot; class=&quot;line&quot; id=&quot;l7244&quot;&gt;   7244&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2144&amp;quot; id=&amp;quot;h4-0-2144&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Bc=`uniform mat4 uModelViewMatrix;
   7283 <a href="#l7264" class="line" id="l7264">   7264</a> &lt;a href=&quot;#l7245&quot; class=&quot;line&quot; id=&quot;l7245&quot;&gt;   7245&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2145&amp;quot; id=&amp;quot;h4-0-2145&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+uniform mat4 uProjectionMatrix;
   7284 <a href="#l7265" class="line" id="l7265">   7265</a> &lt;a href=&quot;#l7246&quot; class=&quot;line&quot; id=&quot;l7246&quot;&gt;   7246&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2146&amp;quot; id=&amp;quot;h4-0-2146&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7285 <a href="#l7266" class="line" id="l7266">   7266</a> &lt;a href=&quot;#l7247&quot; class=&quot;line&quot; id=&quot;l7247&quot;&gt;   7247&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2147&amp;quot; id=&amp;quot;h4-0-2147&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+attribute vec3 aPosition;
   7286 <a href="#l7267" class="line" id="l7267">   7267</a> &lt;a href=&quot;#l7248&quot; class=&quot;line&quot; id=&quot;l7248&quot;&gt;   7248&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2148&amp;quot; id=&amp;quot;h4-0-2148&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// texcoords only come from p5 to vertex shader
   7287 <a href="#l7268" class="line" id="l7268">   7268</a> &lt;a href=&quot;#l7249&quot; class=&quot;line&quot; id=&quot;l7249&quot;&gt;   7249&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2149&amp;quot; id=&amp;quot;h4-0-2149&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// so pass texcoords on to the fragment shader in a varying variable
   7288 <a href="#l7269" class="line" id="l7269">   7269</a> &lt;a href=&quot;#l7250&quot; class=&quot;line&quot; id=&quot;l7250&quot;&gt;   7250&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2150&amp;quot; id=&amp;quot;h4-0-2150&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+attribute vec2 aTexCoord;
   7289 <a href="#l7270" class="line" id="l7270">   7270</a> &lt;a href=&quot;#l7251&quot; class=&quot;line&quot; id=&quot;l7251&quot;&gt;   7251&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2151&amp;quot; id=&amp;quot;h4-0-2151&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+varying vec2 vTexCoord;
   7290 <a href="#l7271" class="line" id="l7271">   7271</a> &lt;a href=&quot;#l7252&quot; class=&quot;line&quot; id=&quot;l7252&quot;&gt;   7252&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2152&amp;quot; id=&amp;quot;h4-0-2152&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7291 <a href="#l7272" class="line" id="l7272">   7272</a> &lt;a href=&quot;#l7253&quot; class=&quot;line&quot; id=&quot;l7253&quot;&gt;   7253&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2153&amp;quot; id=&amp;quot;h4-0-2153&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+void main() {
   7292 <a href="#l7273" class="line" id="l7273">   7273</a> &lt;a href=&quot;#l7254&quot; class=&quot;line&quot; id=&quot;l7254&quot;&gt;   7254&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2154&amp;quot; id=&amp;quot;h4-0-2154&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // transferring texcoords for the frag shader
   7293 <a href="#l7274" class="line" id="l7274">   7274</a> &lt;a href=&quot;#l7255&quot; class=&quot;line&quot; id=&quot;l7255&quot;&gt;   7255&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2155&amp;quot; id=&amp;quot;h4-0-2155&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vTexCoord = aTexCoord;
   7294 <a href="#l7275" class="line" id="l7275">   7275</a> &lt;a href=&quot;#l7256&quot; class=&quot;line&quot; id=&quot;l7256&quot;&gt;   7256&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2156&amp;quot; id=&amp;quot;h4-0-2156&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7295 <a href="#l7276" class="line" id="l7276">   7276</a> &lt;a href=&quot;#l7257&quot; class=&quot;line&quot; id=&quot;l7257&quot;&gt;   7257&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2157&amp;quot; id=&amp;quot;h4-0-2157&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  // copy position with a fourth coordinate for projection (1.0 is normal)
   7296 <a href="#l7277" class="line" id="l7277">   7277</a> &lt;a href=&quot;#l7258&quot; class=&quot;line&quot; id=&quot;l7258&quot;&gt;   7258&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2158&amp;quot; id=&amp;quot;h4-0-2158&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  vec4 positionVec4 = vec4(aPosition, 1.0);
   7297 <a href="#l7278" class="line" id="l7278">   7278</a> &lt;a href=&quot;#l7259&quot; class=&quot;line&quot; id=&quot;l7259&quot;&gt;   7259&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2159&amp;quot; id=&amp;quot;h4-0-2159&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7298 <a href="#l7279" class="line" id="l7279">   7279</a> &lt;a href=&quot;#l7260&quot; class=&quot;line&quot; id=&quot;l7260&quot;&gt;   7260&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2160&amp;quot; id=&amp;quot;h4-0-2160&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;
   7299 <a href="#l7280" class="line" id="l7280">   7280</a> &lt;a href=&quot;#l7261&quot; class=&quot;line&quot; id=&quot;l7261&quot;&gt;   7261&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2161&amp;quot; id=&amp;quot;h4-0-2161&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7300 <a href="#l7281" class="line" id="l7281">   7281</a> &lt;a href=&quot;#l7262&quot; class=&quot;line&quot; id=&quot;l7262&quot;&gt;   7262&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2162&amp;quot; id=&amp;quot;h4-0-2162&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Gm={},zm={},tl=&amp;amp;quot;&amp;amp;quot;,Pc=function(i,t){tl+=`#define STROKE_CAP_${i} ${t}
   7301 <a href="#l7282" class="line" id="l7282">   7282</a> &lt;a href=&quot;#l7263&quot; class=&quot;line&quot; id=&quot;l7263&quot;&gt;   7263&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2163&amp;quot; id=&amp;quot;h4-0-2163&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,Gm[gr[i]]=t},Oc=function(i,t){tl+=`#define STROKE_JOIN_${i} ${t}
   7302 <a href="#l7283" class="line" id="l7283">   7283</a> &lt;a href=&quot;#l7264&quot; class=&quot;line&quot; id=&quot;l7264&quot;&gt;   7264&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2164&amp;quot; id=&amp;quot;h4-0-2164&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,zm[gr[i]]=t};Pc(&amp;amp;quot;ROUND&amp;amp;quot;,0);Pc(&amp;amp;quot;PROJECT&amp;amp;quot;,1);Pc(&amp;amp;quot;SQUARE&amp;amp;quot;,2);Oc(&amp;amp;quot;ROUND&amp;amp;quot;,0);Oc(&amp;amp;quot;MITER&amp;amp;quot;,1);Oc(&amp;amp;quot;BEVEL&amp;amp;quot;,2);var lt={normalVert:vb,normalFrag:xb,basicFrag:bb,sphereMappingFrag:_b,lightVert:Um+wb,lightTextureFrag:Cb,phongVert:Eb,phongFrag:Um+Sb,fontVert:Ab,fontFrag:Db,lineVert:tl+Fb,lineFrag:tl+Tb,pointVert:Nb,pointFrag:Ib,imageLightVert:kb,imageLightDiffusedFrag:Mb,imageLightSpecularFrag:Lb,filterBaseVert:Ac,filterBaseFrag:Dc},Rb=lt.sphereMappingFrag;for(let i in lt)lt[i]=ol+lt[i];var Bb={[Ca]:Fc,[Da]:Tc,[Aa]:Nc,[di]:Ic,[xn]:kc,[Ea]:Mc,[Sa]:Lc,[vn]:Rc},Le=class i extends ke{constructor(t,r,n,s,a,o){super(t,r,n,s),this.canvas=this.elt=a||document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),this._setAttributeDefaults(t),this._initContext(),this.GL=this.drawingContext,this._isMainCanvas?(this._pInst._curElement=this,this._pInst.canvas=this.canvas):this.canvas.style.display=&amp;amp;quot;none&amp;amp;quot;,this.elt.id=&amp;amp;quot;defaultCanvas0&amp;amp;quot;,this.elt.classList.add(&amp;amp;quot;p5Canvas&amp;amp;quot;),this.wrappedElt=new st(this.elt,this._pInst);for(let h of Object.getOwnPropertyNames(st.prototype))h!==&amp;amp;quot;constructor&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;h[0]!==&amp;amp;quot;_&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Object.defineProperty(this,h,{get(){return this.wrappedElt[h]}});let u=this._adjustDimensions(r,n);if(r=u.adjustedWidth,n=u.adjustedHeight,this.width=r,this.height=n,this.elt.width=r*this._pixelDensity,this.elt.height=n*this._pixelDensity,this.elt.style.width=`${r}px`,this.elt.style.height=`${n}px`,this._origViewport={width:this.GL.drawingBufferWidth,height:this.GL.drawingBufferHeight},this.viewport(this._origViewport.width,this._origViewport.height),this._pInst._userNode)this._pInst._userNode.appendChild(this.elt);else{if(document.getElementsByTagName(&amp;amp;quot;main&amp;amp;quot;).length===0){let h=document.createElement(&amp;amp;quot;main&amp;amp;quot;);document.body.appendChild(h)}document.getElementsByTagName(&amp;amp;quot;main&amp;amp;quot;)[0].appendChild(this.elt)}this.isP3D=!0,this.geometryBuilder=void 0,this.states.uModelMatrix=new at(4),this.states.uViewMatrix=new at(4),this.states.uPMatrix=new at(4),this.states.curCamera=new Ln(this),this.states.uPMatrix.set(this.states.curCamera.projMatrix),this.states.uViewMatrix.set(this.states.curCamera.cameraMatrix),this.states.enableLighting=!1,this.states.ambientLightColors=[],this.states.specularColors=[1,1,1],this.states.directionalLightDirections=[],this.states.directionalLightDiffuseColors=[],this.states.directionalLightSpecularColors=[],this.states.pointLightPositions=[],this.states.pointLightDiffuseColors=[],this.states.pointLightSpecularColors=[],this.states.spotLightPositions=[],this.states.spotLightDirections=[],this.states.spotLightDiffuseColors=[],this.states.spotLightSpecularColors=[],this.states.spotLightAngle=[],this.states.spotLightConc=[],this.states.activeImageLight=null,this.states.curFillColor=[1,1,1,1],this.states.curAmbientColor=[1,1,1,1],this.states.curSpecularColor=[0,0,0,0],this.states.curEmissiveColor=[0,0,0,0],this.states.curStrokeColor=[0,0,0,1],this.states.curBlendMode=St,this.states._hasSetAmbient=!1,this.states._useSpecularMaterial=!1,this.states._useEmissiveMaterial=!1,this.states._useNormalMaterial=!1,this.states._useShininess=1,this.states._useMetalness=0,this.states.tint=[255,255,255,255],this.states.constantAttenuation=1,this.states.linearAttenuation=0,this.states.quadraticAttenuation=0,this.states._currentNormal=new H(0,0,1),this.states.drawMode=Fa,this.states._tex=null,this.states.textureMode=us,this.states.textureWrapX=ru,this.states.textureWrapY=ru,this._isErasing=!1,this._simpleLines=!1,this._clipDepths=[],this._isClipApplied=!1,this._stencilTestOn=!1,this.mixedAmbientLight=[],this.mixedSpecularColor=[],this.diffusedTextures=new Map,this.specularTextures=new Map,this.preEraseBlend=void 0,this._cachedBlendMode=void 0,this._cachedFillStyle=[1,1,1,1],this._cachedStrokeStyle=[0,0,0,1],this.webglVersion===pt?this.blendExt=this.GL:this.blendExt=this.GL.getExtension(&amp;amp;quot;EXT_blend_minmax&amp;amp;quot;),this._isBlending=!1,this._useLineColor=!1,this._useVertexColor=!1,this.registerEnabled=new Set,this.states.curCamera._computeCameraDefaultSettings(),this.states.curCamera._setDefaultCamera(),this.filterCamera=new Ln(this),this.filterCamera._computeCameraDefaultSettings(),this.filterCamera._setDefaultCamera(),this.prevTouches=[],this.zoomVelocity=0,this.rotateVelocity=new H(0,0),this.moveVelocity=new H(0,0),this.executeZoom=!1,this.executeRotateAndMove=!1,this._drawingFilter=!1,this._drawingImage=!1,this.specularShader=void 0,this.sphereMapping=void 0,this.diffusedShader=void 0,this._baseFilterShader=void 0,this._defaultLightShader=void 0,this._defaultImmediateModeShader=void 0,this._defaultNormalShader=void 0,this._defaultColorShader=void 0,this._defaultPointShader=void 0,this.states.userFillShader=void 0,this.states.userStrokeShader=void 0,this.states.userPointShader=void 0,this.states.userImageShader=void 0,this.states.curveDetail=1/4,this.shapeBuilder=new Ku(this),this.buffers={fill:[new At(3,&amp;amp;quot;vertices&amp;amp;quot;,&amp;amp;quot;vertexBuffer&amp;amp;quot;,&amp;amp;quot;aPosition&amp;amp;quot;,this,this._vToNArray),new At(3,&amp;amp;quot;vertexNormals&amp;amp;quot;,&amp;amp;quot;normalBuffer&amp;amp;quot;,&amp;amp;quot;aNormal&amp;amp;quot;,this,this._vToNArray),new At(4,&amp;amp;quot;vertexColors&amp;amp;quot;,&amp;amp;quot;colorBuffer&amp;amp;quot;,&amp;amp;quot;aVertexColor&amp;amp;quot;,this),new At(3,&amp;amp;quot;vertexAmbients&amp;amp;quot;,&amp;amp;quot;ambientBuffer&amp;amp;quot;,&amp;amp;quot;aAmbientColor&amp;amp;quot;,this),new At(2,&amp;amp;quot;uvs&amp;amp;quot;,&amp;amp;quot;uvBuffer&amp;amp;quot;,&amp;amp;quot;aTexCoord&amp;amp;quot;,this,h=&amp;amp;gt;h.flat())],stroke:[new At(4,&amp;amp;quot;lineVertexColors&amp;amp;quot;,&amp;amp;quot;lineColorBuffer&amp;amp;quot;,&amp;amp;quot;aVertexColor&amp;amp;quot;,this),new At(3,&amp;amp;quot;lineVertices&amp;amp;quot;,&amp;amp;quot;lineVerticesBuffer&amp;amp;quot;,&amp;amp;quot;aPosition&amp;amp;quot;,this),new At(3,&amp;amp;quot;lineTangentsIn&amp;amp;quot;,&amp;amp;quot;lineTangentsInBuffer&amp;amp;quot;,&amp;amp;quot;aTangentIn&amp;amp;quot;,this),new At(3,&amp;amp;quot;lineTangentsOut&amp;amp;quot;,&amp;amp;quot;lineTangentsOutBuffer&amp;amp;quot;,&amp;amp;quot;aTangentOut&amp;amp;quot;,this),new At(1,&amp;amp;quot;lineSides&amp;amp;quot;,&amp;amp;quot;lineSidesBuffer&amp;amp;quot;,&amp;amp;quot;aSide&amp;amp;quot;,this)],text:[new At(3,&amp;amp;quot;vertices&amp;amp;quot;,&amp;amp;quot;vertexBuffer&amp;amp;quot;,&amp;amp;quot;aPosition&amp;amp;quot;,this,this._vToNArray),new At(2,&amp;amp;quot;uvs&amp;amp;quot;,&amp;amp;quot;uvBuffer&amp;amp;quot;,&amp;amp;quot;aTexCoord&amp;amp;quot;,this,h=&amp;amp;gt;h.flat())],point:this.GL.createBuffer(),user:[]},this.geometryBufferCache=new Ju(this),this.curStrokeCap=Mr,this.curStrokeJoin=Mr,this.textures=new Map,this.framebuffers=new Set,this.activeFramebuffers=[],this.states.filterShader=void 0,this.filterLayer=void 0,this.filterLayerTemp=void 0,this.defaultFilterShaders={},this.fontInfos={},this._curShader=void 0,this.drawShapeCount=1,this.scratchMat3=new at(3),this._userEnabledStencil=!1,this._internalEnable=this.drawingContext.enable,this._internalDisable=this.drawingContext.disable,this.drawingContext.enable=h=&amp;amp;gt;(h===this.drawingContext.STENCIL_TEST&amp;amp;amp;&amp;amp;amp;(this._clipping||(this._userEnabledStencil=!0)),this._internalEnable.call(this.drawingContext,h)),this.drawingContext.disable=h=&amp;amp;gt;(h===this.drawingContext.STENCIL_TEST&amp;amp;amp;&amp;amp;amp;(this._userEnabledStencil=!1),this._internalDisable.call(this.drawingContext,h))}remove(){this.wrappedElt.remove(),this.wrappedElt=null,this.canvas=null,this.elt=null}beginGeometry(){if(this.geometryBuilder)throw new Error(&amp;amp;quot;It looks like `beginGeometry()` is being called while another p5.Geometry is already being build.&amp;amp;quot;);this.geometryBuilder=new Xa(this),this.geometryBuilder.prevFillColor=this.states.fillColor,this.fill(new Qe([-1,-1,-1,-1]))}endGeometry(){if(!this.geometryBuilder)throw new Error(&amp;amp;quot;Make sure you call beginGeometry() before endGeometry()!&amp;amp;quot;);let t=this.geometryBuilder.finish();return this.fill(this.geometryBuilder.prevFillColor),this.geometryBuilder=void 0,t}buildGeometry(t){return this.beginGeometry(),t(),this.endGeometry()}beginShape(...t){super.beginShape(...t)}curveDetail(t){if(t===void 0)return this.states.curveDetail;this.states.setValue(&amp;amp;quot;curveDetail&amp;amp;quot;,t)}drawShape(t){let r=new Ua({curveDetail:this.states.curveDetail});t.accept(r),this.shapeBuilder.constructFromContours(t,r.contours),this.geometryBuilder?this.geometryBuilder.addImmediate(this.shapeBuilder.geometry,this.shapeBuilder.shapeMode):(this.states.fillColor||this.states.strokeColor)&amp;amp;amp;&amp;amp;amp;(this.shapeBuilder.shapeMode===Jn?this._drawPoints(this.shapeBuilder.geometry.vertices,this.buffers.point):this._drawGeometry(this.shapeBuilder.geometry,{mode:this.shapeBuilder.shapeMode,count:this.drawShapeCount})),this.drawShapeCount=1}endShape(t,r){this.drawShapeCount=r,super.endShape(t,r)}vertexProperty(...t){this.currentShape.vertexProperty(...t)}normal(t,r,n){t instanceof H?this.states.setValue(&amp;amp;quot;_currentNormal&amp;amp;quot;,t):this.states.setValue(&amp;amp;quot;_currentNormal&amp;amp;quot;,new H(t,r,n)),this.updateShapeVertexProperties()}model(t,r=1){t.vertices.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(this.geometryBuilder?this.geometryBuilder.addRetained(t):(this.geometryInHash(t.gid)||(t._edgesToVertices(),this._getOrMakeCachedBuffers(t)),this._drawGeometry(t,{count:r})))}_drawGeometry(t,{mode:r=fi,count:n=1}={}){for(let s in t.userVertexProperties){let a=t.userVertexProperties[s];this.buffers.user.push(new At(a.getDataSize(),a.getSrcName(),a.getDstName(),a.getName(),this))}this.states.fillColor&amp;amp;amp;&amp;amp;amp;t.vertices.length&amp;amp;gt;=3&amp;amp;amp;&amp;amp;amp;![ci,Jn].includes(r)&amp;amp;amp;&amp;amp;amp;this._drawFills(t,{mode:r,count:n}),this.states.strokeColor&amp;amp;amp;&amp;amp;amp;t.lineVertices.length&amp;amp;gt;=1&amp;amp;amp;&amp;amp;amp;this._drawStrokes(t,{count:n}),this.buffers.user=[]}_drawGeometryScaled(t,r,n,s){let a=this.states.uModelMatrix;this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.clone());try{this.states.uModelMatrix.scale(r,n,s),this.geometryBuilder?this.geometryBuilder.addRetained(t):this._drawGeometry(t)}finally{this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,a)}}_drawFills(t,{count:r,mode:n}={}){this._useVertexColor=t.vertexColors.length&amp;amp;gt;0;let s=!this._drawingFilter&amp;amp;amp;&amp;amp;amp;this.states.userFillShader?this.states.userFillShader:this._getFillShader();s.bindShader(),this._setGlobalUniforms(s),this._setFillUniforms(s),s.bindTextures();for(let a of this.buffers.fill)a._prepareBuffer(t,s);this._prepareUserAttributes(t,s),s.disableRemainingAttributes(),this._applyColorBlend(this.states.curFillColor,t.hasFillTransparency()),this._drawBuffers(t,{mode:n,count:r}),s.unbindShader()}_drawStrokes(t,{count:r}={}){let n=this.GL;this._useLineColor=t.vertexStrokeColors.length&amp;amp;gt;0;let s=this._getStrokeShader();s.bindShader(),this._setGlobalUniforms(s),this._setStrokeUniforms(s),s.bindTextures();for(let a of this.buffers.stroke)a._prepareBuffer(t,s);if(this._prepareUserAttributes(t,s),s.disableRemainingAttributes(),this._applyColorBlend(this.states.curStrokeColor,t.hasStrokeTransparency()),r===1)n.drawArrays(n.TRIANGLES,0,t.lineVertices.length/3);else try{n.drawArraysInstanced(n.TRIANGLES,0,t.lineVertices.length/3,r)}catch{console.log(&amp;amp;quot;\u{1F338} p5.js says: Instancing is only supported in WebGL2 mode&amp;amp;quot;)}s.unbindShader()}_drawPoints(t,r){let n=this.GL,s=this._getPointShader();s.bindShader(),this._setGlobalUniforms(s),this._setPointUniforms(s),s.bindTextures(),this._bindBuffer(r,n.ARRAY_BUFFER,this._vToNArray(t),Float32Array,n.STATIC_DRAW),s.enableAttrib(s.attributes.aPosition,3),this._applyColorBlend(this.states.curStrokeColor),n.drawArrays(n.Points,0,t.length),s.unbindShader()}_prepareUserAttributes(t,r){for(let n of this.buffers.user){if(!this._pInst.constructor.disableFriendleErrors){let s=t.userVertexProperties[n.attr];if(s){let a=s.getSrcArray().length/s.getDataSize();a&amp;amp;gt;t.vertices.length?this._pInst.constructor._friendlyError(`One of the geometries has a custom vertex property &amp;amp;#39;${s.getName()}&amp;amp;#39; with more values than vertices. This is probably caused by directly using the Geometry.vertexProperty() method.`,&amp;amp;quot;vertexProperty()&amp;amp;quot;):a&amp;amp;lt;t.vertices.length&amp;amp;amp;&amp;amp;amp;this._pInst.constructor._friendlyError(`One of the geometries has a custom vertex property &amp;amp;#39;${s.getName()}&amp;amp;#39; with fewer values than vertices. This is probably caused by directly using the Geometry.vertexProperty() method.`,&amp;amp;quot;vertexProperty()&amp;amp;quot;)}}n._prepareBuffer(t,r)}}_drawBuffers(t,{mode:r=this.GL.TRIANGLES,count:n}){let s=this.GL,a=this.geometryBufferCache.getCached(t);if(a)if(a.indexBuffer){if(this._bindBuffer(a.indexBuffer,s.ELEMENT_ARRAY_BUFFER),this._pInst.webglVersion!==pt&amp;amp;amp;&amp;amp;amp;a.indexBufferType===s.UNSIGNED_INT&amp;amp;amp;&amp;amp;amp;!s.getExtension(&amp;amp;quot;OES_element_index_uint&amp;amp;quot;))throw new Error(&amp;amp;quot;Unable to render a 3d model with &amp;amp;gt; 65535 triangles. Your web browser does not support the WebGL Extension OES_element_index_uint.&amp;amp;quot;);if(n===1)s.drawElements(s.TRIANGLES,t.faces.length*3,a.indexBufferType,0);else try{s.drawElementsInstanced(s.TRIANGLES,t.faces.length*3,a.indexBufferType,0,n)}catch{console.log(&amp;amp;quot;\u{1F338} p5.js says: Instancing is only supported in WebGL2 mode&amp;amp;quot;)}}else if(n===1)s.drawArrays(r,0,t.vertices.length);else try{s.drawArraysInstanced(r,0,t.vertices.length,n)}catch{console.log(&amp;amp;quot;\u{1F338} p5.js says: Instancing is only supported in WebGL2 mode&amp;amp;quot;)}}_getOrMakeCachedBuffers(t){return this.geometryBufferCache.ensureCached(t)}_setAttributeDefaults(t){let n={alpha:!0,depth:!0,stencil:!0,antialias:navigator.userAgent.toLowerCase().includes(&amp;amp;quot;safari&amp;amp;quot;),premultipliedAlpha:!0,preserveDrawingBuffer:!0,perPixelLighting:!0,version:2};t._glAttributes===null?t._glAttributes=n:t._glAttributes=Object.assign(n,t._glAttributes)}_initContext(){if(this._pInst._glAttributes?.version!==1&amp;amp;amp;&amp;amp;amp;(this.drawingContext=this.canvas.getContext(&amp;amp;quot;webgl2&amp;amp;quot;,this._pInst._glAttributes)),this.webglVersion=this.drawingContext?pt:kr,this._pInst.webglVersion=this.webglVersion,this.drawingContext||(this.drawingContext=this.canvas.getContext(&amp;amp;quot;webgl&amp;amp;quot;,this._pInst._glAttributes)||this.canvas.getContext(&amp;amp;quot;experimental-webgl&amp;amp;quot;,this._pInst._glAttributes)),this.drawingContext===null)throw new Error(&amp;amp;quot;Error creating webgl context&amp;amp;quot;);{let t=this.drawingContext;t.enable(t.DEPTH_TEST),t.depthFunc(t.LEQUAL),t.viewport(0,0,t.drawingBufferWidth,t.drawingBufferHeight),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),this._viewport=this.drawingContext.getParameter(this.drawingContext.VIEWPORT)}}_getMaxTextureSize(){let t=this.drawingContext;return t.getParameter(t.MAX_TEXTURE_SIZE)}_adjustDimensions(t,r){this._maxTextureSize||(this._maxTextureSize=this._getMaxTextureSize());let n=this._maxTextureSize,s=Math.floor(n/this._pixelDensity),a=Math.min(t,s),o=Math.min(r,s);return(a!==t||o!==r)&amp;amp;amp;&amp;amp;amp;console.warn(`Warning: The requested width/height exceeds hardware limits. Adjusting dimensions to width: ${a}, height: ${o}.`),{adjustedWidth:a,adjustedHeight:o}}_resetContext(t,r){let n=this.width,s=this.height,a=this.canvas.id,o=this._pInst instanceof _i,u={position:this.canvas.style.position,top:this.canvas.style.top,left:this.canvas.style.left};if(o){let l=this._pInst;l.canvas.parentNode.removeChild(l.canvas),l.canvas=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),(l._pInst._userNode||document.body).appendChild(l.canvas),st.call(l,l.canvas,l._pInst),l.width=n,l.height=s}else{let l=this.canvas;l&amp;amp;amp;&amp;amp;amp;l.parentNode.removeChild(l),l=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),l.id=a,this._pInst._userNode?this._pInst._userNode.appendChild(l):document.body.appendChild(l),this._pInst.canvas=l,this.canvas=l,this.canvas.style.position=u.position,this.canvas.style.top=u.top,this.canvas.style.left=u.left}let h=new i(this._pInst,n,s,!o,this._pInst.canvas);this._pInst._renderer=h,h._applyDefaults(),typeof r==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;setTimeout(()=&amp;amp;gt;{r.apply(window._renderer,t)},0)}_update(){this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.clone()),this.states.uModelMatrix.reset(),this.states.setValue(&amp;amp;quot;uViewMatrix&amp;amp;quot;,this.states.uViewMatrix.clone()),this.states.uViewMatrix.set(this.states.curCamera.cameraMatrix),this.states.setValue(&amp;amp;quot;ambientLightColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;specularColors&amp;amp;quot;,[1,1,1]),this.states.setValue(&amp;amp;quot;directionalLightDirections&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;directionalLightDiffuseColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;directionalLightSpecularColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;pointLightPositions&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;pointLightDiffuseColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;pointLightSpecularColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightPositions&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightDirections&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightDiffuseColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightSpecularColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightAngle&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightConc&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!1),this.states.setValue(&amp;amp;quot;tint&amp;amp;quot;,[255,255,255,255]),this.GL.clearStencil(0),this.GL.clear(this.GL.DEPTH_BUFFER_BIT|this.GL.STENCIL_BUFFER_BIT),this._userEnabledStencil||this._internalDisable.call(this.GL,this.GL.STENCIL_TEST)}background(...t){let r=this._pInst.color(...t);this.clear(...r._getRGBA())}get uModelMatrix(){return this.states.uModelMatrix}get uViewMatrix(){return this.states.uViewMatrix}get uPMatrix(){return this.states.uPMatrix}get uMVMatrix(){let t=this.uModelMatrix.copy();return t.mult(this.uViewMatrix),t}getWorldToScreenMatrix(){let t=this.states.uModelMatrix,r=this.states.uViewMatrix,n=this.states.uPMatrix,s=new at(4);return s.scale(this.width,this.height,1),s.translate([.5,.5,.5]),s.scale(.5,-.5,.5),t.copy().mult(r).mult(n).mult(s)}fill(...t){super.fill(...t);let r=this.states.fillColor;this.states.setValue(&amp;amp;quot;curFillColor&amp;amp;quot;,r._array),this.states.setValue(&amp;amp;quot;drawMode&amp;amp;quot;,Fa),this.states.setValue(&amp;amp;quot;_useNormalMaterial&amp;amp;quot;,!1),this.states.setValue(&amp;amp;quot;_tex&amp;amp;quot;,null)}stroke(...t){super.stroke(...t),this.states.setValue(&amp;amp;quot;curStrokeColor&amp;amp;quot;,this.states.strokeColor._array)}getCommonVertexProperties(){return{...super.getCommonVertexProperties(),stroke:this.states.strokeColor,fill:this.states.fillColor,normal:this.states._currentNormal}}getSupportedIndividualVertexProperties(){return{textureCoordinates:!0}}strokeCap(t){this.curStrokeCap=t}strokeJoin(t){this.curStrokeJoin=t}getFilterLayer(){return this.filterLayer||(this.filterLayer=new hr(this)),this.filterLayer}getFilterLayerTemp(){return this.filterLayerTemp||(this.filterLayerTemp=new hr(this)),this.filterLayerTemp}matchSize(t,r){(t.width!==r.width||t.height!==r.height)&amp;amp;amp;&amp;amp;amp;t.resize(r.width,r.height),t.pixelDensity()!==r.pixelDensity()&amp;amp;amp;&amp;amp;amp;t.pixelDensity(r.pixelDensity())}filter(...t){let r=this.getFilterLayer(),n,s;typeof t[0]==&amp;amp;quot;string&amp;amp;quot;?(s=t[0],n=s in Ds&amp;amp;amp;&amp;amp;amp;t[1]===void 0?Ds[s]:t[1],s in this.defaultFilterShaders||(this.defaultFilterShaders[s]=new Tt(r.renderer,Bc,Bb[s])),this.states.setValue(&amp;amp;quot;filterShader&amp;amp;quot;,this.defaultFilterShaders[s])):this.states.setValue(&amp;amp;quot;filterShader&amp;amp;quot;,t[0]);let a=this.activeFramebuffer()||this;this.matchSize(r,a),r.draw(()=&amp;amp;gt;this.clear());let o=[1/(a.width*a.pixelDensity()),1/(a.height*a.pixelDensity())];if(s===di){let u=this.getFilterLayerTemp();this.matchSize(u,a),this.push(),this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this.blendMode(St),this.shader(this.states.filterShader),this.states.filterShader.setUniform(&amp;amp;quot;texelSize&amp;amp;quot;,o),this.states.filterShader.setUniform(&amp;amp;quot;canvasSize&amp;amp;quot;,[a.width,a.height]),this.states.filterShader.setUniform(&amp;amp;quot;radius&amp;amp;quot;,Math.max(1,n)),u.draw(()=&amp;amp;gt;{this.states.filterShader.setUniform(&amp;amp;quot;direction&amp;amp;quot;,[1,0]),this.states.filterShader.setUniform(&amp;amp;quot;tex0&amp;amp;quot;,a),this.clear(),this.shader(this.states.filterShader),this.noLights(),this.plane(a.width,a.height)}),r.draw(()=&amp;amp;gt;{this.states.filterShader.setUniform(&amp;amp;quot;direction&amp;amp;quot;,[0,1]),this.states.filterShader.setUniform(&amp;amp;quot;tex0&amp;amp;quot;,u),this.clear(),this.shader(this.states.filterShader),this.noLights(),this.plane(a.width,a.height)}),this.pop()}else r.draw(()=&amp;amp;gt;{this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this.blendMode(St),this.shader(this.states.filterShader),this.states.filterShader.setUniform(&amp;amp;quot;tex0&amp;amp;quot;,a),this.states.filterShader.setUniform(&amp;amp;quot;texelSize&amp;amp;quot;,o),this.states.filterShader.setUniform(&amp;amp;quot;canvasSize&amp;amp;quot;,[a.width,a.height]),this.states.filterShader.setUniform(&amp;amp;quot;filterParameter&amp;amp;quot;,n),this.noLights(),this.plane(a.width,a.height)});this.push(),this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this.clear(),this.push(),this.states.setValue(&amp;amp;quot;imageMode&amp;amp;quot;,Ct),this.blendMode(St),a.filterCamera._resize(),this.setCamera(a.filterCamera),this.resetMatrix(),this._drawingFilter=!0,this.image(r,0,0,this.width,this.height,-a.width/2,-a.height/2,a.width,a.height),this._drawingFilter=!1,this.clearDepth(),this.pop(),this.pop()}pixelDensity(t){return t?this._pInst.pixelDensity(t):this._pInst.pixelDensity()}blendMode(t){t===es||t===ts||t===yn||t===St||t===rs||t===ss||t===is||t===as||t===ns||t===pi?this.states.setValue(&amp;amp;quot;curBlendMode&amp;amp;quot;,t):(t===wa||t===va||t===xa||t===ba||t===_a)&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;BURN, OVERLAY, HARD_LIGHT, SOFT_LIGHT, and DODGE only work for blendMode in 2D mode.&amp;amp;quot;)}erase(t,r){this._isErasing||(this.preEraseBlend=this.states.curBlendMode,this._isErasing=!0,this.blendMode(pi),this._cachedFillStyle=this.states.curFillColor.slice(),this.states.setValue(&amp;amp;quot;curFillColor&amp;amp;quot;,[1,1,1,t/255]),this._cachedStrokeStyle=this.states.curStrokeColor.slice(),this.states.setValue(&amp;amp;quot;curStrokeColor&amp;amp;quot;,[1,1,1,r/255]))}noErase(){this._isErasing&amp;amp;amp;&amp;amp;amp;(this.states.setValue(&amp;amp;quot;curFillColor&amp;amp;quot;,this._cachedFillStyle.slice()),this.states.setValue(&amp;amp;quot;curStrokeColor&amp;amp;quot;,this._cachedStrokeStyle.slice()),this.states.setValue(&amp;amp;quot;curBlendMode&amp;amp;quot;,this.preEraseBlend),this.blendMode(this.preEraseBlend),this._isErasing=!1,this._applyBlendMode())}drawTarget(){return this.activeFramebuffers[this.activeFramebuffers.length-1]||this}beginClip(t={}){super.beginClip(t),this.drawTarget()._isClipApplied=!0;let r=this.GL;r.clearStencil(0),r.clear(r.STENCIL_BUFFER_BIT),this._internalEnable.call(r,r.STENCIL_TEST),this._stencilTestOn=!0,r.stencilFunc(r.ALWAYS,1,255),r.stencilOp(r.KEEP,r.KEEP,r.REPLACE),r.disable(r.DEPTH_TEST),this.push(),this.resetShader(),this.states.fillColor&amp;amp;amp;&amp;amp;amp;this.fill(0,0),this.states.strokeColor&amp;amp;amp;&amp;amp;amp;this.stroke(0,0)}endClip(){this.pop();let t=this.GL;t.stencilOp(t.KEEP,t.KEEP,t.KEEP),t.stencilFunc(this._clipInvert?t.EQUAL:t.NOTEQUAL,0,255),t.enable(t.DEPTH_TEST),this._clipDepths.push(this._pushPopDepth),super.endClip()}_clearClip(){this.GL.clearStencil(1),this.GL.clear(this.GL.STENCIL_BUFFER_BIT),this._clipDepths.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this._clipDepths.pop(),this.drawTarget()._isClipApplied=!1}_getPixel(t,r){let n=this.GL;return jm(n,null,t,r,n.RGBA,n.UNSIGNED_BYTE,this._pInst.height*this._pInst.pixelDensity())}loadPixels(){if(this._pInst._glAttributes.preserveDrawingBuffer!==!0){console.log(&amp;amp;quot;loadPixels only works in WebGL when preserveDrawingBuffer is true.&amp;amp;quot;);return}let t=this._pixelDensity,r=this.GL;this.pixels=Cc(this.pixels,r,null,0,0,this.width*t,this.height*t,r.RGBA,r.UNSIGNED_BYTE,this.height*t)}updatePixels(){let t=this._getTempFramebuffer();t.pixels=this.pixels,t.updatePixels(),this.push(),this.resetMatrix(),this.clear(),this.states.setValue(&amp;amp;quot;imageMode&amp;amp;quot;,Ct),this.image(t,0,0,t.width,t.height,-t.width/2,-t.height/2,t.width,t.height),this.pop(),this.GL.clearDepth(1),this.GL.clear(this.GL.DEPTH_BUFFER_BIT)}_getTempFramebuffer(){return this._tempFramebuffer||(this._tempFramebuffer=new hr(this,{format:mi,useDepth:this._pInst._glAttributes.depth,depthFormat:ls,antialias:this._pInst._glAttributes.antialias})),this._tempFramebuffer}geometryInHash(t){return this.geometryBufferCache.isCached(t)}viewport(t,r){this._viewport=[0,0,t,r],this.GL.viewport(0,0,t,r)}resize(t,r){super.resize(t,r);let n={};for(let a in this.drawingContext){let o=this.drawingContext[a];typeof o!=&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof o!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n[a]=o)}let s=this._adjustDimensions(t,r);t=s.adjustedWidth,r=s.adjustedHeight,this.width=t,this.height=r,this.canvas.width=t*this._pixelDensity,this.canvas.height=r*this._pixelDensity,this.canvas.style.width=`${t}px`,this.canvas.style.height=`${r}px`,this._origViewport={width:this.GL.drawingBufferWidth,height:this.GL.drawingBufferHeight},this.viewport(this._origViewport.width,this._origViewport.height),this.states.curCamera._resize(),typeof this.pixels&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.pixels=new Uint8Array(this.GL.drawingBufferWidth*this.GL.drawingBufferHeight*4));for(let a of this.framebuffers)a._canvasSizeChanged();for(let a in n)try{this.drawingContext[a]=n[a]}catch{}}clear(...t){let r=t[0]||0,n=t[1]||0,s=t[2]||0,a=t[3]||0,o=this.activeFramebuffer();o&amp;amp;amp;&amp;amp;amp;o.format===mi&amp;amp;amp;&amp;amp;amp;!o.antialias&amp;amp;amp;&amp;amp;amp;a===0&amp;amp;amp;&amp;amp;amp;(a=1e-10),this.GL.clearColor(r*a,n*a,s*a,a),this.GL.clearDepth(1),this.GL.clear(this.GL.COLOR_BUFFER_BIT|this.GL.DEPTH_BUFFER_BIT)}clearDepth(t=1){this.GL.clearDepth(t),this.GL.clear(this.GL.DEPTH_BUFFER_BIT)}applyMatrix(t,r,n,s,a,o){this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.clone()),arguments.length===16?at.prototype.apply.apply(this.states.uModelMatrix,arguments):this.states.uModelMatrix.apply([t,r,0,0,n,s,0,0,0,0,1,0,a,o,0,1])}translate(t,r,n){return t instanceof H&amp;amp;amp;&amp;amp;amp;(n=t.z,r=t.y,t=t.x),this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.clone()),this.states.uModelMatrix.translate([t,r,n]),this}scale(t,r,n){return this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.clone()),this.states.uModelMatrix.scale(t,r,n),this}rotate(t,r){return typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?this.rotateZ(t):(this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.clone()),at.prototype.rotate4x4.apply(this.states.uModelMatrix,arguments),this)}rotateX(t){return this.rotate(t,1,0,0),this}rotateY(t){return this.rotate(t,0,1,0),this}rotateZ(t){return this.rotate(t,0,0,1),this}pop(...t){this._clipDepths.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this._pushPopDepth===this._clipDepths[this._clipDepths.length-1]&amp;amp;amp;&amp;amp;amp;(this._clearClip(),this._userEnabledStencil||this._internalDisable.call(this.GL,this.GL.STENCIL_TEST)),super.pop(...t),this._applyStencilTestIfClipping()}_applyStencilTestIfClipping(){let t=this.drawTarget();t._isClipApplied!==this._stencilTestOn&amp;amp;amp;&amp;amp;amp;(t._isClipApplied?(this._internalEnable.call(this.GL,this.GL.STENCIL_TEST),this._stencilTestOn=!0):(this._userEnabledStencil||this._internalDisable.call(this.GL,this.GL.STENCIL_TEST),this._stencilTestOn=!1))}resetMatrix(){return this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.clone()),this.states.uModelMatrix.reset(),this.states.setValue(&amp;amp;quot;uViewMatrix&amp;amp;quot;,this.states.uViewMatrix.clone()),this.states.uViewMatrix.set(this.states.curCamera.cameraMatrix),this}_getStrokeShader(){let t=this.states.userStrokeShader;return t||this._getLineShader()}_getSphereMapping(t){return this.sphereMapping||(this.sphereMapping=this._pInst.createFilterShader(Rb)),this.scratchMat3.inverseTranspose4x4(this.states.uViewMatrix),this.scratchMat3.invert(this.scratchMat3),this.sphereMapping.setUniform(&amp;amp;quot;uFovY&amp;amp;quot;,this.states.curCamera.cameraFOV),this.sphereMapping.setUniform(&amp;amp;quot;uAspect&amp;amp;quot;,this.states.curCamera.aspectRatio),this.sphereMapping.setUniform(&amp;amp;quot;uNewNormalMatrix&amp;amp;quot;,this.scratchMat3.mat3),this.sphereMapping.setUniform(&amp;amp;quot;uEnvMap&amp;amp;quot;,t),this.sphereMapping}_getFillShader(){return this._drawingImage?this.states.userImageShader&amp;amp;amp;&amp;amp;amp;!this._drawingFilter?this.states.userImageShader:this._getLightShader():this.states.userFillShader?this.states.userFillShader:this.states._useNormalMaterial?this._getNormalShader():this.states.enableLighting||this.states._tex?this._getLightShader():this._getColorShader()}_getPointShader(){let t=this.states.userPointShader;return!t||!t.isPointShader()?this._getPointShader():t}baseMaterialShader(){if(!this._pInst._glAttributes.perPixelLighting)throw new Error(&amp;amp;quot;The material shader does not support hooks without perPixelLighting. Try turning it back on.&amp;amp;quot;);return this._getLightShader()}_getLightShader(){return this._defaultLightShader||(this._pInst._glAttributes.perPixelLighting?this._defaultLightShader=new Tt(this,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+lt.phongVert,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+lt.phongFrag,{vertex:{&amp;amp;quot;void beforeVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;Vertex getObjectInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;Vertex getWorldInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;Vertex getCameraInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;void afterVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;},fragment:{&amp;amp;quot;void beforeFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;Inputs getPixelInputs&amp;amp;quot;:&amp;amp;quot;(Inputs inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;vec4 combineColors&amp;amp;quot;:`(ColorComponents components) {
   7303 <a href="#l7284" class="line" id="l7284">   7284</a> &lt;a href=&quot;#l7265&quot; class=&quot;line&quot; id=&quot;l7265&quot;&gt;   7265&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2165&amp;quot; id=&amp;quot;h4-0-2165&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                vec4 color = vec4(0.);
   7304 <a href="#l7285" class="line" id="l7285">   7285</a> &lt;a href=&quot;#l7266&quot; class=&quot;line&quot; id=&quot;l7266&quot;&gt;   7266&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2166&amp;quot; id=&amp;quot;h4-0-2166&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                color.rgb += components.diffuse * components.baseColor;
   7305 <a href="#l7286" class="line" id="l7286">   7286</a> &lt;a href=&quot;#l7267&quot; class=&quot;line&quot; id=&quot;l7267&quot;&gt;   7267&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2167&amp;quot; id=&amp;quot;h4-0-2167&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                color.rgb += components.ambient * components.ambientColor;
   7306 <a href="#l7287" class="line" id="l7287">   7287</a> &lt;a href=&quot;#l7268&quot; class=&quot;line&quot; id=&quot;l7268&quot;&gt;   7268&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2168&amp;quot; id=&amp;quot;h4-0-2168&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                color.rgb += components.specular * components.specularColor;
   7307 <a href="#l7288" class="line" id="l7288">   7288</a> &lt;a href=&quot;#l7269&quot; class=&quot;line&quot; id=&quot;l7269&quot;&gt;   7269&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2169&amp;quot; id=&amp;quot;h4-0-2169&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                color.rgb += components.emissive;
   7308 <a href="#l7289" class="line" id="l7289">   7289</a> &lt;a href=&quot;#l7270&quot; class=&quot;line&quot; id=&quot;l7270&quot;&gt;   7270&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2170&amp;quot; id=&amp;quot;h4-0-2170&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                color.a = components.opacity;
   7309 <a href="#l7290" class="line" id="l7290">   7290</a> &lt;a href=&quot;#l7271&quot; class=&quot;line&quot; id=&quot;l7271&quot;&gt;   7271&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2171&amp;quot; id=&amp;quot;h4-0-2171&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                return color;
   7310 <a href="#l7291" class="line" id="l7291">   7291</a> &lt;a href=&quot;#l7272&quot; class=&quot;line&quot; id=&quot;l7272&quot;&gt;   7272&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2172&amp;quot; id=&amp;quot;h4-0-2172&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+              }`,&amp;amp;quot;vec4 getFinalColor&amp;amp;quot;:&amp;amp;quot;(vec4 color) { return color; }&amp;amp;quot;,&amp;amp;quot;void afterFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;}}):this._defaultLightShader=new Tt(this,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+lt.lightVert,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+lt.lightTextureFrag)),this._defaultLightShader}baseNormalShader(){return this._getNormalShader()}_getNormalShader(){return this._defaultNormalShader||(this._defaultNormalShader=new Tt(this,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;mediump&amp;amp;quot;)+lt.normalVert,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;mediump&amp;amp;quot;)+lt.normalFrag,{vertex:{&amp;amp;quot;void beforeVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;Vertex getObjectInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;Vertex getWorldInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;Vertex getCameraInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;void afterVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;},fragment:{&amp;amp;quot;void beforeFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;vec4 getFinalColor&amp;amp;quot;:&amp;amp;quot;(vec4 color) { return color; }&amp;amp;quot;,&amp;amp;quot;void afterFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;}})),this._defaultNormalShader}baseColorShader(){return this._getColorShader()}_getColorShader(){return this._defaultColorShader||(this._defaultColorShader=new Tt(this,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;mediump&amp;amp;quot;)+lt.normalVert,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;mediump&amp;amp;quot;)+lt.basicFrag,{vertex:{&amp;amp;quot;void beforeVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;Vertex getObjectInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;Vertex getWorldInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;Vertex getCameraInputs&amp;amp;quot;:&amp;amp;quot;(Vertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;void afterVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;},fragment:{&amp;amp;quot;void beforeFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;vec4 getFinalColor&amp;amp;quot;:&amp;amp;quot;(vec4 color) { return color; }&amp;amp;quot;,&amp;amp;quot;void afterFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;}})),this._defaultColorShader}pointShader(){return this._getPointShader()}_getPointShader(){return this._defaultPointShader||(this._defaultPointShader=new Tt(this,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;mediump&amp;amp;quot;)+lt.pointVert,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;mediump&amp;amp;quot;)+lt.pointFrag,{vertex:{&amp;amp;quot;void beforeVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;vec3 getLocalPosition&amp;amp;quot;:&amp;amp;quot;(vec3 position) { return position; }&amp;amp;quot;,&amp;amp;quot;vec3 getWorldPosition&amp;amp;quot;:&amp;amp;quot;(vec3 position) { return position; }&amp;amp;quot;,&amp;amp;quot;float getPointSize&amp;amp;quot;:&amp;amp;quot;(float size) { return size; }&amp;amp;quot;,&amp;amp;quot;void afterVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;},fragment:{&amp;amp;quot;void beforeFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;vec4 getFinalColor&amp;amp;quot;:&amp;amp;quot;(vec4 color) { return color; }&amp;amp;quot;,&amp;amp;quot;bool shouldDiscard&amp;amp;quot;:&amp;amp;quot;(bool outside) { return outside; }&amp;amp;quot;,&amp;amp;quot;void afterFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;}})),this._defaultPointShader}baseStrokeShader(){return this._getLineShader()}_getLineShader(){return this._defaultLineShader||(this._defaultLineShader=new Tt(this,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;mediump&amp;amp;quot;)+lt.lineVert,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;mediump&amp;amp;quot;)+lt.lineFrag,{vertex:{&amp;amp;quot;void beforeVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;StrokeVertex getObjectInputs&amp;amp;quot;:&amp;amp;quot;(StrokeVertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;StrokeVertex getWorldInputs&amp;amp;quot;:&amp;amp;quot;(StrokeVertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;StrokeVertex getCameraInputs&amp;amp;quot;:&amp;amp;quot;(StrokeVertex inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;void afterVertex&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;},fragment:{&amp;amp;quot;void beforeFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;,&amp;amp;quot;Inputs getPixelInputs&amp;amp;quot;:&amp;amp;quot;(Inputs inputs) { return inputs; }&amp;amp;quot;,&amp;amp;quot;vec4 getFinalColor&amp;amp;quot;:&amp;amp;quot;(vec4 color) { return color; }&amp;amp;quot;,&amp;amp;quot;bool shouldDiscard&amp;amp;quot;:&amp;amp;quot;(bool outside) { return outside; }&amp;amp;quot;,&amp;amp;quot;void afterFragment&amp;amp;quot;:&amp;amp;quot;() {}&amp;amp;quot;}})),this._defaultLineShader}_getFontShader(){return this._defaultFontShader||(this.webglVersion===kr&amp;amp;amp;&amp;amp;amp;this.GL.getExtension(&amp;amp;quot;OES_standard_derivatives&amp;amp;quot;),this._defaultFontShader=new Tt(this,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+lt.fontVert,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+lt.fontFrag)),this._defaultFontShader}baseFilterShader(){return this._baseFilterShader||(this._baseFilterShader=new Tt(this,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+lt.filterBaseVert,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+lt.filterBaseFrag,{vertex:{},fragment:{&amp;amp;quot;vec4 getColor&amp;amp;quot;:`(FilterInputs inputs, in sampler2D canvasContent) {
   7311 <a href="#l7292" class="line" id="l7292">   7292</a> &lt;a href=&quot;#l7273&quot; class=&quot;line&quot; id=&quot;l7273&quot;&gt;   7273&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2173&amp;quot; id=&amp;quot;h4-0-2173&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                return getTexture(canvasContent, inputs.texCoord);
   7312 <a href="#l7293" class="line" id="l7293">   7293</a> &lt;a href=&quot;#l7274&quot; class=&quot;line&quot; id=&quot;l7274&quot;&gt;   7274&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2174&amp;quot; id=&amp;quot;h4-0-2174&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+              }`}})),this._baseFilterShader}_webGL2CompatibilityPrefix(t,r){let n=&amp;amp;quot;&amp;amp;quot;;return this.webglVersion===pt&amp;amp;amp;&amp;amp;amp;(n+=`#version 300 es
   7313 <a href="#l7294" class="line" id="l7294">   7294</a> &lt;a href=&quot;#l7275&quot; class=&quot;line&quot; id=&quot;l7275&quot;&gt;   7275&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2175&amp;quot; id=&amp;quot;h4-0-2175&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define WEBGL2
   7314 <a href="#l7295" class="line" id="l7295">   7295</a> &lt;a href=&quot;#l7276&quot; class=&quot;line&quot; id=&quot;l7276&quot;&gt;   7276&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2176&amp;quot; id=&amp;quot;h4-0-2176&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),t===&amp;amp;quot;vert&amp;amp;quot;?n+=`#define VERTEX_SHADER
   7315 <a href="#l7296" class="line" id="l7296">   7296</a> &lt;a href=&quot;#l7277&quot; class=&quot;line&quot; id=&quot;l7277&quot;&gt;   7277&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2177&amp;quot; id=&amp;quot;h4-0-2177&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`:t===&amp;amp;quot;frag&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n+=`#define FRAGMENT_SHADER
   7316 <a href="#l7297" class="line" id="l7297">   7297</a> &lt;a href=&quot;#l7278&quot; class=&quot;line&quot; id=&quot;l7278&quot;&gt;   7278&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2178&amp;quot; id=&amp;quot;h4-0-2178&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),r&amp;amp;amp;&amp;amp;amp;(n+=`precision ${r} float;
   7317 <a href="#l7298" class="line" id="l7298">   7298</a> &lt;a href=&quot;#l7279&quot; class=&quot;line&quot; id=&quot;l7279&quot;&gt;   7279&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2179&amp;quot; id=&amp;quot;h4-0-2179&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),n}_getEmptyTexture(){if(!this._emptyTexture){let t=new ar(1,1);t.set(0,0,255),this._emptyTexture=new _r(this,t)}return this._emptyTexture}getTexture(t){let r=t;r instanceof hr&amp;amp;amp;&amp;amp;amp;(r=r.color);let n=this.textures.get(r);if(n)return n;let s=new _r(this,r);return this.textures.set(r,s),s}getDiffusedTexture(t){if(this.diffusedTextures.get(t)!=null)return this.diffusedTextures.get(t);let r,n=200,s=n,a=Math.floor(n*(t.height/t.width));return r=new hr(this,{width:s,height:a,density:1}),this.diffusedShader||(this.diffusedShader=this._pInst.createShader(lt.imageLightVert,lt.imageLightDiffusedFrag)),r.draw(()=&amp;amp;gt;{this.shader(this.diffusedShader),this.diffusedShader.setUniform(&amp;amp;quot;environmentMap&amp;amp;quot;,t),this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this.noLights(),this.plane(s,a)}),this.diffusedTextures.set(t,r),r}getSpecularTexture(t){if(this.specularTextures.get(t)!=null)return this.specularTextures.get(t);let r=512,n,s=[],a=new hr(this,{width:r,height:r,density:1}),o=Math.log(r)/Math.log(2);this.specularShader||(this.specularShader=this._pInst.createShader(lt.imageLightVert,lt.imageLightSpecularFrag));for(let u=r;u&amp;amp;gt;=1;u/=2){a.resize(u,u);let l=1-Math.log(u)/Math.log(2)/o;a.draw(()=&amp;amp;gt;{this.shader(this.specularShader),this.clear(),this.specularShader.setUniform(&amp;amp;quot;environmentMap&amp;amp;quot;,t),this.specularShader.setUniform(&amp;amp;quot;roughness&amp;amp;quot;,l),this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this.noLights(),this.plane(u,u)}),s.push(a.get().drawingContext.getImageData(0,0,u,u))}return a.remove(),n=new rl(this,s,{}),this.specularTextures.set(t,n),n}activeFramebuffer(){return this.activeFramebuffers[this.activeFramebuffers.length-1]||null}createFramebuffer(t){return new hr(this,t)}_setGlobalUniforms(t){let r=this.states.uModelMatrix,n=this.states.uViewMatrix,s=this.states.uPMatrix,a=r.copy().mult(n);if(t.setUniform(&amp;amp;quot;uPerspective&amp;amp;quot;,this.states.curCamera.useLinePerspective?1:0),t.setUniform(&amp;amp;quot;uViewMatrix&amp;amp;quot;,n.mat4),t.setUniform(&amp;amp;quot;uProjectionMatrix&amp;amp;quot;,s.mat4),t.setUniform(&amp;amp;quot;uModelMatrix&amp;amp;quot;,r.mat4),t.setUniform(&amp;amp;quot;uModelViewMatrix&amp;amp;quot;,a.mat4),t.uniforms.uModelViewProjectionMatrix){let o=a.copy();o.mult(s),t.setUniform(&amp;amp;quot;uModelViewProjectionMatrix&amp;amp;quot;,o.mat4)}t.uniforms.uNormalMatrix&amp;amp;amp;&amp;amp;amp;(this.scratchMat3.inverseTranspose4x4(a),t.setUniform(&amp;amp;quot;uNormalMatrix&amp;amp;quot;,this.scratchMat3.mat3)),t.uniforms.uModelNormalMatrix&amp;amp;amp;&amp;amp;amp;(this.scratchMat3.inverseTranspose4x4(this.states.uModelMatrix),t.setUniform(&amp;amp;quot;uModelNormalMatrix&amp;amp;quot;,this.scratchMat3.mat3)),t.uniforms.uCameraNormalMatrix&amp;amp;amp;&amp;amp;amp;(this.scratchMat3.inverseTranspose4x4(this.states.uViewMatrix),t.setUniform(&amp;amp;quot;uCameraNormalMatrix&amp;amp;quot;,this.scratchMat3.mat3)),t.uniforms.uCameraRotation&amp;amp;amp;&amp;amp;amp;(this.scratchMat3.inverseTranspose4x4(this.states.uViewMatrix),t.setUniform(&amp;amp;quot;uCameraRotation&amp;amp;quot;,this.scratchMat3.mat3)),t.setUniform(&amp;amp;quot;uViewport&amp;amp;quot;,this._viewport)}_setStrokeUniforms(t){t.setUniform(&amp;amp;quot;uSimpleLines&amp;amp;quot;,this._simpleLines),t.setUniform(&amp;amp;quot;uUseLineColor&amp;amp;quot;,this._useLineColor),t.setUniform(&amp;amp;quot;uMaterialColor&amp;amp;quot;,this.states.curStrokeColor),t.setUniform(&amp;amp;quot;uStrokeWeight&amp;amp;quot;,this.states.strokeWeight),t.setUniform(&amp;amp;quot;uStrokeCap&amp;amp;quot;,Gm[this.curStrokeCap]),t.setUniform(&amp;amp;quot;uStrokeJoin&amp;amp;quot;,zm[this.curStrokeJoin])}_setFillUniforms(t){this.mixedSpecularColor=[...this.states.curSpecularColor];let r=this._getEmptyTexture();this.states._useMetalness&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(this.mixedSpecularColor=this.mixedSpecularColor.map((u,h)=&amp;amp;gt;this.states.curFillColor[h]*this.states._useMetalness+u*(1-this.states._useMetalness))),t.setUniform(&amp;amp;quot;uUseVertexColor&amp;amp;quot;,this._useVertexColor),t.setUniform(&amp;amp;quot;uMaterialColor&amp;amp;quot;,this.states.curFillColor),t.setUniform(&amp;amp;quot;isTexture&amp;amp;quot;,!!this.states._tex),t.setUniform(&amp;amp;quot;uSampler&amp;amp;quot;,this.states._tex||r),t.setUniform(&amp;amp;quot;uTint&amp;amp;quot;,this.states.tint),t.setUniform(&amp;amp;quot;uHasSetAmbient&amp;amp;quot;,this.states._hasSetAmbient),t.setUniform(&amp;amp;quot;uAmbientMatColor&amp;amp;quot;,this.states.curAmbientColor),t.setUniform(&amp;amp;quot;uSpecularMatColor&amp;amp;quot;,this.mixedSpecularColor),t.setUniform(&amp;amp;quot;uEmissiveMatColor&amp;amp;quot;,this.states.curEmissiveColor),t.setUniform(&amp;amp;quot;uSpecular&amp;amp;quot;,this.states._useSpecularMaterial),t.setUniform(&amp;amp;quot;uEmissive&amp;amp;quot;,this.states._useEmissiveMaterial),t.setUniform(&amp;amp;quot;uShininess&amp;amp;quot;,this.states._useShininess),t.setUniform(&amp;amp;quot;uMetallic&amp;amp;quot;,this.states._useMetalness),this._setImageLightUniforms(t),t.setUniform(&amp;amp;quot;uUseLighting&amp;amp;quot;,this.states.enableLighting);let n=this.states.pointLightDiffuseColors.length/3;t.setUniform(&amp;amp;quot;uPointLightCount&amp;amp;quot;,n),t.setUniform(&amp;amp;quot;uPointLightLocation&amp;amp;quot;,this.states.pointLightPositions),t.setUniform(&amp;amp;quot;uPointLightDiffuseColors&amp;amp;quot;,this.states.pointLightDiffuseColors),t.setUniform(&amp;amp;quot;uPointLightSpecularColors&amp;amp;quot;,this.states.pointLightSpecularColors);let s=this.states.directionalLightDiffuseColors.length/3;t.setUniform(&amp;amp;quot;uDirectionalLightCount&amp;amp;quot;,s),t.setUniform(&amp;amp;quot;uLightingDirection&amp;amp;quot;,this.states.directionalLightDirections),t.setUniform(&amp;amp;quot;uDirectionalDiffuseColors&amp;amp;quot;,this.states.directionalLightDiffuseColors),t.setUniform(&amp;amp;quot;uDirectionalSpecularColors&amp;amp;quot;,this.states.directionalLightSpecularColors);let a=this.states.ambientLightColors.length/3;this.mixedAmbientLight=[...this.states.ambientLightColors],this.states._useMetalness&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(this.mixedAmbientLight=this.mixedAmbientLight.map(u=&amp;amp;gt;{let h=u-this.states._useMetalness;return Math.max(0,h)})),t.setUniform(&amp;amp;quot;uAmbientLightCount&amp;amp;quot;,a),t.setUniform(&amp;amp;quot;uAmbientColor&amp;amp;quot;,this.mixedAmbientLight);let o=this.states.spotLightDiffuseColors.length/3;t.setUniform(&amp;amp;quot;uSpotLightCount&amp;amp;quot;,o),t.setUniform(&amp;amp;quot;uSpotLightAngle&amp;amp;quot;,this.states.spotLightAngle),t.setUniform(&amp;amp;quot;uSpotLightConc&amp;amp;quot;,this.states.spotLightConc),t.setUniform(&amp;amp;quot;uSpotLightDiffuseColors&amp;amp;quot;,this.states.spotLightDiffuseColors),t.setUniform(&amp;amp;quot;uSpotLightSpecularColors&amp;amp;quot;,this.states.spotLightSpecularColors),t.setUniform(&amp;amp;quot;uSpotLightLocation&amp;amp;quot;,this.states.spotLightPositions),t.setUniform(&amp;amp;quot;uSpotLightDirection&amp;amp;quot;,this.states.spotLightDirections),t.setUniform(&amp;amp;quot;uConstantAttenuation&amp;amp;quot;,this.states.constantAttenuation),t.setUniform(&amp;amp;quot;uLinearAttenuation&amp;amp;quot;,this.states.linearAttenuation),t.setUniform(&amp;amp;quot;uQuadraticAttenuation&amp;amp;quot;,this.states.quadraticAttenuation)}_setImageLightUniforms(t){if(t.setUniform(&amp;amp;quot;uUseImageLight&amp;amp;quot;,this.states.activeImageLight!=null),this.states.activeImageLight){let r=this.getDiffusedTexture(this.states.activeImageLight);t.setUniform(&amp;amp;quot;environmentMapDiffused&amp;amp;quot;,r);let n=this.getSpecularTexture(this.states.activeImageLight);t.setUniform(&amp;amp;quot;environmentMapSpecular&amp;amp;quot;,n)}}_setPointUniforms(t){t.setUniform(&amp;amp;quot;uMaterialColor&amp;amp;quot;,this.states.curStrokeColor),t.setUniform(&amp;amp;quot;uPointSize&amp;amp;quot;,this.states.strokeWeight*this._pixelDensity)}_bindBuffer(t,r,n,s,a){if(r||(r=this.GL.ARRAY_BUFFER),this.GL.bindBuffer(r,t),n!==void 0){let o=n;n instanceof Or?o=n.dataArray():o instanceof(s||Float32Array)||(o=new(s||Float32Array)(o)),this.GL.bufferData(r,o,a||this.GL.STATIC_DRAW)}}_arraysEqual(t,r){return t.length!==r.length?!1:t.every((s,a)=&amp;amp;gt;s===r[a])}_isTypedArray(t){return[Float32Array,Float64Array,Int16Array,Uint16Array,Uint32Array].some(r=&amp;amp;gt;t instanceof r)}_vToNArray(t){return t.flatMap(r=&amp;amp;gt;[r.x,r.y,r.z])}};function Vc(i,t){i.RendererGL=Le,t.setAttributes=function(r,n){if(typeof this._glAttributes&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;){console.log(&amp;amp;quot;You are trying to use setAttributes on a p5.Graphics object that does not use a WEBGL renderer.&amp;amp;quot;);return}let s=!0;if(typeof n&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(this._glAttributes===null&amp;amp;amp;&amp;amp;amp;(this._glAttributes={}),this._glAttributes[r]!==n&amp;amp;amp;&amp;amp;amp;(this._glAttributes[r]=n,s=!1)):r instanceof Object&amp;amp;amp;&amp;amp;amp;this._glAttributes!==r&amp;amp;amp;&amp;amp;amp;(this._glAttributes=r,s=!1),!(!this._renderer.isP3D||s)){if(!this._setupDone&amp;amp;amp;&amp;amp;amp;this._renderer.geometryBufferCache.numCached()&amp;amp;gt;0){i._friendlyError(&amp;amp;quot;Sorry, Could not set the attributes, you need to call setAttributes() before calling the other drawing methods in setup()&amp;amp;quot;);return}this._renderer._resetContext(),this._renderer.states.curCamera&amp;amp;amp;&amp;amp;amp;(this._renderer.states.curCamera._renderer=this._renderer)}},t._assert3d=function(r){if(!this._renderer.isP3D)throw new Error(`${r}() is only supported in WEBGL mode. If you&amp;amp;#39;d like to use 3D graphics and WebGL, see  https://p5js.org/examples/form-3d-primitives.html for more information.`)},i.renderers[kr]=i.RendererGL,i.renderers[pt]=i.RendererGL}function Cc(i,t,r,n,s,a,o,u,h,l){let c=t.getParameter(t.FRAMEBUFFER_BINDING);t.bindFramebuffer(t.FRAMEBUFFER,r);let p=u===t.RGBA?4:3,f=a*o*p,d=h===t.UNSIGNED_BYTE?Uint8Array:Float32Array;if((!(i instanceof d)||i.length!==f)&amp;amp;amp;&amp;amp;amp;(i=new d(f)),t.readPixels(n,l?l-s-o:s,a,o,u,h,i),t.bindFramebuffer(t.FRAMEBUFFER,c),l){let m=Math.floor(o/2),g=new d(a*p);for(let v=0;v&amp;amp;lt;m;v++){let w=v*a*4,y=(o-v-1)*a*4;g.set(i.subarray(w,w+a*4)),i.copyWithin(w,y,y+a*4),i.set(g,y)}}return i}function jm(i,t,r,n,s,a,o){let u=i.getParameter(i.FRAMEBUFFER_BINDING);i.bindFramebuffer(i.FRAMEBUFFER,t);let h=s===i.RGBA?4:3,l=a===i.UNSIGNED_BYTE?Uint8Array:Float32Array,c=new l(h);return i.readPixels(r,o?o-n-1:n,1,1,s,a,c),i.bindFramebuffer(i.FRAMEBUFFER,u),Array.from(c)}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Vc(p5,p5.prototype);function ul(i,t){t.strokeMode=function(n){if(n===void 0)return this._renderer._simpleLines?Xo:Ko;if(n===Xo)this._renderer._simpleLines=!0;else if(n===Ko)this._renderer._simpleLines=!1;else throw Error(&amp;amp;quot;no such parameter&amp;amp;quot;)},t.buildGeometry=function(n){return this._renderer.buildGeometry(n)},t.freeGeometry=function(n){this._renderer.geometryBufferCache.freeBuffers(n.gid)},t.plane=function(n=50,s=n,a=1,o=1){return this._assert3d(&amp;amp;quot;plane&amp;amp;quot;),this._renderer.plane(n,s,a,o),this},t.box=function(n,s,a,o,u){return this._assert3d(&amp;amp;quot;box&amp;amp;quot;),this._renderer.box(n,s,a,o,u),this},t.sphere=function(n=50,s=24,a=16){return this._assert3d(&amp;amp;quot;sphere&amp;amp;quot;),this._renderer.sphere(n,s,a),this},t.cylinder=function(n=50,s=n,a=24,o=1,u=!0,h=!0){return this._assert3d(&amp;amp;quot;cylinder&amp;amp;quot;),this._renderer.cylinder(n,s,a,o,u,h),this},t.cone=function(n=50,s=n,a=24,o=1,u=!0){return this._assert3d(&amp;amp;quot;cone&amp;amp;quot;),this._renderer.cone(n,s,a,o,u),this},t.ellipsoid=function(n=50,s=n,a=n,o=24,u=16){return this._assert3d(&amp;amp;quot;ellipsoid&amp;amp;quot;),this._renderer.ellipsoid(n,s,a,o,u),this},t.torus=function(n,s,a,o){return this._assert3d(&amp;amp;quot;torus&amp;amp;quot;),this._renderer.torus(n,s,a,o),this},Le.prototype.point=function(n,s,a=0){let o=[];return o.push(new H(n,s,a)),this._drawPoints(o,this.buffers.point),this},Le.prototype.triangle=function(n){let s=n[0],a=n[1],o=n[2],u=n[3],h=n[4],l=n[5],c=&amp;amp;quot;tri&amp;amp;quot;;if(!this.geometryInHash(c)){let f=function(){let m=[];m.push(new H(0,0,0)),m.push(new H(1,0,0)),m.push(new H(0,1,0)),this.edges=[[0,1],[1,2],[2,0]],this.vertices=m,this.faces=[[0,1,2]],this.uvs=[0,0,1,0,1,1]},d=new dt(1,1,f,this);d._edgesToVertices(),d.computeNormals(),d.gid=c,this.geometryBufferCache.ensureCached(d)}let p=this.states.uModelMatrix.copy();try{let f=Math.sign(s*u-o*a+o*l-h*u+h*a-s*l),d=new at([o-s,u-a,0,0,h-s,l-a,0,0,0,0,f,0,s,a,0,1]).mult(this.states.uModelMatrix);this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,d),this._drawGeometry(this.geometryBufferCache.getGeometryByID(c))}finally{this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,p)}return this},Le.prototype.ellipse=function(n){this.arc(n[0],n[1],n[2],n[3],0,wt,Xr,n[4])},Le.prototype.arc=function(...n){let s=n[0],a=n[1],o=n[2],u=n[3],h=n[4],l=n[5],c=n[6],p=n[7]||25,f,d;if(Math.abs(l-h)&amp;amp;gt;=wt?(f=&amp;amp;quot;ellipse&amp;amp;quot;,d=`${f}|${p}|`):(f=&amp;amp;quot;arc&amp;amp;quot;,d=`${f}|${h}|${l}|${c}|${p}|`),!this.geometryInHash(d)){let g=function(){if(h.toFixed(10)!==l.toFixed(10)){(c===gn||typeof c&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(this.vertices.push(new H(.5,.5,0)),this.uvs.push([.5,.5]));for(let w=0;w&amp;amp;lt;=p;w++){let y=w/p,S=(l-h)*y+h,_=.5+Math.cos(S)/2,b=.5+Math.sin(S)/2;this.vertices.push(new H(_,b,0)),this.uvs.push([_,b]),w&amp;amp;lt;p-1&amp;amp;amp;&amp;amp;amp;(this.faces.push([0,w+1,w+2]),this.edges.push([w+1,w+2]))}switch(c){case gn:this.faces.push([0,this.vertices.length-2,this.vertices.length-1]),this.edges.push([0,1]),this.edges.push([this.vertices.length-2,this.vertices.length-1]),this.edges.push([0,this.vertices.length-1]);break;case Qn:this.edges.push([0,1]),this.edges.push([0,this.vertices.length-1]);break;case Xr:this.edges.push([0,1]);break;default:this.faces.push([0,this.vertices.length-2,this.vertices.length-1]),this.edges.push([this.vertices.length-2,this.vertices.length-1])}}},v=new dt(p,1,g,this);v.computeNormals(),p&amp;amp;lt;=50?v._edgesToVertices(v):this.states.strokeColor&amp;amp;amp;&amp;amp;amp;console.log(`Cannot apply a stroke to an ${f} with more than 50 detail`),v.gid=d,this.geometryBufferCache.ensureCached(v)}let m=this.states.uModelMatrix;this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.clone());try{this.states.uModelMatrix.translate([s,a,0]),this.states.uModelMatrix.scale(o,u,1),this._drawGeometry(this.geometryBufferCache.getGeometryByID(d))}finally{this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,m)}return this},Le.prototype.rect=function(n){let s=n[0],a=n[1],o=n[2],u=n[3];if(typeof n[4]&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;){let h=this._pInst._glAttributes.perPixelLighting,l=n[4]||(h?1:24),c=n[5]||(h?1:16),p=`rect|${l}|${c}`;if(!this.geometryInHash(p)){let d=function(){for(let g=0;g&amp;amp;lt;=this.detailY;g++){let v=g/this.detailY;for(let w=0;w&amp;amp;lt;=this.detailX;w++){let y=w/this.detailX,S=new H(y,v,0);this.vertices.push(S),this.uvs.push(y,v)}}l&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;c&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(this.edges=[[0,l],[l,(l+1)*(c+1)-1],[(l+1)*(c+1)-1,(l+1)*c],[(l+1)*c,0]])},m=new dt(l,c,d,this);m.computeFaces().computeNormals()._edgesToVertices(),m.gid=p,this.geometryBufferCache.ensureCached(m)}let f=this.states.uModelMatrix;this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this.states.uModelMatrix.copy());try{this.states.uModelMatrix.translate([s,a,0]),this.states.uModelMatrix.scale(o,u,1),this._drawGeometry(this.geometryBufferCache.getGeometryByID(p))}finally{this.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,f)}}else{let h=n[4],l=typeof n[5]&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?h:n[5],c=typeof n[6]&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?l:n[6],p=typeof n[7]&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?c:n[7],f=s,d=a,m=o,g=u;if(m+=f,g+=d,f&amp;amp;gt;m){let A=f;f=m,m=A}if(d&amp;amp;gt;g){let A=d;d=g,g=A}let v=Math.min((m-f)/2,(g-d)/2);h&amp;amp;gt;v&amp;amp;amp;&amp;amp;amp;(h=v),l&amp;amp;gt;v&amp;amp;amp;&amp;amp;amp;(l=v),c&amp;amp;gt;v&amp;amp;amp;&amp;amp;amp;(c=v),p&amp;amp;gt;v&amp;amp;amp;&amp;amp;amp;(p=v);let w=f,y=d,S=m,_=g,b=this.states.textureMode;this.states.setValue(&amp;amp;quot;textureMode&amp;amp;quot;,ir);let I=this.bezierOrder();this.bezierOrder(2),this.beginShape();let E=(A,C)=&amp;amp;gt;[A,C,(A-w)/o,(C-y)/u];l!==0?(this.vertex(...E(S-l,y)),this.bezierVertex(...E(S,y)),this.bezierVertex(...E(S,y+l))):this.vertex(...E(S,y)),c!==0?(this.vertex(...E(S,_-c)),this.bezierVertex(...E(S,_)),this.bezierVertex(...E(S-c,_))):this.vertex(...E(S,_)),p!==0?(this.vertex(...E(w+p,_)),this.bezierVertex(...E(w,_)),this.bezierVertex(...E(w,_-p))):this.vertex(...E(w,_)),h!==0?(this.vertex(...E(w,y+h)),this.bezierVertex(...E(w,y)),this.bezierVertex(...E(w+h,y))):this.vertex(...E(w,y)),this.endShape(mn),this.states.setValue(&amp;amp;quot;textureMode&amp;amp;quot;,b),this.bezierOrder(I)}return this},Le.prototype.quad=function(n,s,a,o,u,h,l,c,p,f,d,m,g=2,v=2){let w=`quad|${n}|${s}|${a}|${o}|${u}|${h}|${l}|${c}|${p}|${f}|${d}|${m}|${g}|${v}`;if(!this.geometryInHash(w)){let y=new dt(g,v,function(){let _=1/(this.detailX-1),b=1/(this.detailY-1);for(let I=0;I&amp;amp;lt;this.detailY;I++)for(let E=0;E&amp;amp;lt;this.detailX;E++){let A=E*_,C=I*b,T=(1-C)*n+C*f,D=(1-C)*s+C*d,F=(1-C)*a+C*m,N=(1-C)*o+C*l,B=(1-C)*u+C*c,U=(1-C)*h+C*p,j=(1-A)*T+A*N,W=(1-A)*D+A*B,te=(1-A)*F+A*U;this.vertices.push(new H(j,W,te)),this.uvs.push([A,C])}},this);y.faces=[];for(let _=0;_&amp;amp;lt;v-1;_++)for(let b=0;b&amp;amp;lt;g-1;b++){let I=b+_*g,E=b+1+_*g,A=b+1+(_+1)*g,C=b+(_+1)*g;y.faces.push([I,E,A]),y.faces.push([I,A,C])}y.computeNormals(),y.edges.length=0;let S=[0,2,3,1];for(let _=0;_&amp;amp;lt;S.length;_++){let b=S[_],I=S[(_+1)%S.length];y.edges.push([b,I])}y._edgesToVertices(),y.gid=w,this.geometryBufferCache.ensureCached(y)}return this._drawGeometry(this.geometryBufferCache.getGeometryByID(w)),this},Le.prototype.bezier=function(n,s,a,o,u,h,l,c,p,f,d,m){arguments.length===8&amp;amp;amp;&amp;amp;amp;(d=c,f=l,c=h,l=u,u=o,o=a,a=h=p=m=0),this.bezierOrder(),this.bezierOrder(3),this.beginShape(),this.vertex(n,s,a),this.bezierVertex(o,u,h),this.bezierVertex(l,c,p),this.bezierVertex(f,d,m),this.endShape()},Le.prototype.curve=function(n,s,a,o,u,h,l,c,p,f,d,m){arguments.length===8&amp;amp;amp;&amp;amp;amp;(f=l,d=c,l=u,c=o,o=a,u=o,a=h=p=m=0),this.beginShape(),this.splineVertex(n,s,a),this.splineVertex(o,u,h),this.splineVertex(l,c,p),this.splineVertex(f,d,m),this.endShape()},Le.prototype.line=function(...n){return n.length===6?(this.beginShape(ci),this.vertex(n[0],n[1],n[2]),this.vertex(n[3],n[4],n[5]),this.endShape()):n.length===4&amp;amp;amp;&amp;amp;amp;(this.beginShape(ci),this.vertex(n[0],n[1],0),this.vertex(n[2],n[3],0),this.endShape()),this},Le.prototype.image=function(n,s,a,o,u,h,l,c,p){this._isErasing&amp;amp;amp;&amp;amp;amp;this.blendMode(this._cachedBlendMode),this.push(),this.noLights(),this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this.texture(n),this.states.setValue(&amp;amp;quot;textureMode&amp;amp;quot;,ir);let f=0;s&amp;amp;lt;=n.width&amp;amp;amp;&amp;amp;amp;(f=s/n.width);let d=1;s+o&amp;amp;lt;=n.width&amp;amp;amp;&amp;amp;amp;(d=(s+o)/n.width);let m=0;a&amp;amp;lt;=n.height&amp;amp;amp;&amp;amp;amp;(m=a/n.height);let g=1;a+u&amp;amp;lt;=n.height&amp;amp;amp;&amp;amp;amp;(g=(a+u)/n.height),this._drawingImage=!0,this.beginShape(),this.vertex(h,l,0,f,m),this.vertex(h+c,l,0,d,m),this.vertex(h+c,l+p,0,d,g),this.vertex(h,l+p,0,f,g),this.endShape(mn),this._drawingImage=!1,this.pop(),this._isErasing&amp;amp;amp;&amp;amp;amp;this.blendMode(pi)};let r=function(n,s,a,o,u,h,l){n=n&amp;amp;lt;=0?1:n,s=s&amp;amp;lt;0?0:s,a=a&amp;amp;lt;=0?n:a,o=o&amp;amp;lt;3?3:o,u=u&amp;amp;lt;1?1:u,h=h===void 0?!0:h,l=l===void 0?s!==0:l;let c=h?-2:0,p=u+(l?2:0),f=Math.atan2(n-s,a),d=Math.sin(f),m=Math.cos(f),g,v,w;for(g=c;g&amp;amp;lt;=p;++g){let S=g/u,_=a*S,b;for(g&amp;amp;lt;0?(_=0,S=0,b=n):g&amp;amp;gt;u?(_=a,S=1,b=s):b=n+(s-n)*S,(g===-2||g===u+2)&amp;amp;amp;&amp;amp;amp;(b=0),_-=a/2,v=0;v&amp;amp;lt;o;++v){let I=v/(o-1),E=2*Math.PI*I,A=Math.sin(E),C=Math.cos(E);this.vertices.push(new H(A*b,_,C*b));let T;g&amp;amp;lt;0?T=new H(0,-1,0):g&amp;amp;gt;u&amp;amp;amp;&amp;amp;amp;s?T=new H(0,1,0):T=new H(A*m,d,C*m),this.vertexNormals.push(T),this.uvs.push(I,S)}}let y=0;if(h){for(w=0;w&amp;amp;lt;o;++w){let S=(w+1)%o;this.faces.push([y+w,y+o+S,y+o+w])}y+=o*2}for(g=0;g&amp;amp;lt;u;++g){for(v=0;v&amp;amp;lt;o;++v){let S=(v+1)%o;this.faces.push([y+v,y+S,y+o+S]),this.faces.push([y+v,y+o+S,y+o+v])}y+=o}if(l)for(y+=o,v=0;v&amp;amp;lt;o;++v)this.faces.push([y+v,y+(v+1)%o,y+o])};Le.prototype.plane=function(n=50,s=n,a=1,o=1){let u=`plane|${a}|${o}`;if(!this.geometryInHash(u)){let h=function(){let c,p,f;for(let d=0;d&amp;amp;lt;=this.detailY;d++){p=d/this.detailY;for(let m=0;m&amp;amp;lt;=this.detailX;m++)c=m/this.detailX,f=new H(c-.5,p-.5,0),this.vertices.push(f),this.uvs.push(c,p)}},l=new dt(a,o,h,this);l.computeFaces().computeNormals(),a&amp;amp;lt;=1&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=1?l._makeTriangleEdges()._edgesToVertices():this.states.strokeColor&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;Cannot draw stroke on plane objects with more than 1 detailX or 1 detailY&amp;amp;quot;),l.gid=u,this.geometryBufferCache.ensureCached(l)}this._drawGeometryScaled(this.geometryBufferCache.getGeometryByID(u),n,s,1)},Le.prototype.box=function(n=50,s=n,a=s,o,u){let h=this.attributes&amp;amp;amp;&amp;amp;amp;this.attributes.perPixelLighting;typeof o&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=h?1:4),typeof u&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u=h?1:4);let l=`box|${o}|${u}`;if(!this.geometryInHash(l)){let c=function(){let f=[[0,4,2,6],[1,3,5,7],[0,1,4,5],[2,6,3,7],[0,2,1,3],[4,5,6,7]];this.edges=[[0,1],[1,3],[3,2],[6,7],[8,9],[9,11],[14,15],[16,17],[17,19],[18,19],[20,21],[22,23]],f.forEach((d,m)=&amp;amp;gt;{let g=m*4;for(let v=0;v&amp;amp;lt;4;v++){let w=d[v],y=new H(((w&amp;amp;amp;1)*2-1)/2,((w&amp;amp;amp;2)-1)/2,((w&amp;amp;amp;4)/2-1)/2);this.vertices.push(y),this.uvs.push(v&amp;amp;amp;1,(v&amp;amp;amp;2)/2)}this.faces.push([g,g+1,g+2]),this.faces.push([g+2,g+1,g+3])})},p=new dt(o,u,c,this);p.computeNormals(),o&amp;amp;lt;=4&amp;amp;amp;&amp;amp;amp;u&amp;amp;lt;=4?p._edgesToVertices():this.states.strokeColor&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;Cannot draw stroke on box objects with more than 4 detailX or 4 detailY&amp;amp;quot;),p.gid=l,this.geometryBufferCache.ensureCached(p)}this._drawGeometryScaled(this.geometryBufferCache.getGeometryByID(l),n,s,a)},Le.prototype.sphere=function(n=50,s=24,a=16){this.ellipsoid(n,n,n,s,a)},Le.prototype.ellipsoid=function(n=50,s=n,a=n,o=24,u=16){let h=`ellipsoid|${o}|${u}`;if(!this.geometryInHash(h)){let l=function(){for(let p=0;p&amp;amp;lt;=this.detailY;p++){let f=p/this.detailY,d=Math.PI*f-Math.PI/2,m=Math.cos(d),g=Math.sin(d);for(let v=0;v&amp;amp;lt;=this.detailX;v++){let w=v/this.detailX,y=2*Math.PI*w,S=Math.cos(y),_=Math.sin(y),b=new i.Vector(m*_,g,m*S);this.vertices.push(b),this.vertexNormals.push(b),this.uvs.push(w,f)}}},c=new dt(o,u,l,this);c.computeFaces(),o&amp;amp;lt;=24&amp;amp;amp;&amp;amp;amp;u&amp;amp;lt;=24?c._makeTriangleEdges()._edgesToVertices():this.states.strokeColor&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;Cannot draw stroke on ellipsoids with more than 24 detailX or 24 detailY&amp;amp;quot;),c.gid=h,this.geometryBufferCache.ensureCached(c)}this._drawGeometryScaled(this.geometryBufferCache.getGeometryByID(h),n,s,a)},Le.prototype.cylinder=function(n=50,s=n,a=24,o=1,u=!0,h=!0){let l=`cylinder|${a}|${o}|${u}|${h}`;if(!this.geometryInHash(l)){let c=new i.Geometry(a,o,function(){r.call(this,1,1,1,a,o,u,h)},this);a&amp;amp;lt;=24&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=16?c._makeTriangleEdges()._edgesToVertices():this.states.strokeColor&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;Cannot draw stroke on cylinder objects with more than 24 detailX or 16 detailY&amp;amp;quot;),c.gid=l,this.geometryBufferCache.ensureCached(c)}this._drawGeometryScaled(this.geometryBufferCache.getGeometryByID(l),n,s,n)},Le.prototype.cone=function(n=50,s=n,a=24,o=1,u=!0){let h=`cone|${a}|${o}|${u}`;if(!this.geometryInHash(h)){let l=new dt(a,o,function(){r.call(this,1,0,1,a,o,u,!1)},this);a&amp;amp;lt;=24&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=16?l._makeTriangleEdges()._edgesToVertices():this.states.strokeColor&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;Cannot draw stroke on cone objects with more than 24 detailX or 16 detailY&amp;amp;quot;),l.gid=h,this.geometryBufferCache.ensureCached(l)}this._drawGeometryScaled(this.geometryBufferCache.getGeometryByID(h),n,s,n)},Le.prototype.torus=function(n=50,s=10,a=24,o=16){if(n===0||s===0)return;let u=(s/n).toPrecision(4),h=`torus|${u}|${a}|${o}`;if(!this.geometryInHash(h)){let l=function(){for(let p=0;p&amp;amp;lt;=this.detailY;p++){let f=p/this.detailY,d=2*Math.PI*f,m=Math.cos(d),g=Math.sin(d),v=1+u*m;for(let w=0;w&amp;amp;lt;=this.detailX;w++){let y=w/this.detailX,S=2*Math.PI*y,_=Math.cos(S),b=Math.sin(S),I=new H(v*_,v*b,u*g),E=new H(m*_,m*b,g);this.vertices.push(I),this.vertexNormals.push(E),this.uvs.push(y,f)}}},c=new dt(a,o,l,this);c.computeFaces(),a&amp;amp;lt;=24&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=16?c._makeTriangleEdges()._edgesToVertices():this.states.strokeColor&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;Cannot draw strokes on torus object with more than 24 detailX or 16 detailY&amp;amp;quot;),c.gid=h,this.geometryBufferCache.ensureCached(c)}this._drawGeometryScaled(this.geometryBufferCache.getGeometryByID(h),n,n,n)},t.curveDetail=function(n){if(!(this._renderer instanceof Le))throw new Error(&amp;amp;quot;curveDetail() only works in WebGL mode. Did you mean to call createCanvas(width, height, WEBGL)?&amp;amp;quot;);return this._renderer.curveDetail(n)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;ul(p5,p5.prototype);function ll(i,t){t.ambientLight=function(r,n,s,a){return this._assert3d(&amp;amp;quot;ambientLight&amp;amp;quot;),this._renderer.ambientLight(...arguments),this},t.specularColor=function(r,n,s){return this._assert3d(&amp;amp;quot;specularColor&amp;amp;quot;),this._renderer.specularColor(...arguments),this},t.directionalLight=function(r,n,s,a,o,u){return this._assert3d(&amp;amp;quot;directionalLight&amp;amp;quot;),this._renderer.directionalLight(...arguments),this},t.pointLight=function(r,n,s,a,o,u){return this._assert3d(&amp;amp;quot;pointLight&amp;amp;quot;),this._renderer.pointLight(...arguments),this},t.imageLight=function(r){this._renderer.imageLight(r)},t.panorama=function(r){this.filter(this._renderer._getSphereMapping(r))},t.lights=function(){return this._assert3d(&amp;amp;quot;lights&amp;amp;quot;),this._renderer.lights(),this},t.lightFalloff=function(r,n,s){return this._assert3d(&amp;amp;quot;lightFalloff&amp;amp;quot;),this._renderer.lightFalloff(r,n,s),this},t.spotLight=function(r,n,s,a,o,u,h,l,c,p,f){return this._assert3d(&amp;amp;quot;spotLight&amp;amp;quot;),this._renderer.spotLight(...arguments),this},t.noLights=function(...r){return this._assert3d(&amp;amp;quot;noLights&amp;amp;quot;),this._renderer.noLights(),this},Le.prototype.ambientLight=function(r,n,s,a){let o=this._pInst.color(...arguments);this.states.setValue(&amp;amp;quot;ambientLightColors&amp;amp;quot;,[...this.states.ambientLightColors]),this.states.ambientLightColors.push(o._array[0],o._array[1],o._array[2]),this.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!0)},Le.prototype.specularColor=function(r,n,s){let a=this._pInst.color(...arguments);this.states.setValue(&amp;amp;quot;specularColors&amp;amp;quot;,[a._array[0],a._array[1],a._array[2]])},Le.prototype.directionalLight=function(r,n,s,a,o,u){let h;r instanceof Qe?h=r:h=this._pInst.color(r,n,s);let l,c,p,f=arguments[arguments.length-1];typeof f==&amp;amp;quot;number&amp;amp;quot;?(l=arguments[arguments.length-3],c=arguments[arguments.length-2],p=arguments[arguments.length-1]):(l=f.x,c=f.y,p=f.z);let d=Math.sqrt(l*l+c*c+p*p);this.states.setValue(&amp;amp;quot;directionalLightDirections&amp;amp;quot;,[...this.states.directionalLightDirections]),this.states.directionalLightDirections.push(l/d,c/d,p/d),this.states.setValue(&amp;amp;quot;directionalLightDiffuseColors&amp;amp;quot;,[...this.states.directionalLightDiffuseColors]),this.states.directionalLightDiffuseColors.push(h._array[0],h._array[1],h._array[2]),this.states.setValue(&amp;amp;quot;directionalLightSpecularColors&amp;amp;quot;,[...this.states.directionalLightSpecularColors]),Array.prototype.push.apply(this.states.directionalLightSpecularColors,this.states.specularColors),this.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!0)},Le.prototype.pointLight=function(r,n,s,a,o,u){let h;r instanceof Qe?h=r:h=this._pInst.color(r,n,s);let l,c,p,f=arguments[arguments.length-1];typeof f==&amp;amp;quot;number&amp;amp;quot;?(l=arguments[arguments.length-3],c=arguments[arguments.length-2],p=arguments[arguments.length-1]):(l=f.x,c=f.y,p=f.z),this.states.setValue(&amp;amp;quot;pointLightPositions&amp;amp;quot;,[...this.states.pointLightPositions]),this.states.pointLightPositions.push(l,c,p),this.states.setValue(&amp;amp;quot;pointLightDiffuseColors&amp;amp;quot;,[...this.states.pointLightDiffuseColors]),this.states.pointLightDiffuseColors.push(h._array[0],h._array[1],h._array[2]),this.states.setValue(&amp;amp;quot;pointLightSpecularColors&amp;amp;quot;,[...this.states.pointLightSpecularColors]),Array.prototype.push.apply(this.states.pointLightSpecularColors,this.states.specularColors),this.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!0)},Le.prototype.imageLight=function(r){this.states.setValue(&amp;amp;quot;activeImageLight&amp;amp;quot;,r),this.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!0)},Le.prototype.lights=function(){let r=this._pInst.color(&amp;amp;quot;rgb(128,128,128)&amp;amp;quot;);this.ambientLight(r),this.directionalLight(r,0,0,-1)},Le.prototype.lightFalloff=function(r,n,s){r&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(r=0,console.warn(&amp;amp;quot;Value of constant argument in lightFalloff() should be never be negative. Set to 0.&amp;amp;quot;)),n&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(n=0,console.warn(&amp;amp;quot;Value of linear argument in lightFalloff() should be never be negative. Set to 0.&amp;amp;quot;)),s&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(s=0,console.warn(&amp;amp;quot;Value of quadratic argument in lightFalloff() should be never be negative. Set to 0.&amp;amp;quot;)),r===0&amp;amp;amp;&amp;amp;amp;n===0&amp;amp;amp;&amp;amp;amp;s===0&amp;amp;amp;&amp;amp;amp;(r=1,console.warn(&amp;amp;quot;Either one of the three arguments in lightFalloff() should be greater than zero. Set constant argument to 1.&amp;amp;quot;)),this.states.setValue(&amp;amp;quot;constantAttenuation&amp;amp;quot;,r),this.states.setValue(&amp;amp;quot;linearAttenuation&amp;amp;quot;,n),this.states.setValue(&amp;amp;quot;quadraticAttenuation&amp;amp;quot;,s)},Le.prototype.spotLight=function(r,n,s,a,o,u,h,l,c,p,f){let d,m,g,v=arguments.length;switch(v){case 11:case 10:d=this._pInst.color(r,n,s),m=new H(a,o,u),g=new H(h,l,c);break;case 9:r instanceof Qe?(d=r,m=new H(n,s,a),g=new H(o,u,h),p=l,f=c):a instanceof H?(d=this._pInst.color(r,n,s),m=a,g=new H(o,u,h),p=l,f=c):h instanceof H?(d=this._pInst.color(r,n,s),m=new H(a,o,u),g=h,p=l,f=c):(d=this._pInst.color(r,n,s),m=new H(a,o,u),g=new H(h,l,c));break;case 8:r instanceof Qe?(d=r,m=new H(n,s,a),g=new H(o,u,h),p=l):a instanceof H?(d=this._pInst.color(r,n,s),m=a,g=new H(o,u,h),p=l):(d=this._pInst.color(r,n,s),m=new H(a,o,u),g=h,p=l);break;case 7:r instanceof Qe&amp;amp;amp;&amp;amp;amp;n instanceof H?(d=r,m=n,g=new H(s,a,o),p=u,f=h):r instanceof Qe&amp;amp;amp;&amp;amp;amp;o instanceof H?(d=r,m=new H(n,s,a),g=o,p=u,f=h):a instanceof H&amp;amp;amp;&amp;amp;amp;o instanceof H?(d=this._pInst.color(r,n,s),m=a,g=o,p=u,f=h):r instanceof Qe?(d=r,m=new H(n,s,a),g=new H(o,u,h)):a instanceof H?(d=this._pInst.color(r,n,s),m=a,g=new H(o,u,h)):(d=this._pInst.color(r,n,s),m=new H(a,o,u),g=h);break;case 6:a instanceof H&amp;amp;amp;&amp;amp;amp;o instanceof H?(d=this._pInst.color(r,n,s),m=a,g=o,p=u):r instanceof Qe&amp;amp;amp;&amp;amp;amp;o instanceof H?(d=r,m=new H(n,s,a),g=o,p=u):r instanceof Qe&amp;amp;amp;&amp;amp;amp;n instanceof H&amp;amp;amp;&amp;amp;amp;(d=r,m=n,g=new H(s,a,o),p=u);break;case 5:r instanceof Qe&amp;amp;amp;&amp;amp;amp;n instanceof H&amp;amp;amp;&amp;amp;amp;s instanceof H?(d=r,m=n,g=s,p=a,f=o):a instanceof H&amp;amp;amp;&amp;amp;amp;o instanceof H?(d=this._pInst.color(r,n,s),m=a,g=o):r instanceof Qe&amp;amp;amp;&amp;amp;amp;o instanceof H?(d=r,m=new H(n,s,a),g=o):r instanceof Qe&amp;amp;amp;&amp;amp;amp;n instanceof H&amp;amp;amp;&amp;amp;amp;(d=r,m=n,g=new H(s,a,o));break;case 4:d=r,m=n,g=s,p=a;break;case 3:d=r,m=n,g=s;break;default:console.warn(`Sorry, input for spotlight() is not in prescribed format. Too ${v&amp;amp;lt;3?&amp;amp;quot;few&amp;amp;quot;:&amp;amp;quot;many&amp;amp;quot;} arguments were provided`);return}this.states.setValue(&amp;amp;quot;spotLightDiffuseColors&amp;amp;quot;,[d._array[0],d._array[1],d._array[2]]),this.states.setValue(&amp;amp;quot;spotLightSpecularColors&amp;amp;quot;,[...this.states.specularColors]),this.states.setValue(&amp;amp;quot;spotLightPositions&amp;amp;quot;,[m.x,m.y,m.z]),g.normalize(),this.states.setValue(&amp;amp;quot;spotLightDirections&amp;amp;quot;,[g.x,g.y,g.z]),p===void 0&amp;amp;amp;&amp;amp;amp;(p=Math.PI/3),f!==void 0&amp;amp;amp;&amp;amp;amp;f&amp;amp;lt;1?(f=1,console.warn(&amp;amp;quot;Value of concentration needs to be greater than 1. Setting it to 1&amp;amp;quot;)):f===void 0&amp;amp;amp;&amp;amp;amp;(f=100),p=this._pInst._toRadians(p),this.states.setValue(&amp;amp;quot;spotLightAngle&amp;amp;quot;,[Math.cos(p)]),this.states.setValue(&amp;amp;quot;spotLightConc&amp;amp;quot;,[f]),this.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!0)},Le.prototype.noLights=function(){this.states.setValue(&amp;amp;quot;activeImageLight&amp;amp;quot;,null),this.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!1),this.states.setValue(&amp;amp;quot;ambientLightColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;specularColors&amp;amp;quot;,[1,1,1]),this.states.setValue(&amp;amp;quot;directionalLightDirections&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;directionalLightDiffuseColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;directionalLightSpecularColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;pointLightPositions&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;pointLightDiffuseColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;pointLightSpecularColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightPositions&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightDirections&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightDiffuseColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightSpecularColors&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightAngle&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;spotLightConc&amp;amp;quot;,[]),this.states.setValue(&amp;amp;quot;constantAttenuation&amp;amp;quot;,1),this.states.setValue(&amp;amp;quot;linearAttenuation&amp;amp;quot;,0),this.states.setValue(&amp;amp;quot;quadraticAttenuation&amp;amp;quot;,0),this.states.setValue(&amp;amp;quot;_useShininess&amp;amp;quot;,1),this.states.setValue(&amp;amp;quot;_useMetalness&amp;amp;quot;,0)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;ll(p5,p5.prototype);function Uc(i,t){t.loadShader=async function(r,n,s,a){let o=new Tt;try{return o._vertSrc=(await Kt(r,&amp;amp;quot;text&amp;amp;quot;)).data,o._fragSrc=(await Kt(n,&amp;amp;quot;text&amp;amp;quot;)).data,s?s(o):o}catch(u){if(a)return a(u);throw u}},t.createShader=function(r,n,s){return new Tt(this._renderer,r,n,s)},t.loadFilterShader=async function(r,n,s){try{let o=await(await this.loadStrings(r)).join(`
   7318 <a href="#l7299" class="line" id="l7299">   7299</a> &lt;a href=&quot;#l7280&quot; class=&quot;line&quot; id=&quot;l7280&quot;&gt;   7280&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2180&amp;quot; id=&amp;quot;h4-0-2180&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),u=this.createFilterShader(o,!0);return n&amp;amp;amp;&amp;amp;amp;n(u),u}catch(a){s?s(a):console.error(a)}},t.createFilterShader=function(r,n=!1){let o=r.includes(&amp;amp;quot;#version 300 es&amp;amp;quot;)?`#version 300 es
   7319 <a href="#l7300" class="line" id="l7300">   7300</a> &lt;a href=&quot;#l7281&quot; class=&quot;line&quot; id=&quot;l7281&quot;&gt;   7281&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2181&amp;quot; id=&amp;quot;h4-0-2181&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      uniform mat4 uModelViewMatrix;
   7320 <a href="#l7301" class="line" id="l7301">   7301</a> &lt;a href=&quot;#l7282&quot; class=&quot;line&quot; id=&quot;l7282&quot;&gt;   7282&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2182&amp;quot; id=&amp;quot;h4-0-2182&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      uniform mat4 uProjectionMatrix;
   7321 <a href="#l7302" class="line" id="l7302">   7302</a> &lt;a href=&quot;#l7283&quot; class=&quot;line&quot; id=&quot;l7283&quot;&gt;   7283&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2183&amp;quot; id=&amp;quot;h4-0-2183&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7322 <a href="#l7303" class="line" id="l7303">   7303</a> &lt;a href=&quot;#l7284&quot; class=&quot;line&quot; id=&quot;l7284&quot;&gt;   7284&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2184&amp;quot; id=&amp;quot;h4-0-2184&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      in vec3 aPosition;
   7323 <a href="#l7304" class="line" id="l7304">   7304</a> &lt;a href=&quot;#l7285&quot; class=&quot;line&quot; id=&quot;l7285&quot;&gt;   7285&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2185&amp;quot; id=&amp;quot;h4-0-2185&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      in vec2 aTexCoord;
   7324 <a href="#l7305" class="line" id="l7305">   7305</a> &lt;a href=&quot;#l7286&quot; class=&quot;line&quot; id=&quot;l7286&quot;&gt;   7286&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2186&amp;quot; id=&amp;quot;h4-0-2186&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      out vec2 vTexCoord;
   7325 <a href="#l7306" class="line" id="l7306">   7306</a> &lt;a href=&quot;#l7287&quot; class=&quot;line&quot; id=&quot;l7287&quot;&gt;   7287&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2187&amp;quot; id=&amp;quot;h4-0-2187&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7326 <a href="#l7307" class="line" id="l7307">   7307</a> &lt;a href=&quot;#l7288&quot; class=&quot;line&quot; id=&quot;l7288&quot;&gt;   7288&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2188&amp;quot; id=&amp;quot;h4-0-2188&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      void main() {
   7327 <a href="#l7308" class="line" id="l7308">   7308</a> &lt;a href=&quot;#l7289&quot; class=&quot;line&quot; id=&quot;l7289&quot;&gt;   7289&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2189&amp;quot; id=&amp;quot;h4-0-2189&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // transferring texcoords for the frag shader
   7328 <a href="#l7309" class="line" id="l7309">   7309</a> &lt;a href=&quot;#l7290&quot; class=&quot;line&quot; id=&quot;l7290&quot;&gt;   7290&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2190&amp;quot; id=&amp;quot;h4-0-2190&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        vTexCoord = aTexCoord;
   7329 <a href="#l7310" class="line" id="l7310">   7310</a> &lt;a href=&quot;#l7291&quot; class=&quot;line&quot; id=&quot;l7291&quot;&gt;   7291&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2191&amp;quot; id=&amp;quot;h4-0-2191&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7330 <a href="#l7311" class="line" id="l7311">   7311</a> &lt;a href=&quot;#l7292&quot; class=&quot;line&quot; id=&quot;l7292&quot;&gt;   7292&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2192&amp;quot; id=&amp;quot;h4-0-2192&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // copy position with a fourth coordinate for projection (1.0 is normal)
   7331 <a href="#l7312" class="line" id="l7312">   7312</a> &lt;a href=&quot;#l7293&quot; class=&quot;line&quot; id=&quot;l7293&quot;&gt;   7293&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2193&amp;quot; id=&amp;quot;h4-0-2193&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        vec4 positionVec4 = vec4(aPosition, 1.0);
   7332 <a href="#l7313" class="line" id="l7313">   7313</a> &lt;a href=&quot;#l7294&quot; class=&quot;line&quot; id=&quot;l7294&quot;&gt;   7294&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2194&amp;quot; id=&amp;quot;h4-0-2194&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7333 <a href="#l7314" class="line" id="l7314">   7314</a> &lt;a href=&quot;#l7295&quot; class=&quot;line&quot; id=&quot;l7295&quot;&gt;   7295&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2195&amp;quot; id=&amp;quot;h4-0-2195&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // project to 3D space
   7334 <a href="#l7315" class="line" id="l7315">   7315</a> &lt;a href=&quot;#l7296&quot; class=&quot;line&quot; id=&quot;l7296&quot;&gt;   7296&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2196&amp;quot; id=&amp;quot;h4-0-2196&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;
   7335 <a href="#l7316" class="line" id="l7316">   7316</a> &lt;a href=&quot;#l7297&quot; class=&quot;line&quot; id=&quot;l7297&quot;&gt;   7297&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2197&amp;quot; id=&amp;quot;h4-0-2197&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   7336 <a href="#l7317" class="line" id="l7317">   7317</a> &lt;a href=&quot;#l7298&quot; class=&quot;line&quot; id=&quot;l7298&quot;&gt;   7298&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2198&amp;quot; id=&amp;quot;h4-0-2198&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    `:`
   7337 <a href="#l7318" class="line" id="l7318">   7318</a> &lt;a href=&quot;#l7299&quot; class=&quot;line&quot; id=&quot;l7299&quot;&gt;   7299&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2199&amp;quot; id=&amp;quot;h4-0-2199&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      uniform mat4 uModelViewMatrix;
   7338 <a href="#l7319" class="line" id="l7319">   7319</a> &lt;a href=&quot;#l7300&quot; class=&quot;line&quot; id=&quot;l7300&quot;&gt;   7300&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2200&amp;quot; id=&amp;quot;h4-0-2200&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      uniform mat4 uProjectionMatrix;
   7339 <a href="#l7320" class="line" id="l7320">   7320</a> &lt;a href=&quot;#l7301&quot; class=&quot;line&quot; id=&quot;l7301&quot;&gt;   7301&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2201&amp;quot; id=&amp;quot;h4-0-2201&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7340 <a href="#l7321" class="line" id="l7321">   7321</a> &lt;a href=&quot;#l7302&quot; class=&quot;line&quot; id=&quot;l7302&quot;&gt;   7302&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2202&amp;quot; id=&amp;quot;h4-0-2202&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      attribute vec3 aPosition;
   7341 <a href="#l7322" class="line" id="l7322">   7322</a> &lt;a href=&quot;#l7303&quot; class=&quot;line&quot; id=&quot;l7303&quot;&gt;   7303&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2203&amp;quot; id=&amp;quot;h4-0-2203&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // texcoords only come from p5 to vertex shader
   7342 <a href="#l7323" class="line" id="l7323">   7323</a> &lt;a href=&quot;#l7304&quot; class=&quot;line&quot; id=&quot;l7304&quot;&gt;   7304&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2204&amp;quot; id=&amp;quot;h4-0-2204&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      // so pass texcoords on to the fragment shader in a varying variable
   7343 <a href="#l7324" class="line" id="l7324">   7324</a> &lt;a href=&quot;#l7305&quot; class=&quot;line&quot; id=&quot;l7305&quot;&gt;   7305&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2205&amp;quot; id=&amp;quot;h4-0-2205&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      attribute vec2 aTexCoord;
   7344 <a href="#l7325" class="line" id="l7325">   7325</a> &lt;a href=&quot;#l7306&quot; class=&quot;line&quot; id=&quot;l7306&quot;&gt;   7306&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2206&amp;quot; id=&amp;quot;h4-0-2206&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      varying vec2 vTexCoord;
   7345 <a href="#l7326" class="line" id="l7326">   7326</a> &lt;a href=&quot;#l7307&quot; class=&quot;line&quot; id=&quot;l7307&quot;&gt;   7307&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2207&amp;quot; id=&amp;quot;h4-0-2207&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7346 <a href="#l7327" class="line" id="l7327">   7327</a> &lt;a href=&quot;#l7308&quot; class=&quot;line&quot; id=&quot;l7308&quot;&gt;   7308&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2208&amp;quot; id=&amp;quot;h4-0-2208&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      void main() {
   7347 <a href="#l7328" class="line" id="l7328">   7328</a> &lt;a href=&quot;#l7309&quot; class=&quot;line&quot; id=&quot;l7309&quot;&gt;   7309&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2209&amp;quot; id=&amp;quot;h4-0-2209&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // transferring texcoords for the frag shader
   7348 <a href="#l7329" class="line" id="l7329">   7329</a> &lt;a href=&quot;#l7310&quot; class=&quot;line&quot; id=&quot;l7310&quot;&gt;   7310&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2210&amp;quot; id=&amp;quot;h4-0-2210&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        vTexCoord = aTexCoord;
   7349 <a href="#l7330" class="line" id="l7330">   7330</a> &lt;a href=&quot;#l7311&quot; class=&quot;line&quot; id=&quot;l7311&quot;&gt;   7311&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2211&amp;quot; id=&amp;quot;h4-0-2211&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7350 <a href="#l7331" class="line" id="l7331">   7331</a> &lt;a href=&quot;#l7312&quot; class=&quot;line&quot; id=&quot;l7312&quot;&gt;   7312&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2212&amp;quot; id=&amp;quot;h4-0-2212&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // copy position with a fourth coordinate for projection (1.0 is normal)
   7351 <a href="#l7332" class="line" id="l7332">   7332</a> &lt;a href=&quot;#l7313&quot; class=&quot;line&quot; id=&quot;l7313&quot;&gt;   7313&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2213&amp;quot; id=&amp;quot;h4-0-2213&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        vec4 positionVec4 = vec4(aPosition, 1.0);
   7352 <a href="#l7333" class="line" id="l7333">   7333</a> &lt;a href=&quot;#l7314&quot; class=&quot;line&quot; id=&quot;l7314&quot;&gt;   7314&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2214&amp;quot; id=&amp;quot;h4-0-2214&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7353 <a href="#l7334" class="line" id="l7334">   7334</a> &lt;a href=&quot;#l7315&quot; class=&quot;line&quot; id=&quot;l7315&quot;&gt;   7315&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2215&amp;quot; id=&amp;quot;h4-0-2215&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        // project to 3D space
   7354 <a href="#l7335" class="line" id="l7335">   7335</a> &lt;a href=&quot;#l7316&quot; class=&quot;line&quot; id=&quot;l7316&quot;&gt;   7316&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2216&amp;quot; id=&amp;quot;h4-0-2216&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;
   7355 <a href="#l7336" class="line" id="l7336">   7336</a> &lt;a href=&quot;#l7317&quot; class=&quot;line&quot; id=&quot;l7317&quot;&gt;   7317&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2217&amp;quot; id=&amp;quot;h4-0-2217&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      }
   7356 <a href="#l7337" class="line" id="l7337">   7337</a> &lt;a href=&quot;#l7318&quot; class=&quot;line&quot; id=&quot;l7318&quot;&gt;   7318&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2218&amp;quot; id=&amp;quot;h4-0-2218&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    `,u=new Tt(this._renderer,o,r);return n||(this._renderer.GL?u.ensureCompiledOnContext(this._renderer):u.ensureCompiledOnContext(this)),u},t.shader=function(r){return this._assert3d(&amp;amp;quot;shader&amp;amp;quot;),this._renderer.shader(r),this},t.strokeShader=function(r){return this._assert3d(&amp;amp;quot;strokeShader&amp;amp;quot;),this._renderer.strokeShader(r),this},t.imageShader=function(r){return this._assert3d(&amp;amp;quot;imageShader&amp;amp;quot;),this._renderer.imageShader(r),this},t.baseMaterialShader=function(){return this._assert3d(&amp;amp;quot;baseMaterialShader&amp;amp;quot;),this._renderer.baseMaterialShader()},t.baseFilterShader=function(){return(this._renderer.filterRenderer||this._renderer).baseFilterShader()},t.baseNormalShader=function(){return this._assert3d(&amp;amp;quot;baseNormalShader&amp;amp;quot;),this._renderer.baseNormalShader()},t.baseColorShader=function(){return this._assert3d(&amp;amp;quot;baseColorShader&amp;amp;quot;),this._renderer.baseColorShader()},t.baseStrokeShader=function(){return this._assert3d(&amp;amp;quot;baseStrokeShader&amp;amp;quot;),this._renderer.baseStrokeShader()},t.resetShader=function(){return this._renderer.resetShader(),this},t.texture=function(r){return this._assert3d(&amp;amp;quot;texture&amp;amp;quot;),r.gifProperties&amp;amp;amp;&amp;amp;amp;r._animateGif(this),this._renderer.texture(r),this},t.textureMode=function(r){r!==us&amp;amp;amp;&amp;amp;amp;r!==ir?console.warn(`You tried to set ${r} textureMode only supports IMAGE &amp;amp;amp; NORMAL `):this._renderer.states.setValue(&amp;amp;quot;textureMode&amp;amp;quot;,r)},t.textureWrap=function(r,n=r){this._renderer.states.setValue(&amp;amp;quot;textureWrapX&amp;amp;quot;,r),this._renderer.states.setValue(&amp;amp;quot;textureWrapY&amp;amp;quot;,n);for(let s of this._renderer.textures.values())s.setWrapMode(r,n)},t.normalMaterial=function(...r){return this._assert3d(&amp;amp;quot;normalMaterial&amp;amp;quot;),this._renderer.normalMaterial(...r),this},t.ambientMaterial=function(r,n,s){this._assert3d(&amp;amp;quot;ambientMaterial&amp;amp;quot;);let a=t.color.apply(this,arguments);return this._renderer.states.setValue(&amp;amp;quot;_hasSetAmbient&amp;amp;quot;,!0),this._renderer.states.setValue(&amp;amp;quot;curAmbientColor&amp;amp;quot;,a._array),this._renderer.states.setValue(&amp;amp;quot;_useNormalMaterial&amp;amp;quot;,!1),this._renderer.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!0),this._renderer.states.fillColor||this._renderer.states.setValue(&amp;amp;quot;fillColor&amp;amp;quot;,new Qe([1,1,1])),this},t.emissiveMaterial=function(r,n,s,a){this._assert3d(&amp;amp;quot;emissiveMaterial&amp;amp;quot;);let o=t.color.apply(this,arguments);return this._renderer.states.setValue(&amp;amp;quot;curEmissiveColor&amp;amp;quot;,o._array),this._renderer.states.setValue(&amp;amp;quot;_useEmissiveMaterial&amp;amp;quot;,!0),this._renderer.states.setValue(&amp;amp;quot;_useNormalMaterial&amp;amp;quot;,!1),this._renderer.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!0),this},t.specularMaterial=function(r,n,s,a){this._assert3d(&amp;amp;quot;specularMaterial&amp;amp;quot;);let o=t.color.apply(this,arguments);return this._renderer.states.setValue(&amp;amp;quot;curSpecularColor&amp;amp;quot;,o._array),this._renderer.states.setValue(&amp;amp;quot;_useSpecularMaterial&amp;amp;quot;,!0),this._renderer.states.setValue(&amp;amp;quot;_useNormalMaterial&amp;amp;quot;,!1),this._renderer.states.setValue(&amp;amp;quot;enableLighting&amp;amp;quot;,!0),this},t.shininess=function(r){return this._assert3d(&amp;amp;quot;shininess&amp;amp;quot;),this._renderer.shininess(r),this},t.metalness=function(r){return this._assert3d(&amp;amp;quot;metalness&amp;amp;quot;),this._renderer.metalness(r),this},Le.prototype._applyColorBlend=function(r,n){let s=this.GL,a=this.states.drawMode===os,o=n||this.states.userFillShader||this.states.userStrokeShader||this.states.userPointShader||a||this.states.curBlendMode!==St||r[r.length-1]&amp;amp;lt;1||this._isErasing;return o!==this._isBlending&amp;amp;amp;&amp;amp;amp;(o||this.states.curBlendMode!==St&amp;amp;amp;&amp;amp;amp;this.states.curBlendMode!==yn?s.enable(s.BLEND):s.disable(s.BLEND),s.depthMask(!0),this._isBlending=o),this._applyBlendMode(),r},Le.prototype._applyBlendMode=function(){if(this._cachedBlendMode===this.states.curBlendMode)return;let r=this.GL;switch(this.states.curBlendMode){case St:r.blendEquation(r.FUNC_ADD),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_ALPHA);break;case yn:r.blendEquation(r.FUNC_ADD),r.blendFunc(r.ONE,r.ONE);break;case pi:r.blendEquation(r.FUNC_ADD),r.blendFunc(r.ZERO,r.ONE_MINUS_SRC_ALPHA);break;case ns:r.blendEquation(r.FUNC_ADD),r.blendFunc(r.DST_COLOR,r.ONE_MINUS_SRC_ALPHA);break;case ss:r.blendEquation(r.FUNC_ADD),r.blendFunc(r.ONE,r.ONE_MINUS_SRC_COLOR);break;case is:r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD),r.blendFuncSeparate(r.ONE_MINUS_DST_COLOR,r.ONE_MINUS_SRC_COLOR,r.ONE,r.ONE);break;case as:r.blendEquation(r.FUNC_ADD),r.blendFunc(r.ONE,r.ZERO);break;case rs:r.blendEquationSeparate(r.FUNC_REVERSE_SUBTRACT,r.FUNC_ADD),r.blendFuncSeparate(r.ONE,r.ONE,r.ONE,r.ONE_MINUS_SRC_ALPHA);break;case es:this.blendExt?(r.blendEquationSeparate(this.blendExt.MIN||this.blendExt.MIN_EXT,r.FUNC_ADD),r.blendFuncSeparate(r.ONE,r.ONE,r.ONE,r.ONE)):console.warn(&amp;amp;quot;blendMode(DARKEST) does not work in your browser in WEBGL mode.&amp;amp;quot;);break;case ts:this.blendExt?(r.blendEquationSeparate(this.blendExt.MAX||this.blendExt.MAX_EXT,r.FUNC_ADD),r.blendFuncSeparate(r.ONE,r.ONE,r.ONE,r.ONE)):console.warn(&amp;amp;quot;blendMode(LIGHTEST) does not work in your browser in WEBGL mode.&amp;amp;quot;);break;default:console.error(&amp;amp;quot;Oops! Somehow RendererGL set curBlendMode to an unsupported mode.&amp;amp;quot;);break}this._cachedBlendMode=this.states.curBlendMode},Le.prototype.shader=function(r){this.states.setValue(&amp;amp;quot;userFillShader&amp;amp;quot;,r),this.states.setValue(&amp;amp;quot;_useNormalMaterial&amp;amp;quot;,!1),r.ensureCompiledOnContext(this),r.setDefaultUniforms()},Le.prototype.strokeShader=function(r){this.states.setValue(&amp;amp;quot;userStrokeShader&amp;amp;quot;,r),r.ensureCompiledOnContext(this),r.setDefaultUniforms()},Le.prototype.imageShader=function(r){this.states.setValue(&amp;amp;quot;userImageShader&amp;amp;quot;,r),r.ensureCompiledOnContext(this),r.setDefaultUniforms()},Le.prototype.resetShader=function(){this.states.setValue(&amp;amp;quot;userFillShader&amp;amp;quot;,null),this.states.setValue(&amp;amp;quot;userStrokeShader&amp;amp;quot;,null),this.states.setValue(&amp;amp;quot;userImageShader&amp;amp;quot;,null)},Le.prototype.texture=function(r){this.states.setValue(&amp;amp;quot;drawMode&amp;amp;quot;,os),this.states.setValue(&amp;amp;quot;_useNormalMaterial&amp;amp;quot;,!1),this.states.setValue(&amp;amp;quot;_tex&amp;amp;quot;,r),this.states.setValue(&amp;amp;quot;fillColor&amp;amp;quot;,new Qe([1,1,1]))},Le.prototype.normalMaterial=function(...r){this.states.setValue(&amp;amp;quot;drawMode&amp;amp;quot;,Fa),this.states.setValue(&amp;amp;quot;_useSpecularMaterial&amp;amp;quot;,!1),this.states.setValue(&amp;amp;quot;_useEmissiveMaterial&amp;amp;quot;,!1),this.states.setValue(&amp;amp;quot;_useNormalMaterial&amp;amp;quot;,!0),this.states.setValue(&amp;amp;quot;curFillColor&amp;amp;quot;,[1,1,1,1]),this.states.setValue(&amp;amp;quot;fillColor&amp;amp;quot;,new Qe([1,1,1])),this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null)},Le.prototype.shininess=function(r){r&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;(r=1),this.states.setValue(&amp;amp;quot;_useShininess&amp;amp;quot;,r)},Le.prototype.metalness=function(r){let n=1-Math.exp(-r/100);this.states.setValue(&amp;amp;quot;_useMetalness&amp;amp;quot;,n)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;loading(p5,p5.prototype);var _i=class{constructor(t,r,n,s,a){let o=n||Yr;return this._pInst=s,this._renderer=new Qu[o](this._pInst,t,r,!1,a),this._initializeInstanceVariables(this),this._renderer._applyDefaults(),this}get deltaTime(){return this._pInst.deltaTime}get canvas(){return this._renderer?.canvas}get drawingContext(){return this._renderer.drawingContext}get width(){return this._renderer?.width}get height(){return this._renderer?.height}get pixels(){return this._renderer?.pixels}pixelDensity(t){let r;return typeof t==&amp;amp;quot;number&amp;amp;quot;?(t!==this._renderer._pixelDensity&amp;amp;amp;&amp;amp;amp;(this._renderer._pixelDensity=t),r=this,this.resizeCanvas(this.width,this.height,!0)):r=this._renderer._pixelDensity,r}resizeCanvas(t,r){this._renderer.resize(t,r)}reset(){this._renderer.resetMatrix(),this._renderer.isP3D&amp;amp;amp;&amp;amp;amp;this._renderer._update()}remove(){this._renderer.remove(),this._renderer=void 0}createFramebuffer(t){return new hr(this._renderer,t)}_assert3d(t){if(!this._renderer.isP3D)throw new Error(`${t}() is only supported in WEBGL mode. If you&amp;amp;#39;d like to use 3D graphics and WebGL, see  https://p5js.org/examples/form-3d-primitives.html for more information.`)}_initializeInstanceVariables(){this._accessibleOutputs={text:!1,grid:!1,textLabel:!1,gridLabel:!1},this._styles=[],this._downKeys={}}};function $m(i,t){i.Graphics=_i,ja(i,i.Graphics.prototype),$a(i,i.Graphics.prototype),Ha(i,i.Graphics.prototype),Wa(i,i.Graphics.prototype),Ga(i,i.Graphics.prototype),qa(i,i.Graphics.prototype),al(i,i.Graphics.prototype),sl(i,i.Graphics.prototype),Ya(i,i.Graphics.prototype),Ta(i,i.Graphics.prototype),ul(i,i.Graphics.prototype),ll(i,i.Graphics.prototype),Uc(i,i.Graphics.prototype),Ba(i,i.Graphics.prototype),ro(i,i.Graphics.prototype)}var _r=class{constructor(t,r,n){this._renderer=t;let s=this._renderer.GL;n=n||{},this.src=r,this.glTex=void 0,this.glTarget=s.TEXTURE_2D,this.glFormat=n.format||s.RGBA,this.mipmaps=!1,this.glMinFilter=n.minFilter||s.LINEAR,this.glMagFilter=n.magFilter||s.LINEAR,this.glWrapS=n.wrapS||s.CLAMP_TO_EDGE,this.glWrapT=n.wrapT||s.CLAMP_TO_EDGE,this.glDataType=n.dataType||s.UNSIGNED_BYTE;let a=Hm(t);this.glFormat===s.HALF_FLOAT&amp;amp;amp;&amp;amp;amp;!a.halfFloat&amp;amp;amp;&amp;amp;amp;(console.log(&amp;amp;quot;This device does not support dataType HALF_FLOAT. Falling back to FLOAT.&amp;amp;quot;),this.glDataType=s.FLOAT),this.glFormat===s.HALF_FLOAT&amp;amp;amp;&amp;amp;amp;(this.glMinFilter===s.LINEAR||this.glMagFilter===s.LINEAR)&amp;amp;amp;&amp;amp;amp;!a.halfFloatLinear&amp;amp;amp;&amp;amp;amp;(console.log(&amp;amp;quot;This device does not support linear filtering for dataType FLOAT. Falling back to NEAREST.&amp;amp;quot;),this.glMinFilter===s.LINEAR&amp;amp;amp;&amp;amp;amp;(this.glMinFilter=s.NEAREST),this.glMagFilter===s.LINEAR&amp;amp;amp;&amp;amp;amp;(this.glMagFilter=s.NEAREST)),this.glFormat===s.FLOAT&amp;amp;amp;&amp;amp;amp;!a.float&amp;amp;amp;&amp;amp;amp;(console.log(&amp;amp;quot;This device does not support dataType FLOAT. Falling back to UNSIGNED_BYTE.&amp;amp;quot;),this.glDataType=s.UNSIGNED_BYTE),this.glFormat===s.FLOAT&amp;amp;amp;&amp;amp;amp;(this.glMinFilter===s.LINEAR||this.glMagFilter===s.LINEAR)&amp;amp;amp;&amp;amp;amp;!a.floatLinear&amp;amp;amp;&amp;amp;amp;(console.log(&amp;amp;quot;This device does not support linear filtering for dataType FLOAT. Falling back to NEAREST.&amp;amp;quot;),this.glMinFilter===s.LINEAR&amp;amp;amp;&amp;amp;amp;(this.glMinFilter=s.NEAREST),this.glMagFilter===s.LINEAR&amp;amp;amp;&amp;amp;amp;(this.glMagFilter=s.NEAREST)),this.isSrcMediaElement=!1,this._videoPrevUpdateTime=0,this.isSrcHTMLElement=typeof st&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r instanceof st&amp;amp;amp;&amp;amp;amp;!(r instanceof _i)&amp;amp;amp;&amp;amp;amp;!(r instanceof ke),this.isSrcP5Image=r instanceof ar,this.isSrcP5Graphics=r instanceof _i,this.isSrcP5Renderer=r instanceof ke,this.isImageData=typeof ImageData&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r instanceof ImageData,this.isFramebufferTexture=r instanceof Ts;let o=this._getTextureDataFromSource();return this.width=o.width,this.height=o.height,this.init(o),this}remove(){this.glTex&amp;amp;amp;&amp;amp;amp;(this._renderer.GL.deleteTexture(this.glTex),this.glTex=void 0)}_getTextureDataFromSource(){let t;return this.isFramebufferTexture?t=this.src.rawTexture():this.isSrcP5Image?t=this.src.canvas:this.isSrcMediaElement||this.isSrcHTMLElement?(this.src._ensureCanvas&amp;amp;amp;&amp;amp;amp;this.src._ensureCanvas(),t=this.src.elt):this.isSrcP5Graphics||this.isSrcP5Renderer?t=this.src.canvas:this.isImageData&amp;amp;amp;&amp;amp;amp;(t=this.src),t}init(t){let r=this._renderer.GL;if(this.isFramebufferTexture||(this.glTex=r.createTexture()),this.glWrapS=this._renderer.states.textureWrapX,this.glWrapT=this._renderer.states.textureWrapY,this.setWrapMode(this.glWrapS,this.glWrapT),this.bindTexture(),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,this.glMagFilter),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,this.glMinFilter),!this.isFramebufferTexture)if(this.width===0||this.height===0||this.isSrcMediaElement&amp;amp;amp;&amp;amp;amp;!this.src.loadedmetadata){let n=new Uint8Array([1,1,1,1]);r.texImage2D(this.glTarget,0,r.RGBA,1,1,0,this.glFormat,this.glDataType,n)}else r.texImage2D(this.glTarget,0,this.glFormat,this.glFormat,this.glDataType,t)}update(){let t=this.src;if(t.width===0||t.height===0)return!1;if(this.isFramebufferTexture)return this.src.update(),!1;let r=this._getTextureDataFromSource(),n=!1,s=this._renderer.GL;return r.width!==this.width||r.height!==this.height?(n=!0,this.width=r.width||t.width,this.height=r.height||t.height,this.isSrcP5Image?t.setModified(!1):(this.isSrcMediaElement||this.isSrcHTMLElement)&amp;amp;amp;&amp;amp;amp;t.setModified&amp;amp;amp;&amp;amp;amp;t.setModified(!0)):this.isSrcP5Image?t.isModified()&amp;amp;amp;&amp;amp;amp;(n=!0,t.setModified(!1)):this.isSrcMediaElement?t.isModified()?(n=!0,t.setModified(!1)):t.loadedmetadata&amp;amp;amp;&amp;amp;amp;this._videoPrevUpdateTime!==t.time()&amp;amp;amp;&amp;amp;amp;(this._videoPrevUpdateTime=t.time(),n=!0):this.isImageData?t._dirty&amp;amp;amp;&amp;amp;amp;(t._dirty=!1,n=!0):n=!0,n&amp;amp;amp;&amp;amp;amp;(this.bindTexture(),s.texImage2D(this.glTarget,0,this.glFormat,this.glFormat,this.glDataType,r)),n}bindTexture(){return this._renderer.GL.bindTexture(this.glTarget,this.getTexture()),this}unbindTexture(){this._renderer.GL.bindTexture(this.glTarget,null)}getTexture(){return this.isFramebufferTexture?this.src.rawTexture():this.glTex}setInterpolation(t,r){let n=this._renderer.GL;this.glMinFilter=this.glFilter(t),this.glMagFilter=this.glFilter(r),this.bindTexture(),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MIN_FILTER,this.glMinFilter),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_MAG_FILTER,this.glMagFilter),this.unbindTexture()}glFilter(t){let r=this._renderer.GL;return t===dh?r.NEAREST:r.LINEAR}setWrapMode(t,r){let n=this._renderer.GL,s=c=&amp;amp;gt;(c&amp;amp;amp;c-1)===0,a=this._getTextureDataFromSource(),o,u;a.naturalWidth&amp;amp;amp;&amp;amp;amp;a.naturalHeight?(o=a.naturalWidth,u=a.naturalHeight):(o=this.width,u=this.height);let h=s(o),l=s(u);t===tu?this._renderer.webglVersion===pt||h&amp;amp;amp;&amp;amp;amp;l?this.glWrapS=n.REPEAT:(console.warn(&amp;amp;quot;You tried to set the wrap mode to REPEAT but the texture size is not a power of two. Setting to CLAMP instead&amp;amp;quot;),this.glWrapS=n.CLAMP_TO_EDGE):t===iu?this._renderer.webglVersion===pt||h&amp;amp;amp;&amp;amp;amp;l?this.glWrapS=n.MIRRORED_REPEAT:(console.warn(&amp;amp;quot;You tried to set the wrap mode to MIRROR but the texture size is not a power of two. Setting to CLAMP instead&amp;amp;quot;),this.glWrapS=n.CLAMP_TO_EDGE):this.glWrapS=n.CLAMP_TO_EDGE,r===tu?this._renderer.webglVersion===pt||h&amp;amp;amp;&amp;amp;amp;l?this.glWrapT=n.REPEAT:(console.warn(&amp;amp;quot;You tried to set the wrap mode to REPEAT but the texture size is not a power of two. Setting to CLAMP instead&amp;amp;quot;),this.glWrapT=n.CLAMP_TO_EDGE):r===iu?this._renderer.webglVersion===pt||h&amp;amp;amp;&amp;amp;amp;l?this.glWrapT=n.MIRRORED_REPEAT:(console.warn(&amp;amp;quot;You tried to set the wrap mode to MIRROR but the texture size is not a power of two. Setting to CLAMP instead&amp;amp;quot;),this.glWrapT=n.CLAMP_TO_EDGE):this.glWrapT=n.CLAMP_TO_EDGE,this.bindTexture(),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_S,this.glWrapS),n.texParameteri(n.TEXTURE_2D,n.TEXTURE_WRAP_T,this.glWrapT),this.unbindTexture()}},rl=class extends _r{constructor(t,r,n){super(t,r,n);let s=this._renderer.GL;this.glMinFilter===s.LINEAR&amp;amp;amp;&amp;amp;amp;(this.glMinFilter=s.LINEAR_MIPMAP_LINEAR)}glFilter(t){return this._renderer.GL.LINEAR_MIPMAP_LINEAR}_getTextureDataFromSource(){return this.src}init(t){let r=this._renderer.GL;this.glTex=r.createTexture(),this.bindTexture();for(let n=0;n&amp;amp;lt;t.length;n++)r.texImage2D(this.glTarget,n,this.glFormat,this.glFormat,this.glDataType,t[n]);this.glMinFilter=r.LINEAR_MIPMAP_LINEAR,r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,this.glMagFilter),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,this.glMinFilter),this.unbindTexture()}update(){}};function no(i,t){i.Texture=_r,i.MipmapTexture=rl}function Hm({GL:i,webglVersion:t}){let r=i,n=t===pt?r.getExtension(&amp;amp;quot;EXT_color_buffer_float&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;r.getExtension(&amp;amp;quot;EXT_float_blend&amp;amp;quot;):r.getExtension(&amp;amp;quot;OES_texture_float&amp;amp;quot;),s=n&amp;amp;amp;&amp;amp;amp;r.getExtension(&amp;amp;quot;OES_texture_float_linear&amp;amp;quot;),a=t===pt?r.getExtension(&amp;amp;quot;EXT_color_buffer_float&amp;amp;quot;):r.getExtension(&amp;amp;quot;OES_texture_half_float&amp;amp;quot;),o=a&amp;amp;amp;&amp;amp;amp;r.getExtension(&amp;amp;quot;OES_texture_half_float_linear&amp;amp;quot;);return{float:n,floatLinear:s,halfFloat:a,halfFloatLinear:o}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;no(p5,p5.prototype);var Fs=(i,t,r)=&amp;amp;gt;Math.max(Math.min(i,r),t),il=class extends Ln{constructor(t){super(t.renderer),this.fbo=t,this.yScale=-1}_computeCameraDefaultSettings(){super._computeCameraDefaultSettings(),this.defaultAspectRatio=this.fbo.width/this.fbo.height,this.defaultCameraFOV=2*Math.atan(this.fbo.height/2/this.defaultEyeZ)}},Ts=class{constructor(t,r){this.framebuffer=t,this.property=r}get width(){return this.framebuffer.width*this.framebuffer.density}get height(){return this.framebuffer.height*this.framebuffer.density}update(){this.framebuffer._update(this.property)}rawTexture(){return this.framebuffer[this.property]}},hr=class{constructor(t,r={}){this.renderer=t,this.renderer.framebuffers.add(this),this._isClipApplied=!1,this.dirty={colorTexture:!1,depthTexture:!1},this.pixels=[],this.format=r.format||mi,this.channels=r.channels||(this.renderer._pInst._glAttributes.alpha?Ra:et),this.useDepth=r.depth===void 0?!0:r.depth,this.depthFormat=r.depthFormat||zt,this.textureFiltering=r.textureFiltering||eu,r.antialias===void 0?this.antialiasSamples=this.renderer._pInst._glAttributes.antialias?2:0:typeof r.antialias==&amp;amp;quot;number&amp;amp;quot;?this.antialiasSamples=r.antialias:this.antialiasSamples=r.antialias?2:0,this.antialias=this.antialiasSamples&amp;amp;gt;0,this.antialias&amp;amp;amp;&amp;amp;amp;this.renderer.webglVersion!==pt&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;Antialiasing is unsupported in a WebGL 1 context&amp;amp;quot;),this.antialias=!1),this.density=r.density||this.renderer._pixelDensity;let n=this.renderer.GL;if(this.gl=n,r.width&amp;amp;amp;&amp;amp;amp;r.height){let a=this.renderer._adjustDimensions(r.width,r.height);this.width=a.adjustedWidth,this.height=a.adjustedHeight,this._autoSized=!1}else r.width===void 0!=(r.height===void 0)&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;Please supply both width and height for a framebuffer to give it a size. Only one was given, so the framebuffer will match the size of its canvas.&amp;amp;quot;),this.width=this.renderer.width,this.height=this.renderer.height,this._autoSized=!0;if(this._checkIfFormatsAvailable(),r.stencil&amp;amp;amp;&amp;amp;amp;!this.useDepth&amp;amp;amp;&amp;amp;amp;console.warn(&amp;amp;quot;A stencil buffer can only be used if also using depth. Since the framebuffer has no depth buffer, the stencil buffer will be ignored.&amp;amp;quot;),this.useStencil=this.useDepth&amp;amp;amp;&amp;amp;amp;(r.stencil===void 0?!0:r.stencil),this.framebuffer=n.createFramebuffer(),!this.framebuffer)throw new Error(&amp;amp;quot;Unable to create a framebuffer&amp;amp;quot;);if(this.antialias&amp;amp;amp;&amp;amp;amp;(this.aaFramebuffer=n.createFramebuffer(),!this.aaFramebuffer))throw new Error(&amp;amp;quot;Unable to create a framebuffer for antialiasing&amp;amp;quot;);this._recreateTextures();let s=this.renderer.states.curCamera;this.defaultCamera=this.createCamera(),this.filterCamera=this.createCamera(),this.renderer.states.setValue(&amp;amp;quot;curCamera&amp;amp;quot;,s),this.draw(()=&amp;amp;gt;this.renderer.clear())}resize(t,r){this._autoSized=!1;let n=this.renderer._adjustDimensions(t,r);t=n.adjustedWidth,r=n.adjustedHeight,this.width=t,this.height=r,this._handleResize()}pixelDensity(t){if(t)this._autoSized=!1,this.density=t,this._handleResize();else return this.density}autoSized(t){if(t===void 0)return this._autoSized;this._autoSized=t,this._handleResize()}_checkIfFormatsAvailable(){let t=this.gl;this.useDepth&amp;amp;amp;&amp;amp;amp;this.renderer.webglVersion===kr&amp;amp;amp;&amp;amp;amp;!t.getExtension(&amp;amp;quot;WEBGL_depth_texture&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;Unable to create depth textures in this environment. Falling back to a framebuffer without depth.&amp;amp;quot;),this.useDepth=!1),this.useDepth&amp;amp;amp;&amp;amp;amp;this.renderer.webglVersion===kr&amp;amp;amp;&amp;amp;amp;this.depthFormat===zt&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;FLOAT depth format is unavailable in WebGL 1. Defaulting to UNSIGNED_INT.&amp;amp;quot;),this.depthFormat=ls),[mi,zt,bn].includes(this.format)||(console.warn(&amp;amp;quot;Unknown Framebuffer format. Please use UNSIGNED_BYTE, FLOAT, or HALF_FLOAT. Defaulting to UNSIGNED_BYTE.&amp;amp;quot;),this.format=mi),this.useDepth&amp;amp;amp;&amp;amp;amp;![ls,zt].includes(this.depthFormat)&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;Unknown Framebuffer depth format. Please use UNSIGNED_INT or FLOAT. Defaulting to FLOAT.&amp;amp;quot;),this.depthFormat=zt);let r=Hm(this.renderer);!r.float&amp;amp;amp;&amp;amp;amp;this.format===zt&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;This environment does not support FLOAT textures. Falling back to UNSIGNED_BYTE.&amp;amp;quot;),this.format=mi),this.useDepth&amp;amp;amp;&amp;amp;amp;!r.float&amp;amp;amp;&amp;amp;amp;this.depthFormat===zt&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;This environment does not support FLOAT depth textures. Falling back to UNSIGNED_INT.&amp;amp;quot;),this.depthFormat=ls),!r.halfFloat&amp;amp;amp;&amp;amp;amp;this.format===bn&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;This environment does not support HALF_FLOAT textures. Falling back to UNSIGNED_BYTE.&amp;amp;quot;),this.format=mi),this.channels===et&amp;amp;amp;&amp;amp;amp;[zt,bn].includes(this.format)&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;FLOAT and HALF_FLOAT formats do not work cross-platform with only RGB channels. Falling back to RGBA.&amp;amp;quot;),this.channels=Ra)}_recreateTextures(){let t=this.gl;this._updateSize();let r=t.getParameter(t.TEXTURE_BINDING_2D),n=t.getParameter(t.FRAMEBUFFER_BINDING),s=t.createTexture();if(!s)throw new Error(&amp;amp;quot;Unable to create color texture&amp;amp;quot;);t.bindTexture(t.TEXTURE_2D,s);let a=this._glColorFormat();if(t.texImage2D(t.TEXTURE_2D,0,a.internalFormat,this.width*this.density,this.height*this.density,0,a.format,a.type,null),this.colorTexture=s,t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,s,0),this.useDepth){let u=t.createTexture();if(!u)throw new Error(&amp;amp;quot;Unable to create depth texture&amp;amp;quot;);let h=this._glDepthFormat();t.bindTexture(t.TEXTURE_2D,u),t.texImage2D(t.TEXTURE_2D,0,h.internalFormat,this.width*this.density,this.height*this.density,0,h.format,h.type,null),t.framebufferTexture2D(t.FRAMEBUFFER,this.useStencil?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,t.TEXTURE_2D,u,0),this.depthTexture=u}if(this.antialias){if(this.colorRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,this.colorRenderbuffer),t.renderbufferStorageMultisample(t.RENDERBUFFER,Math.max(0,Math.min(this.antialiasSamples,t.getParameter(t.MAX_SAMPLES))),a.internalFormat,this.width*this.density,this.height*this.density),this.useDepth){let u=this._glDepthFormat();this.depthRenderbuffer=t.createRenderbuffer(),t.bindRenderbuffer(t.RENDERBUFFER,this.depthRenderbuffer),t.renderbufferStorageMultisample(t.RENDERBUFFER,Math.max(0,Math.min(this.antialiasSamples,t.getParameter(t.MAX_SAMPLES))),u.internalFormat,this.width*this.density,this.height*this.density)}t.bindFramebuffer(t.FRAMEBUFFER,this.aaFramebuffer),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.RENDERBUFFER,this.colorRenderbuffer),this.useDepth&amp;amp;amp;&amp;amp;amp;t.framebufferRenderbuffer(t.FRAMEBUFFER,this.useStencil?t.DEPTH_STENCIL_ATTACHMENT:t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthRenderbuffer)}if(this.useDepth){this.depth=new Ts(this,&amp;amp;quot;depthTexture&amp;amp;quot;);let u=t.NEAREST;this.depthP5Texture=new _r(this.renderer,this.depth,{minFilter:u,magFilter:u}),this.renderer.textures.set(this.depth,this.depthP5Texture)}this.color=new Ts(this,&amp;amp;quot;colorTexture&amp;amp;quot;);let o=this.textureFiltering===eu?t.LINEAR:t.NEAREST;this.colorP5Texture=new _r(this.renderer,this.color,{minFilter:o,magFilter:o}),this.renderer.textures.set(this.color,this.colorP5Texture),t.bindTexture(t.TEXTURE_2D,r),t.bindFramebuffer(t.FRAMEBUFFER,n)}_glColorFormat(){let t,r,n,s=this.gl;return this.format===zt?t=s.FLOAT:this.format===bn?t=this.renderer.webglVersion===pt?s.HALF_FLOAT:s.getExtension(&amp;amp;quot;OES_texture_half_float&amp;amp;quot;).HALF_FLOAT_OES:t=s.UNSIGNED_BYTE,this.channels===Ra?r=s.RGBA:r=s.RGB,this.renderer.webglVersion===pt?n={[s.FLOAT]:{[s.RGBA]:s.RGBA32F},[s.HALF_FLOAT]:{[s.RGBA]:s.RGBA16F},[s.UNSIGNED_BYTE]:{[s.RGBA]:s.RGBA8,[s.RGB]:s.RGB8}}[t][r]:this.format===bn?n=s.RGBA:n=r,{internalFormat:n,format:r,type:t}}_glDepthFormat(){let t,r,n,s=this.gl;return this.useStencil?this.depthFormat===zt?t=s.FLOAT_32_UNSIGNED_INT_24_8_REV:this.renderer.webglVersion===pt?t=s.UNSIGNED_INT_24_8:t=s.getExtension(&amp;amp;quot;WEBGL_depth_texture&amp;amp;quot;).UNSIGNED_INT_24_8_WEBGL:this.depthFormat===zt?t=s.FLOAT:t=s.UNSIGNED_INT,this.useStencil?r=s.DEPTH_STENCIL:r=s.DEPTH_COMPONENT,this.useStencil?this.depthFormat===zt?n=s.DEPTH32F_STENCIL8:this.renderer.webglVersion===pt?n=s.DEPTH24_STENCIL8:n=s.DEPTH_STENCIL:this.renderer.webglVersion===pt?this.depthFormat===zt?n=s.DEPTH_COMPONENT32F:n=s.DEPTH_COMPONENT24:n=s.DEPTH_COMPONENT,{internalFormat:n,format:r,type:t}}_updateSize(){this._autoSized&amp;amp;amp;&amp;amp;amp;(this.width=this.renderer.width,this.height=this.renderer.height,this.density=this.renderer._pixelDensity)}_canvasSizeChanged(){this._autoSized&amp;amp;amp;&amp;amp;amp;this._handleResize()}_handleResize(){let t=this.color,r=this.depth,n=this.colorRenderbuffer,s=this.depthRenderbuffer;this._deleteTexture(t),r&amp;amp;amp;&amp;amp;amp;this._deleteTexture(r);let a=this.gl;n&amp;amp;amp;&amp;amp;amp;a.deleteRenderbuffer(n),s&amp;amp;amp;&amp;amp;amp;a.deleteRenderbuffer(s),this._recreateTextures(),this.defaultCamera._resize()}createCamera(){let t=new il(this);return t._computeCameraDefaultSettings(),t._setDefaultCamera(),t}_deleteTexture(t){this.gl.deleteTexture(t.rawTexture()),this.renderer.textures.delete(t)}remove(){let t=this.gl;this._deleteTexture(this.color),this.depth&amp;amp;amp;&amp;amp;amp;this._deleteTexture(this.depth),t.deleteFramebuffer(this.framebuffer),this.aaFramebuffer&amp;amp;amp;&amp;amp;amp;t.deleteFramebuffer(this.aaFramebuffer),this.depthRenderbuffer&amp;amp;amp;&amp;amp;amp;t.deleteRenderbuffer(this.depthRenderbuffer),this.colorRenderbuffer&amp;amp;amp;&amp;amp;amp;t.deleteRenderbuffer(this.colorRenderbuffer),this.renderer.framebuffers.delete(this)}begin(){this.prevFramebuffer=this.renderer.activeFramebuffer(),this.prevFramebuffer&amp;amp;amp;&amp;amp;amp;this.prevFramebuffer._beforeEnd(),this.renderer.activeFramebuffers.push(this),this._beforeBegin(),this.renderer.push(),this.renderer.states.setValue(&amp;amp;quot;curCamera&amp;amp;quot;,this.defaultCamera),this.renderer.states.setValue(&amp;amp;quot;uPMatrix&amp;amp;quot;,this.renderer.states.uPMatrix.clone()),this.renderer.states.uPMatrix.set(this.defaultCamera.projMatrix),this.renderer.states.setValue(&amp;amp;quot;uViewMatrix&amp;amp;quot;,this.renderer.states.uViewMatrix.clone()),this.renderer.states.uViewMatrix.set(this.defaultCamera.cameraMatrix),this.renderer.resetMatrix(),this.renderer.states.uViewMatrix.set(this.renderer.states.curCamera.cameraMatrix),this.renderer.states.uModelMatrix.reset(),this.renderer._applyStencilTestIfClipping()}_framebufferToBind(){return this.antialias?this.aaFramebuffer:this.framebuffer}_update(t){if(this.dirty[t]&amp;amp;amp;&amp;amp;amp;this.antialias){let r=this.gl;r.bindFramebuffer(r.READ_FRAMEBUFFER,this.aaFramebuffer),r.bindFramebuffer(r.DRAW_FRAMEBUFFER,this.framebuffer);let n={colorTexture:[r.COLOR_BUFFER_BIT,this.colorP5Texture.glMagFilter]};this.useDepth&amp;amp;amp;&amp;amp;amp;(n.depthTexture=[r.DEPTH_BUFFER_BIT,this.depthP5Texture.glMagFilter]);let[s,a]=n[t];r.blitFramebuffer(0,0,this.width*this.density,this.height*this.density,0,0,this.width*this.density,this.height*this.density,s,a),this.dirty[t]=!1;let o=this.renderer.activeFramebuffer();o?r.bindFramebuffer(r.FRAMEBUFFER,o._framebufferToBind()):r.bindFramebuffer(r.FRAMEBUFFER,null)}}_beforeBegin(){let t=this.gl;t.bindFramebuffer(t.FRAMEBUFFER,this._framebufferToBind()),this.renderer.viewport(this.width*this.density,this.height*this.density)}_beforeEnd(){this.antialias&amp;amp;amp;&amp;amp;amp;(this.dirty={colorTexture:!0,depthTexture:!0})}end(){let t=this.gl;if(this.renderer.pop(),this.renderer.activeFramebuffers.pop()!==this)throw new Error(&amp;amp;quot;It looks like you&amp;amp;#39;ve called end() while another Framebuffer is active.&amp;amp;quot;);this._beforeEnd(),this.prevFramebuffer?this.prevFramebuffer._beforeBegin():(t.bindFramebuffer(t.FRAMEBUFFER,null),this.renderer.viewport(this.renderer._origViewport.width,this.renderer._origViewport.height)),this.renderer._applyStencilTestIfClipping()}draw(t){this.begin(),t(),this.end()}loadPixels(){this._update(&amp;amp;quot;colorTexture&amp;amp;quot;);let t=this.gl,r=this.renderer.activeFramebuffer();t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer);let n=this._glColorFormat();this.pixels=Cc(this.pixels,t,this.framebuffer,0,0,this.width*this.density,this.height*this.density,n.format,n.type),r?t.bindFramebuffer(t.FRAMEBUFFER,r._framebufferToBind()):t.bindFramebuffer(t.FRAMEBUFFER,null)}get(t,r,n,s){this._update(&amp;amp;quot;colorTexture&amp;amp;quot;);let a=this._glColorFormat();if(t===void 0&amp;amp;amp;&amp;amp;amp;r===void 0)t=0,r=0,n=this.width,s=this.height;else if(n===void 0&amp;amp;amp;&amp;amp;amp;s===void 0)return(t&amp;amp;lt;0||r&amp;amp;lt;0||t&amp;amp;gt;=this.width||r&amp;amp;gt;=this.height)&amp;amp;amp;&amp;amp;amp;(console.warn(&amp;amp;quot;The x and y values passed to p5.Framebuffer.get are outside of its range and will be clamped.&amp;amp;quot;),t=Fs(t,0,this.width-1),r=Fs(r,0,this.height-1)),jm(this.gl,this.framebuffer,t*this.density,r*this.density,a.format,a.type);t=Fs(t,0,this.width-1),r=Fs(r,0,this.height-1),n=Fs(n,1,this.width-t),s=Fs(s,1,this.height-r);let o=Cc(void 0,this.gl,this.framebuffer,t*this.density,r*this.density,n*this.density,s*this.density,a.format,a.type),u=new Uint8ClampedArray(n*s*this.density*this.density*4);u.fill(255);let h=a.type===this.gl.RGB?3:4;for(let c=0;c&amp;amp;lt;s*this.density;c++)for(let p=0;p&amp;amp;lt;n*this.density;p++)for(let f=0;f&amp;amp;lt;4;f++){let d=(c*n*this.density+p)*4+f;if(f&amp;amp;lt;h){let m=h===4?d:(c*n*this.density+p)*h+f;u[d]=o[m]}}let l=new ar(n*this.density,s*this.density);return l.imageData=l.canvas.getContext(&amp;amp;quot;2d&amp;amp;quot;).createImageData(l.width,l.height),l.imageData.data.set(u),l.pixels=l.imageData.data,l.updatePixels(),this.density!==1&amp;amp;amp;&amp;amp;amp;l.resize(n,s),l}updatePixels(){let t=this.gl;this.colorP5Texture.bindTexture();let r=this._glColorFormat(),n=r.format===t.RGBA?4:3,s=this.width*this.height*this.density*this.density*n,a=r.type===t.UNSIGNED_BYTE?Uint8Array:Float32Array;if(!(this.pixels instanceof a)||this.pixels.length!==s)throw new Error(&amp;amp;quot;The pixels array has not been set correctly. Please call loadPixels() before updatePixels().&amp;amp;quot;);t.texImage2D(t.TEXTURE_2D,0,r.internalFormat,this.width*this.density,this.height*this.density,0,r.format,r.type,this.pixels),this.colorP5Texture.unbindTexture(),this.dirty.colorTexture=!1;let o=this.renderer.activeFramebuffer();this.antialias?(this.begin(),this.renderer.push(),this.renderer.states.setValue(&amp;amp;quot;imageMode&amp;amp;quot;,Ct),this.renderer.setCamera(this.filterCamera),this.renderer.resetMatrix(),this.renderer.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this.renderer.clear(),this.renderer._drawingFilter=!0,this.renderer.image(this,0,0,this.width,this.height,-this.renderer.width/2,-this.renderer.height/2,this.renderer.width,this.renderer.height),this.renderer._drawingFilter=!1,this.renderer.pop(),this.useDepth&amp;amp;amp;&amp;amp;amp;(t.clearDepth(1),t.clear(t.DEPTH_BUFFER_BIT)),this.end()):(t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer),this.useDepth&amp;amp;amp;&amp;amp;amp;(t.clearDepth(1),t.clear(t.DEPTH_BUFFER_BIT)),o?t.bindFramebuffer(t.FRAMEBUFFER,o._framebufferToBind()):t.bindFramebuffer(t.FRAMEBUFFER,null))}};function Gc(i,t){i.FramebufferCamera=il,i.FramebufferTexture=Ts,i.Framebuffer=hr}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Gc(p5,p5.prototype);var Qu;function zc(i,t){Qu=i.renderers={},t.createCanvas=function(r,n,s,...a){let o=Yr;return Reflect.ownKeys(Qu).includes(s)?o=s:a.unshift(s),this._renderer&amp;amp;amp;&amp;amp;amp;this._renderer.remove(),this._renderer=new Qu[o](this,r,n,!0,...a),this._defaultGraphicsCreated=!0,this._elements.push(this._renderer),this._renderer._applyDefaults(),Object.hasOwn(this,&amp;amp;quot;pixels&amp;amp;quot;)||Object.defineProperty(this,&amp;amp;quot;pixels&amp;amp;quot;,{get(){return this._renderer?.pixels}}),this._renderer},t.resizeCanvas=function(r,n,s){this._renderer&amp;amp;amp;&amp;amp;amp;(this._renderer.resize(r,n),s||this.redraw()),this._addAccsOutput()&amp;amp;amp;&amp;amp;amp;this._updateAccsOutput()},t.noCanvas=function(){this.canvas&amp;amp;amp;&amp;amp;amp;this.canvas.parentNode.removeChild(this.canvas)},t.createGraphics=function(r,n,...s){return s[0]instanceof HTMLCanvasElement&amp;amp;amp;&amp;amp;amp;(s[1]=s[0],s[0]=Yr),new i.Graphics(r,n,s[0],this,s[1])},t.createFramebuffer=function(r){return new hr(this._renderer,r)},t.clearDepth=function(r){this._assert3d(&amp;amp;quot;clearDepth&amp;amp;quot;),this._renderer.clearDepth(r)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;zc(p5,p5.prototype);var A3=Se(or());var T3=Se(Bt()),N3=Se(ur());var $3=Se(lr());var hl=class{constructor(t){this.pInst=t,this.canvas=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),this.canvas.width=t.width,this.canvas.height=t.height;let r=pt;if(this.gl=this.canvas.getContext(&amp;amp;quot;webgl2&amp;amp;quot;),this.gl||(r=kr,this.gl=this.canvas.getContext(&amp;amp;quot;webgl&amp;amp;quot;)),!this.gl){console.error(&amp;amp;quot;WebGL not supported, cannot apply filter.&amp;amp;quot;);return}this._renderer={GL:this.gl,registerEnabled:new Set,_curShader:null,_emptyTexture:null,webglVersion:r,states:{textureWrapX:this.gl.CLAMP_TO_EDGE,textureWrapY:this.gl.CLAMP_TO_EDGE},_arraysEqual:(n,s)=&amp;amp;gt;JSON.stringify(n)===JSON.stringify(s),_getEmptyTexture:()=&amp;amp;gt;{if(!this._emptyTexture){let n=new ar(1,1);n.set(0,0,255),this._emptyTexture=new _r(this._renderer,n)}return this._emptyTexture}},this._baseFilterShader=void 0,this.filterShaderSources={[di]:Ic,[Sa]:Lc,[vn]:Rc,[Da]:Tc,[Ca]:Fc,[Aa]:Nc,[xn]:kc,[Ea]:Mc},this.filterShaders={},this.operation=null,this.filterParameter=1,this.customShader=null,this._shader=null,this.vertexBuffer=this.gl.createBuffer(),this.texcoordBuffer=this.gl.createBuffer(),this.vertices=new Float32Array([-1,-1,1,-1,-1,1,1,1]),this.texcoords=new Float32Array([0,1,1,1,0,0,1,0]),this._bindBufferData(this.vertexBuffer,this.gl.ARRAY_BUFFER,this.vertices),this._bindBufferData(this.texcoordBuffer,this.gl.ARRAY_BUFFER,this.texcoords)}_webGL2CompatibilityPrefix(t,r){let n=&amp;amp;quot;&amp;amp;quot;;return this._renderer.webglVersion===pt&amp;amp;amp;&amp;amp;amp;(n+=`#version 300 es
   7357 <a href="#l7338" class="line" id="l7338">   7338</a> &lt;a href=&quot;#l7319&quot; class=&quot;line&quot; id=&quot;l7319&quot;&gt;   7319&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2219&amp;quot; id=&amp;quot;h4-0-2219&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+#define WEBGL2
   7358 <a href="#l7339" class="line" id="l7339">   7339</a> &lt;a href=&quot;#l7320&quot; class=&quot;line&quot; id=&quot;l7320&quot;&gt;   7320&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2220&amp;quot; id=&amp;quot;h4-0-2220&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),t===&amp;amp;quot;vert&amp;amp;quot;?n+=`#define VERTEX_SHADER
   7359 <a href="#l7340" class="line" id="l7340">   7340</a> &lt;a href=&quot;#l7321&quot; class=&quot;line&quot; id=&quot;l7321&quot;&gt;   7321&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2221&amp;quot; id=&amp;quot;h4-0-2221&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`:t===&amp;amp;quot;frag&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n+=`#define FRAGMENT_SHADER
   7360 <a href="#l7341" class="line" id="l7341">   7341</a> &lt;a href=&quot;#l7322&quot; class=&quot;line&quot; id=&quot;l7322&quot;&gt;   7322&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2222&amp;quot; id=&amp;quot;h4-0-2222&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),r&amp;amp;amp;&amp;amp;amp;(n+=`precision ${r} float;
   7361 <a href="#l7342" class="line" id="l7342">   7342</a> &lt;a href=&quot;#l7323&quot; class=&quot;line&quot; id=&quot;l7323&quot;&gt;   7323&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2223&amp;quot; id=&amp;quot;h4-0-2223&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),n}baseFilterShader(){return this._baseFilterShader||(this._baseFilterShader=new Tt(this._renderer,this._webGL2CompatibilityPrefix(&amp;amp;quot;vert&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+ol+Ac,this._webGL2CompatibilityPrefix(&amp;amp;quot;frag&amp;amp;quot;,&amp;amp;quot;highp&amp;amp;quot;)+ol+Dc,{vertex:{},fragment:{&amp;amp;quot;vec4 getColor&amp;amp;quot;:`(FilterInputs inputs, in sampler2D canvasContent) {
   7362 <a href="#l7343" class="line" id="l7343">   7343</a> &lt;a href=&quot;#l7324&quot; class=&quot;line&quot; id=&quot;l7324&quot;&gt;   7324&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2224&amp;quot; id=&amp;quot;h4-0-2224&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+                return getTexture(canvasContent, inputs.texCoord);
   7363 <a href="#l7344" class="line" id="l7344">   7344</a> &lt;a href=&quot;#l7325&quot; class=&quot;line&quot; id=&quot;l7325&quot;&gt;   7325&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2225&amp;quot; id=&amp;quot;h4-0-2225&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+              }`}})),this._baseFilterShader}setOperation(t,r,n=null){this.operation=t,this.filterParameter=r,t in Ds&amp;amp;amp;&amp;amp;amp;r===void 0&amp;amp;amp;&amp;amp;amp;(this.filterParameter=Ds[t]),this.customShader=n,this._initializeShader()}_initializeShader(){if(this.customShader){this._shader=this.customShader;return}if(!this.operation){console.error(&amp;amp;quot;No operation set for FilterRenderer2D, cannot initialize shader.&amp;amp;quot;);return}if(this.filterShaders[this.operation]){this._shader=this.filterShaders[this.operation];return}let t=this.filterShaderSources[this.operation];if(!t){console.error(&amp;amp;quot;No shader available for this operation:&amp;amp;quot;,this.operation);return}let r=new Tt(this._renderer,Bc,t);this.filterShaders[this.operation]=r,this._shader=r}_bindBufferData(t,r,n){let s=this.gl;s.bindBuffer(r,t),s.bufferData(r,n,s.STATIC_DRAW)}get canvasTexture(){return this._canvasTexture||(this._canvasTexture=new _r(this._renderer,this.pInst.wrappedElt)),this._canvasTexture}_renderPass(){let t=this.gl;this._shader.bindShader();let r=this.pInst.pixelDensity?this.pInst.pixelDensity():1,n=[1/(this.pInst.width*r),1/(this.pInst.height*r)],s=this.canvasTexture;this._shader.setUniform(&amp;amp;quot;tex0&amp;amp;quot;,s),this._shader.setUniform(&amp;amp;quot;texelSize&amp;amp;quot;,n),this._shader.setUniform(&amp;amp;quot;canvasSize&amp;amp;quot;,[this.pInst.width,this.pInst.height]),this._shader.setUniform(&amp;amp;quot;radius&amp;amp;quot;,Math.max(1,this.filterParameter)),this._shader.setUniform(&amp;amp;quot;filterParameter&amp;amp;quot;,this.filterParameter),this._shader.setDefaultUniforms(),this.pInst.states.setValue(&amp;amp;quot;rectMode&amp;amp;quot;,Ct),this.pInst.states.setValue(&amp;amp;quot;imageMode&amp;amp;quot;,Ct),this.pInst.blendMode(St),this.pInst.resetMatrix();let a=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];this._shader.setUniform(&amp;amp;quot;uModelViewMatrix&amp;amp;quot;,a),this._shader.setUniform(&amp;amp;quot;uProjectionMatrix&amp;amp;quot;,a),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),this._shader.enableAttrib(this._shader.attributes.aPosition,2),t.bindBuffer(t.ARRAY_BUFFER,this.texcoordBuffer),this._shader.enableAttrib(this._shader.attributes.aTexCoord,2),this._shader.bindTextures(),this._shader.disableRemainingAttributes(),t.drawArrays(t.TRIANGLE_STRIP,0,4),this._shader.unbindShader()}applyFilter(){if(!this._shader){console.error(&amp;amp;quot;Cannot apply filter: shader not initialized.&amp;amp;quot;);return}this.pInst.push(),this.pInst.resetMatrix(),this.operation===di&amp;amp;amp;&amp;amp;amp;!this.customShader?(this._shader.setUniform(&amp;amp;quot;direction&amp;amp;quot;,[1,0]),this._renderPass(),this.pInst.clear(),this.pInst.drawingContext.drawImage(this.canvas,0,0,this.pInst.width,this.pInst.height),this._shader.setUniform(&amp;amp;quot;direction&amp;amp;quot;,[0,1]),this._renderPass(),this.pInst.clear(),this.pInst.drawingContext.drawImage(this.canvas,0,0,this.pInst.width,this.pInst.height)):(this._renderPass(),this.pInst.clear(),this.pInst.blendMode(St),this.pInst.drawingContext.drawImage(this.canvas,0,0,this.pInst.width,this.pInst.height)),this.pInst.pop()}};var ri=&amp;amp;quot;rgba(0,0,0,0)&amp;amp;quot;,so=class extends ke{constructor(t,r,n,s,a,o={}){super(t,r,n,s),this.canvas=this.elt=a||document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),s?(this._pInst._curElement=this,this._pInst.canvas=this.canvas):this.canvas.style.display=&amp;amp;quot;none&amp;amp;quot;,this.elt.id=&amp;amp;quot;defaultCanvas0&amp;amp;quot;,this.elt.classList.add(&amp;amp;quot;p5Canvas&amp;amp;quot;);for(let u of Object.getOwnPropertyNames(st.prototype))u!==&amp;amp;quot;constructor&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u[0]!==&amp;amp;quot;_&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Object.defineProperty(this,u,{get(){return this.wrappedElt[u]}});if(this.elt.width=r*this._pixelDensity,this.elt.height=n*this._pixelDensity,this.elt.style.width=`${r}px`,this.elt.style.height=`${n}px`,this._pInst._userNode)this._pInst._userNode.appendChild(this.elt);else{if(document.getElementsByTagName(&amp;amp;quot;main&amp;amp;quot;).length===0){let u=document.createElement(&amp;amp;quot;main&amp;amp;quot;);document.body.appendChild(u)}document.getElementsByTagName(&amp;amp;quot;main&amp;amp;quot;)[0].appendChild(this.elt)}this.drawingContext=this.canvas.getContext(&amp;amp;quot;2d&amp;amp;quot;,o),o.colorSpace===&amp;amp;quot;display-p3&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.states.colorMode=It),this.scale(this._pixelDensity,this._pixelDensity),this.filterRenderer||(this.filterRenderer=new hl(this)),this.wrappedElt=new st(this.elt,this._pInst),this.clipPath=null}remove(){this.wrappedElt.remove(),this.wrappedElt=null,this.canvas=null,this.elt=null}getFilterGraphicsLayer(){if(!this.filterGraphicsLayer){let t=this._pInst;this.filterGraphicsLayer=new _i(this.width,this.height,kr,t)}return(this.filterGraphicsLayer.width!==this.width||this.filterGraphicsLayer.height!==this.height)&amp;amp;amp;&amp;amp;amp;this.filterGraphicsLayer.resizeCanvas(this.width,this.height),this.filterGraphicsLayer.pixelDensity()!==this._pInst.pixelDensity()&amp;amp;amp;&amp;amp;amp;this.filterGraphicsLayer.pixelDensity(this._pInst.pixelDensity()),this.filterGraphicsLayer}_applyDefaults(){this.states.setValue(&amp;amp;quot;_cachedFillStyle&amp;amp;quot;,void 0),this.states.setValue(&amp;amp;quot;_cachedStrokeStyle&amp;amp;quot;,void 0),this._cachedBlendMode=St,this._setFill(vh),this._setStroke(yh),this.drawingContext.lineCap=Mr,this.drawingContext.font=&amp;amp;quot;normal 12px sans-serif&amp;amp;quot;}resize(t,r){super.resize(t,r);let n={};for(let s in this.drawingContext){let a=this.drawingContext[s];typeof a!=&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof a!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n[s]=a)}this.canvas.width=t*this._pixelDensity,this.canvas.height=r*this._pixelDensity,this.canvas.style.width=`${t}px`,this.canvas.style.height=`${r}px`,this.drawingContext.scale(this._pixelDensity,this._pixelDensity);for(let s in n)try{this.drawingContext[s]=n[s]}catch{}}background(...t){if(this.push(),this.resetMatrix(),t[0]instanceof ar)if(t[1]&amp;amp;gt;=0){let r=t[0];this.drawingContext.globalAlpha=t[1]/255,this._pInst.image(r,0,0,this.width,this.height)}else this._pInst.image(t[0],0,0,this.width,this.height);else{let r=this._pInst.color(...t);this._pInst._addAccsOutput()&amp;amp;amp;&amp;amp;amp;this._pInst._accsBackground(r._getRGBA([255,255,255,255]));let n=r.toString();this._setFill(n),this._isErasing&amp;amp;amp;&amp;amp;amp;this.blendMode(this._cachedBlendMode),this.drawingContext.fillRect(0,0,this.width,this.height),this._isErasing&amp;amp;amp;&amp;amp;amp;this._pInst.erase()}this.pop()}clear(){this.drawingContext.save(),this.resetMatrix(),this.drawingContext.clearRect(0,0,this.width,this.height),this.drawingContext.restore()}fill(...t){super.fill(...t);let r=this.states.fillColor;this._setFill(r.toString()),this._pInst._addAccsOutput()&amp;amp;amp;&amp;amp;amp;this._pInst._accsCanvasColors(&amp;amp;quot;fill&amp;amp;quot;,r._getRGBA([255,255,255,255]))}stroke(...t){super.stroke(...t);let r=this.states.strokeColor;this._setStroke(r.toString()),this._pInst._addAccsOutput()&amp;amp;amp;&amp;amp;amp;this._pInst._accsCanvasColors(&amp;amp;quot;stroke&amp;amp;quot;,r._getRGBA([255,255,255,255]))}erase(t,r){if(!this._isErasing){this.states.setValue(&amp;amp;quot;_cachedFillStyle&amp;amp;quot;,this.drawingContext.fillStyle);let n=this._pInst.color(255,t).toString();this.drawingContext.fillStyle=n,this.states.setValue(&amp;amp;quot;_cachedStrokeStyle&amp;amp;quot;,this.drawingContext.strokeStyle);let s=this._pInst.color(255,r).toString();this.drawingContext.strokeStyle=s;let a=this._cachedBlendMode;this.blendMode(pi),this._cachedBlendMode=a,this._isErasing=!0}}noErase(){this._isErasing&amp;amp;amp;&amp;amp;amp;(this.drawingContext.fillStyle=this.states._cachedFillStyle,this.drawingContext.strokeStyle=this.states._cachedStrokeStyle,this.blendMode(this._cachedBlendMode),this._isErasing=!1)}drawShape(t){let r=new Va({strokeWeight:this.states.strokeWeight});t.accept(r),this._clipping?(this.clipPath.addPath(r.path),this.clipPath.closePath()):(this.states.fillColor&amp;amp;amp;&amp;amp;amp;this.drawingContext.fill(r.path),this.states.strokeColor&amp;amp;amp;&amp;amp;amp;this.drawingContext.stroke(r.path))}beginClip(t={}){super.beginClip(t),this.states.setValue(&amp;amp;quot;_cachedFillStyle&amp;amp;quot;,this.drawingContext.fillStyle);let r=this._pInst.color(255,0).toString();this.drawingContext.fillStyle=r,this.states.setValue(&amp;amp;quot;_cachedStrokeStyle&amp;amp;quot;,this.drawingContext.strokeStyle);let n=this._pInst.color(255,0).toString();this.drawingContext.strokeStyle=n;let s=this._cachedBlendMode;this.blendMode(St),this._cachedBlendMode=s,this.clipPath=new Path2D,this._clipInvert&amp;amp;amp;&amp;amp;amp;(this.clipPath.moveTo(-2*this.width,-2*this.height),this.clipPath.lineTo(-2*this.width,2*this.height),this.clipPath.lineTo(2*this.width,2*this.height),this.clipPath.lineTo(2*this.width,-2*this.height),this.clipPath.closePath())}endClip(){this.drawingContext.clip(this.clipPath),this.clipPath=null,super.endClip(),this.drawingContext.fillStyle=this.states._cachedFillStyle,this.drawingContext.strokeStyle=this.states._cachedStrokeStyle,this.blendMode(this._cachedBlendMode)}image(t,r,n,s,a,o,u,h,l){let c;t.gifProperties&amp;amp;amp;&amp;amp;amp;t._animateGif(this._pInst);try{t instanceof xi&amp;amp;amp;&amp;amp;amp;t._ensureCanvas(),this.states.tint&amp;amp;amp;&amp;amp;amp;t.canvas&amp;amp;amp;&amp;amp;amp;(c=this._getTintedImageCanvas(t)),c||(c=t.canvas||t.elt);let p=1;t.width&amp;amp;amp;&amp;amp;amp;t.width&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(p=c.width/t.width),this._isErasing&amp;amp;amp;&amp;amp;amp;this.blendMode(this._cachedBlendMode),this.drawingContext.drawImage(c,p*r,p*n,p*s,p*a,o,u,h,l),this._isErasing&amp;amp;amp;&amp;amp;amp;this._pInst.erase()}catch(p){if(p.name!==&amp;amp;quot;NS_ERROR_NOT_AVAILABLE&amp;amp;quot;)throw p}}_getTintedImageCanvas(t){if(!t.canvas)return t;t.tintCanvas||(t.tintCanvas=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;)),t.tintCanvas.width!==t.canvas.width&amp;amp;amp;&amp;amp;amp;(t.tintCanvas.width=t.canvas.width),t.tintCanvas.height!==t.canvas.height&amp;amp;amp;&amp;amp;amp;(t.tintCanvas.height=t.canvas.height);let r=t.tintCanvas.getContext(&amp;amp;quot;2d&amp;amp;quot;);return r.save(),r.clearRect(0,0,t.canvas.width,t.canvas.height),this.states.tint[0]&amp;amp;lt;255||this.states.tint[1]&amp;amp;lt;255||this.states.tint[2]&amp;amp;lt;255?(r.drawImage(t.canvas,0,0),r.globalCompositeOperation=&amp;amp;quot;luminosity&amp;amp;quot;,r.drawImage(t.canvas,0,0),r.globalCompositeOperation=&amp;amp;quot;color&amp;amp;quot;,r.drawImage(t.canvas,0,0),r.globalCompositeOperation=&amp;amp;quot;multiply&amp;amp;quot;,r.fillStyle=`rgb(${this.states.tint.slice(0,3).join(&amp;amp;quot;, &amp;amp;quot;)})`,r.fillRect(0,0,t.canvas.width,t.canvas.height),r.globalCompositeOperation=&amp;amp;quot;destination-in&amp;amp;quot;,r.globalAlpha=this.states.tint[3]/255,r.drawImage(t.canvas,0,0)):(r.globalAlpha=this.states.tint[3]/255,r.drawImage(t.canvas,0,0)),r.restore(),t.tintCanvas}blendMode(t){if(t===rs)console.warn(&amp;amp;quot;blendMode(SUBTRACT) only works in WEBGL mode.&amp;amp;quot;);else if(t===St||t===pi||t===es||t===ts||t===fh||t===ns||t===is||t===ss||t===as||t===va||t===xa||t===ba||t===_a||t===wa||t===yn)this._cachedBlendMode=t,this.drawingContext.globalCompositeOperation=t;else throw new Error(`Mode ${t} not recognized.`)}blend(...t){let r=this.drawingContext.globalCompositeOperation,n=t[t.length-1],s=Array.prototype.slice.call(t,0,t.length-1);this.drawingContext.globalCompositeOperation=n,$e.prototype.copy.apply(this,s),this.drawingContext.globalCompositeOperation=r}_getPixel(t,r){let n,s;return n=this.drawingContext.getImageData(t,r,1,1).data,s=0,[n[s+0],n[s+1],n[s+2],n[s+3]]}loadPixels(){let t=this._pixelDensity,r=this.width*t,n=this.height*t,s=this.drawingContext.getImageData(0,0,r,n);this.imageData=s,this.pixels=s.data}set(t,r,n){if(t=Math.floor(t),r=Math.floor(r),n instanceof ar)this.drawingContext.save(),this.drawingContext.setTransform(1,0,0,1,0,0),this.drawingContext.scale(this._pixelDensity,this._pixelDensity),this.drawingContext.clearRect(t,r,n.width,n.height),this.drawingContext.drawImage(n.canvas,t,r),this.drawingContext.restore();else{let s=0,a=0,o=0,u=0,h=4*(r*this._pixelDensity*(this.width*this._pixelDensity)+t*this._pixelDensity);if(this.imageData||this.loadPixels(),typeof n==&amp;amp;quot;number&amp;amp;quot;)h&amp;amp;lt;this.pixels.length&amp;amp;amp;&amp;amp;amp;(s=n,a=n,o=n,u=255);else if(Array.isArray(n)){if(n.length&amp;amp;lt;4)throw new Error(&amp;amp;quot;pixel array must be of the form [R, G, B, A]&amp;amp;quot;);h&amp;amp;lt;this.pixels.length&amp;amp;amp;&amp;amp;amp;(s=n[0],a=n[1],o=n[2],u=n[3])}else n instanceof $e.Color&amp;amp;amp;&amp;amp;amp;h&amp;amp;lt;this.pixels.length&amp;amp;amp;&amp;amp;amp;([s,a,o,u]=n._getRGBA([255,255,255,255]));for(let l=0;l&amp;amp;lt;this._pixelDensity;l++)for(let c=0;c&amp;amp;lt;this._pixelDensity;c++)h=4*((r*this._pixelDensity+c)*this.width*this._pixelDensity+(t*this._pixelDensity+l)),this.pixels[h]=s,this.pixels[h+1]=a,this.pixels[h+2]=o,this.pixels[h+3]=u}}updatePixels(t,r,n,s){let a=this._pixelDensity;t===void 0&amp;amp;amp;&amp;amp;amp;r===void 0&amp;amp;amp;&amp;amp;amp;n===void 0&amp;amp;amp;&amp;amp;amp;s===void 0&amp;amp;amp;&amp;amp;amp;(t=0,r=0,n=this.width,s=this.height),t*=a,r*=a,n*=a,s*=a,this.gifProperties&amp;amp;amp;&amp;amp;amp;(this.gifProperties.frames[this.gifProperties.displayIndex].image=this.imageData),this.drawingContext.putImageData(this.imageData,0,0,t,r,n,s)}arc(t,r,n,s,a,o,u){let h=this.clipPa||this.drawingContext,l=t+n/2,c=r+s/2,p=n/2,f=s/2,d=!(u===Qn||u===Xr||(o-a)%wt===0);return this.states.fillColor&amp;amp;amp;&amp;amp;amp;(this._clipping||h.beginPath(),h.ellipse(l,c,p,f,0,a,o),d&amp;amp;amp;&amp;amp;amp;h.lineTo(l,c),h.closePath(),this._clipping||h.fill()),this.states.strokeColor&amp;amp;amp;&amp;amp;amp;(this._clipping||h.beginPath(),h.ellipse(l,c,p,f,0,a,o),u===gn&amp;amp;amp;&amp;amp;amp;d&amp;amp;amp;&amp;amp;amp;h.lineTo(l,c),(u===gn||u===Qn)&amp;amp;amp;&amp;amp;amp;h.closePath(),this._clipping||h.stroke()),this}ellipse(t){let r=this.clipPath||this.drawingContext,n=!!this.states.fillColor,s=this.states.strokeColor,a=parseFloat(t[0]),o=parseFloat(t[1]),u=parseFloat(t[2]),h=parseFloat(t[3]);if(n&amp;amp;amp;&amp;amp;amp;!s){if(this._getFill()===ri)return this}else if(!n&amp;amp;amp;&amp;amp;amp;s&amp;amp;amp;&amp;amp;amp;this._getStroke()===ri)return this;let l=a+u/2,c=o+h/2,p=u/2,f=h/2;this._clipping||r.beginPath(),r.ellipse(l,c,p,f,0,0,2*Math.PI),r.closePath(),!this._clipping&amp;amp;amp;&amp;amp;amp;n&amp;amp;amp;&amp;amp;amp;r.fill(),!this._clipping&amp;amp;amp;&amp;amp;amp;s&amp;amp;amp;&amp;amp;amp;r.stroke()}line(t,r,n,s){let a=this.clipPath||this.drawingContext;if(this.states.strokeColor){if(this._getStroke()===ri)return this}else return this;return this._clipping||a.beginPath(),a.moveTo(t,r),a.lineTo(n,s),a.stroke(),this}point(t,r){let n=this.clipPath||this.drawingContext;if(this.states.strokeColor){if(this._getStroke()===ri)return this}else return this;let s=this._getStroke(),a=this._getFill();this._clipping||this._setFill(s),this._clipping||n.beginPath(),n.arc(t,r,n.lineWidth/2,0,wt,!1),this._clipping||(n.fill(),this._setFill(a))}quad(t,r,n,s,a,o,u,h){let l=this.clipPath||this.drawingContext,c=!!this.states.fillColor,p=this.states.strokeColor;if(c&amp;amp;amp;&amp;amp;amp;!p){if(this._getFill()===ri)return this}else if(!c&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;this._getStroke()===ri)return this;return this._clipping||l.beginPath(),l.moveTo(t,r),l.lineTo(n,s),l.lineTo(a,o),l.lineTo(u,h),l.closePath(),!this._clipping&amp;amp;amp;&amp;amp;amp;c&amp;amp;amp;&amp;amp;amp;l.fill(),!this._clipping&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;l.stroke(),this}rect(t){let r=t[0],n=t[1],s=t[2],a=t[3],o=t[4],u=t[5],h=t[6],l=t[7],c=this.clipPath||this.drawingContext,p=!!this.states.fillColor,f=this.states.strokeColor;if(p&amp;amp;amp;&amp;amp;amp;!f){if(this._getFill()===ri)return this}else if(!p&amp;amp;amp;&amp;amp;amp;f&amp;amp;amp;&amp;amp;amp;this._getStroke()===ri)return this;if(this._clipping||c.beginPath(),typeof o&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)c.rect(r,n,s,a);else{typeof u&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u=o),typeof h&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(h=u),typeof l&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(l=h);let d=Math.abs(s),m=Math.abs(a),g=d/2,v=m/2;d&amp;amp;lt;2*o&amp;amp;amp;&amp;amp;amp;(o=g),m&amp;amp;lt;2*o&amp;amp;amp;&amp;amp;amp;(o=v),d&amp;amp;lt;2*u&amp;amp;amp;&amp;amp;amp;(u=g),m&amp;amp;lt;2*u&amp;amp;amp;&amp;amp;amp;(u=v),d&amp;amp;lt;2*h&amp;amp;amp;&amp;amp;amp;(h=g),m&amp;amp;lt;2*h&amp;amp;amp;&amp;amp;amp;(h=v),d&amp;amp;lt;2*l&amp;amp;amp;&amp;amp;amp;(l=g),m&amp;amp;lt;2*l&amp;amp;amp;&amp;amp;amp;(l=v),c.roundRect(r,n,s,a,[o,u,h,l])}return!this._clipping&amp;amp;amp;&amp;amp;amp;this.states.fillColor&amp;amp;amp;&amp;amp;amp;c.fill(),!this._clipping&amp;amp;amp;&amp;amp;amp;this.states.strokeColor&amp;amp;amp;&amp;amp;amp;c.stroke(),this}triangle(t){let r=this.clipPath||this.drawingContext,n=!!this.states.fillColor,s=this.states.strokeColor,a=t[0],o=t[1],u=t[2],h=t[3],l=t[4],c=t[5];if(n&amp;amp;amp;&amp;amp;amp;!s){if(this._getFill()===ri)return this}else if(!n&amp;amp;amp;&amp;amp;amp;s&amp;amp;amp;&amp;amp;amp;this._getStroke()===ri)return this;this._clipping||r.beginPath(),r.moveTo(a,o),r.lineTo(u,h),r.lineTo(l,c),r.closePath(),!this._clipping&amp;amp;amp;&amp;amp;amp;n&amp;amp;amp;&amp;amp;amp;r.fill(),!this._clipping&amp;amp;amp;&amp;amp;amp;s&amp;amp;amp;&amp;amp;amp;r.stroke()}strokeCap(t){return(t===Mr||t===ma||t===da)&amp;amp;amp;&amp;amp;amp;(this.drawingContext.lineCap=t),this}strokeJoin(t){return(t===Mr||t===ga||t===ya)&amp;amp;amp;&amp;amp;amp;(this.drawingContext.lineJoin=t),this}strokeWeight(t){return super.strokeWeight(t),typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||t===0?this.drawingContext.lineWidth=1e-4:this.drawingContext.lineWidth=t,this}_getFill(){return this.states._cachedFillStyle||this.states.setValue(&amp;amp;quot;_cachedFillStyle&amp;amp;quot;,this.drawingContext.fillStyle),this.states._cachedFillStyle}_setFill(t){t!==this.states._cachedFillStyle&amp;amp;amp;&amp;amp;amp;(this.drawingContext.fillStyle=t,this.states.setValue(&amp;amp;quot;_cachedFillStyle&amp;amp;quot;,t))}_getStroke(){return this.states._cachedStrokeStyle||this.states.setValue(&amp;amp;quot;_cachedStrokeStyle&amp;amp;quot;,this.drawingContext.strokeStyle),this.states._cachedStrokeStyle}_setStroke(t){t!==this.states._cachedStrokeStyle&amp;amp;amp;&amp;amp;amp;(this.drawingContext.strokeStyle=t,this.states.setValue(&amp;amp;quot;_cachedStrokeStyle&amp;amp;quot;,t))}applyMatrix(t,r,n,s,a,o){this.drawingContext.transform(t,r,n,s,a,o)}getWorldToScreenMatrix(){let t=new DOMMatrix().scale(1/this._pixelDensity).multiply(this.drawingContext.getTransform());return new at(t.toFloat32Array())}resetMatrix(){return this.drawingContext.setTransform(1,0,0,1,0,0),this.drawingContext.scale(this._pixelDensity,this._pixelDensity),this}rotate(t){this.drawingContext.rotate(t)}scale(t,r){return this.drawingContext.scale(t,r),this}translate(t,r){return t instanceof $e.Vector&amp;amp;amp;&amp;amp;amp;(r=t.y,t=t.x),this.drawingContext.translate(t,r),this}push(){return this.drawingContext.save(),super.push()}pop(t){this.drawingContext.restore(),super.pop(t)}};function Pb(i,t){i.Renderer2D=so,i.renderers[Yr]=so,i.renderers[&amp;amp;quot;p2d-hdr&amp;amp;quot;]=new Proxy(so,{construct(r,[n,s,a,o,u]){return new r(n,s,a,o,u,{colorSpace:&amp;amp;quot;display-p3&amp;amp;quot;})}})}var $e=class i{static VERSION=rh;static instance=null;static lifecycleHooks={presetup:[],postsetup:[],predraw:[],postdraw:[],remove:[]};static _checkForUserDefinedFunctions=()=&amp;amp;gt;{};static _friendlyFileLoadError=()=&amp;amp;gt;{};constructor(t,r){this.hitCriticalError=!1,this._setupDone=!1,this._userNode=r,this._curElement=null,this._elements=[],this._glAttributes=null,this._requestAnimId=0,this._isGlobal=!1,this._loop=!0,this._startListener=null,this._initializeInstanceVariables(),this._events={pointerdown:null,pointerup:null,pointermove:null,dragend:null,dragover:null,click:null,dblclick:null,mouseover:null,mouseout:null,keydown:null,keyup:null,keypress:null,wheel:null,resize:null,blur:null},this._millisStart=-1,this._recording=!1,this._lcg_random_state=null,this._gaussian_previous=!1,window.DeviceOrientationEvent&amp;amp;amp;&amp;amp;amp;(this._events.deviceorientation=null),window.DeviceMotionEvent&amp;amp;amp;&amp;amp;amp;!window._isNodeWebkit&amp;amp;amp;&amp;amp;amp;(this._events.devicemotion=null),this._updateWindowSize();let n=o=&amp;amp;gt;{Object.defineProperty(window,o,{configurable:!0,enumerable:!0,get:()=&amp;amp;gt;typeof this[o]==&amp;amp;quot;function&amp;amp;quot;?this[o].bind(this):this[o],set:u=&amp;amp;gt;{Object.defineProperty(window,o,{configurable:!0,enumerable:!0,value:u,writable:!0}),i.disableFriendlyErrors||console.log(`You just changed the value of &amp;amp;quot;${o}&amp;amp;quot;, which was a p5 global value. This could cause problems later if you&amp;amp;#39;re not careful.`)}})};if(t)t(this),i._checkForUserDefinedFunctions(this);else{if(this._isGlobal=!0,window.hitCriticalError)return;i.instance=this;for(let u of Object.getOwnPropertyNames(i.prototype))u[0]!==&amp;amp;quot;_&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n(u);let o=[&amp;amp;quot;constructor&amp;amp;quot;,&amp;amp;quot;length&amp;amp;quot;];for(let u in this)if(this.hasOwnProperty(u)){if(u[0]===&amp;amp;quot;_&amp;amp;quot;||o.includes(u))continue;n(u)}}for(let o in this._events){let u=this[`_on${o}`];if(u){let h=u.bind(this);window.addEventListener(o,h,{passive:!1}),this._events[o]=h}}let s=()=&amp;amp;gt;{this.focused=!0},a=()=&amp;amp;gt;{this.focused=!1};window.addEventListener(&amp;amp;quot;focus&amp;amp;quot;,s),window.addEventListener(&amp;amp;quot;blur&amp;amp;quot;,a),i.lifecycleHooks.remove.push(function(){window.removeEventListener(&amp;amp;quot;focus&amp;amp;quot;,s),window.removeEventListener(&amp;amp;quot;blur&amp;amp;quot;,a)}),document.readyState===&amp;amp;quot;complete&amp;amp;quot;?this.#e():(this._startListener=this.#e.bind(this),window.addEventListener(&amp;amp;quot;load&amp;amp;quot;,this._startListener,!1))}get pixels(){return this._renderer.pixels}get drawingContext(){return this._renderer.drawingContext}static registerAddon(t){let r={};t(i,i.prototype,r);let n=Object.keys(i.lifecycleHooks);for(let s of n)typeof r[s]==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.lifecycleHooks[s].push(r[s])}async#e(){this.hitCriticalError||(this._userNode&amp;amp;amp;&amp;amp;amp;typeof this._userNode==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this._userNode=document.getElementById(this._userNode)),await this.#t(),!this.hitCriticalError&amp;amp;amp;&amp;amp;amp;(this._recording||this._draw()))}async#t(){if(await this._runLifecycleHook(&amp;amp;quot;presetup&amp;amp;quot;),this.hitCriticalError)return;this.createCanvas(100,100,Yr),this._millisStart=window.performance.now();let t=this._isGlobal?window:this;if(typeof t.setup==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;await t.setup(),this.hitCriticalError)return;let r=document.getElementsByTagName(&amp;amp;quot;canvas&amp;amp;quot;);if(Object.keys(this._events).some(n=&amp;amp;gt;n.startsWith(&amp;amp;quot;pointer&amp;amp;quot;)))for(let n of r)n.style.touchAction=&amp;amp;quot;none&amp;amp;quot;;for(let n of r)n.dataset.hidden===&amp;amp;quot;true&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n.style.visibility=&amp;amp;quot;&amp;amp;quot;,delete n.dataset.hidden);this._lastTargetFrameTime=window.performance.now(),this._lastRealFrameTime=window.performance.now(),this._setupDone=!0,(this._accessibleOutputs.grid||this._accessibleOutputs.text)&amp;amp;amp;&amp;amp;amp;this._updateAccsOutput(),await this._runLifecycleHook(&amp;amp;quot;postsetup&amp;amp;quot;)}async _draw(t){if(this.hitCriticalError)return;let r=t||window.performance.now(),n=r-this._lastTargetFrameTime,s=1e3/this._targetFrameRate;(!this._loop||n&amp;amp;gt;=s-5)&amp;amp;amp;&amp;amp;amp;(this.deltaTime=r-this._lastRealFrameTime,this._frameRate=1e3/this.deltaTime,await this.redraw(),this._lastTargetFrameTime=Math.max(this._lastTargetFrameTime+s,r),this._lastRealFrameTime=r,typeof this._updateMouseCoords&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this._updateMouseCoords(),this.movedX=0,this.movedY=0)),this._loop&amp;amp;amp;&amp;amp;amp;(this._requestAnimId=window.requestAnimationFrame(this._draw.bind(this)))}async remove(){if(this._startListener&amp;amp;amp;&amp;amp;amp;window.removeEventListener(&amp;amp;quot;load&amp;amp;quot;,this._startListener,!1),this._curElement){this._loop=!1,this._requestAnimId&amp;amp;amp;&amp;amp;amp;window.cancelAnimationFrame(this._requestAnimId);for(let t in this._events)window.removeEventListener(t,this._events[t]);for(let t of this._elements){t.elt&amp;amp;amp;&amp;amp;amp;t.elt.parentNode&amp;amp;amp;&amp;amp;amp;t.elt.parentNode.removeChild(t.elt);for(let r in t._events)t.elt.removeEventListener(r,t._events[r])}await this._runLifecycleHook(&amp;amp;quot;remove&amp;amp;quot;)}if(this._isGlobal){for(let t in i.prototype)try{delete window[t]}catch{window[t]=void 0}for(let t in this)if(this.hasOwnProperty(t))try{delete window[t]}catch{window[t]=void 0}i.instance=null}}async _runLifecycleHook(t){for(let r of i.lifecycleHooks[t])await r.call(this)}_initializeInstanceVariables(){this._accessibleOutputs={text:!1,grid:!1,textLabel:!1,gridLabel:!1},this._styles=[],this._downKeys={},this._downKeyCodes={}}};for(let i in gr)$e.prototype[i]=gr[i];$e.disableFriendlyErrors=!1;$e.registerAddon(Ta);$e.registerAddon(Ch);$e.registerAddon(Ah);$e.registerAddon(zc);$e.registerAddon(tm);$e.registerAddon(Pb);$e.registerAddon($m);function Wm(i){i.registerAddon(ja),i.registerAddon($a),i.registerAddon(Ha),i.registerAddon(Wa),i.registerAddon(Ga)}function jc(i,t){let r=&amp;amp;quot;_Description&amp;amp;quot;,n=&amp;amp;quot;_fallbackDesc&amp;amp;quot;,s=&amp;amp;quot;_fallbackTable&amp;amp;quot;,a=&amp;amp;quot;_fte_&amp;amp;quot;,o=&amp;amp;quot;_Label&amp;amp;quot;,u=&amp;amp;quot;_labelDesc&amp;amp;quot;,h=&amp;amp;quot;_labelTable&amp;amp;quot;,l=&amp;amp;quot;_lte_&amp;amp;quot;;t.describe=function(f,d){if(typeof f!=&amp;amp;quot;string&amp;amp;quot;)return;let m=this.canvas.id;f=c(f),this.dummyDOM||(this.dummyDOM=document.getElementById(m).parentNode),this.descriptions||(this.descriptions={}),this.descriptions.fallback?this.descriptions.fallback.innerHTML!==f&amp;amp;amp;&amp;amp;amp;(this.descriptions.fallback.innerHTML=f):this._describeHTML(&amp;amp;quot;fallback&amp;amp;quot;,f),d===this.LABEL&amp;amp;amp;&amp;amp;amp;(this.descriptions.label?this.descriptions.label.innerHTML!==f&amp;amp;amp;&amp;amp;amp;(this.descriptions.label.innerHTML=f):this._describeHTML(&amp;amp;quot;label&amp;amp;quot;,f))},t.describeElement=function(f,d,m){if(typeof d!=&amp;amp;quot;string&amp;amp;quot;||typeof f!=&amp;amp;quot;string&amp;amp;quot;)return;let g=this.canvas.id;d=c(d);let v=p(f);f=f.replace(/[^a-zA-Z0-9]/g,&amp;amp;quot;&amp;amp;quot;);let w=`&amp;amp;lt;th scope=&amp;amp;quot;row&amp;amp;quot;&amp;amp;gt;${v}&amp;amp;lt;/th&amp;amp;gt;&amp;amp;lt;td&amp;amp;gt;${d}&amp;amp;lt;/td&amp;amp;gt;`;this.dummyDOM||(this.dummyDOM=document.getElementById(g).parentNode),this.descriptions?this.descriptions.fallbackElements||(this.descriptions.fallbackElements={}):this.descriptions={fallbackElements:{}},this.descriptions.fallbackElements[f]?this.descriptions.fallbackElements[f].innerHTML!==w&amp;amp;amp;&amp;amp;amp;(this.descriptions.fallbackElements[f].innerHTML=w):this._describeElementHTML(&amp;amp;quot;fallback&amp;amp;quot;,f,w),m===this.LABEL&amp;amp;amp;&amp;amp;amp;(this.descriptions.labelElements||(this.descriptions.labelElements={}),this.descriptions.labelElements[f]?this.descriptions.labelElements[f].innerHTML!==w&amp;amp;amp;&amp;amp;amp;(this.descriptions.labelElements[f].innerHTML=w):this._describeElementHTML(&amp;amp;quot;label&amp;amp;quot;,f,w))};function c(f){if(f===&amp;amp;quot;label&amp;amp;quot;||f===&amp;amp;quot;fallback&amp;amp;quot;)throw new Error(&amp;amp;quot;description should not be LABEL or FALLBACK&amp;amp;quot;);return!f.endsWith(&amp;amp;quot;.&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!f.endsWith(&amp;amp;quot;;&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!f.endsWith(&amp;amp;quot;,&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!f.endsWith(&amp;amp;quot;?&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!f.endsWith(&amp;amp;quot;!&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(f=f+&amp;amp;quot;.&amp;amp;quot;),f}t._describeHTML=function(f,d){let m=this.canvas.id;if(f===&amp;amp;quot;fallback&amp;amp;quot;){if(this.dummyDOM.querySelector(`#${m+r}`))this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+m+s).insertAdjacentHTML(&amp;amp;quot;beforebegin&amp;amp;quot;,`&amp;amp;lt;p id=&amp;amp;quot;${m+n}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;`);else{let g=`&amp;amp;lt;div id=&amp;amp;quot;${m}${r}&amp;amp;quot; role=&amp;amp;quot;region&amp;amp;quot; aria-label=&amp;amp;quot;Canvas Description&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;p id=&amp;amp;quot;${m}${n}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`;this.dummyDOM.querySelector(`#${m}accessibleOutput`)?this.dummyDOM.querySelector(`#${m}accessibleOutput`).insertAdjacentHTML(&amp;amp;quot;beforebegin&amp;amp;quot;,g):this.dummyDOM.querySelector(`#${m}`).innerHTML=g}this.descriptions.fallback=this.dummyDOM.querySelector(`#${m}${n}`),this.descriptions.fallback.innerHTML=d;return}else if(f===&amp;amp;quot;label&amp;amp;quot;){if(this.dummyDOM.querySelector(`#${m+o}`))this.dummyDOM.querySelector(`#${m+h}`)&amp;amp;amp;&amp;amp;amp;this.dummyDOM.querySelector(`#${m+h}`).insertAdjacentHTML(&amp;amp;quot;beforebegin&amp;amp;quot;,`&amp;amp;lt;p id=&amp;amp;quot;${m}${u}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;`);else{let g=`&amp;amp;lt;div id=&amp;amp;quot;${m}${o}&amp;amp;quot; class=&amp;amp;quot;p5Label&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;p id=&amp;amp;quot;${m}${u}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`;this.dummyDOM.querySelector(`#${m}accessibleOutputLabel`)?this.dummyDOM.querySelector(`#${m}accessibleOutputLabel`).insertAdjacentHTML(&amp;amp;quot;beforebegin&amp;amp;quot;,g):this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+m).insertAdjacentHTML(&amp;amp;quot;afterend&amp;amp;quot;,g)}this.descriptions.label=this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+m+u),this.descriptions.label.innerHTML=d;return}};function p(f){if(f===&amp;amp;quot;label&amp;amp;quot;||f===&amp;amp;quot;fallback&amp;amp;quot;)throw new Error(&amp;amp;quot;element name should not be LABEL or FALLBACK&amp;amp;quot;);return f.endsWith(&amp;amp;quot;.&amp;amp;quot;)||f.endsWith(&amp;amp;quot;;&amp;amp;quot;)||f.endsWith(&amp;amp;quot;,&amp;amp;quot;)?f=f.replace(/.$/,&amp;amp;quot;:&amp;amp;quot;):f.endsWith(&amp;amp;quot;:&amp;amp;quot;)||(f=f+&amp;amp;quot;:&amp;amp;quot;),f}t._describeElementHTML=function(f,d,m){let g=this.canvas.id;if(f===&amp;amp;quot;fallback&amp;amp;quot;){if(this.dummyDOM.querySelector(`#${g+r}`))this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+g+s)||this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+g+n).insertAdjacentHTML(&amp;amp;quot;afterend&amp;amp;quot;,`&amp;amp;lt;table id=&amp;amp;quot;${g}${s}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;caption&amp;amp;gt;Canvas elements and their descriptions&amp;amp;lt;/caption&amp;amp;gt;&amp;amp;lt;/table&amp;amp;gt;`);else{let w=`&amp;amp;lt;div id=&amp;amp;quot;${g}${r}&amp;amp;quot; role=&amp;amp;quot;region&amp;amp;quot; aria-label=&amp;amp;quot;Canvas Description&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;table id=&amp;amp;quot;${g}${s}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;caption&amp;amp;gt;Canvas elements and their descriptions&amp;amp;lt;/caption&amp;amp;gt;&amp;amp;lt;/table&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`;this.dummyDOM.querySelector(`#${g}accessibleOutput`)?this.dummyDOM.querySelector(`#${g}accessibleOutput`).insertAdjacentHTML(&amp;amp;quot;beforebegin&amp;amp;quot;,w):this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+g).innerHTML=w}let v=document.createElement(&amp;amp;quot;tr&amp;amp;quot;);v.id=g+a+d,this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+g+s).appendChild(v),this.descriptions.fallbackElements[d]=this.dummyDOM.querySelector(`#${g}${a}${d}`),this.descriptions.fallbackElements[d].innerHTML=m;return}else if(f===&amp;amp;quot;label&amp;amp;quot;){if(this.dummyDOM.querySelector(`#${g+o}`))this.dummyDOM.querySelector(`#${g+h}`)||this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+g+u).insertAdjacentHTML(&amp;amp;quot;afterend&amp;amp;quot;,`&amp;amp;lt;table id=&amp;amp;quot;${g+h}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/table&amp;amp;gt;`);else{let w=`&amp;amp;lt;div id=&amp;amp;quot;${g}${o}&amp;amp;quot; class=&amp;amp;quot;p5Label&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;table id=&amp;amp;quot;${g}${h}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/table&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`;this.dummyDOM.querySelector(`#${g}accessibleOutputLabel`)?this.dummyDOM.querySelector(`#${g}accessibleOutputLabel`).insertAdjacentHTML(&amp;amp;quot;beforebegin&amp;amp;quot;,w):this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+g).insertAdjacentHTML(&amp;amp;quot;afterend&amp;amp;quot;,w)}let v=document.createElement(&amp;amp;quot;tr&amp;amp;quot;);v.id=g+l+d,this.dummyDOM.querySelector(&amp;amp;quot;#&amp;amp;quot;+g+h).appendChild(v),this.descriptions.labelElements[d]=this.dummyDOM.querySelector(`#${g}${l}${d}`),this.descriptions.labelElements[d].innerHTML=m}}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;jc(p5,p5.prototype);function $c(i,t){t._updateGridOutput=function(a){if(!this.dummyDOM.querySelector(`#${a}_summary`))return;let o=this._accessibleOutputs[a],u=s(a,this.ingredients.shapes),h=n(u.numShapes,this.ingredients.colors.background,this.width,this.height),l=r(a,this.ingredients.shapes);h!==o.summary.innerHTML&amp;amp;amp;&amp;amp;amp;(o.summary.innerHTML=h),l!==o.map.innerHTML&amp;amp;amp;&amp;amp;amp;(o.map.innerHTML=l),u.details!==o.shapeDetails.innerHTML&amp;amp;amp;&amp;amp;amp;(o.shapeDetails.innerHTML=u.details),this._accessibleOutputs[a]=o};function r(a,o){let u=0,h=&amp;amp;quot;&amp;amp;quot;,l=Array.from(Array(10),()=&amp;amp;gt;Array(10));for(let c in o)for(let p in o[c]){let f;c!==&amp;amp;quot;line&amp;amp;quot;?f=`&amp;amp;lt;a href=&amp;amp;quot;#${a}shape${u}&amp;amp;quot;&amp;amp;gt;${o[c][p].color} ${c}&amp;amp;lt;/a&amp;amp;gt;`:f=`&amp;amp;lt;a href=&amp;amp;quot;#${a}shape${u}&amp;amp;quot;&amp;amp;gt;${o[c][p].color} ${c} midpoint&amp;amp;lt;/a&amp;amp;gt;`,o[c][p].loc.locY&amp;amp;lt;l.length&amp;amp;amp;&amp;amp;amp;o[c][p].loc.locX&amp;amp;lt;l[o[c][p].loc.locY].length&amp;amp;amp;&amp;amp;amp;(l[o[c][p].loc.locY][o[c][p].loc.locX]?l[o[c][p].loc.locY][o[c][p].loc.locX]=l[o[c][p].loc.locY][o[c][p].loc.locX]+&amp;amp;quot;  &amp;amp;quot;+f:l[o[c][p].loc.locY][o[c][p].loc.locX]=f,u++)}for(let c in l){let p=&amp;amp;quot;&amp;amp;lt;tr&amp;amp;gt;&amp;amp;quot;;for(let f in l[c])p=p+&amp;amp;quot;&amp;amp;lt;td&amp;amp;gt;&amp;amp;quot;,l[c][f]!==void 0&amp;amp;amp;&amp;amp;amp;(p=p+l[c][f]),p=p+&amp;amp;quot;&amp;amp;lt;/td&amp;amp;gt;&amp;amp;quot;;h=h+p+&amp;amp;quot;&amp;amp;lt;/tr&amp;amp;gt;&amp;amp;quot;}return h}function n(a,o,u,h){let l=`${o} canvas, ${u} by ${h} pixels, contains ${a[0]}`;return a[0]===1?l=`${l} shape: ${a[1]}`:l=`${l} shapes: ${a[1]}`,l}function s(a,o){let u=&amp;amp;quot;&amp;amp;quot;,h=&amp;amp;quot;&amp;amp;quot;,l=0;for(let c in o){let p=0;for(let f in o[c]){let d=`&amp;amp;lt;li id=&amp;amp;quot;${a}shape${l}&amp;amp;quot;&amp;amp;gt;${o[c][f].color} ${c},`;c===&amp;amp;quot;line&amp;amp;quot;?d=d+` location = ${o[c][f].pos}, length = ${o[c][f].length} pixels`:(d=d+` location = ${o[c][f].pos}`,c!==&amp;amp;quot;point&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(d=d+`, area = ${o[c][f].area} %`),d=d+&amp;amp;quot;&amp;amp;lt;/li&amp;amp;gt;&amp;amp;quot;),u=u+d,p++,l++}p&amp;amp;gt;1?h=`${h} ${p} ${c}s`:h=`${h} ${p} ${c}`}return{numShapes:[l,h],details:u}}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;$c(p5,p5.prototype);function Hc(i,t){t._updateTextOutput=function(a){if(!this.dummyDOM.querySelector(`#${a}_summary`))return;let o=this._accessibleOutputs[a],u=s(a,this.ingredients.shapes),h=r(u.numShapes,this.ingredients.colors.background,this.width,this.height),l=n(a,this.ingredients.shapes);h!==o.summary.innerHTML&amp;amp;amp;&amp;amp;amp;(o.summary.innerHTML=h),u.listShapes!==o.list.innerHTML&amp;amp;amp;&amp;amp;amp;(o.list.innerHTML=u.listShapes),l!==o.shapeDetails.innerHTML&amp;amp;amp;&amp;amp;amp;(o.shapeDetails.innerHTML=l),this._accessibleOutputs[a]=o};function r(a,o,u,h){let l=`Your output is a, ${u} by ${h} pixels, ${o} canvas containing the following`;return a===1?l=`${l} shape:`:l=`${l} ${a} shapes:`,l}function n(a,o){let u=&amp;amp;quot;&amp;amp;quot;,h=0;for(let l in o)for(let c in o[l]){let p=`&amp;amp;lt;tr id=&amp;amp;quot;${a}shape${h}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;th&amp;amp;gt;${o[l][c].color} ${l}&amp;amp;lt;/th&amp;amp;gt;`;l===&amp;amp;quot;line&amp;amp;quot;?p=p+`&amp;amp;lt;td&amp;amp;gt;location = ${o[l][c].pos}&amp;amp;lt;/td&amp;amp;gt;&amp;amp;lt;td&amp;amp;gt;length = ${o[l][c].length} pixels&amp;amp;lt;/td&amp;amp;gt;&amp;amp;lt;/tr&amp;amp;gt;`:(p=p+`&amp;amp;lt;td&amp;amp;gt;location = ${o[l][c].pos}&amp;amp;lt;/td&amp;amp;gt;`,l!==&amp;amp;quot;point&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(p=p+`&amp;amp;lt;td&amp;amp;gt; area = ${o[l][c].area}%&amp;amp;lt;/td&amp;amp;gt;`),p=p+&amp;amp;quot;&amp;amp;lt;/tr&amp;amp;gt;&amp;amp;quot;),u=u+p,h++}return u}function s(a,o){let u=&amp;amp;quot;&amp;amp;quot;,h=0;for(let l in o)for(let c in o[l]){let p=`&amp;amp;lt;li&amp;amp;gt;&amp;amp;lt;a href=&amp;amp;quot;#${a}shape${h}&amp;amp;quot;&amp;amp;gt;${o[l][c].color} ${l}&amp;amp;lt;/a&amp;amp;gt;`;l===&amp;amp;quot;line&amp;amp;quot;?p=p+`, ${o[l][c].pos}, ${o[l][c].length} pixels long.&amp;amp;lt;/li&amp;amp;gt;`:(p=p+`, at ${o[l][c].pos}`,l!==&amp;amp;quot;point&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(p=p+`, covering ${o[l][c].area}% of the canvas`),p=p+&amp;amp;quot;.&amp;amp;lt;/li&amp;amp;gt;&amp;amp;quot;),u=u+p,h++}return{numShapes:h,listShapes:u}}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Hc(p5,p5.prototype);function Wc(i,t){t.textOutput=function(s){this._accessibleOutputs.text||(this._accessibleOutputs.text=!0,this._createOutput(&amp;amp;quot;textOutput&amp;amp;quot;,&amp;amp;quot;Fallback&amp;amp;quot;),s===this.LABEL&amp;amp;amp;&amp;amp;amp;(this._accessibleOutputs.textLabel=!0,this._createOutput(&amp;amp;quot;textOutput&amp;amp;quot;,&amp;amp;quot;Label&amp;amp;quot;)))},t.gridOutput=function(s){this._accessibleOutputs.grid||(this._accessibleOutputs.grid=!0,this._createOutput(&amp;amp;quot;gridOutput&amp;amp;quot;,&amp;amp;quot;Fallback&amp;amp;quot;),s===this.LABEL&amp;amp;amp;&amp;amp;amp;(this._accessibleOutputs.gridLabel=!0,this._createOutput(&amp;amp;quot;gridOutput&amp;amp;quot;,&amp;amp;quot;Label&amp;amp;quot;)))},t._addAccsOutput=function(){return this._accessibleOutputs||(this._accessibleOutputs={text:!1,grid:!1,textLabel:!1,gridLabel:!1}),this._accessibleOutputs.grid||this._accessibleOutputs.text},t._createOutput=function(s,a){let o=this.canvas.id;this.ingredients||(this.ingredients={shapes:{},colors:{background:&amp;amp;quot;white&amp;amp;quot;,fill:&amp;amp;quot;white&amp;amp;quot;,stroke:&amp;amp;quot;black&amp;amp;quot;},pShapes:&amp;amp;quot;&amp;amp;quot;,pBackground:&amp;amp;quot;&amp;amp;quot;}),this.dummyDOM||(this.dummyDOM=document.getElementById(o).parentNode);let u,h,l,c=&amp;amp;quot;&amp;amp;quot;;a===&amp;amp;quot;Fallback&amp;amp;quot;?(u=o+s,h=o+&amp;amp;quot;accessibleOutput&amp;amp;quot;,this.dummyDOM.querySelector(`#${h}`)||(this.dummyDOM.querySelector(`#${o}_Description`)?this.dummyDOM.querySelector(`#${o}_Description`).insertAdjacentHTML(&amp;amp;quot;afterend&amp;amp;quot;,`&amp;amp;lt;div id=&amp;amp;quot;${h}&amp;amp;quot; role=&amp;amp;quot;region&amp;amp;quot; aria-label=&amp;amp;quot;Canvas Outputs&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`):this.dummyDOM.querySelector(`#${o}`).innerHTML=`&amp;amp;lt;div id=&amp;amp;quot;${h}&amp;amp;quot; role=&amp;amp;quot;region&amp;amp;quot; aria-label=&amp;amp;quot;Canvas Outputs&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`)):a===&amp;amp;quot;Label&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(c=a,u=o+s+a,h=o+&amp;amp;quot;accessibleOutput&amp;amp;quot;+a,this.dummyDOM.querySelector(`#${h}`)||(this.dummyDOM.querySelector(`#${o}_Label`)?this.dummyDOM.querySelector(`#${o}_Label`).insertAdjacentHTML(&amp;amp;quot;afterend&amp;amp;quot;,`&amp;amp;lt;div id=&amp;amp;quot;${h}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`):this.dummyDOM.querySelector(`#${o}`).insertAdjacentHTML(&amp;amp;quot;afterend&amp;amp;quot;,`&amp;amp;lt;div id=&amp;amp;quot;${h}&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`))),this._accessibleOutputs[u]={},s===&amp;amp;quot;textOutput&amp;amp;quot;?(c=`#${o}gridOutput${c}`,l=`&amp;amp;lt;div id=&amp;amp;quot;${u}&amp;amp;quot;&amp;amp;gt;Text Output&amp;amp;lt;div id=&amp;amp;quot;${u}Summary&amp;amp;quot; aria-label=&amp;amp;quot;text output summary&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;p id=&amp;amp;quot;${u}_summary&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/p&amp;amp;gt;&amp;amp;lt;ul id=&amp;amp;quot;${u}_list&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;&amp;amp;lt;table id=&amp;amp;quot;${u}_shapeDetails&amp;amp;quot; summary=&amp;amp;quot;text output shape details&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/table&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`,this.dummyDOM.querySelector(c)?this.dummyDOM.querySelector(c).insertAdjacentHTML(&amp;amp;quot;beforebegin&amp;amp;quot;,l):this.dummyDOM.querySelector(`#${h}`).innerHTML=l,this._accessibleOutputs[u].list=this.dummyDOM.querySelector(`#${u}_list`)):s===&amp;amp;quot;gridOutput&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(c=`#${o}textOutput${c}`,l=`&amp;amp;lt;div id=&amp;amp;quot;${u}&amp;amp;quot;&amp;amp;gt;Grid Output&amp;amp;lt;p id=&amp;amp;quot;${u}_summary&amp;amp;quot; aria-label=&amp;amp;quot;grid output summary&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;table id=&amp;amp;quot;${u}_map&amp;amp;quot; summary=&amp;amp;quot;grid output content&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/table&amp;amp;gt;&amp;amp;lt;ul id=&amp;amp;quot;${u}_shapeDetails&amp;amp;quot; aria-label=&amp;amp;quot;grid output shape details&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/ul&amp;amp;gt;&amp;amp;lt;/div&amp;amp;gt;`,this.dummyDOM.querySelector(c)?this.dummyDOM.querySelector(c).insertAdjacentHTML(&amp;amp;quot;afterend&amp;amp;quot;,l):this.dummyDOM.querySelector(`#${h}`).innerHTML=l,this._accessibleOutputs[u].map=this.dummyDOM.querySelector(`#${u}_map`)),this._accessibleOutputs[u].shapeDetails=this.dummyDOM.querySelector(`#${u}_shapeDetails`),this._accessibleOutputs[u].summary=this.dummyDOM.querySelector(`#${u}_summary`)},t._updateAccsOutput=function(){let s=this.canvas.id;(JSON.stringify(this.ingredients.shapes)!==this.ingredients.pShapes||this.ingredients.colors.background!==this.ingredients.pBackground)&amp;amp;amp;&amp;amp;amp;(this.ingredients.pShapes=JSON.stringify(this.ingredients.shapes),this._accessibleOutputs.text&amp;amp;amp;&amp;amp;amp;this._updateTextOutput(s+&amp;amp;quot;textOutput&amp;amp;quot;),this._accessibleOutputs.grid&amp;amp;amp;&amp;amp;amp;this._updateGridOutput(s+&amp;amp;quot;gridOutput&amp;amp;quot;),this._accessibleOutputs.textLabel&amp;amp;amp;&amp;amp;amp;this._updateTextOutput(s+&amp;amp;quot;textOutputLabel&amp;amp;quot;),this._accessibleOutputs.gridLabel&amp;amp;amp;&amp;amp;amp;this._updateGridOutput(s+&amp;amp;quot;gridOutputLabel&amp;amp;quot;))},t._accsBackground=function(s){this.ingredients.pShapes=JSON.stringify(this.ingredients.shapes),this.ingredients.pBackground=this.ingredients.colors.background,this.ingredients.shapes={},this.ingredients.colors.backgroundRGBA!==s&amp;amp;amp;&amp;amp;amp;(this.ingredients.colors.backgroundRGBA=s,this.ingredients.colors.background=this._rgbColorName(s))},t._accsCanvasColors=function(s,a){s===&amp;amp;quot;fill&amp;amp;quot;?this.ingredients.colors.fillRGBA!==a&amp;amp;amp;&amp;amp;amp;(this.ingredients.colors.fillRGBA=a,this.ingredients.colors.fill=this._rgbColorName(a)):s===&amp;amp;quot;stroke&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.ingredients.colors.strokeRGBA!==a&amp;amp;amp;&amp;amp;amp;(this.ingredients.colors.strokeRGBA=a,this.ingredients.colors.stroke=this._rgbColorName(a))},t._accsOutput=function(s,a){s===&amp;amp;quot;ellipse&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a[2]===a[3]?s=&amp;amp;quot;circle&amp;amp;quot;:s===&amp;amp;quot;rectangle&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a[2]===a[3]&amp;amp;amp;&amp;amp;amp;(s=&amp;amp;quot;square&amp;amp;quot;);let o={},u=!0,h=r(s,a);if(s===&amp;amp;quot;line&amp;amp;quot;){o.color=this.ingredients.colors.stroke,o.length=Math.round(Math.hypot(a[2]-a[0],a[3]-a[1]));let l=this._getPos(a[0],[1]),c=this._getPos(a[2],[3]);o.loc=n(h,this.width,this.height),l===c?o.pos=`at ${l}`:o.pos=`from ${l} to ${c}`}else s===&amp;amp;quot;point&amp;amp;quot;?o.color=this.ingredients.colors.stroke:(o.color=this.ingredients.colors.fill,o.area=this._getArea(s,a)),o.pos=this._getPos(...h),o.loc=n(h,this.width,this.height);if(!this.ingredients.shapes[s])this.ingredients.shapes[s]=[o];else if(this.ingredients.shapes[s]!==[o]){for(let l in this.ingredients.shapes[s])JSON.stringify(this.ingredients.shapes[s][l])===JSON.stringify(o)&amp;amp;amp;&amp;amp;amp;(u=!1);u===!0&amp;amp;amp;&amp;amp;amp;this.ingredients.shapes[s].push(o)}};function r(s,a){let o,u;return s===&amp;amp;quot;rectangle&amp;amp;quot;||s===&amp;amp;quot;ellipse&amp;amp;quot;||s===&amp;amp;quot;arc&amp;amp;quot;||s===&amp;amp;quot;circle&amp;amp;quot;||s===&amp;amp;quot;square&amp;amp;quot;?(o=Math.round(a[0]+a[2]/2),u=Math.round(a[1]+a[3]/2)):s===&amp;amp;quot;triangle&amp;amp;quot;?(o=(a[0]+a[2]+a[4])/3,u=(a[1]+a[3]+a[5])/3):s===&amp;amp;quot;quadrilateral&amp;amp;quot;?(o=(a[0]+a[2]+a[4]+a[6])/4,u=(a[1]+a[3]+a[5]+a[7])/4):s===&amp;amp;quot;line&amp;amp;quot;?(o=(a[0]+a[2])/2,u=(a[1]+a[3])/2):(o=a[0],u=a[1]),[o,u]}t._getPos=function(s,a){let{x:o,y:u}=this.worldToScreen(new i.Vector(s,a)),h=this.width,l=this.height;return o&amp;amp;lt;.4*h?u&amp;amp;lt;.4*l?&amp;amp;quot;top left&amp;amp;quot;:u&amp;amp;gt;.6*l?&amp;amp;quot;bottom left&amp;amp;quot;:&amp;amp;quot;mid left&amp;amp;quot;:o&amp;amp;gt;.6*h?u&amp;amp;lt;.4*l?&amp;amp;quot;top right&amp;amp;quot;:u&amp;amp;gt;.6*l?&amp;amp;quot;bottom right&amp;amp;quot;:&amp;amp;quot;mid right&amp;amp;quot;:u&amp;amp;lt;.4*l?&amp;amp;quot;top middle&amp;amp;quot;:u&amp;amp;gt;.6*l?&amp;amp;quot;bottom middle&amp;amp;quot;:&amp;amp;quot;middle&amp;amp;quot;};function n(s,a,o){let l=Math.floor(s[0]/a*10),c=Math.floor(s[1]/o*10);return l===10&amp;amp;amp;&amp;amp;amp;(l=l-1),c===10&amp;amp;amp;&amp;amp;amp;(c=c-1),{locX:l,locY:c}}t._getArea=function(s,a){let o=0;if(s===&amp;amp;quot;arc&amp;amp;quot;){let g=((a[5]-a[4])%(Math.PI*2)+Math.PI*2)%(Math.PI*2);if(o=g*a[2]*a[3]/8,a[6]===&amp;amp;quot;open&amp;amp;quot;||a[6]===&amp;amp;quot;chord&amp;amp;quot;){let v=a[0],w=a[1],y=a[0]+a[2]/2*Math.cos(a[4]).toFixed(2),S=a[1]+a[3]/2*Math.sin(a[4]).toFixed(2),_=a[0]+a[2]/2*Math.cos(a[5]).toFixed(2),b=a[1]+a[3]/2*Math.sin(a[5]).toFixed(2),I=Math.abs(v*(S-b)+y*(b-w)+_*(w-S))/2;g&amp;amp;gt;Math.PI?o=o+I:o=o-I}}else s===&amp;amp;quot;ellipse&amp;amp;quot;||s===&amp;amp;quot;circle&amp;amp;quot;?o=3.14*a[2]/2*a[3]/2:s===&amp;amp;quot;line&amp;amp;quot;||s===&amp;amp;quot;point&amp;amp;quot;?o=0:s===&amp;amp;quot;quadrilateral&amp;amp;quot;?o=Math.abs((a[6]+a[0])*(a[7]-a[1])+(a[0]+a[2])*(a[1]-a[3])+(a[2]+a[4])*(a[3]-a[5])+(a[4]+a[6])*(a[5]-a[7]))/2:s===&amp;amp;quot;rectangle&amp;amp;quot;||s===&amp;amp;quot;square&amp;amp;quot;?o=a[2]*a[3]:s===&amp;amp;quot;triangle&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=Math.abs(a[0]*(a[3]-a[5])+a[2]*(a[5]-a[1])+a[4]*(a[1]-a[3]))/2);let u=this.width*this._renderer._pixelDensity,h=this.height*this._renderer._pixelDensity,l=[new DOMPoint(0,0),new DOMPoint(u,0),new DOMPoint(u,h),new DOMPoint(0,h)],p=(this._renderer.isP3D?new DOMMatrix(this._renderer.uMVMatrix.mat4):this.drawingContext.getTransform()).inverse(),f=l.map(g=&amp;amp;gt;g.matrixTransform(p)),d=Math.abs((f[3].x+f[0].x)*(f[3].y-f[0].y)+(f[0].x+f[1].x)*(f[0].y-f[1].y)+(f[1].x+f[2].x)*(f[1].y-f[2].y)+(f[2].x+f[3].x)*(f[2].y-f[3].y))/2;return Math.round(o*100/d)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Wc(p5,p5.prototype);var zN=Se(Bt());var XN=Se(or());var JN=Se(ur());var lI=Se(lr());$e.ColorConversion={_hsbaToHSLA(i){let t=i[0],r=i[1],n=i[2],s=(2-r)*n/2;return s!==0&amp;amp;amp;&amp;amp;amp;(s===1?r=0:s&amp;amp;lt;.5?r=r/(2-r):r=r*n/(2-s*2)),[t,r,s,i[3]]},_hsbaToRGBA(i){let t=i[0]*6,r=i[1],n=i[2],s=[];if(r===0)s=[n,n,n,i[3]];else{let a=Math.floor(t),o=n*(1-r),u=n*(1-r*(t-a)),h=n*(1-r*(1+a-t)),l,c,p;a===1?(l=u,c=n,p=o):a===2?(l=o,c=n,p=h):a===3?(l=o,c=u,p=n):a===4?(l=h,c=o,p=n):a===5?(l=n,c=o,p=u):(l=n,c=h,p=o),s=[l,c,p,i[3]]}return s},_hslaToHSBA(i){let t=i[0],r=i[1],n=i[2],s;return n&amp;amp;lt;.5?s=(1+r)*n:s=n+r-n*r,r=2*(s-n)/s,[t,r,s,i[3]]},_hslaToRGBA(i){let t=i[0]*6,r=i[1],n=i[2],s=[];if(r===0)s=[n,n,n,i[3]];else{let a;n&amp;amp;lt;.5?a=(1+r)*n:a=n+r-n*r;let o=2*n-a,u=(h,l,c)=&amp;amp;gt;(h&amp;amp;lt;0?h+=6:h&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;(h-=6),h&amp;amp;lt;1?l+(c-l)*h:h&amp;amp;lt;3?c:h&amp;amp;lt;4?l+(c-l)*(4-h):l);s=[u(t+2,o,a),u(t,o,a),u(t-2,o,a),i[3]]}return s},_rgbaToHSBA(i){let t=i[0],r=i[1],n=i[2],s=Math.max(t,r,n),a=s-Math.min(t,r,n),o,u;return a===0?(o=0,u=0):(u=a/s,t===s?o=(r-n)/a:r===s?o=2+(n-t)/a:n===s&amp;amp;amp;&amp;amp;amp;(o=4+(t-r)/a),o&amp;amp;lt;0?o+=6:o&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;(o-=6)),[o/6,u,s,i[3]]},_rgbaToHSLA(i){let t=i[0],r=i[1],n=i[2],s=Math.max(t,r,n),a=Math.min(t,r,n),o=s+a,u=s-a,h,l;return u===0?(h=0,l=0):(o&amp;amp;lt;1?l=u/o:l=u/(2-o),t===s?h=(r-n)/u:r===s?h=2+(n-t)/u:n===s&amp;amp;amp;&amp;amp;amp;(h=4+(t-r)/u),h&amp;amp;lt;0?h+=6:h&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;(h-=6)),[h/6,l,o/2,i[3]]}};var qm=$e.ColorConversion;var MI=Se(Bt());var GI=Se(or());var jI=Se(ur());var ek=Se(lr());function qc(i,t){let r,n=[{h:0,s:0,b:.8275,name:&amp;amp;quot;gray&amp;amp;quot;},{h:0,s:0,b:.8627,name:&amp;amp;quot;gray&amp;amp;quot;},{h:0,s:0,b:.7529,name:&amp;amp;quot;gray&amp;amp;quot;},{h:.0167,s:.1176,b:1,name:&amp;amp;quot;light pink&amp;amp;quot;}],s=[{h:0,s:0,b:0,name:&amp;amp;quot;black&amp;amp;quot;},{h:0,s:0,b:.5,name:&amp;amp;quot;gray&amp;amp;quot;},{h:0,s:0,b:1,name:&amp;amp;quot;white&amp;amp;quot;},{h:0,s:.5,b:.5,name:&amp;amp;quot;dark maroon&amp;amp;quot;},{h:0,s:.5,b:1,name:&amp;amp;quot;salmon pink&amp;amp;quot;},{h:0,s:1,b:0,name:&amp;amp;quot;black&amp;amp;quot;},{h:0,s:1,b:.5,name:&amp;amp;quot;dark red&amp;amp;quot;},{h:0,s:1,b:1,name:&amp;amp;quot;red&amp;amp;quot;},{h:5,s:0,b:1,name:&amp;amp;quot;very light peach&amp;amp;quot;},{h:5,s:.5,b:.5,name:&amp;amp;quot;brown&amp;amp;quot;},{h:5,s:.5,b:1,name:&amp;amp;quot;peach&amp;amp;quot;},{h:5,s:1,b:.5,name:&amp;amp;quot;brick red&amp;amp;quot;},{h:5,s:1,b:1,name:&amp;amp;quot;crimson&amp;amp;quot;},{h:10,s:0,b:1,name:&amp;amp;quot;light peach&amp;amp;quot;},{h:10,s:.5,b:.5,name:&amp;amp;quot;brown&amp;amp;quot;},{h:10,s:.5,b:1,name:&amp;amp;quot;light orange&amp;amp;quot;},{h:10,s:1,b:.5,name:&amp;amp;quot;brown&amp;amp;quot;},{h:10,s:1,b:1,name:&amp;amp;quot;orange&amp;amp;quot;},{h:15,s:0,b:1,name:&amp;amp;quot;very light yellow&amp;amp;quot;},{h:15,s:.5,b:.5,name:&amp;amp;quot;olive green&amp;amp;quot;},{h:15,s:.5,b:1,name:&amp;amp;quot;light yellow&amp;amp;quot;},{h:15,s:1,b:0,name:&amp;amp;quot;dark olive green&amp;amp;quot;},{h:15,s:1,b:.5,name:&amp;amp;quot;olive green&amp;amp;quot;},{h:15,s:1,b:1,name:&amp;amp;quot;yellow&amp;amp;quot;},{h:20,s:0,b:1,name:&amp;amp;quot;very light yellow&amp;amp;quot;},{h:20,s:.5,b:.5,name:&amp;amp;quot;olive green&amp;amp;quot;},{h:20,s:.5,b:1,name:&amp;amp;quot;light yellow green&amp;amp;quot;},{h:20,s:1,b:0,name:&amp;amp;quot;dark olive green&amp;amp;quot;},{h:20,s:1,b:.5,name:&amp;amp;quot;dark yellow green&amp;amp;quot;},{h:20,s:1,b:1,name:&amp;amp;quot;yellow green&amp;amp;quot;},{h:25,s:.5,b:.5,name:&amp;amp;quot;dark yellow green&amp;amp;quot;},{h:25,s:.5,b:1,name:&amp;amp;quot;light green&amp;amp;quot;},{h:25,s:1,b:.5,name:&amp;amp;quot;dark green&amp;amp;quot;},{h:25,s:1,b:1,name:&amp;amp;quot;green&amp;amp;quot;},{h:30,s:.5,b:1,name:&amp;amp;quot;light green&amp;amp;quot;},{h:30,s:1,b:.5,name:&amp;amp;quot;dark green&amp;amp;quot;},{h:30,s:1,b:1,name:&amp;amp;quot;green&amp;amp;quot;},{h:35,s:0,b:.5,name:&amp;amp;quot;light green&amp;amp;quot;},{h:35,s:0,b:1,name:&amp;amp;quot;very light green&amp;amp;quot;},{h:35,s:.5,b:.5,name:&amp;amp;quot;dark green&amp;amp;quot;},{h:35,s:.5,b:1,name:&amp;amp;quot;light green&amp;amp;quot;},{h:35,s:1,b:0,name:&amp;amp;quot;very dark green&amp;amp;quot;},{h:35,s:1,b:.5,name:&amp;amp;quot;dark green&amp;amp;quot;},{h:35,s:1,b:1,name:&amp;amp;quot;green&amp;amp;quot;},{h:40,s:0,b:1,name:&amp;amp;quot;very light green&amp;amp;quot;},{h:40,s:.5,b:.5,name:&amp;amp;quot;dark green&amp;amp;quot;},{h:40,s:.5,b:1,name:&amp;amp;quot;light green&amp;amp;quot;},{h:40,s:1,b:.5,name:&amp;amp;quot;dark green&amp;amp;quot;},{h:40,s:1,b:1,name:&amp;amp;quot;green&amp;amp;quot;},{h:45,s:.5,b:1,name:&amp;amp;quot;light turquoise&amp;amp;quot;},{h:45,s:1,b:.5,name:&amp;amp;quot;dark turquoise&amp;amp;quot;},{h:45,s:1,b:1,name:&amp;amp;quot;turquoise&amp;amp;quot;},{h:50,s:0,b:1,name:&amp;amp;quot;light sky blue&amp;amp;quot;},{h:50,s:.5,b:.5,name:&amp;amp;quot;dark cyan&amp;amp;quot;},{h:50,s:.5,b:1,name:&amp;amp;quot;light cyan&amp;amp;quot;},{h:50,s:1,b:.5,name:&amp;amp;quot;dark cyan&amp;amp;quot;},{h:50,s:1,b:1,name:&amp;amp;quot;cyan&amp;amp;quot;},{h:55,s:0,b:1,name:&amp;amp;quot;light sky blue&amp;amp;quot;},{h:55,s:.5,b:1,name:&amp;amp;quot;light sky blue&amp;amp;quot;},{h:55,s:1,b:.5,name:&amp;amp;quot;dark blue&amp;amp;quot;},{h:55,s:1,b:1,name:&amp;amp;quot;sky blue&amp;amp;quot;},{h:60,s:0,b:.5,name:&amp;amp;quot;gray&amp;amp;quot;},{h:60,s:0,b:1,name:&amp;amp;quot;very light blue&amp;amp;quot;},{h:60,s:.5,b:.5,name:&amp;amp;quot;blue&amp;amp;quot;},{h:60,s:.5,b:1,name:&amp;amp;quot;light blue&amp;amp;quot;},{h:60,s:1,b:.5,name:&amp;amp;quot;navy blue&amp;amp;quot;},{h:60,s:1,b:1,name:&amp;amp;quot;blue&amp;amp;quot;},{h:65,s:0,b:1,name:&amp;amp;quot;lavender&amp;amp;quot;},{h:65,s:.5,b:.5,name:&amp;amp;quot;navy blue&amp;amp;quot;},{h:65,s:.5,b:1,name:&amp;amp;quot;light purple&amp;amp;quot;},{h:65,s:1,b:.5,name:&amp;amp;quot;dark navy blue&amp;amp;quot;},{h:65,s:1,b:1,name:&amp;amp;quot;blue&amp;amp;quot;},{h:70,s:0,b:1,name:&amp;amp;quot;lavender&amp;amp;quot;},{h:70,s:.5,b:.5,name:&amp;amp;quot;navy blue&amp;amp;quot;},{h:70,s:.5,b:1,name:&amp;amp;quot;lavender blue&amp;amp;quot;},{h:70,s:1,b:.5,name:&amp;amp;quot;dark navy blue&amp;amp;quot;},{h:70,s:1,b:1,name:&amp;amp;quot;blue&amp;amp;quot;},{h:75,s:.5,b:1,name:&amp;amp;quot;lavender&amp;amp;quot;},{h:75,s:1,b:.5,name:&amp;amp;quot;dark purple&amp;amp;quot;},{h:75,s:1,b:1,name:&amp;amp;quot;purple&amp;amp;quot;},{h:80,s:.5,b:1,name:&amp;amp;quot;pinkish purple&amp;amp;quot;},{h:80,s:1,b:.5,name:&amp;amp;quot;dark purple&amp;amp;quot;},{h:80,s:1,b:1,name:&amp;amp;quot;purple&amp;amp;quot;},{h:85,s:0,b:1,name:&amp;amp;quot;light pink&amp;amp;quot;},{h:85,s:.5,b:.5,name:&amp;amp;quot;purple&amp;amp;quot;},{h:85,s:.5,b:1,name:&amp;amp;quot;light fuchsia&amp;amp;quot;},{h:85,s:1,b:.5,name:&amp;amp;quot;dark fuchsia&amp;amp;quot;},{h:85,s:1,b:1,name:&amp;amp;quot;fuchsia&amp;amp;quot;},{h:90,s:.5,b:.5,name:&amp;amp;quot;dark fuchsia&amp;amp;quot;},{h:90,s:.5,b:1,name:&amp;amp;quot;hot pink&amp;amp;quot;},{h:90,s:1,b:.5,name:&amp;amp;quot;dark fuchsia&amp;amp;quot;},{h:90,s:1,b:1,name:&amp;amp;quot;fuchsia&amp;amp;quot;},{h:95,s:0,b:1,name:&amp;amp;quot;pink&amp;amp;quot;},{h:95,s:.5,b:1,name:&amp;amp;quot;light pink&amp;amp;quot;},{h:95,s:1,b:.5,name:&amp;amp;quot;dark magenta&amp;amp;quot;},{h:95,s:1,b:1,name:&amp;amp;quot;magenta&amp;amp;quot;}];function a(o){let u;if(o[0]!==0){o[0]=Math.round(o[0]*100);let h=o[0].toString().split(&amp;amp;quot;&amp;amp;quot;),l=h.length-1;h[l]=parseInt(h[l]),h[l]&amp;amp;lt;2.5?h[l]=0:h[l]&amp;amp;gt;=2.5&amp;amp;amp;&amp;amp;amp;h[l]&amp;amp;lt;7.5&amp;amp;amp;&amp;amp;amp;(h[l]=5),h.length===2?(h[0]=parseInt(h[0]),h[l]&amp;amp;gt;=7.5&amp;amp;amp;&amp;amp;amp;(h[l]=0,h[0]=h[0]+1),o[0]=h[0]*10+h[1]):h[l]&amp;amp;gt;=7.5?o[0]=10:o[0]=h[l]}o[2]=o[2]/255;for(let h=o.length-1;h&amp;amp;gt;=1;h--)o[h]&amp;amp;lt;=.25?o[h]=0:o[h]&amp;amp;gt;.25&amp;amp;amp;&amp;amp;amp;o[h]&amp;amp;lt;.75?o[h]=.5:o[h]=1;if(o[0]===0&amp;amp;amp;&amp;amp;amp;o[1]===0&amp;amp;amp;&amp;amp;amp;o[2]===1){for(let h=2;h&amp;amp;gt;=0;h--)r[h]=Math.round(r[h]*1e4)/1e4;for(let h=0;h&amp;amp;lt;n.length;h++)if(n[h].h===r[0]&amp;amp;amp;&amp;amp;amp;n[h].s===r[1]&amp;amp;amp;&amp;amp;amp;n[h].b===r[2]){u=n[h].name;break}else u=&amp;amp;quot;white&amp;amp;quot;}else for(let h=0;h&amp;amp;lt;s.length;h++)if(s[h].h===o[0]&amp;amp;amp;&amp;amp;amp;s[h].s===o[1]&amp;amp;amp;&amp;amp;amp;s[h].b===o[2]){u=s[h].name;break}return u}t._rgbColorName=function(o){let u=qm._rgbaToHSBA(o);return r=u,a([u[0],u[1],u[2]])}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;qc(p5,p5.prototype);var Tk=Se(Bt());var Pk=Se(or());var Vk=Se(ur());var Xk=Se(lr());function Zm(i){i.registerAddon(jc),i.registerAddon($c),i.registerAddon(Hc),i.registerAddon(Wc),i.registerAddon(qc)}function Ym(i){i.registerAddon(Ba),i.registerAddon(jh),i.registerAddon(qa)}function $t(i){&amp;amp;quot;@babel/helpers - typeof&amp;amp;quot;;return $t=typeof Symbol==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof Symbol.iterator==&amp;amp;quot;symbol&amp;amp;quot;?function(t){return typeof t}:function(t){return t&amp;amp;amp;&amp;amp;amp;typeof Symbol==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.constructor===Symbol&amp;amp;amp;&amp;amp;amp;t!==Symbol.prototype?&amp;amp;quot;symbol&amp;amp;quot;:typeof t},$t(i)}function Xm(i,t){if($t(i)!=&amp;amp;quot;object&amp;amp;quot;||!i)return i;var r=i[Symbol.toPrimitive];if(r!==void 0){var n=r.call(i,t||&amp;amp;quot;default&amp;amp;quot;);if($t(n)!=&amp;amp;quot;object&amp;amp;quot;)return n;throw new TypeError(&amp;amp;quot;@@toPrimitive must return a primitive value.&amp;amp;quot;)}return(t===&amp;amp;quot;string&amp;amp;quot;?String:Number)(i)}function cl(i){var t=Xm(i,&amp;amp;quot;string&amp;amp;quot;);return $t(t)==&amp;amp;quot;symbol&amp;amp;quot;?t:t+&amp;amp;quot;&amp;amp;quot;}function Km(i,t,r){return(t=cl(t))in i?Object.defineProperty(i,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):i[t]=r,i}function kt(i){for(var t=1;t&amp;amp;lt;arguments.length;t++){var r=arguments[t]!=null?Object(arguments[t]):{},n=Object.keys(r);typeof Object.getOwnPropertySymbols==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.push.apply(n,Object.getOwnPropertySymbols(r).filter(function(s){return Object.getOwnPropertyDescriptor(r,s).enumerable})),n.forEach(function(s){Km(i,s,r[s])})}return i}function wr(i,t){if(!(i instanceof t))throw new TypeError(&amp;amp;quot;Cannot call a class as a function&amp;amp;quot;)}function Jm(i,t){for(var r=0;r&amp;amp;lt;t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,&amp;amp;quot;value&amp;amp;quot;in n&amp;amp;amp;&amp;amp;amp;(n.writable=!0),Object.defineProperty(i,cl(n.key),n)}}function Cr(i,t,r){return t&amp;amp;amp;&amp;amp;amp;Jm(i.prototype,t),r&amp;amp;amp;&amp;amp;amp;Jm(i,r),Object.defineProperty(i,&amp;amp;quot;prototype&amp;amp;quot;,{writable:!1}),i}function wi(i){if(i===void 0)throw new ReferenceError(&amp;amp;quot;this hasn&amp;amp;#39;t been initialised - super() hasn&amp;amp;#39;t been called&amp;amp;quot;);return i}function Is(i,t){if(t&amp;amp;amp;&amp;amp;amp;($t(t)==&amp;amp;quot;object&amp;amp;quot;||typeof t==&amp;amp;quot;function&amp;amp;quot;))return t;if(t!==void 0)throw new TypeError(&amp;amp;quot;Derived constructors may only return object or undefined&amp;amp;quot;);return wi(i)}function Rn(i){return Rn=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},Rn(i)}function fl(i,t){return fl=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,n){return r.__proto__=n,r},fl(i,t)}function ao(i,t){if(typeof t!=&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t!==null)throw new TypeError(&amp;amp;quot;Super expression must either be null or a function&amp;amp;quot;);i.prototype=Object.create(t&amp;amp;amp;&amp;amp;amp;t.prototype,{constructor:{value:i,writable:!0,configurable:!0}}),Object.defineProperty(i,&amp;amp;quot;prototype&amp;amp;quot;,{writable:!1}),t&amp;amp;amp;&amp;amp;amp;fl(i,t)}var Ob={type:&amp;amp;quot;logger&amp;amp;quot;,log:function(t){this.output(&amp;amp;quot;log&amp;amp;quot;,t)},warn:function(t){this.output(&amp;amp;quot;warn&amp;amp;quot;,t)},error:function(t){this.output(&amp;amp;quot;error&amp;amp;quot;,t)},output:function(t,r){console&amp;amp;amp;&amp;amp;amp;console[t]&amp;amp;amp;&amp;amp;amp;console[t].apply(console,r)}},Vb=function(){function i(t){var r=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{};wr(this,i),this.init(t,r)}return Cr(i,[{key:&amp;amp;quot;init&amp;amp;quot;,value:function(r){var n=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{};this.prefix=n.prefix||&amp;amp;quot;i18next:&amp;amp;quot;,this.logger=r||Ob,this.options=n,this.debug=n.debug}},{key:&amp;amp;quot;setDebug&amp;amp;quot;,value:function(r){this.debug=r}},{key:&amp;amp;quot;log&amp;amp;quot;,value:function(){for(var r=arguments.length,n=new Array(r),s=0;s&amp;amp;lt;r;s++)n[s]=arguments[s];return this.forward(n,&amp;amp;quot;log&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,!0)}},{key:&amp;amp;quot;warn&amp;amp;quot;,value:function(){for(var r=arguments.length,n=new Array(r),s=0;s&amp;amp;lt;r;s++)n[s]=arguments[s];return this.forward(n,&amp;amp;quot;warn&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,!0)}},{key:&amp;amp;quot;error&amp;amp;quot;,value:function(){for(var r=arguments.length,n=new Array(r),s=0;s&amp;amp;lt;r;s++)n[s]=arguments[s];return this.forward(n,&amp;amp;quot;error&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;)}},{key:&amp;amp;quot;deprecate&amp;amp;quot;,value:function(){for(var r=arguments.length,n=new Array(r),s=0;s&amp;amp;lt;r;s++)n[s]=arguments[s];return this.forward(n,&amp;amp;quot;warn&amp;amp;quot;,&amp;amp;quot;WARNING DEPRECATED: &amp;amp;quot;,!0)}},{key:&amp;amp;quot;forward&amp;amp;quot;,value:function(r,n,s,a){return a&amp;amp;amp;&amp;amp;amp;!this.debug?null:(typeof r[0]==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r[0]=&amp;amp;quot;&amp;amp;quot;.concat(s).concat(this.prefix,&amp;amp;quot; &amp;amp;quot;).concat(r[0])),this.logger[n](r))}},{key:&amp;amp;quot;create&amp;amp;quot;,value:function(r){return new i(this.logger,kt({},{prefix:&amp;amp;quot;&amp;amp;quot;.concat(this.prefix,&amp;amp;quot;:&amp;amp;quot;).concat(r,&amp;amp;quot;:&amp;amp;quot;)},this.options))}}]),i}(),Ci=new Vb,Zi=function(){function i(){wr(this,i),this.observers={}}return Cr(i,[{key:&amp;amp;quot;on&amp;amp;quot;,value:function(r,n){var s=this;return r.split(&amp;amp;quot; &amp;amp;quot;).forEach(function(a){s.observers[a]=s.observers[a]||[],s.observers[a].push(n)}),this}},{key:&amp;amp;quot;off&amp;amp;quot;,value:function(r,n){if(this.observers[r]){if(!n){delete this.observers[r];return}this.observers[r]=this.observers[r].filter(function(s){return s!==n})}}},{key:&amp;amp;quot;emit&amp;amp;quot;,value:function(r){for(var n=arguments.length,s=new Array(n&amp;amp;gt;1?n-1:0),a=1;a&amp;amp;lt;n;a++)s[a-1]=arguments[a];if(this.observers[r]){var o=[].concat(this.observers[r]);o.forEach(function(h){h.apply(void 0,s)})}if(this.observers[&amp;amp;quot;*&amp;amp;quot;]){var u=[].concat(this.observers[&amp;amp;quot;*&amp;amp;quot;]);u.forEach(function(h){h.apply(h,[r].concat(s))})}}}]),i}();function oo(){var i,t,r=new Promise(function(n,s){i=n,t=s});return r.resolve=i,r.reject=t,r}function Qm(i){return i==null?&amp;amp;quot;&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;+i}function Ub(i,t,r){i.forEach(function(n){t[n]&amp;amp;amp;&amp;amp;amp;(r[n]=t[n])})}function Yc(i,t,r){function n(u){return u&amp;amp;amp;&amp;amp;amp;u.indexOf(&amp;amp;quot;###&amp;amp;quot;)&amp;amp;gt;-1?u.replace(/###/g,&amp;amp;quot;.&amp;amp;quot;):u}function s(){return!i||typeof i==&amp;amp;quot;string&amp;amp;quot;}for(var a=typeof t!=&amp;amp;quot;string&amp;amp;quot;?[].concat(t):t.split(&amp;amp;quot;.&amp;amp;quot;);a.length&amp;amp;gt;1;){if(s())return{};var o=n(a.shift());!i[o]&amp;amp;amp;&amp;amp;amp;r&amp;amp;amp;&amp;amp;amp;(i[o]=new r),Object.prototype.hasOwnProperty.call(i,o)?i=i[o]:i={}}return s()?{}:{obj:i,k:n(a.shift())}}function e0(i,t,r){var n=Yc(i,t,Object),s=n.obj,a=n.k;s[a]=r}function Gb(i,t,r,n){var s=Yc(i,t,Object),a=s.obj,o=s.k;a[o]=a[o]||[],n&amp;amp;amp;&amp;amp;amp;(a[o]=a[o].concat(r)),n||a[o].push(r)}function dl(i,t){var r=Yc(i,t),n=r.obj,s=r.k;if(n)return n[s]}function t0(i,t,r){var n=dl(i,r);return n!==void 0?n:dl(t,r)}function s0(i,t,r){for(var n in t)n!==&amp;amp;quot;__proto__&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n!==&amp;amp;quot;constructor&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n in i?typeof i[n]==&amp;amp;quot;string&amp;amp;quot;||i[n]instanceof String||typeof t[n]==&amp;amp;quot;string&amp;amp;quot;||t[n]instanceof String?r&amp;amp;amp;&amp;amp;amp;(i[n]=t[n]):s0(i[n],t[n],r):i[n]=t[n]);return i}function ks(i){return i.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,&amp;amp;quot;\\$&amp;amp;amp;&amp;amp;quot;)}var zb={&amp;amp;quot;&amp;amp;amp;&amp;amp;quot;:&amp;amp;quot;&amp;amp;amp;amp;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;&amp;amp;quot;:&amp;amp;quot;&amp;amp;amp;lt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;:&amp;amp;quot;&amp;amp;amp;gt;&amp;amp;quot;,&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;:&amp;amp;quot;&amp;amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;:&amp;amp;quot;&amp;amp;amp;#39;&amp;amp;quot;,&amp;amp;quot;/&amp;amp;quot;:&amp;amp;quot;&amp;amp;amp;#x2F;&amp;amp;quot;};function jb(i){return typeof i==&amp;amp;quot;string&amp;amp;quot;?i.replace(/[&amp;amp;amp;&amp;amp;lt;&amp;amp;gt;&amp;amp;quot;&amp;amp;#39;\/]/g,function(t){return zb[t]}):i}var ml=typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;window.navigator&amp;amp;amp;&amp;amp;amp;window.navigator.userAgent&amp;amp;amp;&amp;amp;amp;window.navigator.userAgent.indexOf(&amp;amp;quot;MSIE&amp;amp;quot;)&amp;amp;gt;-1,$b=function(i){ao(t,i);function t(r){var n,s=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{ns:[&amp;amp;quot;translation&amp;amp;quot;],defaultNS:&amp;amp;quot;translation&amp;amp;quot;};return wr(this,t),n=Is(this,Rn(t).call(this)),ml&amp;amp;amp;&amp;amp;amp;Zi.call(wi(n)),n.data=r||{},n.options=s,n.options.keySeparator===void 0&amp;amp;amp;&amp;amp;amp;(n.options.keySeparator=&amp;amp;quot;.&amp;amp;quot;),n}return Cr(t,[{key:&amp;amp;quot;addNamespaces&amp;amp;quot;,value:function(n){this.options.ns.indexOf(n)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;this.options.ns.push(n)}},{key:&amp;amp;quot;removeNamespaces&amp;amp;quot;,value:function(n){var s=this.options.ns.indexOf(n);s&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;this.options.ns.splice(s,1)}},{key:&amp;amp;quot;getResource&amp;amp;quot;,value:function(n,s,a){var o=arguments.length&amp;amp;gt;3&amp;amp;amp;&amp;amp;amp;arguments[3]!==void 0?arguments[3]:{},u=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,h=[n,s];return a&amp;amp;amp;&amp;amp;amp;typeof a!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(h=h.concat(a)),a&amp;amp;amp;&amp;amp;amp;typeof a==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(h=h.concat(u?a.split(u):a)),n.indexOf(&amp;amp;quot;.&amp;amp;quot;)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(h=n.split(&amp;amp;quot;.&amp;amp;quot;)),dl(this.data,h)}},{key:&amp;amp;quot;addResource&amp;amp;quot;,value:function(n,s,a,o){var u=arguments.length&amp;amp;gt;4&amp;amp;amp;&amp;amp;amp;arguments[4]!==void 0?arguments[4]:{silent:!1},h=this.options.keySeparator;h===void 0&amp;amp;amp;&amp;amp;amp;(h=&amp;amp;quot;.&amp;amp;quot;);var l=[n,s];a&amp;amp;amp;&amp;amp;amp;(l=l.concat(h?a.split(h):a)),n.indexOf(&amp;amp;quot;.&amp;amp;quot;)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(l=n.split(&amp;amp;quot;.&amp;amp;quot;),o=s,s=l[1]),this.addNamespaces(s),e0(this.data,l,o),u.silent||this.emit(&amp;amp;quot;added&amp;amp;quot;,n,s,a,o)}},{key:&amp;amp;quot;addResources&amp;amp;quot;,value:function(n,s,a){var o=arguments.length&amp;amp;gt;3&amp;amp;amp;&amp;amp;amp;arguments[3]!==void 0?arguments[3]:{silent:!1};for(var u in a)(typeof a[u]==&amp;amp;quot;string&amp;amp;quot;||Object.prototype.toString.apply(a[u])===&amp;amp;quot;[object Array]&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.addResource(n,s,u,a[u],{silent:!0});o.silent||this.emit(&amp;amp;quot;added&amp;amp;quot;,n,s,a)}},{key:&amp;amp;quot;addResourceBundle&amp;amp;quot;,value:function(n,s,a,o,u){var h=arguments.length&amp;amp;gt;5&amp;amp;amp;&amp;amp;amp;arguments[5]!==void 0?arguments[5]:{silent:!1},l=[n,s];n.indexOf(&amp;amp;quot;.&amp;amp;quot;)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(l=n.split(&amp;amp;quot;.&amp;amp;quot;),o=a,a=s,s=l[1]),this.addNamespaces(s);var c=dl(this.data,l)||{};o?s0(c,a,u):c=kt({},c,a),e0(this.data,l,c),h.silent||this.emit(&amp;amp;quot;added&amp;amp;quot;,n,s,a)}},{key:&amp;amp;quot;removeResourceBundle&amp;amp;quot;,value:function(n,s){this.hasResourceBundle(n,s)&amp;amp;amp;&amp;amp;amp;delete this.data[n][s],this.removeNamespaces(s),this.emit(&amp;amp;quot;removed&amp;amp;quot;,n,s)}},{key:&amp;amp;quot;hasResourceBundle&amp;amp;quot;,value:function(n,s){return this.getResource(n,s)!==void 0}},{key:&amp;amp;quot;getResourceBundle&amp;amp;quot;,value:function(n,s){return s||(s=this.options.defaultNS),this.options.compatibilityAPI===&amp;amp;quot;v1&amp;amp;quot;?kt({},{},this.getResource(n,s)):this.getResource(n,s)}},{key:&amp;amp;quot;getDataByLanguage&amp;amp;quot;,value:function(n){return this.data[n]}},{key:&amp;amp;quot;toJSON&amp;amp;quot;,value:function(){return this.data}}]),t}(Zi),a0={processors:{},addPostProcessor:function(t){this.processors[t.name]=t},handle:function(t,r,n,s,a){var o=this;return t.forEach(function(u){o.processors[u]&amp;amp;amp;&amp;amp;amp;(r=o.processors[u].process(r,n,s,a))}),r}},r0={},i0=function(i){ao(t,i);function t(r){var n,s=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{};return wr(this,t),n=Is(this,Rn(t).call(this)),ml&amp;amp;amp;&amp;amp;amp;Zi.call(wi(n)),Ub([&amp;amp;quot;resourceStore&amp;amp;quot;,&amp;amp;quot;languageUtils&amp;amp;quot;,&amp;amp;quot;pluralResolver&amp;amp;quot;,&amp;amp;quot;interpolator&amp;amp;quot;,&amp;amp;quot;backendConnector&amp;amp;quot;,&amp;amp;quot;i18nFormat&amp;amp;quot;,&amp;amp;quot;utils&amp;amp;quot;],r,wi(n)),n.options=s,n.options.keySeparator===void 0&amp;amp;amp;&amp;amp;amp;(n.options.keySeparator=&amp;amp;quot;.&amp;amp;quot;),n.logger=Ci.create(&amp;amp;quot;translator&amp;amp;quot;),n}return Cr(t,[{key:&amp;amp;quot;changeLanguage&amp;amp;quot;,value:function(n){n&amp;amp;amp;&amp;amp;amp;(this.language=n)}},{key:&amp;amp;quot;exists&amp;amp;quot;,value:function(n){var s=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{interpolation:{}},a=this.resolve(n,s);return a&amp;amp;amp;&amp;amp;amp;a.res!==void 0}},{key:&amp;amp;quot;extractFromKey&amp;amp;quot;,value:function(n,s){var a=s.nsSeparator!==void 0?s.nsSeparator:this.options.nsSeparator;a===void 0&amp;amp;amp;&amp;amp;amp;(a=&amp;amp;quot;:&amp;amp;quot;);var o=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,u=s.ns||this.options.defaultNS;if(a&amp;amp;amp;&amp;amp;amp;n.indexOf(a)&amp;amp;gt;-1){var h=n.match(this.interpolator.nestingRegexp);if(h&amp;amp;amp;&amp;amp;amp;h.length&amp;amp;gt;0)return{key:n,namespaces:u};var l=n.split(a);(a!==o||a===o&amp;amp;amp;&amp;amp;amp;this.options.ns.indexOf(l[0])&amp;amp;gt;-1)&amp;amp;amp;&amp;amp;amp;(u=l.shift()),n=l.join(o)}return typeof u==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u=[u]),{key:n,namespaces:u}}},{key:&amp;amp;quot;translate&amp;amp;quot;,value:function(n,s,a){var o=this;if($t(s)!==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.options.overloadTranslationOptionHandler&amp;amp;amp;&amp;amp;amp;(s=this.options.overloadTranslationOptionHandler(arguments)),s||(s={}),n==null)return&amp;amp;quot;&amp;amp;quot;;Array.isArray(n)||(n=[String(n)]);var u=s.keySeparator!==void 0?s.keySeparator:this.options.keySeparator,h=this.extractFromKey(n[n.length-1],s),l=h.key,c=h.namespaces,p=c[c.length-1],f=s.lng||this.language,d=s.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(f&amp;amp;amp;&amp;amp;amp;f.toLowerCase()===&amp;amp;quot;cimode&amp;amp;quot;){if(d){var m=s.nsSeparator||this.options.nsSeparator;return p+m+l}return l}var g=this.resolve(n,s),v=g&amp;amp;amp;&amp;amp;amp;g.res,w=g&amp;amp;amp;&amp;amp;amp;g.usedKey||l,y=g&amp;amp;amp;&amp;amp;amp;g.exactUsedKey||l,S=Object.prototype.toString.apply(v),_=[&amp;amp;quot;[object Number]&amp;amp;quot;,&amp;amp;quot;[object Function]&amp;amp;quot;,&amp;amp;quot;[object RegExp]&amp;amp;quot;],b=s.joinArrays!==void 0?s.joinArrays:this.options.joinArrays,I=!this.i18nFormat||this.i18nFormat.handleAsObject,E=typeof v!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof v!=&amp;amp;quot;boolean&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof v!=&amp;amp;quot;number&amp;amp;quot;;if(I&amp;amp;amp;&amp;amp;amp;v&amp;amp;amp;&amp;amp;amp;E&amp;amp;amp;&amp;amp;amp;_.indexOf(S)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;!(typeof b==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;S===&amp;amp;quot;[object Array]&amp;amp;quot;)){if(!s.returnObjects&amp;amp;amp;&amp;amp;amp;!this.options.returnObjects)return this.logger.warn(&amp;amp;quot;accessing an object - but returnObjects options is not enabled!&amp;amp;quot;),this.options.returnedObjectHandler?this.options.returnedObjectHandler(w,v,s):&amp;amp;quot;key &amp;amp;#39;&amp;amp;quot;.concat(l,&amp;amp;quot; (&amp;amp;quot;).concat(this.language,&amp;amp;quot;)&amp;amp;#39; returned an object instead of string.&amp;amp;quot;);if(u){var A=S===&amp;amp;quot;[object Array]&amp;amp;quot;,C=A?[]:{},T=A?y:w;for(var D in v)if(Object.prototype.hasOwnProperty.call(v,D)){var F=&amp;amp;quot;&amp;amp;quot;.concat(T).concat(u).concat(D);C[D]=this.translate(F,kt({},s,{joinArrays:!1,ns:c})),C[D]===F&amp;amp;amp;&amp;amp;amp;(C[D]=v[D])}v=C}}else if(I&amp;amp;amp;&amp;amp;amp;typeof b==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;S===&amp;amp;quot;[object Array]&amp;amp;quot;)v=v.join(b),v&amp;amp;amp;&amp;amp;amp;(v=this.extendTranslation(v,n,s,a));else{var N=!1,B=!1,U=s.count!==void 0&amp;amp;amp;&amp;amp;amp;typeof s.count!=&amp;amp;quot;string&amp;amp;quot;,j=t.hasDefaultValue(s),W=U?this.pluralResolver.getSuffix(f,s.count):&amp;amp;quot;&amp;amp;quot;,te=s[&amp;amp;quot;defaultValue&amp;amp;quot;.concat(W)]||s.defaultValue;!this.isValidLookup(v)&amp;amp;amp;&amp;amp;amp;j&amp;amp;amp;&amp;amp;amp;(N=!0,v=te),this.isValidLookup(v)||(B=!0,v=l);var X=j&amp;amp;amp;&amp;amp;amp;te!==v&amp;amp;amp;&amp;amp;amp;this.options.updateMissing;if(B||N||X){if(this.logger.log(X?&amp;amp;quot;updateKey&amp;amp;quot;:&amp;amp;quot;missingKey&amp;amp;quot;,f,p,l,X?te:v),u){var Z=this.resolve(l,kt({},s,{keySeparator:!1}));Z&amp;amp;amp;&amp;amp;amp;Z.res&amp;amp;amp;&amp;amp;amp;this.logger.warn(&amp;amp;quot;Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.&amp;amp;quot;)}var G=[],q=this.languageUtils.getFallbackCodes(this.options.fallbackLng,s.lng||this.language);if(this.options.saveMissingTo===&amp;amp;quot;fallback&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;q&amp;amp;amp;&amp;amp;amp;q[0])for(var J=0;J&amp;amp;lt;q.length;J++)G.push(q[J]);else this.options.saveMissingTo===&amp;amp;quot;all&amp;amp;quot;?G=this.languageUtils.toResolveHierarchy(s.lng||this.language):G.push(s.lng||this.language);var Y=function(fe,de,me){o.options.missingKeyHandler?o.options.missingKeyHandler(fe,p,de,X?me:v,X,s):o.backendConnector&amp;amp;amp;&amp;amp;amp;o.backendConnector.saveMissing&amp;amp;amp;&amp;amp;amp;o.backendConnector.saveMissing(fe,p,de,X?me:v,X,s),o.emit(&amp;amp;quot;missingKey&amp;amp;quot;,fe,p,de,v)};this.options.saveMissing&amp;amp;amp;&amp;amp;amp;(this.options.saveMissingPlurals&amp;amp;amp;&amp;amp;amp;U?G.forEach(function(Q){o.pluralResolver.getSuffixes(Q).forEach(function(fe){Y([Q],l+fe,s[&amp;amp;quot;defaultValue&amp;amp;quot;.concat(fe)]||te)})}):Y(G,l,te))}v=this.extendTranslation(v,n,s,g,a),B&amp;amp;amp;&amp;amp;amp;v===l&amp;amp;amp;&amp;amp;amp;this.options.appendNamespaceToMissingKey&amp;amp;amp;&amp;amp;amp;(v=&amp;amp;quot;&amp;amp;quot;.concat(p,&amp;amp;quot;:&amp;amp;quot;).concat(l)),B&amp;amp;amp;&amp;amp;amp;this.options.parseMissingKeyHandler&amp;amp;amp;&amp;amp;amp;(v=this.options.parseMissingKeyHandler(v))}return v}},{key:&amp;amp;quot;extendTranslation&amp;amp;quot;,value:function(n,s,a,o,u){var h=this;if(this.i18nFormat&amp;amp;amp;&amp;amp;amp;this.i18nFormat.parse)n=this.i18nFormat.parse(n,a,o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!a.skipInterpolation){a.interpolation&amp;amp;amp;&amp;amp;amp;this.interpolator.init(kt({},a,{interpolation:kt({},this.options.interpolation,a.interpolation)}));var l=a.interpolation&amp;amp;amp;&amp;amp;amp;a.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables,c;if(l){var p=n.match(this.interpolator.nestingRegexp);c=p&amp;amp;amp;&amp;amp;amp;p.length}var f=a.replace&amp;amp;amp;&amp;amp;amp;typeof a.replace!=&amp;amp;quot;string&amp;amp;quot;?a.replace:a;if(this.options.interpolation.defaultVariables&amp;amp;amp;&amp;amp;amp;(f=kt({},this.options.interpolation.defaultVariables,f)),n=this.interpolator.interpolate(n,f,a.lng||this.language,a),l){var d=n.match(this.interpolator.nestingRegexp),m=d&amp;amp;amp;&amp;amp;amp;d.length;c&amp;amp;lt;m&amp;amp;amp;&amp;amp;amp;(a.nest=!1)}a.nest!==!1&amp;amp;amp;&amp;amp;amp;(n=this.interpolator.nest(n,function(){for(var w=arguments.length,y=new Array(w),S=0;S&amp;amp;lt;w;S++)y[S]=arguments[S];return u&amp;amp;amp;&amp;amp;amp;u[0]===y[0]&amp;amp;amp;&amp;amp;amp;!a.context?(h.logger.warn(&amp;amp;quot;It seems you are nesting recursively key: &amp;amp;quot;.concat(y[0],&amp;amp;quot; in key: &amp;amp;quot;).concat(s[0])),null):h.translate.apply(h,y.concat([s]))},a)),a.interpolation&amp;amp;amp;&amp;amp;amp;this.interpolator.reset()}var g=a.postProcess||this.options.postProcess,v=typeof g==&amp;amp;quot;string&amp;amp;quot;?[g]:g;return n!=null&amp;amp;amp;&amp;amp;amp;v&amp;amp;amp;&amp;amp;amp;v.length&amp;amp;amp;&amp;amp;amp;a.applyPostProcessor!==!1&amp;amp;amp;&amp;amp;amp;(n=a0.handle(v,n,s,this.options&amp;amp;amp;&amp;amp;amp;this.options.postProcessPassResolved?kt({i18nResolved:o},a):a,this)),n}},{key:&amp;amp;quot;resolve&amp;amp;quot;,value:function(n){var s=this,a=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{},o,u,h,l,c;return typeof n==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=[n]),n.forEach(function(p){if(!s.isValidLookup(o)){var f=s.extractFromKey(p,a),d=f.key;u=d;var m=f.namespaces;s.options.fallbackNS&amp;amp;amp;&amp;amp;amp;(m=m.concat(s.options.fallbackNS));var g=a.count!==void 0&amp;amp;amp;&amp;amp;amp;typeof a.count!=&amp;amp;quot;string&amp;amp;quot;,v=a.context!==void 0&amp;amp;amp;&amp;amp;amp;typeof a.context==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a.context!==&amp;amp;quot;&amp;amp;quot;,w=a.lngs?a.lngs:s.languageUtils.toResolveHierarchy(a.lng||s.language,a.fallbackLng);m.forEach(function(y){s.isValidLookup(o)||(c=y,!r0[&amp;amp;quot;&amp;amp;quot;.concat(w[0],&amp;amp;quot;-&amp;amp;quot;).concat(y)]&amp;amp;amp;&amp;amp;amp;s.utils&amp;amp;amp;&amp;amp;amp;s.utils.hasLoadedNamespace&amp;amp;amp;&amp;amp;amp;!s.utils.hasLoadedNamespace(c)&amp;amp;amp;&amp;amp;amp;(r0[&amp;amp;quot;&amp;amp;quot;.concat(w[0],&amp;amp;quot;-&amp;amp;quot;).concat(y)]=!0,s.logger.warn(&amp;amp;#39;key &amp;amp;quot;&amp;amp;#39;.concat(u,&amp;amp;#39;&amp;amp;quot; for languages &amp;amp;quot;&amp;amp;#39;).concat(w.join(&amp;amp;quot;, &amp;amp;quot;),`&amp;amp;quot; won&amp;amp;#39;t get resolved as namespace &amp;amp;quot;`).concat(c,&amp;amp;#39;&amp;amp;quot; was not yet loaded&amp;amp;#39;),&amp;amp;quot;This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!&amp;amp;quot;)),w.forEach(function(S){if(!s.isValidLookup(o)){l=S;var _=d,b=[_];if(s.i18nFormat&amp;amp;amp;&amp;amp;amp;s.i18nFormat.addLookupKeys)s.i18nFormat.addLookupKeys(b,d,S,y,a);else{var I;g&amp;amp;amp;&amp;amp;amp;(I=s.pluralResolver.getSuffix(S,a.count)),g&amp;amp;amp;&amp;amp;amp;v&amp;amp;amp;&amp;amp;amp;b.push(_+I),v&amp;amp;amp;&amp;amp;amp;b.push(_+=&amp;amp;quot;&amp;amp;quot;.concat(s.options.contextSeparator).concat(a.context)),g&amp;amp;amp;&amp;amp;amp;b.push(_+=I)}for(var E;E=b.pop();)s.isValidLookup(o)||(h=E,o=s.getResource(S,y,E,a))}}))})}}),{res:o,usedKey:u,exactUsedKey:h,usedLng:l,usedNS:c}}},{key:&amp;amp;quot;isValidLookup&amp;amp;quot;,value:function(n){return n!==void 0&amp;amp;amp;&amp;amp;amp;!(!this.options.returnNull&amp;amp;amp;&amp;amp;amp;n===null)&amp;amp;amp;&amp;amp;amp;!(!this.options.returnEmptyString&amp;amp;amp;&amp;amp;amp;n===&amp;amp;quot;&amp;amp;quot;)}},{key:&amp;amp;quot;getResource&amp;amp;quot;,value:function(n,s,a){var o=arguments.length&amp;amp;gt;3&amp;amp;amp;&amp;amp;amp;arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&amp;amp;amp;&amp;amp;amp;this.i18nFormat.getResource?this.i18nFormat.getResource(n,s,a,o):this.resourceStore.getResource(n,s,a,o)}}],[{key:&amp;amp;quot;hasDefaultValue&amp;amp;quot;,value:function(n){var s=&amp;amp;quot;defaultValue&amp;amp;quot;;for(var a in n)if(Object.prototype.hasOwnProperty.call(n,a)&amp;amp;amp;&amp;amp;amp;s===a.substring(0,s.length)&amp;amp;amp;&amp;amp;amp;n[a]!==void 0)return!0;return!1}}]),t}(Zi);function Zc(i){return i.charAt(0).toUpperCase()+i.slice(1)}var Hb=function(){function i(t){wr(this,i),this.options=t,this.whitelist=this.options.supportedLngs||!1,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ci.create(&amp;amp;quot;languageUtils&amp;amp;quot;)}return Cr(i,[{key:&amp;amp;quot;getScriptPartFromCode&amp;amp;quot;,value:function(r){if(!r||r.indexOf(&amp;amp;quot;-&amp;amp;quot;)&amp;amp;lt;0)return null;var n=r.split(&amp;amp;quot;-&amp;amp;quot;);return n.length===2||(n.pop(),n[n.length-1].toLowerCase()===&amp;amp;quot;x&amp;amp;quot;)?null:this.formatLanguageCode(n.join(&amp;amp;quot;-&amp;amp;quot;))}},{key:&amp;amp;quot;getLanguagePartFromCode&amp;amp;quot;,value:function(r){if(!r||r.indexOf(&amp;amp;quot;-&amp;amp;quot;)&amp;amp;lt;0)return r;var n=r.split(&amp;amp;quot;-&amp;amp;quot;);return this.formatLanguageCode(n[0])}},{key:&amp;amp;quot;formatLanguageCode&amp;amp;quot;,value:function(r){if(typeof r==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r.indexOf(&amp;amp;quot;-&amp;amp;quot;)&amp;amp;gt;-1){var n=[&amp;amp;quot;hans&amp;amp;quot;,&amp;amp;quot;hant&amp;amp;quot;,&amp;amp;quot;latn&amp;amp;quot;,&amp;amp;quot;cyrl&amp;amp;quot;,&amp;amp;quot;cans&amp;amp;quot;,&amp;amp;quot;mong&amp;amp;quot;,&amp;amp;quot;arab&amp;amp;quot;],s=r.split(&amp;amp;quot;-&amp;amp;quot;);return this.options.lowerCaseLng?s=s.map(function(a){return a.toLowerCase()}):s.length===2?(s[0]=s[0].toLowerCase(),s[1]=s[1].toUpperCase(),n.indexOf(s[1].toLowerCase())&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(s[1]=Zc(s[1].toLowerCase()))):s.length===3&amp;amp;amp;&amp;amp;amp;(s[0]=s[0].toLowerCase(),s[1].length===2&amp;amp;amp;&amp;amp;amp;(s[1]=s[1].toUpperCase()),s[0]!==&amp;amp;quot;sgn&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s[2].length===2&amp;amp;amp;&amp;amp;amp;(s[2]=s[2].toUpperCase()),n.indexOf(s[1].toLowerCase())&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(s[1]=Zc(s[1].toLowerCase())),n.indexOf(s[2].toLowerCase())&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(s[2]=Zc(s[2].toLowerCase()))),s.join(&amp;amp;quot;-&amp;amp;quot;)}return this.options.cleanCode||this.options.lowerCaseLng?r.toLowerCase():r}},{key:&amp;amp;quot;isWhitelisted&amp;amp;quot;,value:function(r){return this.logger.deprecate(&amp;amp;quot;languageUtils.isWhitelisted&amp;amp;quot;,`function &amp;amp;quot;isWhitelisted&amp;amp;quot; will be renamed to &amp;amp;quot;isSupportedCode&amp;amp;quot; in the next major - please make sure to rename it&amp;amp;#39;s usage asap.`),this.isSupportedCode(r)}},{key:&amp;amp;quot;isSupportedCode&amp;amp;quot;,value:function(r){return(this.options.load===&amp;amp;quot;languageOnly&amp;amp;quot;||this.options.nonExplicitSupportedLngs)&amp;amp;amp;&amp;amp;amp;(r=this.getLanguagePartFromCode(r)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(r)&amp;amp;gt;-1}},{key:&amp;amp;quot;getBestMatchFromCodes&amp;amp;quot;,value:function(r){var n=this;if(!r)return null;var s;return r.forEach(function(a){if(!s){var o=n.formatLanguageCode(a);(!n.options.supportedLngs||n.isSupportedCode(o))&amp;amp;amp;&amp;amp;amp;(s=o)}}),!s&amp;amp;amp;&amp;amp;amp;this.options.supportedLngs&amp;amp;amp;&amp;amp;amp;r.forEach(function(a){if(!s){var o=n.getLanguagePartFromCode(a);if(n.isSupportedCode(o))return s=o;s=n.options.supportedLngs.find(function(u){if(u.indexOf(o)===0)return u})}}),s||(s=this.getFallbackCodes(this.options.fallbackLng)[0]),s}},{key:&amp;amp;quot;getFallbackCodes&amp;amp;quot;,value:function(r,n){if(!r)return[];if(typeof r==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=r(n)),typeof r==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=[r]),Object.prototype.toString.apply(r)===&amp;amp;quot;[object Array]&amp;amp;quot;)return r;if(!n)return r.default||[];var s=r[n];return s||(s=r[this.getScriptPartFromCode(n)]),s||(s=r[this.formatLanguageCode(n)]),s||(s=r[this.getLanguagePartFromCode(n)]),s||(s=r.default),s||[]}},{key:&amp;amp;quot;toResolveHierarchy&amp;amp;quot;,value:function(r,n){var s=this,a=this.getFallbackCodes(n||this.options.fallbackLng||[],r),o=[],u=function(l){l&amp;amp;amp;&amp;amp;amp;(s.isSupportedCode(l)?o.push(l):s.logger.warn(&amp;amp;quot;rejecting language code not found in supportedLngs: &amp;amp;quot;.concat(l)))};return typeof r==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r.indexOf(&amp;amp;quot;-&amp;amp;quot;)&amp;amp;gt;-1?(this.options.load!==&amp;amp;quot;languageOnly&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u(this.formatLanguageCode(r)),this.options.load!==&amp;amp;quot;languageOnly&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.options.load!==&amp;amp;quot;currentOnly&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u(this.getScriptPartFromCode(r)),this.options.load!==&amp;amp;quot;currentOnly&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u(this.getLanguagePartFromCode(r))):typeof r==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u(this.formatLanguageCode(r)),a.forEach(function(h){o.indexOf(h)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;u(s.formatLanguageCode(h))}),o}}]),i}(),Wb=[{lngs:[&amp;amp;quot;ach&amp;amp;quot;,&amp;amp;quot;ak&amp;amp;quot;,&amp;amp;quot;am&amp;amp;quot;,&amp;amp;quot;arn&amp;amp;quot;,&amp;amp;quot;br&amp;amp;quot;,&amp;amp;quot;fil&amp;amp;quot;,&amp;amp;quot;gun&amp;amp;quot;,&amp;amp;quot;ln&amp;amp;quot;,&amp;amp;quot;mfe&amp;amp;quot;,&amp;amp;quot;mg&amp;amp;quot;,&amp;amp;quot;mi&amp;amp;quot;,&amp;amp;quot;oc&amp;amp;quot;,&amp;amp;quot;pt&amp;amp;quot;,&amp;amp;quot;pt-BR&amp;amp;quot;,&amp;amp;quot;tg&amp;amp;quot;,&amp;amp;quot;tl&amp;amp;quot;,&amp;amp;quot;ti&amp;amp;quot;,&amp;amp;quot;tr&amp;amp;quot;,&amp;amp;quot;uz&amp;amp;quot;,&amp;amp;quot;wa&amp;amp;quot;],nr:[1,2],fc:1},{lngs:[&amp;amp;quot;af&amp;amp;quot;,&amp;amp;quot;an&amp;amp;quot;,&amp;amp;quot;ast&amp;amp;quot;,&amp;amp;quot;az&amp;amp;quot;,&amp;amp;quot;bg&amp;amp;quot;,&amp;amp;quot;bn&amp;amp;quot;,&amp;amp;quot;ca&amp;amp;quot;,&amp;amp;quot;da&amp;amp;quot;,&amp;amp;quot;de&amp;amp;quot;,&amp;amp;quot;dev&amp;amp;quot;,&amp;amp;quot;el&amp;amp;quot;,&amp;amp;quot;en&amp;amp;quot;,&amp;amp;quot;eo&amp;amp;quot;,&amp;amp;quot;es&amp;amp;quot;,&amp;amp;quot;et&amp;amp;quot;,&amp;amp;quot;eu&amp;amp;quot;,&amp;amp;quot;fi&amp;amp;quot;,&amp;amp;quot;fo&amp;amp;quot;,&amp;amp;quot;fur&amp;amp;quot;,&amp;amp;quot;fy&amp;amp;quot;,&amp;amp;quot;gl&amp;amp;quot;,&amp;amp;quot;gu&amp;amp;quot;,&amp;amp;quot;ha&amp;amp;quot;,&amp;amp;quot;hi&amp;amp;quot;,&amp;amp;quot;hu&amp;amp;quot;,&amp;amp;quot;hy&amp;amp;quot;,&amp;amp;quot;ia&amp;amp;quot;,&amp;amp;quot;it&amp;amp;quot;,&amp;amp;quot;kn&amp;amp;quot;,&amp;amp;quot;ku&amp;amp;quot;,&amp;amp;quot;lb&amp;amp;quot;,&amp;amp;quot;mai&amp;amp;quot;,&amp;amp;quot;ml&amp;amp;quot;,&amp;amp;quot;mn&amp;amp;quot;,&amp;amp;quot;mr&amp;amp;quot;,&amp;amp;quot;nah&amp;amp;quot;,&amp;amp;quot;nap&amp;amp;quot;,&amp;amp;quot;nb&amp;amp;quot;,&amp;amp;quot;ne&amp;amp;quot;,&amp;amp;quot;nl&amp;amp;quot;,&amp;amp;quot;nn&amp;amp;quot;,&amp;amp;quot;no&amp;amp;quot;,&amp;amp;quot;nso&amp;amp;quot;,&amp;amp;quot;pa&amp;amp;quot;,&amp;amp;quot;pap&amp;amp;quot;,&amp;amp;quot;pms&amp;amp;quot;,&amp;amp;quot;ps&amp;amp;quot;,&amp;amp;quot;pt-PT&amp;amp;quot;,&amp;amp;quot;rm&amp;amp;quot;,&amp;amp;quot;sco&amp;amp;quot;,&amp;amp;quot;se&amp;amp;quot;,&amp;amp;quot;si&amp;amp;quot;,&amp;amp;quot;so&amp;amp;quot;,&amp;amp;quot;son&amp;amp;quot;,&amp;amp;quot;sq&amp;amp;quot;,&amp;amp;quot;sv&amp;amp;quot;,&amp;amp;quot;sw&amp;amp;quot;,&amp;amp;quot;ta&amp;amp;quot;,&amp;amp;quot;te&amp;amp;quot;,&amp;amp;quot;tk&amp;amp;quot;,&amp;amp;quot;ur&amp;amp;quot;,&amp;amp;quot;yo&amp;amp;quot;],nr:[1,2],fc:2},{lngs:[&amp;amp;quot;ay&amp;amp;quot;,&amp;amp;quot;bo&amp;amp;quot;,&amp;amp;quot;cgg&amp;amp;quot;,&amp;amp;quot;fa&amp;amp;quot;,&amp;amp;quot;ht&amp;amp;quot;,&amp;amp;quot;id&amp;amp;quot;,&amp;amp;quot;ja&amp;amp;quot;,&amp;amp;quot;jbo&amp;amp;quot;,&amp;amp;quot;ka&amp;amp;quot;,&amp;amp;quot;kk&amp;amp;quot;,&amp;amp;quot;km&amp;amp;quot;,&amp;amp;quot;ko&amp;amp;quot;,&amp;amp;quot;ky&amp;amp;quot;,&amp;amp;quot;lo&amp;amp;quot;,&amp;amp;quot;ms&amp;amp;quot;,&amp;amp;quot;sah&amp;amp;quot;,&amp;amp;quot;su&amp;amp;quot;,&amp;amp;quot;th&amp;amp;quot;,&amp;amp;quot;tt&amp;amp;quot;,&amp;amp;quot;ug&amp;amp;quot;,&amp;amp;quot;vi&amp;amp;quot;,&amp;amp;quot;wo&amp;amp;quot;,&amp;amp;quot;zh&amp;amp;quot;],nr:[1],fc:3},{lngs:[&amp;amp;quot;be&amp;amp;quot;,&amp;amp;quot;bs&amp;amp;quot;,&amp;amp;quot;cnr&amp;amp;quot;,&amp;amp;quot;dz&amp;amp;quot;,&amp;amp;quot;hr&amp;amp;quot;,&amp;amp;quot;ru&amp;amp;quot;,&amp;amp;quot;sr&amp;amp;quot;,&amp;amp;quot;uk&amp;amp;quot;],nr:[1,2,5],fc:4},{lngs:[&amp;amp;quot;ar&amp;amp;quot;],nr:[0,1,2,3,11,100],fc:5},{lngs:[&amp;amp;quot;cs&amp;amp;quot;,&amp;amp;quot;sk&amp;amp;quot;],nr:[1,2,5],fc:6},{lngs:[&amp;amp;quot;csb&amp;amp;quot;,&amp;amp;quot;pl&amp;amp;quot;],nr:[1,2,5],fc:7},{lngs:[&amp;amp;quot;cy&amp;amp;quot;],nr:[1,2,3,8],fc:8},{lngs:[&amp;amp;quot;fr&amp;amp;quot;],nr:[1,2],fc:9},{lngs:[&amp;amp;quot;ga&amp;amp;quot;],nr:[1,2,3,7,11],fc:10},{lngs:[&amp;amp;quot;gd&amp;amp;quot;],nr:[1,2,3,20],fc:11},{lngs:[&amp;amp;quot;is&amp;amp;quot;],nr:[1,2],fc:12},{lngs:[&amp;amp;quot;jv&amp;amp;quot;],nr:[0,1],fc:13},{lngs:[&amp;amp;quot;kw&amp;amp;quot;],nr:[1,2,3,4],fc:14},{lngs:[&amp;amp;quot;lt&amp;amp;quot;],nr:[1,2,10],fc:15},{lngs:[&amp;amp;quot;lv&amp;amp;quot;],nr:[1,2,0],fc:16},{lngs:[&amp;amp;quot;mk&amp;amp;quot;],nr:[1,2],fc:17},{lngs:[&amp;amp;quot;mnk&amp;amp;quot;],nr:[0,1,2],fc:18},{lngs:[&amp;amp;quot;mt&amp;amp;quot;],nr:[1,2,11,20],fc:19},{lngs:[&amp;amp;quot;or&amp;amp;quot;],nr:[2,1],fc:2},{lngs:[&amp;amp;quot;ro&amp;amp;quot;],nr:[1,2,20],fc:20},{lngs:[&amp;amp;quot;sl&amp;amp;quot;],nr:[5,1,2,3],fc:21},{lngs:[&amp;amp;quot;he&amp;amp;quot;,&amp;amp;quot;iw&amp;amp;quot;],nr:[1,2,20,21],fc:22}],qb={1:function(t){return+(t&amp;amp;gt;1)},2:function(t){return+(t!=1)},3:function(t){return 0},4:function(t){return t%10==1&amp;amp;amp;&amp;amp;amp;t%100!=11?0:t%10&amp;amp;gt;=2&amp;amp;amp;&amp;amp;amp;t%10&amp;amp;lt;=4&amp;amp;amp;&amp;amp;amp;(t%100&amp;amp;lt;10||t%100&amp;amp;gt;=20)?1:2},5:function(t){return t==0?0:t==1?1:t==2?2:t%100&amp;amp;gt;=3&amp;amp;amp;&amp;amp;amp;t%100&amp;amp;lt;=10?3:t%100&amp;amp;gt;=11?4:5},6:function(t){return t==1?0:t&amp;amp;gt;=2&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;=4?1:2},7:function(t){return t==1?0:t%10&amp;amp;gt;=2&amp;amp;amp;&amp;amp;amp;t%10&amp;amp;lt;=4&amp;amp;amp;&amp;amp;amp;(t%100&amp;amp;lt;10||t%100&amp;amp;gt;=20)?1:2},8:function(t){return t==1?0:t==2?1:t!=8&amp;amp;amp;&amp;amp;amp;t!=11?2:3},9:function(t){return+(t&amp;amp;gt;=2)},10:function(t){return t==1?0:t==2?1:t&amp;amp;lt;7?2:t&amp;amp;lt;11?3:4},11:function(t){return t==1||t==11?0:t==2||t==12?1:t&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;20?2:3},12:function(t){return+(t%10!=1||t%100==11)},13:function(t){return+(t!==0)},14:function(t){return t==1?0:t==2?1:t==3?2:3},15:function(t){return t%10==1&amp;amp;amp;&amp;amp;amp;t%100!=11?0:t%10&amp;amp;gt;=2&amp;amp;amp;&amp;amp;amp;(t%100&amp;amp;lt;10||t%100&amp;amp;gt;=20)?1:2},16:function(t){return t%10==1&amp;amp;amp;&amp;amp;amp;t%100!=11?0:t!==0?1:2},17:function(t){return t==1||t%10==1&amp;amp;amp;&amp;amp;amp;t%100!=11?0:1},18:function(t){return t==0?0:t==1?1:2},19:function(t){return t==1?0:t==0||t%100&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;t%100&amp;amp;lt;11?1:t%100&amp;amp;gt;10&amp;amp;amp;&amp;amp;amp;t%100&amp;amp;lt;20?2:3},20:function(t){return t==1?0:t==0||t%100&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;t%100&amp;amp;lt;20?1:2},21:function(t){return t%100==1?1:t%100==2?2:t%100==3||t%100==4?3:0},22:function(t){return t==1?0:t==2?1:(t&amp;amp;lt;0||t&amp;amp;gt;10)&amp;amp;amp;&amp;amp;amp;t%10==0?2:3}};function Zb(){var i={};return Wb.forEach(function(t){t.lngs.forEach(function(r){i[r]={numbers:t.nr,plurals:qb[t.fc]}})}),i}var Yb=function(){function i(t){var r=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{};wr(this,i),this.languageUtils=t,this.options=r,this.logger=Ci.create(&amp;amp;quot;pluralResolver&amp;amp;quot;),this.rules=Zb()}return Cr(i,[{key:&amp;amp;quot;addRule&amp;amp;quot;,value:function(r,n){this.rules[r]=n}},{key:&amp;amp;quot;getRule&amp;amp;quot;,value:function(r){return this.rules[r]||this.rules[this.languageUtils.getLanguagePartFromCode(r)]}},{key:&amp;amp;quot;needsPlural&amp;amp;quot;,value:function(r){var n=this.getRule(r);return n&amp;amp;amp;&amp;amp;amp;n.numbers.length&amp;amp;gt;1}},{key:&amp;amp;quot;getPluralFormsOfKey&amp;amp;quot;,value:function(r,n){return this.getSuffixes(r).map(function(s){return n+s})}},{key:&amp;amp;quot;getSuffixes&amp;amp;quot;,value:function(r){var n=this,s=this.getRule(r);return s?s.numbers.map(function(a){return n.getSuffix(r,a)}):[]}},{key:&amp;amp;quot;getSuffix&amp;amp;quot;,value:function(r,n){var s=this,a=this.getRule(r);if(a){var o=a.noAbs?a.plurals(n):a.plurals(Math.abs(n)),u=a.numbers[o];this.options.simplifyPluralSuffix&amp;amp;amp;&amp;amp;amp;a.numbers.length===2&amp;amp;amp;&amp;amp;amp;a.numbers[0]===1&amp;amp;amp;&amp;amp;amp;(u===2?u=&amp;amp;quot;plural&amp;amp;quot;:u===1&amp;amp;amp;&amp;amp;amp;(u=&amp;amp;quot;&amp;amp;quot;));var h=function(){return s.options.prepend&amp;amp;amp;&amp;amp;amp;u.toString()?s.options.prepend+u.toString():u.toString()};return this.options.compatibilityJSON===&amp;amp;quot;v1&amp;amp;quot;?u===1?&amp;amp;quot;&amp;amp;quot;:typeof u==&amp;amp;quot;number&amp;amp;quot;?&amp;amp;quot;_plural_&amp;amp;quot;.concat(u.toString()):h():this.options.compatibilityJSON===&amp;amp;quot;v2&amp;amp;quot;||this.options.simplifyPluralSuffix&amp;amp;amp;&amp;amp;amp;a.numbers.length===2&amp;amp;amp;&amp;amp;amp;a.numbers[0]===1?h():this.options.prepend&amp;amp;amp;&amp;amp;amp;o.toString()?this.options.prepend+o.toString():o.toString()}return this.logger.warn(&amp;amp;quot;no plural rule found for: &amp;amp;quot;.concat(r)),&amp;amp;quot;&amp;amp;quot;}}]),i}(),Xb=function(){function i(){var t=arguments.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;arguments[0]!==void 0?arguments[0]:{};wr(this,i),this.logger=Ci.create(&amp;amp;quot;interpolator&amp;amp;quot;),this.options=t,this.format=t.interpolation&amp;amp;amp;&amp;amp;amp;t.interpolation.format||function(r){return r},this.init(t)}return Cr(i,[{key:&amp;amp;quot;init&amp;amp;quot;,value:function(){var r=arguments.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;arguments[0]!==void 0?arguments[0]:{};r.interpolation||(r.interpolation={escapeValue:!0});var n=r.interpolation;this.escape=n.escape!==void 0?n.escape:jb,this.escapeValue=n.escapeValue!==void 0?n.escapeValue:!0,this.useRawValueToEscape=n.useRawValueToEscape!==void 0?n.useRawValueToEscape:!1,this.prefix=n.prefix?ks(n.prefix):n.prefixEscaped||&amp;amp;quot;{{&amp;amp;quot;,this.suffix=n.suffix?ks(n.suffix):n.suffixEscaped||&amp;amp;quot;}}&amp;amp;quot;,this.formatSeparator=n.formatSeparator?n.formatSeparator:n.formatSeparator||&amp;amp;quot;,&amp;amp;quot;,this.unescapePrefix=n.unescapeSuffix?&amp;amp;quot;&amp;amp;quot;:n.unescapePrefix||&amp;amp;quot;-&amp;amp;quot;,this.unescapeSuffix=this.unescapePrefix?&amp;amp;quot;&amp;amp;quot;:n.unescapeSuffix||&amp;amp;quot;&amp;amp;quot;,this.nestingPrefix=n.nestingPrefix?ks(n.nestingPrefix):n.nestingPrefixEscaped||ks(&amp;amp;quot;$t(&amp;amp;quot;),this.nestingSuffix=n.nestingSuffix?ks(n.nestingSuffix):n.nestingSuffixEscaped||ks(&amp;amp;quot;)&amp;amp;quot;),this.nestingOptionsSeparator=n.nestingOptionsSeparator?n.nestingOptionsSeparator:n.nestingOptionsSeparator||&amp;amp;quot;,&amp;amp;quot;,this.maxReplaces=n.maxReplaces?n.maxReplaces:1e3,this.alwaysFormat=n.alwaysFormat!==void 0?n.alwaysFormat:!1,this.resetRegExp()}},{key:&amp;amp;quot;reset&amp;amp;quot;,value:function(){this.options&amp;amp;amp;&amp;amp;amp;this.init(this.options)}},{key:&amp;amp;quot;resetRegExp&amp;amp;quot;,value:function(){var r=&amp;amp;quot;&amp;amp;quot;.concat(this.prefix,&amp;amp;quot;(.+?)&amp;amp;quot;).concat(this.suffix);this.regexp=new RegExp(r,&amp;amp;quot;g&amp;amp;quot;);var n=&amp;amp;quot;&amp;amp;quot;.concat(this.prefix).concat(this.unescapePrefix,&amp;amp;quot;(.+?)&amp;amp;quot;).concat(this.unescapeSuffix).concat(this.suffix);this.regexpUnescape=new RegExp(n,&amp;amp;quot;g&amp;amp;quot;);var s=&amp;amp;quot;&amp;amp;quot;.concat(this.nestingPrefix,&amp;amp;quot;(.+?)&amp;amp;quot;).concat(this.nestingSuffix);this.nestingRegexp=new RegExp(s,&amp;amp;quot;g&amp;amp;quot;)}},{key:&amp;amp;quot;interpolate&amp;amp;quot;,value:function(r,n,s,a){var o=this,u,h,l,c=this.options&amp;amp;amp;&amp;amp;amp;this.options.interpolation&amp;amp;amp;&amp;amp;amp;this.options.interpolation.defaultVariables||{};function p(v){return v.replace(/\$/g,&amp;amp;quot;$$$$&amp;amp;quot;)}var f=function(w){if(w.indexOf(o.formatSeparator)&amp;amp;lt;0){var y=t0(n,c,w);return o.alwaysFormat?o.format(y,void 0,s):y}var S=w.split(o.formatSeparator),_=S.shift().trim(),b=S.join(o.formatSeparator).trim();return o.format(t0(n,c,_),b,s,a)};this.resetRegExp();var d=a&amp;amp;amp;&amp;amp;amp;a.missingInterpolationHandler||this.options.missingInterpolationHandler,m=a&amp;amp;amp;&amp;amp;amp;a.interpolation&amp;amp;amp;&amp;amp;amp;a.interpolation.skipOnVariables||this.options.interpolation.skipOnVariables,g=[{regex:this.regexpUnescape,safeValue:function(w){return p(w)}},{regex:this.regexp,safeValue:function(w){return o.escapeValue?p(o.escape(w)):p(w)}}];return g.forEach(function(v){for(l=0;u=v.regex.exec(r);){if(h=f(u[1].trim()),h===void 0)if(typeof d==&amp;amp;quot;function&amp;amp;quot;){var w=d(r,u,a);h=typeof w==&amp;amp;quot;string&amp;amp;quot;?w:&amp;amp;quot;&amp;amp;quot;}else if(m){h=u[0];continue}else o.logger.warn(&amp;amp;quot;missed to pass in variable &amp;amp;quot;.concat(u[1],&amp;amp;quot; for interpolating &amp;amp;quot;).concat(r)),h=&amp;amp;quot;&amp;amp;quot;;else typeof h!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!o.useRawValueToEscape&amp;amp;amp;&amp;amp;amp;(h=Qm(h));if(r=r.replace(u[0],v.safeValue(h)),v.regex.lastIndex=0,l++,l&amp;amp;gt;=o.maxReplaces)break}}),r}},{key:&amp;amp;quot;nest&amp;amp;quot;,value:function(r,n){var s=this,a=arguments.length&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;arguments[2]!==void 0?arguments[2]:{},o,u,h=kt({},a);h.applyPostProcessor=!1,delete h.defaultValue;function l(d,m){var g=this.nestingOptionsSeparator;if(d.indexOf(g)&amp;amp;lt;0)return d;var v=d.split(new RegExp(&amp;amp;quot;&amp;amp;quot;.concat(g,&amp;amp;quot;[ ]*{&amp;amp;quot;))),w=&amp;amp;quot;{&amp;amp;quot;.concat(v[1]);d=v[0],w=this.interpolate(w,h),w=w.replace(/&amp;amp;#39;/g,&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;);try{h=JSON.parse(w),m&amp;amp;amp;&amp;amp;amp;(h=kt({},m,h))}catch(y){return this.logger.warn(&amp;amp;quot;failed parsing options string in nesting for key &amp;amp;quot;.concat(d),y),&amp;amp;quot;&amp;amp;quot;.concat(d).concat(g).concat(w)}return delete h.defaultValue,d}for(;o=this.nestingRegexp.exec(r);){var c=[],p=!1;if(o[0].includes(this.formatSeparator)&amp;amp;amp;&amp;amp;amp;!/{.*}/.test(o[1])){var f=o[1].split(this.formatSeparator).map(function(d){return d.trim()});o[1]=f.shift(),c=f,p=!0}if(u=n(l.call(this,o[1].trim(),h),h),u&amp;amp;amp;&amp;amp;amp;o[0]===r&amp;amp;amp;&amp;amp;amp;typeof u!=&amp;amp;quot;string&amp;amp;quot;)return u;typeof u!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u=Qm(u)),u||(this.logger.warn(&amp;amp;quot;missed to resolve &amp;amp;quot;.concat(o[1],&amp;amp;quot; for nesting &amp;amp;quot;).concat(r)),u=&amp;amp;quot;&amp;amp;quot;),p&amp;amp;amp;&amp;amp;amp;(u=c.reduce(function(d,m){return s.format(d,m,a.lng,a)},u.trim())),r=r.replace(o[0],u),this.regexp.lastIndex=0}return r}}]),i}();function Kb(i,t){for(var r=i.indexOf(t);r!==-1;)i.splice(r,1),r=i.indexOf(t)}var Jb=function(i){ao(t,i);function t(r,n,s){var a,o=arguments.length&amp;amp;gt;3&amp;amp;amp;&amp;amp;amp;arguments[3]!==void 0?arguments[3]:{};return wr(this,t),a=Is(this,Rn(t).call(this)),ml&amp;amp;amp;&amp;amp;amp;Zi.call(wi(a)),a.backend=r,a.store=n,a.services=s,a.languageUtils=s.languageUtils,a.options=o,a.logger=Ci.create(&amp;amp;quot;backendConnector&amp;amp;quot;),a.state={},a.queue=[],a.backend&amp;amp;amp;&amp;amp;amp;a.backend.init&amp;amp;amp;&amp;amp;amp;a.backend.init(s,o.backend,o),a}return Cr(t,[{key:&amp;amp;quot;queueLoad&amp;amp;quot;,value:function(n,s,a,o){var u=this,h=[],l=[],c=[],p=[];return n.forEach(function(f){var d=!0;s.forEach(function(m){var g=&amp;amp;quot;&amp;amp;quot;.concat(f,&amp;amp;quot;|&amp;amp;quot;).concat(m);!a.reload&amp;amp;amp;&amp;amp;amp;u.store.hasResourceBundle(f,m)?u.state[g]=2:u.state[g]&amp;amp;lt;0||(u.state[g]===1?l.indexOf(g)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;l.push(g):(u.state[g]=1,d=!1,l.indexOf(g)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;l.push(g),h.indexOf(g)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;h.push(g),p.indexOf(m)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;p.push(m)))}),d||c.push(f)}),(h.length||l.length)&amp;amp;amp;&amp;amp;amp;this.queue.push({pending:l,loaded:{},errors:[],callback:o}),{toLoad:h,pending:l,toLoadLanguages:c,toLoadNamespaces:p}}},{key:&amp;amp;quot;loaded&amp;amp;quot;,value:function(n,s,a){var o=n.split(&amp;amp;quot;|&amp;amp;quot;),u=o[0],h=o[1];s&amp;amp;amp;&amp;amp;amp;this.emit(&amp;amp;quot;failedLoading&amp;amp;quot;,u,h,s),a&amp;amp;amp;&amp;amp;amp;this.store.addResourceBundle(u,h,a),this.state[n]=s?-1:2;var l={};this.queue.forEach(function(c){Gb(c.loaded,[u],h),Kb(c.pending,n),s&amp;amp;amp;&amp;amp;amp;c.errors.push(s),c.pending.length===0&amp;amp;amp;&amp;amp;amp;!c.done&amp;amp;amp;&amp;amp;amp;(Object.keys(c.loaded).forEach(function(p){l[p]||(l[p]=[]),c.loaded[p].length&amp;amp;amp;&amp;amp;amp;c.loaded[p].forEach(function(f){l[p].indexOf(f)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;l[p].push(f)})}),c.done=!0,c.errors.length?c.callback(c.errors):c.callback())}),this.emit(&amp;amp;quot;loaded&amp;amp;quot;,l),this.queue=this.queue.filter(function(c){return!c.done})}},{key:&amp;amp;quot;read&amp;amp;quot;,value:function(n,s,a){var o=this,u=arguments.length&amp;amp;gt;3&amp;amp;amp;&amp;amp;amp;arguments[3]!==void 0?arguments[3]:0,h=arguments.length&amp;amp;gt;4&amp;amp;amp;&amp;amp;amp;arguments[4]!==void 0?arguments[4]:350,l=arguments.length&amp;amp;gt;5?arguments[5]:void 0;return n.length?this.backend[a](n,s,function(c,p){if(c&amp;amp;amp;&amp;amp;amp;p&amp;amp;amp;&amp;amp;amp;u&amp;amp;lt;5){setTimeout(function(){o.read.call(o,n,s,a,u+1,h*2,l)},h);return}l(c,p)}):l(null,{})}},{key:&amp;amp;quot;prepareLoading&amp;amp;quot;,value:function(n,s){var a=this,o=arguments.length&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;arguments[2]!==void 0?arguments[2]:{},u=arguments.length&amp;amp;gt;3?arguments[3]:void 0;if(!this.backend)return this.logger.warn(&amp;amp;quot;No backend was added via i18next.use. Will not load resources.&amp;amp;quot;),u&amp;amp;amp;&amp;amp;amp;u();typeof n==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=this.languageUtils.toResolveHierarchy(n)),typeof s==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s=[s]);var h=this.queueLoad(n,s,o,u);if(!h.toLoad.length)return h.pending.length||u(),null;h.toLoad.forEach(function(l){a.loadOne(l)})}},{key:&amp;amp;quot;load&amp;amp;quot;,value:function(n,s,a){this.prepareLoading(n,s,{},a)}},{key:&amp;amp;quot;reload&amp;amp;quot;,value:function(n,s,a){this.prepareLoading(n,s,{reload:!0},a)}},{key:&amp;amp;quot;loadOne&amp;amp;quot;,value:function(n){var s=this,a=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:&amp;amp;quot;&amp;amp;quot;,o=n.split(&amp;amp;quot;|&amp;amp;quot;),u=o[0],h=o[1];this.read(u,h,&amp;amp;quot;read&amp;amp;quot;,void 0,void 0,function(l,c){l&amp;amp;amp;&amp;amp;amp;s.logger.warn(&amp;amp;quot;&amp;amp;quot;.concat(a,&amp;amp;quot;loading namespace &amp;amp;quot;).concat(h,&amp;amp;quot; for language &amp;amp;quot;).concat(u,&amp;amp;quot; failed&amp;amp;quot;),l),!l&amp;amp;amp;&amp;amp;amp;c&amp;amp;amp;&amp;amp;amp;s.logger.log(&amp;amp;quot;&amp;amp;quot;.concat(a,&amp;amp;quot;loaded namespace &amp;amp;quot;).concat(h,&amp;amp;quot; for language &amp;amp;quot;).concat(u),c),s.loaded(n,l,c)})}},{key:&amp;amp;quot;saveMissing&amp;amp;quot;,value:function(n,s,a,o,u){var h=arguments.length&amp;amp;gt;5&amp;amp;amp;&amp;amp;amp;arguments[5]!==void 0?arguments[5]:{};if(this.services.utils&amp;amp;amp;&amp;amp;amp;this.services.utils.hasLoadedNamespace&amp;amp;amp;&amp;amp;amp;!this.services.utils.hasLoadedNamespace(s)){this.logger.warn(&amp;amp;#39;did not save key &amp;amp;quot;&amp;amp;#39;.concat(a,&amp;amp;#39;&amp;amp;quot; as the namespace &amp;amp;quot;&amp;amp;#39;).concat(s,&amp;amp;#39;&amp;amp;quot; was not yet loaded&amp;amp;#39;),&amp;amp;quot;This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!&amp;amp;quot;);return}a==null||a===&amp;amp;quot;&amp;amp;quot;||(this.backend&amp;amp;amp;&amp;amp;amp;this.backend.create&amp;amp;amp;&amp;amp;amp;this.backend.create(n,s,a,o,null,kt({},h,{isUpdate:u})),!(!n||!n[0])&amp;amp;amp;&amp;amp;amp;this.store.addResource(n[0],s,a,o))}}]),t}(Zi);function Qb(){return{debug:!1,initImmediate:!0,ns:[&amp;amp;quot;translation&amp;amp;quot;],defaultNS:[&amp;amp;quot;translation&amp;amp;quot;],fallbackLng:[&amp;amp;quot;dev&amp;amp;quot;],fallbackNS:!1,whitelist:!1,nonExplicitWhitelist:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:&amp;amp;quot;all&amp;amp;quot;,preload:!1,simplifyPluralSuffix:!0,keySeparator:&amp;amp;quot;.&amp;amp;quot;,nsSeparator:&amp;amp;quot;:&amp;amp;quot;,pluralSeparator:&amp;amp;quot;_&amp;amp;quot;,contextSeparator:&amp;amp;quot;_&amp;amp;quot;,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:&amp;amp;quot;fallback&amp;amp;quot;,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!0,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){var r={};if($t(t[1])===&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=t[1]),typeof t[1]==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r.defaultValue=t[1]),typeof t[2]==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r.tDescription=t[2]),$t(t[2])===&amp;amp;quot;object&amp;amp;quot;||$t(t[3])===&amp;amp;quot;object&amp;amp;quot;){var n=t[3]||t[2];Object.keys(n).forEach(function(s){r[s]=n[s]})}return r},interpolation:{escapeValue:!0,format:function(t,r,n,s){return t},prefix:&amp;amp;quot;{{&amp;amp;quot;,suffix:&amp;amp;quot;}}&amp;amp;quot;,formatSeparator:&amp;amp;quot;,&amp;amp;quot;,unescapePrefix:&amp;amp;quot;-&amp;amp;quot;,nestingPrefix:&amp;amp;quot;$t(&amp;amp;quot;,nestingSuffix:&amp;amp;quot;)&amp;amp;quot;,nestingOptionsSeparator:&amp;amp;quot;,&amp;amp;quot;,maxReplaces:1e3,skipOnVariables:!1}}}function n0(i){return typeof i.ns==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.ns=[i.ns]),typeof i.fallbackLng==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.fallbackLng=[i.fallbackLng]),typeof i.fallbackNS==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.fallbackNS=[i.fallbackNS]),i.whitelist&amp;amp;amp;&amp;amp;amp;(i.whitelist&amp;amp;amp;&amp;amp;amp;i.whitelist.indexOf(&amp;amp;quot;cimode&amp;amp;quot;)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(i.whitelist=i.whitelist.concat([&amp;amp;quot;cimode&amp;amp;quot;])),i.supportedLngs=i.whitelist),i.nonExplicitWhitelist&amp;amp;amp;&amp;amp;amp;(i.nonExplicitSupportedLngs=i.nonExplicitWhitelist),i.supportedLngs&amp;amp;amp;&amp;amp;amp;i.supportedLngs.indexOf(&amp;amp;quot;cimode&amp;amp;quot;)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(i.supportedLngs=i.supportedLngs.concat([&amp;amp;quot;cimode&amp;amp;quot;])),i}function pl(){}var e_=function(i){ao(t,i);function t(){var r,n=arguments.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;arguments[0]!==void 0?arguments[0]:{},s=arguments.length&amp;amp;gt;1?arguments[1]:void 0;if(wr(this,t),r=Is(this,Rn(t).call(this)),ml&amp;amp;amp;&amp;amp;amp;Zi.call(wi(r)),r.options=n0(n),r.services={},r.logger=Ci,r.modules={external:[]},s&amp;amp;amp;&amp;amp;amp;!r.isInitialized&amp;amp;amp;&amp;amp;amp;!n.isClone){if(!r.options.initImmediate)return r.init(n,s),Is(r,wi(r));setTimeout(function(){r.init(n,s)},0)}return r}return Cr(t,[{key:&amp;amp;quot;init&amp;amp;quot;,value:function(){var n=this,s=arguments.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;arguments[0]!==void 0?arguments[0]:{},a=arguments.length&amp;amp;gt;1?arguments[1]:void 0;typeof s==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a=s,s={}),s.whitelist&amp;amp;amp;&amp;amp;amp;!s.supportedLngs&amp;amp;amp;&amp;amp;amp;this.logger.deprecate(&amp;amp;quot;whitelist&amp;amp;quot;,&amp;amp;#39;option &amp;amp;quot;whitelist&amp;amp;quot; will be renamed to &amp;amp;quot;supportedLngs&amp;amp;quot; in the next major - please make sure to rename this option asap.&amp;amp;#39;),s.nonExplicitWhitelist&amp;amp;amp;&amp;amp;amp;!s.nonExplicitSupportedLngs&amp;amp;amp;&amp;amp;amp;this.logger.deprecate(&amp;amp;quot;whitelist&amp;amp;quot;,&amp;amp;#39;options &amp;amp;quot;nonExplicitWhitelist&amp;amp;quot; will be renamed to &amp;amp;quot;nonExplicitSupportedLngs&amp;amp;quot; in the next major - please make sure to rename this option asap.&amp;amp;#39;),this.options=kt({},Qb(),this.options,n0(s)),this.format=this.options.interpolation.format,a||(a=pl);function o(m){return m?typeof m==&amp;amp;quot;function&amp;amp;quot;?new m:m:null}if(!this.options.isClone){this.modules.logger?Ci.init(o(this.modules.logger),this.options):Ci.init(null,this.options);var u=new Hb(this.options);this.store=new $b(this.options.resources,this.options);var h=this.services;h.logger=Ci,h.resourceStore=this.store,h.languageUtils=u,h.pluralResolver=new Yb(u,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),h.interpolator=new Xb(this.options),h.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},h.backendConnector=new Jb(o(this.modules.backend),h.resourceStore,h,this.options),h.backendConnector.on(&amp;amp;quot;*&amp;amp;quot;,function(m){for(var g=arguments.length,v=new Array(g&amp;amp;gt;1?g-1:0),w=1;w&amp;amp;lt;g;w++)v[w-1]=arguments[w];n.emit.apply(n,[m].concat(v))}),this.modules.languageDetector&amp;amp;amp;&amp;amp;amp;(h.languageDetector=o(this.modules.languageDetector),h.languageDetector.init(h,this.options.detection,this.options)),this.modules.i18nFormat&amp;amp;amp;&amp;amp;amp;(h.i18nFormat=o(this.modules.i18nFormat),h.i18nFormat.init&amp;amp;amp;&amp;amp;amp;h.i18nFormat.init(this)),this.translator=new i0(this.services,this.options),this.translator.on(&amp;amp;quot;*&amp;amp;quot;,function(m){for(var g=arguments.length,v=new Array(g&amp;amp;gt;1?g-1:0),w=1;w&amp;amp;lt;g;w++)v[w-1]=arguments[w];n.emit.apply(n,[m].concat(v))}),this.modules.external.forEach(function(m){m.init&amp;amp;amp;&amp;amp;amp;m.init(n)})}if(this.options.fallbackLng&amp;amp;amp;&amp;amp;amp;!this.services.languageDetector&amp;amp;amp;&amp;amp;amp;!this.options.lng){var l=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);l.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;l[0]!==&amp;amp;quot;dev&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.options.lng=l[0])}!this.services.languageDetector&amp;amp;amp;&amp;amp;amp;!this.options.lng&amp;amp;amp;&amp;amp;amp;this.logger.warn(&amp;amp;quot;init: no languageDetector is used and no lng is defined&amp;amp;quot;);var c=[&amp;amp;quot;getResource&amp;amp;quot;,&amp;amp;quot;hasResourceBundle&amp;amp;quot;,&amp;amp;quot;getResourceBundle&amp;amp;quot;,&amp;amp;quot;getDataByLanguage&amp;amp;quot;];c.forEach(function(m){n[m]=function(){var g;return(g=n.store)[m].apply(g,arguments)}});var p=[&amp;amp;quot;addResource&amp;amp;quot;,&amp;amp;quot;addResources&amp;amp;quot;,&amp;amp;quot;addResourceBundle&amp;amp;quot;,&amp;amp;quot;removeResourceBundle&amp;amp;quot;];p.forEach(function(m){n[m]=function(){var g;return(g=n.store)[m].apply(g,arguments),n}});var f=oo(),d=function(){var g=function(w,y){n.isInitialized&amp;amp;amp;&amp;amp;amp;n.logger.warn(&amp;amp;quot;init: i18next is already initialized. You should call init just once!&amp;amp;quot;),n.isInitialized=!0,n.options.isClone||n.logger.log(&amp;amp;quot;initialized&amp;amp;quot;,n.options),n.emit(&amp;amp;quot;initialized&amp;amp;quot;,n.options),f.resolve(y),a(w,y)};if(n.languages&amp;amp;amp;&amp;amp;amp;n.options.compatibilityAPI!==&amp;amp;quot;v1&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!n.isInitialized)return g(null,n.t.bind(n));n.changeLanguage(n.options.lng,g)};return this.options.resources||!this.options.initImmediate?d():setTimeout(d,0),f}},{key:&amp;amp;quot;loadResources&amp;amp;quot;,value:function(n){var s=this,a=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:pl,o=a,u=typeof n==&amp;amp;quot;string&amp;amp;quot;?n:this.language;if(typeof n==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=n),!this.options.resources||this.options.partialBundledLanguages){if(u&amp;amp;amp;&amp;amp;amp;u.toLowerCase()===&amp;amp;quot;cimode&amp;amp;quot;)return o();var h=[],l=function(f){if(f){var d=s.services.languageUtils.toResolveHierarchy(f);d.forEach(function(m){h.indexOf(m)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;h.push(m)})}};if(u)l(u);else{var c=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);c.forEach(function(p){return l(p)})}this.options.preload&amp;amp;amp;&amp;amp;amp;this.options.preload.forEach(function(p){return l(p)}),this.services.backendConnector.load(h,this.options.ns,o)}else o(null)}},{key:&amp;amp;quot;reloadResources&amp;amp;quot;,value:function(n,s,a){var o=oo();return n||(n=this.languages),s||(s=this.options.ns),a||(a=pl),this.services.backendConnector.reload(n,s,function(u){o.resolve(),a(u)}),o}},{key:&amp;amp;quot;use&amp;amp;quot;,value:function(n){if(!n)throw new Error(&amp;amp;quot;You are passing an undefined module! Please check the object you are passing to i18next.use()&amp;amp;quot;);if(!n.type)throw new Error(&amp;amp;quot;You are passing a wrong module! Please check the object you are passing to i18next.use()&amp;amp;quot;);return n.type===&amp;amp;quot;backend&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.modules.backend=n),(n.type===&amp;amp;quot;logger&amp;amp;quot;||n.log&amp;amp;amp;&amp;amp;amp;n.warn&amp;amp;amp;&amp;amp;amp;n.error)&amp;amp;amp;&amp;amp;amp;(this.modules.logger=n),n.type===&amp;amp;quot;languageDetector&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.modules.languageDetector=n),n.type===&amp;amp;quot;i18nFormat&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.modules.i18nFormat=n),n.type===&amp;amp;quot;postProcessor&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a0.addPostProcessor(n),n.type===&amp;amp;quot;3rdParty&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.modules.external.push(n),this}},{key:&amp;amp;quot;changeLanguage&amp;amp;quot;,value:function(n,s){var a=this;this.isLanguageChangingTo=n;var o=oo();this.emit(&amp;amp;quot;languageChanging&amp;amp;quot;,n);var u=function(c,p){p?(a.language=p,a.languages=a.services.languageUtils.toResolveHierarchy(p),a.translator.changeLanguage(p),a.isLanguageChangingTo=void 0,a.emit(&amp;amp;quot;languageChanged&amp;amp;quot;,p),a.logger.log(&amp;amp;quot;languageChanged&amp;amp;quot;,p)):a.isLanguageChangingTo=void 0,o.resolve(function(){return a.t.apply(a,arguments)}),s&amp;amp;amp;&amp;amp;amp;s(c,function(){return a.t.apply(a,arguments)})},h=function(c){var p=typeof c==&amp;amp;quot;string&amp;amp;quot;?c:a.services.languageUtils.getBestMatchFromCodes(c);p&amp;amp;amp;&amp;amp;amp;(a.language||(a.language=p,a.languages=a.services.languageUtils.toResolveHierarchy(p)),a.translator.language||a.translator.changeLanguage(p),a.services.languageDetector&amp;amp;amp;&amp;amp;amp;a.services.languageDetector.cacheUserLanguage(p)),a.loadResources(p,function(f){u(f,p)})};return!n&amp;amp;amp;&amp;amp;amp;this.services.languageDetector&amp;amp;amp;&amp;amp;amp;!this.services.languageDetector.async?h(this.services.languageDetector.detect()):!n&amp;amp;amp;&amp;amp;amp;this.services.languageDetector&amp;amp;amp;&amp;amp;amp;this.services.languageDetector.async?this.services.languageDetector.detect(h):h(n),o}},{key:&amp;amp;quot;getFixedT&amp;amp;quot;,value:function(n,s){var a=this,o=function u(h,l){var c;if($t(l)!==&amp;amp;quot;object&amp;amp;quot;){for(var p=arguments.length,f=new Array(p&amp;amp;gt;2?p-2:0),d=2;d&amp;amp;lt;p;d++)f[d-2]=arguments[d];c=a.options.overloadTranslationOptionHandler([h,l].concat(f))}else c=kt({},l);return c.lng=c.lng||u.lng,c.lngs=c.lngs||u.lngs,c.ns=c.ns||u.ns,a.t(h,c)};return typeof n==&amp;amp;quot;string&amp;amp;quot;?o.lng=n:o.lngs=n,o.ns=s,o}},{key:&amp;amp;quot;t&amp;amp;quot;,value:function(){var n;return this.translator&amp;amp;amp;&amp;amp;amp;(n=this.translator).translate.apply(n,arguments)}},{key:&amp;amp;quot;exists&amp;amp;quot;,value:function(){var n;return this.translator&amp;amp;amp;&amp;amp;amp;(n=this.translator).exists.apply(n,arguments)}},{key:&amp;amp;quot;setDefaultNamespace&amp;amp;quot;,value:function(n){this.options.defaultNS=n}},{key:&amp;amp;quot;hasLoadedNamespace&amp;amp;quot;,value:function(n){var s=this,a=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn(&amp;amp;quot;hasLoadedNamespace: i18next was not initialized&amp;amp;quot;,this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn(&amp;amp;quot;hasLoadedNamespace: i18n.languages were undefined or empty&amp;amp;quot;,this.languages),!1;var o=this.languages[0],u=this.options?this.options.fallbackLng:!1,h=this.languages[this.languages.length-1];if(o.toLowerCase()===&amp;amp;quot;cimode&amp;amp;quot;)return!0;var l=function(f,d){var m=s.services.backendConnector.state[&amp;amp;quot;&amp;amp;quot;.concat(f,&amp;amp;quot;|&amp;amp;quot;).concat(d)];return m===-1||m===2};if(a.precheck){var c=a.precheck(this,l);if(c!==void 0)return c}return!!(this.hasResourceBundle(o,n)||!this.services.backendConnector.backend||l(o,n)&amp;amp;amp;&amp;amp;amp;(!u||l(h,n)))}},{key:&amp;amp;quot;loadNamespaces&amp;amp;quot;,value:function(n,s){var a=this,o=oo();return this.options.ns?(typeof n==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=[n]),n.forEach(function(u){a.options.ns.indexOf(u)&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;a.options.ns.push(u)}),this.loadResources(function(u){o.resolve(),s&amp;amp;amp;&amp;amp;amp;s(u)}),o):(s&amp;amp;amp;&amp;amp;amp;s(),Promise.resolve())}},{key:&amp;amp;quot;loadLanguages&amp;amp;quot;,value:function(n,s){var a=oo();typeof n==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=[n]);var o=this.options.preload||[],u=n.filter(function(h){return o.indexOf(h)&amp;amp;lt;0});return u.length?(this.options.preload=o.concat(u),this.loadResources(function(h){a.resolve(),s&amp;amp;amp;&amp;amp;amp;s(h)}),a):(s&amp;amp;amp;&amp;amp;amp;s(),Promise.resolve())}},{key:&amp;amp;quot;dir&amp;amp;quot;,value:function(n){if(n||(n=this.languages&amp;amp;amp;&amp;amp;amp;this.languages.length&amp;amp;gt;0?this.languages[0]:this.language),!n)return&amp;amp;quot;rtl&amp;amp;quot;;var s=[&amp;amp;quot;ar&amp;amp;quot;,&amp;amp;quot;shu&amp;amp;quot;,&amp;amp;quot;sqr&amp;amp;quot;,&amp;amp;quot;ssh&amp;amp;quot;,&amp;amp;quot;xaa&amp;amp;quot;,&amp;amp;quot;yhd&amp;amp;quot;,&amp;amp;quot;yud&amp;amp;quot;,&amp;amp;quot;aao&amp;amp;quot;,&amp;amp;quot;abh&amp;amp;quot;,&amp;amp;quot;abv&amp;amp;quot;,&amp;amp;quot;acm&amp;amp;quot;,&amp;amp;quot;acq&amp;amp;quot;,&amp;amp;quot;acw&amp;amp;quot;,&amp;amp;quot;acx&amp;amp;quot;,&amp;amp;quot;acy&amp;amp;quot;,&amp;amp;quot;adf&amp;amp;quot;,&amp;amp;quot;ads&amp;amp;quot;,&amp;amp;quot;aeb&amp;amp;quot;,&amp;amp;quot;aec&amp;amp;quot;,&amp;amp;quot;afb&amp;amp;quot;,&amp;amp;quot;ajp&amp;amp;quot;,&amp;amp;quot;apc&amp;amp;quot;,&amp;amp;quot;apd&amp;amp;quot;,&amp;amp;quot;arb&amp;amp;quot;,&amp;amp;quot;arq&amp;amp;quot;,&amp;amp;quot;ars&amp;amp;quot;,&amp;amp;quot;ary&amp;amp;quot;,&amp;amp;quot;arz&amp;amp;quot;,&amp;amp;quot;auz&amp;amp;quot;,&amp;amp;quot;avl&amp;amp;quot;,&amp;amp;quot;ayh&amp;amp;quot;,&amp;amp;quot;ayl&amp;amp;quot;,&amp;amp;quot;ayn&amp;amp;quot;,&amp;amp;quot;ayp&amp;amp;quot;,&amp;amp;quot;bbz&amp;amp;quot;,&amp;amp;quot;pga&amp;amp;quot;,&amp;amp;quot;he&amp;amp;quot;,&amp;amp;quot;iw&amp;amp;quot;,&amp;amp;quot;ps&amp;amp;quot;,&amp;amp;quot;pbt&amp;amp;quot;,&amp;amp;quot;pbu&amp;amp;quot;,&amp;amp;quot;pst&amp;amp;quot;,&amp;amp;quot;prp&amp;amp;quot;,&amp;amp;quot;prd&amp;amp;quot;,&amp;amp;quot;ug&amp;amp;quot;,&amp;amp;quot;ur&amp;amp;quot;,&amp;amp;quot;ydd&amp;amp;quot;,&amp;amp;quot;yds&amp;amp;quot;,&amp;amp;quot;yih&amp;amp;quot;,&amp;amp;quot;ji&amp;amp;quot;,&amp;amp;quot;yi&amp;amp;quot;,&amp;amp;quot;hbo&amp;amp;quot;,&amp;amp;quot;men&amp;amp;quot;,&amp;amp;quot;xmn&amp;amp;quot;,&amp;amp;quot;fa&amp;amp;quot;,&amp;amp;quot;jpr&amp;amp;quot;,&amp;amp;quot;peo&amp;amp;quot;,&amp;amp;quot;pes&amp;amp;quot;,&amp;amp;quot;prs&amp;amp;quot;,&amp;amp;quot;dv&amp;amp;quot;,&amp;amp;quot;sam&amp;amp;quot;];return s.indexOf(this.services.languageUtils.getLanguagePartFromCode(n))&amp;amp;gt;=0?&amp;amp;quot;rtl&amp;amp;quot;:&amp;amp;quot;ltr&amp;amp;quot;}},{key:&amp;amp;quot;createInstance&amp;amp;quot;,value:function(){var n=arguments.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;arguments[0]!==void 0?arguments[0]:{},s=arguments.length&amp;amp;gt;1?arguments[1]:void 0;return new t(n,s)}},{key:&amp;amp;quot;cloneInstance&amp;amp;quot;,value:function(){var n=this,s=arguments.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;arguments[0]!==void 0?arguments[0]:{},a=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:pl,o=kt({},this.options,s,{isClone:!0}),u=new t(o),h=[&amp;amp;quot;store&amp;amp;quot;,&amp;amp;quot;services&amp;amp;quot;,&amp;amp;quot;language&amp;amp;quot;];return h.forEach(function(l){u[l]=n[l]}),u.services=kt({},this.services),u.services.utils={hasLoadedNamespace:u.hasLoadedNamespace.bind(u)},u.translator=new i0(u.services,u.options),u.translator.on(&amp;amp;quot;*&amp;amp;quot;,function(l){for(var c=arguments.length,p=new Array(c&amp;amp;gt;1?c-1:0),f=1;f&amp;amp;lt;c;f++)p[f-1]=arguments[f];u.emit.apply(u,[l].concat(p))}),u.init(o,a),u.translator.options=u.options,u.translator.backendConnector.services.utils={hasLoadedNamespace:u.hasLoadedNamespace.bind(u)},u}}]),t}(Zi),t_=new e_,Xc=t_;var u0=[],r_=u0.forEach,i_=u0.slice;function n_(i){return r_.call(i_.call(arguments,1),function(t){if(t)for(var r in t)i[r]===void 0&amp;amp;amp;&amp;amp;amp;(i[r]=t[r])}),i}var o0={create:function(t,r,n,s){var a=arguments.length&amp;amp;gt;4&amp;amp;amp;&amp;amp;amp;arguments[4]!==void 0?arguments[4]:{path:&amp;amp;quot;/&amp;amp;quot;},o;if(n){var u=new Date;u.setTime(u.getTime()+n*60*1e3),o=&amp;amp;quot;; expires=&amp;amp;quot;+u.toUTCString()}else o=&amp;amp;quot;&amp;amp;quot;;s=s?&amp;amp;quot;domain=&amp;amp;quot;+s+&amp;amp;quot;;&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;,a=Object.keys(a).reduce(function(h,l){return h+&amp;amp;quot;;&amp;amp;quot;+l.replace(/([A-Z])/g,function(c){return&amp;amp;quot;-&amp;amp;quot;+c.toLowerCase()})+&amp;amp;quot;=&amp;amp;quot;+a[l]},&amp;amp;quot;&amp;amp;quot;),document.cookie=t+&amp;amp;quot;=&amp;amp;quot;+encodeURIComponent(r)+o+&amp;amp;quot;;&amp;amp;quot;+s+a},read:function(t){for(var r=t+&amp;amp;quot;=&amp;amp;quot;,n=document.cookie.split(&amp;amp;quot;;&amp;amp;quot;),s=0;s&amp;amp;lt;n.length;s++){for(var a=n[s];a.charAt(0)===&amp;amp;quot; &amp;amp;quot;;)a=a.substring(1,a.length);if(a.indexOf(r)===0)return a.substring(r.length,a.length)}return null},remove:function(t){this.create(t,&amp;amp;quot;&amp;amp;quot;,-1)}},s_={name:&amp;amp;quot;cookie&amp;amp;quot;,lookup:function(t){var r;if(t.lookupCookie&amp;amp;amp;&amp;amp;amp;typeof document&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){var n=o0.read(t.lookupCookie);n&amp;amp;amp;&amp;amp;amp;(r=n)}return r},cacheUserLanguage:function(t,r){r.lookupCookie&amp;amp;amp;&amp;amp;amp;typeof document&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o0.create(r.lookupCookie,t,r.cookieMinutes,r.cookieDomain,r.cookieOptions)}},a_={name:&amp;amp;quot;querystring&amp;amp;quot;,lookup:function(t){var r;if(typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)for(var n=window.location.search.substring(1),s=n.split(&amp;amp;quot;&amp;amp;amp;&amp;amp;quot;),a=0;a&amp;amp;lt;s.length;a++){var o=s[a].indexOf(&amp;amp;quot;=&amp;amp;quot;);if(o&amp;amp;gt;0){var u=s[a].substring(0,o);u===t.lookupQuerystring&amp;amp;amp;&amp;amp;amp;(r=s[a].substring(o+1))}}return r}},gl;try{gl=window!==&amp;amp;quot;undefined&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;window.localStorage!==null,Kc=&amp;amp;quot;i18next.translate.boo&amp;amp;quot;,window.localStorage.setItem(Kc,&amp;amp;quot;foo&amp;amp;quot;),window.localStorage.removeItem(Kc)}catch{gl=!1}var Kc,o_={name:&amp;amp;quot;localStorage&amp;amp;quot;,lookup:function(t){var r;if(t.lookupLocalStorage&amp;amp;amp;&amp;amp;amp;gl){var n=window.localStorage.getItem(t.lookupLocalStorage);n&amp;amp;amp;&amp;amp;amp;(r=n)}return r},cacheUserLanguage:function(t,r){r.lookupLocalStorage&amp;amp;amp;&amp;amp;amp;gl&amp;amp;amp;&amp;amp;amp;window.localStorage.setItem(r.lookupLocalStorage,t)}},yl;try{yl=window!==&amp;amp;quot;undefined&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;window.sessionStorage!==null,Jc=&amp;amp;quot;i18next.translate.boo&amp;amp;quot;,window.sessionStorage.setItem(Jc,&amp;amp;quot;foo&amp;amp;quot;),window.sessionStorage.removeItem(Jc)}catch{yl=!1}var Jc,u_={name:&amp;amp;quot;sessionStorage&amp;amp;quot;,lookup:function(t){var r;if(t.lookupsessionStorage&amp;amp;amp;&amp;amp;amp;yl){var n=window.sessionStorage.getItem(t.lookupsessionStorage);n&amp;amp;amp;&amp;amp;amp;(r=n)}return r},cacheUserLanguage:function(t,r){r.lookupsessionStorage&amp;amp;amp;&amp;amp;amp;yl&amp;amp;amp;&amp;amp;amp;window.sessionStorage.setItem(r.lookupsessionStorage,t)}},l_={name:&amp;amp;quot;navigator&amp;amp;quot;,lookup:function(t){var r=[];if(typeof navigator&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){if(navigator.languages)for(var n=0;n&amp;amp;lt;navigator.languages.length;n++)r.push(navigator.languages[n]);navigator.userLanguage&amp;amp;amp;&amp;amp;amp;r.push(navigator.userLanguage),navigator.language&amp;amp;amp;&amp;amp;amp;r.push(navigator.language)}return r.length&amp;amp;gt;0?r:void 0}},h_={name:&amp;amp;quot;htmlTag&amp;amp;quot;,lookup:function(t){var r,n=t.htmlTag||(typeof document&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?document.documentElement:null);return n&amp;amp;amp;&amp;amp;amp;typeof n.getAttribute==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=n.getAttribute(&amp;amp;quot;lang&amp;amp;quot;)),r}},c_={name:&amp;amp;quot;path&amp;amp;quot;,lookup:function(t){var r;if(typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){var n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(n instanceof Array)if(typeof t.lookupFromPathIndex==&amp;amp;quot;number&amp;amp;quot;){if(typeof n[t.lookupFromPathIndex]!=&amp;amp;quot;string&amp;amp;quot;)return;r=n[t.lookupFromPathIndex].replace(&amp;amp;quot;/&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;)}else r=n[0].replace(&amp;amp;quot;/&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;)}return r}},f_={name:&amp;amp;quot;subdomain&amp;amp;quot;,lookup:function(t){var r;if(typeof window&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){var n=window.location.href.match(/(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/gi);n instanceof Array&amp;amp;amp;&amp;amp;amp;(typeof t.lookupFromSubdomainIndex==&amp;amp;quot;number&amp;amp;quot;?r=n[t.lookupFromSubdomainIndex].replace(&amp;amp;quot;http://&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;).replace(&amp;amp;quot;https://&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;).replace(&amp;amp;quot;.&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;):r=n[0].replace(&amp;amp;quot;http://&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;).replace(&amp;amp;quot;https://&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;).replace(&amp;amp;quot;.&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;))}return r}};function p_(){return{order:[&amp;amp;quot;querystring&amp;amp;quot;,&amp;amp;quot;cookie&amp;amp;quot;,&amp;amp;quot;localStorage&amp;amp;quot;,&amp;amp;quot;sessionStorage&amp;amp;quot;,&amp;amp;quot;navigator&amp;amp;quot;,&amp;amp;quot;htmlTag&amp;amp;quot;],lookupQuerystring:&amp;amp;quot;lng&amp;amp;quot;,lookupCookie:&amp;amp;quot;i18next&amp;amp;quot;,lookupLocalStorage:&amp;amp;quot;i18nextLng&amp;amp;quot;,caches:[&amp;amp;quot;localStorage&amp;amp;quot;],excludeCacheFor:[&amp;amp;quot;cimode&amp;amp;quot;],checkWhitelist:!0,checkForSimilarInWhitelist:!1}}var l0=function(){function i(t){var r=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{};wr(this,i),this.type=&amp;amp;quot;languageDetector&amp;amp;quot;,this.detectors={},this.init(t,r)}return Cr(i,[{key:&amp;amp;quot;init&amp;amp;quot;,value:function(r){var n=arguments.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;arguments[1]!==void 0?arguments[1]:{},s=arguments.length&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;arguments[2]!==void 0?arguments[2]:{};this.services=r,this.options=n_(n,this.options||{},p_()),this.options.checkForSimilarInWhitelist&amp;amp;amp;&amp;amp;amp;(this.options.checkWhitelist=!0),this.options.lookupFromUrlIndex&amp;amp;amp;&amp;amp;amp;(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=s,this.addDetector(s_),this.addDetector(a_),this.addDetector(o_),this.addDetector(u_),this.addDetector(l_),this.addDetector(h_),this.addDetector(c_),this.addDetector(f_)}},{key:&amp;amp;quot;addDetector&amp;amp;quot;,value:function(r){this.detectors[r.name]=r}},{key:&amp;amp;quot;detect&amp;amp;quot;,value:function(r){var n=this;r||(r=this.options.order);var s=[];r.forEach(function(u){if(n.detectors[u]){var h=n.detectors[u].lookup(n.options);h&amp;amp;amp;&amp;amp;amp;typeof h==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(h=[h]),h&amp;amp;amp;&amp;amp;amp;(s=s.concat(h))}});var a;if(s.forEach(function(u){if(!a){var h=n.services.languageUtils.formatLanguageCode(u);(!n.options.checkWhitelist||n.services.languageUtils.isWhitelisted(h))&amp;amp;amp;&amp;amp;amp;(a=h),!a&amp;amp;amp;&amp;amp;amp;n.options.checkForSimilarInWhitelist&amp;amp;amp;&amp;amp;amp;(a=n.getSimilarInWhitelist(h))}}),!a){var o=this.i18nOptions.fallbackLng;typeof o==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=[o]),o||(o=[]),Object.prototype.toString.apply(o)===&amp;amp;quot;[object Array]&amp;amp;quot;?a=o[0]:a=o[0]||o.default&amp;amp;amp;&amp;amp;amp;o.default[0]}return a}},{key:&amp;amp;quot;cacheUserLanguage&amp;amp;quot;,value:function(r,n){var s=this;n||(n=this.options.caches),n&amp;amp;amp;&amp;amp;amp;(this.options.excludeCacheFor&amp;amp;amp;&amp;amp;amp;this.options.excludeCacheFor.indexOf(r)&amp;amp;gt;-1||n.forEach(function(a){s.detectors[a]&amp;amp;amp;&amp;amp;amp;s.detectors[a].cacheUserLanguage(r,s.options)}))}},{key:&amp;amp;quot;getSimilarInWhitelist&amp;amp;quot;,value:function(r){var n=this;if(this.i18nOptions.whitelist){if(r.includes(&amp;amp;quot;-&amp;amp;quot;)){var s=r.split(&amp;amp;quot;-&amp;amp;quot;)[0],a=this.services.languageUtils.formatLanguageCode(s);if(this.services.languageUtils.isWhitelisted(a))return a;r=a}var o=this.i18nOptions.whitelist.find(function(u){var h=n.services.languageUtils.formatLanguageCode(u);if(h.startsWith(r))return h});if(o)return o}}}]),i}();l0.type=&amp;amp;quot;languageDetector&amp;amp;quot;;var h0=l0;var b_={autoplay:`The media that tried to play (with &amp;amp;#39;{{src}}&amp;amp;#39;) wasn&amp;amp;#39;t allowed to by this browser, most likely due to the browser&amp;amp;#39;s autoplay policy.
   7364 <a href="#l7345" class="line" id="l7345">   7345</a> &lt;a href=&quot;#l7326&quot; class=&quot;line&quot; id=&quot;l7326&quot;&gt;   7326&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2226&amp;quot; id=&amp;quot;h4-0-2226&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7365 <a href="#l7346" class="line" id="l7346">   7346</a> &lt;a href=&quot;#l7327&quot; class=&quot;line&quot; id=&quot;l7327&quot;&gt;   7327&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2227&amp;quot; id=&amp;quot;h4-0-2227&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,checkUserDefinedFns:&amp;amp;quot;It seems that you may have accidentally written {{name}} instead of {{actualName}}. Please correct it if it&amp;amp;#39;s not intentional.&amp;amp;quot;,fileLoadError:{bytes:&amp;amp;quot;It looks like there was a problem loading your file. {{suggestion}}&amp;amp;quot;,font:&amp;amp;quot;It looks like there was a problem loading your font. {{suggestion}}&amp;amp;quot;,gif:&amp;amp;quot;There was some trouble loading your GIF. Make sure that your GIF is using 87a or 89a encoding.&amp;amp;quot;,image:&amp;amp;quot;It looks like there was a problem loading your image. {{suggestion}}&amp;amp;quot;,json:&amp;amp;quot;It looks like there was a problem loading your JSON file. {{suggestion}}&amp;amp;quot;,large:&amp;amp;quot;If your large file isn&amp;amp;#39;t fetched successfully, we recommend splitting the file into smaller segments and fetching those.&amp;amp;quot;,strings:&amp;amp;quot;It looks like there was a problem loading your text file. {{suggestion}}&amp;amp;quot;,suggestion:`Try checking if the file path ({{filePath}}) is correct, hosting the file online, or running a local server.
   7366 <a href="#l7347" class="line" id="l7347">   7347</a> &lt;a href=&quot;#l7328&quot; class=&quot;line&quot; id=&quot;l7328&quot;&gt;   7328&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2228&amp;quot; id=&amp;quot;h4-0-2228&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7367 <a href="#l7348" class="line" id="l7348">   7348</a> &lt;a href=&quot;#l7329&quot; class=&quot;line&quot; id=&quot;l7329&quot;&gt;   7329&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2229&amp;quot; id=&amp;quot;h4-0-2229&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,table:&amp;amp;quot;It looks like there was a problem loading your table file. {{suggestion}}&amp;amp;quot;,xml:&amp;amp;quot;It looks like there was a problem loading your XML file. {{suggestion}}&amp;amp;quot;},friendlyParamError:{type_EMPTY_VAR:`{{location}} {{func}}() was expecting {{formatType}} for the {{position}} parameter, received an empty variable instead. If not intentional, this is often a problem with scope.
   7368 <a href="#l7349" class="line" id="l7349">   7349</a> &lt;a href=&quot;#l7330&quot; class=&quot;line&quot; id=&quot;l7330&quot;&gt;   7330&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2230&amp;quot; id=&amp;quot;h4-0-2230&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7369 <a href="#l7350" class="line" id="l7350">   7350</a> &lt;a href=&quot;#l7331&quot; class=&quot;line&quot; id=&quot;l7331&quot;&gt;   7331&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2231&amp;quot; id=&amp;quot;h4-0-2231&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,type_TOO_FEW_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}() was expecting at least {{minParams}} arguments, but received only {{argCount}}.&amp;amp;quot;,type_TOO_MANY_ARGUMENTS:&amp;amp;quot;{{location}} {{func}}() was expecting no more than {{maxParams}} arguments, but received {{argCount}}.&amp;amp;quot;,type_WRONG_TYPE:&amp;amp;quot;{{location}} {{func}}() was expecting {{formatType}} for the {{position}} parameter, received {{argType}} instead.&amp;amp;quot;},globalErrors:{reference:{cannotAccess:`
   7370 <a href="#l7351" class="line" id="l7351">   7351</a> &lt;a href=&quot;#l7332&quot; class=&quot;line&quot; id=&quot;l7332&quot;&gt;   7332&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2232&amp;quot; id=&amp;quot;h4-0-2232&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; is used before declaration. Make sure you have declared the variable before using it.
   7371 <a href="#l7352" class="line" id="l7352">   7352</a> &lt;a href=&quot;#l7333&quot; class=&quot;line&quot; id=&quot;l7333&quot;&gt;   7333&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2233&amp;quot; id=&amp;quot;h4-0-2233&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7372 <a href="#l7353" class="line" id="l7353">   7353</a> &lt;a href=&quot;#l7334&quot; class=&quot;line&quot; id=&quot;l7334&quot;&gt;   7334&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2234&amp;quot; id=&amp;quot;h4-0-2234&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,notDefined:`
   7373 <a href="#l7354" class="line" id="l7354">   7354</a> &lt;a href=&quot;#l7335&quot; class=&quot;line&quot; id=&quot;l7335&quot;&gt;   7335&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2235&amp;quot; id=&amp;quot;h4-0-2235&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; is not defined in the current scope. If you have defined it in your code, you should check its scope, spelling, and letter-casing (JavaScript is case-sensitive).
   7374 <a href="#l7355" class="line" id="l7355">   7355</a> &lt;a href=&quot;#l7336&quot; class=&quot;line&quot; id=&quot;l7336&quot;&gt;   7336&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2236&amp;quot; id=&amp;quot;h4-0-2236&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7375 <a href="#l7356" class="line" id="l7356">   7356</a> &lt;a href=&quot;#l7337&quot; class=&quot;line&quot; id=&quot;l7337&quot;&gt;   7337&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2237&amp;quot; id=&amp;quot;h4-0-2237&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`},stackSubseq:`\u2514[{{location}}]
   7376 <a href="#l7357" class="line" id="l7357">   7357</a> &lt;a href=&quot;#l7338&quot; class=&quot;line&quot; id=&quot;l7338&quot;&gt;   7338&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2238&amp;quot; id=&amp;quot;h4-0-2238&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 Called from line {{line}} in {{func}}()
   7377 <a href="#l7358" class="line" id="l7358">   7358</a> &lt;a href=&quot;#l7339&quot; class=&quot;line&quot; id=&quot;l7339&quot;&gt;   7339&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2239&amp;quot; id=&amp;quot;h4-0-2239&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,stackTop:`\u250C[{{location}}]
   7378 <a href="#l7359" class="line" id="l7359">   7359</a> &lt;a href=&quot;#l7340&quot; class=&quot;line&quot; id=&quot;l7340&quot;&gt;   7340&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2240&amp;quot; id=&amp;quot;h4-0-2240&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+	 Error at line {{line}} in {{func}}()
   7379 <a href="#l7360" class="line" id="l7360">   7360</a> &lt;a href=&quot;#l7341&quot; class=&quot;line&quot; id=&quot;l7341&quot;&gt;   7341&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2241&amp;quot; id=&amp;quot;h4-0-2241&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,syntax:{badReturnOrYield:`
   7380 <a href="#l7361" class="line" id="l7361">   7361</a> &lt;a href=&quot;#l7342&quot; class=&quot;line&quot; id=&quot;l7342&quot;&gt;   7342&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2242&amp;quot; id=&amp;quot;h4-0-2242&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - return lies outside of a function. Make sure you\u2019re not missing any brackets, so that return lies inside a function.
   7381 <a href="#l7362" class="line" id="l7362">   7362</a> &lt;a href=&quot;#l7343&quot; class=&quot;line&quot; id=&quot;l7343&quot;&gt;   7343&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2243&amp;quot; id=&amp;quot;h4-0-2243&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7382 <a href="#l7363" class="line" id="l7363">   7363</a> &lt;a href=&quot;#l7344&quot; class=&quot;line&quot; id=&quot;l7344&quot;&gt;   7344&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2244&amp;quot; id=&amp;quot;h4-0-2244&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,invalidToken:`
   7383 <a href="#l7364" class="line" id="l7364">   7364</a> &lt;a href=&quot;#l7345&quot; class=&quot;line&quot; id=&quot;l7345&quot;&gt;   7345&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2245&amp;quot; id=&amp;quot;h4-0-2245&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - Found a symbol that JavaScript doesn&amp;amp;#39;t recognize or didn&amp;amp;#39;t expect at it&amp;amp;#39;s place.
   7384 <a href="#l7365" class="line" id="l7365">   7365</a> &lt;a href=&quot;#l7346&quot; class=&quot;line&quot; id=&quot;l7346&quot;&gt;   7346&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2246&amp;quot; id=&amp;quot;h4-0-2246&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7385 <a href="#l7366" class="line" id="l7366">   7366</a> &lt;a href=&quot;#l7347&quot; class=&quot;line&quot; id=&quot;l7347&quot;&gt;   7347&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2247&amp;quot; id=&amp;quot;h4-0-2247&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,missingInitializer:`
   7386 <a href="#l7367" class="line" id="l7367">   7367</a> &lt;a href=&quot;#l7348&quot; class=&quot;line&quot; id=&quot;l7348&quot;&gt;   7348&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2248&amp;quot; id=&amp;quot;h4-0-2248&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - A const variable is declared but not initialized. In JavaScript, an initializer for a const is required. A value must be specified in the same statement in which the variable is declared. Check the line number in the error and assign the const variable a value.
   7387 <a href="#l7368" class="line" id="l7368">   7368</a> &lt;a href=&quot;#l7349&quot; class=&quot;line&quot; id=&quot;l7349&quot;&gt;   7349&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2249&amp;quot; id=&amp;quot;h4-0-2249&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7388 <a href="#l7369" class="line" id="l7369">   7369</a> &lt;a href=&quot;#l7350&quot; class=&quot;line&quot; id=&quot;l7350&quot;&gt;   7350&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2250&amp;quot; id=&amp;quot;h4-0-2250&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,redeclaredVariable:`
   7389 <a href="#l7370" class="line" id="l7370">   7370</a> &lt;a href=&quot;#l7351&quot; class=&quot;line&quot; id=&quot;l7351&quot;&gt;   7351&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2251&amp;quot; id=&amp;quot;h4-0-2251&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - &amp;amp;quot;{{symbol}}&amp;amp;quot; is being redeclared. JavaScript doesn&amp;amp;#39;t allow declaring a variable more than once. Check the line number in error for redeclaration of the variable.
   7390 <a href="#l7371" class="line" id="l7371">   7371</a> &lt;a href=&quot;#l7352&quot; class=&quot;line&quot; id=&quot;l7352&quot;&gt;   7352&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2252&amp;quot; id=&amp;quot;h4-0-2252&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7391 <a href="#l7372" class="line" id="l7372">   7372</a> &lt;a href=&quot;#l7353&quot; class=&quot;line&quot; id=&quot;l7353&quot;&gt;   7353&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2253&amp;quot; id=&amp;quot;h4-0-2253&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,unexpectedToken:`
   7392 <a href="#l7373" class="line" id="l7373">   7373</a> &lt;a href=&quot;#l7354&quot; class=&quot;line&quot; id=&quot;l7354&quot;&gt;   7354&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2254&amp;quot; id=&amp;quot;h4-0-2254&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Syntax Error - Symbol present at a place that wasn&amp;amp;#39;t expected.
   7393 <a href="#l7374" class="line" id="l7374">   7374</a> &lt;a href=&quot;#l7355&quot; class=&quot;line&quot; id=&quot;l7355&quot;&gt;   7355&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2255&amp;quot; id=&amp;quot;h4-0-2255&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Usually this is due to a typo. Check the line number in the error for anything missing/extra.
   7394 <a href="#l7375" class="line" id="l7375">   7375</a> &lt;a href=&quot;#l7356&quot; class=&quot;line&quot; id=&quot;l7356&quot;&gt;   7356&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2256&amp;quot; id=&amp;quot;h4-0-2256&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7395 <a href="#l7376" class="line" id="l7376">   7376</a> &lt;a href=&quot;#l7357&quot; class=&quot;line&quot; id=&quot;l7357&quot;&gt;   7357&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2257&amp;quot; id=&amp;quot;h4-0-2257&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`},type:{constAssign:`
   7396 <a href="#l7377" class="line" id="l7377">   7377</a> &lt;a href=&quot;#l7358&quot; class=&quot;line&quot; id=&quot;l7358&quot;&gt;   7358&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2258&amp;quot; id=&amp;quot;h4-0-2258&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} A const variable is being re-assigned. In javascript, re-assigning a value to a constant is not allowed. If you want to re-assign new values to a variable, make sure it is declared as var or let.
   7397 <a href="#l7378" class="line" id="l7378">   7378</a> &lt;a href=&quot;#l7359&quot; class=&quot;line&quot; id=&quot;l7359&quot;&gt;   7359&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2259&amp;quot; id=&amp;quot;h4-0-2259&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7398 <a href="#l7379" class="line" id="l7379">   7379</a> &lt;a href=&quot;#l7360&quot; class=&quot;line&quot; id=&quot;l7360&quot;&gt;   7360&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2260&amp;quot; id=&amp;quot;h4-0-2260&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,notfunc:`
   7399 <a href="#l7380" class="line" id="l7380">   7380</a> &lt;a href=&quot;#l7361&quot; class=&quot;line&quot; id=&quot;l7361&quot;&gt;   7361&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2261&amp;quot; id=&amp;quot;h4-0-2261&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; could not be called as a function.
   7400 <a href="#l7381" class="line" id="l7381">   7381</a> &lt;a href=&quot;#l7362&quot; class=&quot;line&quot; id=&quot;l7362&quot;&gt;   7362&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2262&amp;quot; id=&amp;quot;h4-0-2262&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Check the spelling, letter-casing (JavaScript is case-sensitive) and its type.
   7401 <a href="#l7382" class="line" id="l7382">   7382</a> &lt;a href=&quot;#l7363&quot; class=&quot;line&quot; id=&quot;l7363&quot;&gt;   7363&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2263&amp;quot; id=&amp;quot;h4-0-2263&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7402 <a href="#l7383" class="line" id="l7383">   7383</a> &lt;a href=&quot;#l7364&quot; class=&quot;line&quot; id=&quot;l7364&quot;&gt;   7364&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2264&amp;quot; id=&amp;quot;h4-0-2264&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,notfuncObj:`
   7403 <a href="#l7384" class="line" id="l7384">   7384</a> &lt;a href=&quot;#l7365&quot; class=&quot;line&quot; id=&quot;l7365&quot;&gt;   7365&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2265&amp;quot; id=&amp;quot;h4-0-2265&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} &amp;amp;quot;{{symbol}}&amp;amp;quot; could not be called as a function.
   7404 <a href="#l7385" class="line" id="l7385">   7385</a> &lt;a href=&quot;#l7366&quot; class=&quot;line&quot; id=&quot;l7366&quot;&gt;   7366&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2266&amp;quot; id=&amp;quot;h4-0-2266&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Verify whether &amp;amp;quot;{{obj}}&amp;amp;quot; has &amp;amp;quot;{{symbol}}&amp;amp;quot; in it and check the spelling, letter-casing (JavaScript is case-sensitive) and its type.
   7405 <a href="#l7386" class="line" id="l7386">   7386</a> &lt;a href=&quot;#l7367&quot; class=&quot;line&quot; id=&quot;l7367&quot;&gt;   7367&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2267&amp;quot; id=&amp;quot;h4-0-2267&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7406 <a href="#l7387" class="line" id="l7387">   7387</a> &lt;a href=&quot;#l7368&quot; class=&quot;line&quot; id=&quot;l7368&quot;&gt;   7368&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2268&amp;quot; id=&amp;quot;h4-0-2268&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,readFromNull:`
   7407 <a href="#l7388" class="line" id="l7388">   7388</a> &lt;a href=&quot;#l7369&quot; class=&quot;line&quot; id=&quot;l7369&quot;&gt;   7369&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2269&amp;quot; id=&amp;quot;h4-0-2269&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} The property of null can&amp;amp;#39;t be read. In javascript the value null indicates that an object has no value.
   7408 <a href="#l7389" class="line" id="l7389">   7389</a> &lt;a href=&quot;#l7370&quot; class=&quot;line&quot; id=&quot;l7370&quot;&gt;   7370&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2270&amp;quot; id=&amp;quot;h4-0-2270&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7409 <a href="#l7390" class="line" id="l7390">   7390</a> &lt;a href=&quot;#l7371&quot; class=&quot;line&quot; id=&quot;l7371&quot;&gt;   7371&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2271&amp;quot; id=&amp;quot;h4-0-2271&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,readFromUndefined:`
   7410 <a href="#l7391" class="line" id="l7391">   7391</a> &lt;a href=&quot;#l7372&quot; class=&quot;line&quot; id=&quot;l7372&quot;&gt;   7372&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2272&amp;quot; id=&amp;quot;h4-0-2272&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{location}} Cannot read property of undefined. Check the line number in error and make sure the variable which is being operated is not undefined.
   7411 <a href="#l7392" class="line" id="l7392">   7392</a> &lt;a href=&quot;#l7373&quot; class=&quot;line&quot; id=&quot;l7373&quot;&gt;   7373&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2273&amp;quot; id=&amp;quot;h4-0-2273&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7412 <a href="#l7393" class="line" id="l7393">   7393</a> &lt;a href=&quot;#l7374&quot; class=&quot;line&quot; id=&quot;l7374&quot;&gt;   7374&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2274&amp;quot; id=&amp;quot;h4-0-2274&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+ + More info: {{url}}`}},libraryError:&amp;amp;#39;{{location}} An error with message &amp;amp;quot;{{error}}&amp;amp;quot; occurred inside the p5js library when {{func}} was called. If not stated otherwise, it might be an issue with the arguments passed to {{func}}.&amp;amp;#39;,location:&amp;amp;quot;[{{file}}, line {{line}}]&amp;amp;quot;,misspelling:&amp;amp;#39;{{location}} It seems that you may have accidentally written &amp;amp;quot;{{name}}&amp;amp;quot; instead of &amp;amp;quot;{{actualName}}&amp;amp;quot;. Please correct it to {{actualName}} if you wish to use the {{type}} from p5.js.&amp;amp;#39;,misspelling_plural:`{{location}} It seems that you may have accidentally written &amp;amp;quot;{{name}}&amp;amp;quot;.
   7413 <a href="#l7394" class="line" id="l7394">   7394</a> &lt;a href=&quot;#l7375&quot; class=&quot;line&quot; id=&quot;l7375&quot;&gt;   7375&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2275&amp;quot; id=&amp;quot;h4-0-2275&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+You may have meant one of the following:
   7414 <a href="#l7395" class="line" id="l7395">   7395</a> &lt;a href=&quot;#l7376&quot; class=&quot;line&quot; id=&quot;l7376&quot;&gt;   7376&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2276&amp;quot; id=&amp;quot;h4-0-2276&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+{{suggestions}}`,misusedTopLevel:`Did you just try to use p5.js&amp;amp;#39;s {{symbolName}} {{symbolType}}? If so, you may want to move it into your sketch&amp;amp;#39;s setup() function.
   7415 <a href="#l7396" class="line" id="l7396">   7396</a> &lt;a href=&quot;#l7377&quot; class=&quot;line&quot; id=&quot;l7377&quot;&gt;   7377&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2277&amp;quot; id=&amp;quot;h4-0-2277&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7416 <a href="#l7397" class="line" id="l7397">   7397</a> &lt;a href=&quot;#l7378&quot; class=&quot;line&quot; id=&quot;l7378&quot;&gt;   7378&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2278&amp;quot; id=&amp;quot;h4-0-2278&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,preloadDisabled:&amp;amp;quot;The preload() function has been removed in p5.js 2.0. Please load assets in setup() using async / await keywords or callbacks instead. See https://dev.to/limzykenneth/asynchronous-p5js-20-458f for more information.&amp;amp;quot;,positions:{p_1:&amp;amp;quot;first&amp;amp;quot;,p_10:&amp;amp;quot;tenth&amp;amp;quot;,p_11:&amp;amp;quot;eleventh&amp;amp;quot;,p_12:&amp;amp;quot;twelfth&amp;amp;quot;,p_2:&amp;amp;quot;second&amp;amp;quot;,p_3:&amp;amp;quot;third&amp;amp;quot;,p_4:&amp;amp;quot;fourth&amp;amp;quot;,p_5:&amp;amp;quot;fifth&amp;amp;quot;,p_6:&amp;amp;quot;sixth&amp;amp;quot;,p_7:&amp;amp;quot;seventh&amp;amp;quot;,p_8:&amp;amp;quot;eighth&amp;amp;quot;,p_9:&amp;amp;quot;ninth&amp;amp;quot;},pre:`
   7417 <a href="#l7398" class="line" id="l7398">   7398</a> &lt;a href=&quot;#l7379&quot; class=&quot;line&quot; id=&quot;l7379&quot;&gt;   7379&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2279&amp;quot; id=&amp;quot;h4-0-2279&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+\u{1F338} p5.js says: {{message}}`,sketchReaderErrors:{reservedConst:`you have used a p5.js reserved variable &amp;amp;quot;{{symbol}}&amp;amp;quot; make sure you change the variable name to something else.
   7418 <a href="#l7399" class="line" id="l7399">   7399</a> &lt;a href=&quot;#l7380&quot; class=&quot;line&quot; id=&quot;l7380&quot;&gt;   7380&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2280&amp;quot; id=&amp;quot;h4-0-2280&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7419 <a href="#l7400" class="line" id="l7400">   7400</a> &lt;a href=&quot;#l7381&quot; class=&quot;line&quot; id=&quot;l7381&quot;&gt;   7381&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2281&amp;quot; id=&amp;quot;h4-0-2281&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`,reservedFunc:`you have used a p5.js reserved function &amp;amp;quot;{{symbol}}&amp;amp;quot; make sure you change the function name to something else.
   7420 <a href="#l7401" class="line" id="l7401">   7401</a> &lt;a href=&quot;#l7382&quot; class=&quot;line&quot; id=&quot;l7382&quot;&gt;   7382&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2282&amp;quot; id=&amp;quot;h4-0-2282&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7421 <a href="#l7402" class="line" id="l7402">   7402</a> &lt;a href=&quot;#l7383&quot; class=&quot;line&quot; id=&quot;l7383&quot;&gt;   7383&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2283&amp;quot; id=&amp;quot;h4-0-2283&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;++ More info: {{url}}`},welcome:&amp;amp;quot;Welcome! This is your friendly debugger. To turn me off, switch to using p5.min.js.&amp;amp;quot;,wrongPreload:&amp;amp;#39;{{location}} An error with message &amp;amp;quot;{{error}}&amp;amp;quot; occurred inside the p5js library when &amp;amp;quot;{{func}}&amp;amp;quot; was called. If not stated otherwise, it might be due to &amp;amp;quot;{{func}}&amp;amp;quot; being called from preload. Nothing besides load calls (loadImage, loadJSON, loadFont, loadStrings, etc.) should be inside the preload function.&amp;amp;#39;},__={fes:b_},uo={en:{translation:__}},w_=[&amp;amp;quot;en&amp;amp;quot;,&amp;amp;quot;es&amp;amp;quot;,&amp;amp;quot;ko&amp;amp;quot;,&amp;amp;quot;zh&amp;amp;quot;,&amp;amp;quot;hi&amp;amp;quot;,&amp;amp;quot;ja&amp;amp;quot;];if(typeof IS_MINIFIED&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof P5_DEV_BUILD&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){let i=(E0(),Qy(C0));for(let t of Object.keys(i)){let r=t.split(&amp;amp;quot;_&amp;amp;quot;),n=r.slice(0,r.length-1).join(&amp;amp;quot;-&amp;amp;quot;),s=r[r.length-1];uo[n]=uo[n]||{},uo[n][s]=i[t]}}var vl=class{constructor(t,r){this.init(t,r)}fetchWithTimeout(t,r,n=2e3){return Promise.race([fetch(t,r),new Promise((s,a)=&amp;amp;gt;setTimeout(()=&amp;amp;gt;a(new Error(&amp;amp;quot;timeout&amp;amp;quot;)),n))])}init(t,r={}){this.services=t,this.options=r}read(t,r,n){let s=this.options.loadPath;if(t===this.options.fallback)n(null,uo[t][r]);else if(w_.includes(t)){let a=this.services.interpolator.interpolate(s,{lng:t,ns:r});this.loadUrl(a,n)}else n(&amp;amp;quot;Not found&amp;amp;quot;,!1)}loadUrl(t,r){this.fetchWithTimeout(t).then(n=&amp;amp;gt;{if(!n.ok)throw new Error(`failed loading ${t}`);return n.json()},()=&amp;amp;gt;{throw new Error(`failed loading ${t}`)}).then(n=&amp;amp;gt;r(null,n)).catch(r)}};vl.type=&amp;amp;quot;backend&amp;amp;quot;;var Pe=(i,t)=&amp;amp;gt;{console.debug(&amp;amp;quot;p5.js translator called before translations were loaded&amp;amp;quot;),Xc.t(i,t)},S0=()=&amp;amp;gt;Xc.use(h0).use(vl).init({fallbackLng:&amp;amp;quot;en&amp;amp;quot;,nestingPrefix:&amp;amp;quot;$tr(&amp;amp;quot;,nestingSuffix:&amp;amp;quot;)&amp;amp;quot;,defaultNS:&amp;amp;quot;translation&amp;amp;quot;,returnEmptyString:!1,interpolation:{escapeValue:!1},detection:{checkWhitelist:!1,order:[&amp;amp;quot;querystring&amp;amp;quot;,&amp;amp;quot;navigator&amp;amp;quot;,&amp;amp;quot;htmlTag&amp;amp;quot;,&amp;amp;quot;path&amp;amp;quot;,&amp;amp;quot;subdomain&amp;amp;quot;],caches:[]},backend:{fallback:&amp;amp;quot;en&amp;amp;quot;,loadPath:&amp;amp;quot;https://cdn.jsdelivr.net/npm/p5/translations/{{lng}}/{{ns}}.json&amp;amp;quot;},partialBundledLanguages:!0,resources:uo}).then(t=&amp;amp;gt;{Pe=t},t=&amp;amp;gt;console.debug(`Translations failed to load (${t})`));var A0={ReferenceError:[{msg:&amp;amp;quot;{{}} is not defined&amp;amp;quot;,type:&amp;amp;quot;NOTDEFINED&amp;amp;quot;,browser:&amp;amp;quot;all&amp;amp;quot;},{msg:&amp;amp;quot;Can&amp;amp;#39;t find variable: {{}}&amp;amp;quot;,type:&amp;amp;quot;NOTDEFINED&amp;amp;quot;,browser:&amp;amp;quot;Safari&amp;amp;quot;},{msg:&amp;amp;quot;Cannot access &amp;amp;#39;{{.}}&amp;amp;#39; before initialization&amp;amp;quot;,type:&amp;amp;quot;CANNOTACCESS&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;can&amp;amp;#39;t access lexical declaration &amp;amp;#39;{{.}}&amp;amp;#39; before initialization&amp;amp;quot;,type:&amp;amp;quot;CANNOTACCESS&amp;amp;quot;,browser:&amp;amp;quot;Firefox&amp;amp;quot;}],SyntaxError:[{msg:&amp;amp;quot;illegal character&amp;amp;quot;,type:&amp;amp;quot;INVALIDTOKEN&amp;amp;quot;,browser:&amp;amp;quot;Firefox&amp;amp;quot;},{msg:&amp;amp;quot;Invalid character&amp;amp;quot;,type:&amp;amp;quot;INVALIDTOKEN&amp;amp;quot;,browser:&amp;amp;quot;Safari&amp;amp;quot;},{msg:&amp;amp;quot;Invalid or unexpected token&amp;amp;quot;,type:&amp;amp;quot;INVALIDTOKEN&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;Unexpected token &amp;amp;#39;{{.}}&amp;amp;#39;&amp;amp;quot;,type:&amp;amp;quot;UNEXPECTEDTOKEN&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;expected {{.}}, got &amp;amp;#39;{{.}}&amp;amp;#39;&amp;amp;quot;,type:&amp;amp;quot;UNEXPECTEDTOKEN&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;Identifier &amp;amp;#39;{{.}}&amp;amp;#39; has already been declared&amp;amp;quot;,type:&amp;amp;quot;REDECLAREDVARIABLE&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;redeclaration of {} {{.}}&amp;amp;quot;,type:&amp;amp;quot;REDECLAREDVARIABLE&amp;amp;quot;,browser:&amp;amp;quot;Firefox&amp;amp;quot;},{msg:&amp;amp;quot;Missing initializer in const declaration&amp;amp;quot;,type:&amp;amp;quot;MISSINGINITIALIZER&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;missing = in const declaration&amp;amp;quot;,type:&amp;amp;quot;MISSINGINITIALIZER&amp;amp;quot;,browser:&amp;amp;quot;Firefox&amp;amp;quot;},{msg:&amp;amp;quot;Illegal return statement&amp;amp;quot;,type:&amp;amp;quot;BADRETURNORYIELD&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;return not in function&amp;amp;quot;,type:&amp;amp;quot;BADRETURNORYIELD&amp;amp;quot;,browser:&amp;amp;quot;Firefox&amp;amp;quot;}],TypeError:[{msg:&amp;amp;quot;{{.}} is not a function&amp;amp;quot;,type:&amp;amp;quot;NOTFUNC&amp;amp;quot;,browser:&amp;amp;quot;all&amp;amp;quot;},{msg:&amp;amp;quot;Cannot read {{.}} null&amp;amp;quot;,type:&amp;amp;quot;READNULL&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;{{.}} is null&amp;amp;quot;,type:&amp;amp;quot;READNULL&amp;amp;quot;,browser:&amp;amp;quot;Firefox&amp;amp;quot;},{msg:&amp;amp;quot;Cannot read {{.}} undefined&amp;amp;quot;,type:&amp;amp;quot;READUDEFINED&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;{{.}} is undefined&amp;amp;quot;,type:&amp;amp;quot;READUDEFINED&amp;amp;quot;,browser:&amp;amp;quot;Firefox&amp;amp;quot;},{msg:&amp;amp;quot;Assignment to constant variable&amp;amp;quot;,type:&amp;amp;quot;CONSTASSIGN&amp;amp;quot;,browser:&amp;amp;quot;Chrome&amp;amp;quot;},{msg:&amp;amp;quot;invalid assignment to const &amp;amp;#39;{{.}}&amp;amp;#39;&amp;amp;quot;,type:&amp;amp;quot;CONSTASSIGN&amp;amp;quot;,browser:&amp;amp;quot;Firefox&amp;amp;quot;}]};function Qc(i,t){let r=[&amp;amp;quot;#2D7BB6&amp;amp;quot;,&amp;amp;quot;#EE9900&amp;amp;quot;,&amp;amp;quot;#4DB200&amp;amp;quot;,&amp;amp;quot;#C83C00&amp;amp;quot;],n=null,s=null,a=2;class o extends Error{}if(typeof IS_MINIFIED&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)i._friendlyError=i._checkForUserDefinedFunctions=i._fesErrorMonitor=()=&amp;amp;gt;{};else{let l={},c=l.toString,p=[&amp;amp;quot;Boolean&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Function&amp;amp;quot;,&amp;amp;quot;Array&amp;amp;quot;,&amp;amp;quot;Date&amp;amp;quot;,&amp;amp;quot;RegExp&amp;amp;quot;,&amp;amp;quot;Object&amp;amp;quot;,&amp;amp;quot;Error&amp;amp;quot;];for(let b=0;b&amp;amp;lt;p.length;b++)l[`[object ${p[b]}]`]=p[b].toLowerCase();let f=b=&amp;amp;gt;b==null?`${b}`:typeof b==&amp;amp;quot;object&amp;amp;quot;||typeof b==&amp;amp;quot;function&amp;amp;quot;?l[c.call(b)]||&amp;amp;quot;object&amp;amp;quot;:typeof b,d=[&amp;amp;quot;setup&amp;amp;quot;,&amp;amp;quot;draw&amp;amp;quot;,&amp;amp;quot;deviceMoved&amp;amp;quot;,&amp;amp;quot;deviceTurned&amp;amp;quot;,&amp;amp;quot;deviceShaken&amp;amp;quot;,&amp;amp;quot;doubleClicked&amp;amp;quot;,&amp;amp;quot;mousePressed&amp;amp;quot;,&amp;amp;quot;mouseReleased&amp;amp;quot;,&amp;amp;quot;mouseMoved&amp;amp;quot;,&amp;amp;quot;mouseDragged&amp;amp;quot;,&amp;amp;quot;mouseClicked&amp;amp;quot;,&amp;amp;quot;mouseWheel&amp;amp;quot;,&amp;amp;quot;touchStarted&amp;amp;quot;,&amp;amp;quot;touchMoved&amp;amp;quot;,&amp;amp;quot;touchEnded&amp;amp;quot;,&amp;amp;quot;keyPressed&amp;amp;quot;,&amp;amp;quot;keyReleased&amp;amp;quot;,&amp;amp;quot;keyTyped&amp;amp;quot;,&amp;amp;quot;windowResized&amp;amp;quot;],m=(b,I)=&amp;amp;gt;{let E=&amp;amp;quot;&amp;amp;quot;;if(I==null||I.substring(0,4)===&amp;amp;quot;load&amp;amp;quot;)E=b;else{let A=I.split(&amp;amp;quot;.&amp;amp;quot;),C=A.length&amp;amp;gt;1?`${A[0]}.${A[1]}`:&amp;amp;quot;p5&amp;amp;quot;,T=A.length===1?I:A.slice(2).join(&amp;amp;quot;/&amp;amp;quot;);T.startsWith(&amp;amp;quot;p5.&amp;amp;quot;)?E=`${b} (https://p5js.org/reference/${C}.${T})`:E=`${b} (https://p5js.org/reference/${C}/${T})`}return E};i._report=(b,I,E)=&amp;amp;gt;{let A=i._fesLogger==null?console.log.bind(console):i._fesLogger;f(E)===&amp;amp;quot;undefined&amp;amp;quot;?E=&amp;amp;quot;#B40033&amp;amp;quot;:f(E)===&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(E=r[E]),b=m(b,I);let C=Pe(&amp;amp;quot;fes.pre&amp;amp;quot;,{message:b});A(C)},i._error=(b,I,E)=&amp;amp;gt;{throw i._report(I,E),b.hitCriticalError=!0,new o(&amp;amp;quot;Stopping sketch to prevent more errors&amp;amp;quot;)},i._friendlyError=function(b,I,E){i._report(b,I,E)},i._friendlyAutoplayError=function(b){let I=Pe(&amp;amp;quot;fes.autoplay&amp;amp;quot;,{src:b,url:&amp;amp;quot;https://developer.mozilla.org/docs/Web/Media/Autoplay_guide&amp;amp;quot;});console.log(Pe(&amp;amp;quot;fes.pre&amp;amp;quot;,{message:I}))};let g=(b,I)=&amp;amp;gt;{let E=b.length,A=I.length;if(E===0)return I;if(A===0)return b;let C=[],T=[];for(let D=0;D&amp;amp;lt;A+1;D++)T[D]=D;C=T;for(let D=1;D&amp;amp;lt;E+1;D++){T=[];for(let F=0;F&amp;amp;lt;A+1;F++)if(F===0)T[F]=D;else{let N=b[D-1],B=I[F-1],U=999999,j=N.toLowerCase()===B.toLowerCase()?0:1;U=U&amp;amp;gt;j+C[F-1]?j+C[F-1]:U,U=U&amp;amp;gt;1+T[F-1]?1+T[F-1]:U,U=U&amp;amp;gt;1+C[F]?1+C[F]:U,T[F]=U}C=T}return T[A]};i.isPreloadSupported=function(){return!1};let v=b=&amp;amp;gt;{if(i.disableFriendlyErrors)return;b=b instanceof i?b:window;let E=d;b.preload&amp;amp;amp;&amp;amp;amp;!i.isPreloadSupported()&amp;amp;amp;&amp;amp;amp;i._error(b,Pe(&amp;amp;quot;fes.preloadDisabled&amp;amp;quot;));let A={};E.forEach(C=&amp;amp;gt;{A[C.toLowerCase()]=C});for(let C of Object.keys(b)){let T=C.toLowerCase();if(A.hasOwnProperty(T)&amp;amp;amp;&amp;amp;amp;!b[A[T]]&amp;amp;amp;&amp;amp;amp;typeof b[C]==&amp;amp;quot;function&amp;amp;quot;){let D=Pe(&amp;amp;quot;fes.checkUserDefinedFns&amp;amp;quot;,{name:C,actualName:A[T]});i._friendlyError(D,A[T])}}},w=(b,I)=&amp;amp;gt;{n||s();let E={},A=999999;if(n.forEach(T=&amp;amp;gt;{let D=g(b,T.name);E[D]?E[D].push(T):E[D]=[T],D&amp;amp;lt;A&amp;amp;amp;&amp;amp;amp;(A=D)}),A&amp;amp;gt;Math.min(a,b.length))return!1;let C=E[A].filter(T=&amp;amp;gt;T.name!==b);if(C.length!==0){let T=i._getErrorStackParser().parse(I),D;T&amp;amp;amp;&amp;amp;amp;T[0]&amp;amp;amp;&amp;amp;amp;T[0].fileName&amp;amp;amp;&amp;amp;amp;T[0].lineNumber&amp;amp;amp;&amp;amp;amp;T[0].columnNumber&amp;amp;amp;&amp;amp;amp;(D={location:`${T[0].fileName}:${T[0].lineNumber}:${T[0].columnNumber}`,file:T[0].fileName.split(&amp;amp;quot;/&amp;amp;quot;).slice(-1),line:T[0].lineNumber});let F;if(C.length===1)F=Pe(&amp;amp;quot;fes.misspelling&amp;amp;quot;,{name:b,actualName:C[0].name,type:C[0].type,location:D?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,D):&amp;amp;quot;&amp;amp;quot;,count:C.length});else{let N=C.map(B=&amp;amp;gt;{let U=&amp;amp;quot;\u25B6\uFE0F &amp;amp;quot;+B.name+(B.type===&amp;amp;quot;function&amp;amp;quot;?&amp;amp;quot;()&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;);return m(U,B.name)}).join(`
   7422 <a href="#l7403" class="line" id="l7403">   7403</a> &lt;a href=&quot;#l7384&quot; class=&quot;line&quot; id=&quot;l7384&quot;&gt;   7384&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2284&amp;quot; id=&amp;quot;h4-0-2284&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);F=Pe(&amp;amp;quot;fes.misspelling&amp;amp;quot;,{name:b,suggestions:N,location:D?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,D):&amp;amp;quot;&amp;amp;quot;,count:C.length})}return i._friendlyError(F,C.length===1?C[0].name:void 0),!0}return!1},y=b=&amp;amp;gt;{let I=i._fesLogger&amp;amp;amp;&amp;amp;amp;typeof i._fesLogger==&amp;amp;quot;function&amp;amp;quot;?i._fesLogger:console.log.bind(console);if(b.length&amp;amp;gt;1){let E=&amp;amp;quot;&amp;amp;quot;;b.forEach((A,C)=&amp;amp;gt;{let T=`${A.fileName}:${A.lineNumber}:${A.columnNumber}`,D,F={func:A.functionName,line:A.lineNumber,location:T,file:A.fileName.split(&amp;amp;quot;/&amp;amp;quot;).slice(-1)};C===0?D=Pe(&amp;amp;quot;fes.globalErrors.stackTop&amp;amp;quot;,F):D=Pe(&amp;amp;quot;fes.globalErrors.stackSubseq&amp;amp;quot;,F),E+=D}),I(E)}},S=(b,I)=&amp;amp;gt;{if(!I)return[!1,null];I.forEach(D=&amp;amp;gt;{D.functionName=D.functionName||&amp;amp;quot;&amp;amp;quot;});let E=!1,A,C,T;try{throw new Error}catch(D){A=i._getErrorStackParser().parse(D)[0].fileName}for(let D=I.length-1;D&amp;amp;gt;=0;D--){let F=I[D].functionName.split(&amp;amp;quot;.&amp;amp;quot;);if(d.includes(F[F.length-1])){if(C=I.slice(0,D+1),T=F[F.length-1],I[0].fileName===A){E=!0;break}break}}if(C||(C=I),E){if(C=C.map((N,B)=&amp;amp;gt;(N.frameIndex=B,N)).filter(N=&amp;amp;gt;N.fileName!==A),C.length===0)return[!0,null];let D=I[C[0].frameIndex-2].functionName.split(&amp;amp;quot;.&amp;amp;quot;).slice(-1)[0],F;if(C[0].fileName&amp;amp;amp;&amp;amp;amp;C[0].lineNumber&amp;amp;amp;&amp;amp;amp;C[0].columnNumber&amp;amp;amp;&amp;amp;amp;(F={location:`${C[0].fileName}:${C[0].lineNumber}:${C[0].columnNumber}`,file:C[0].fileName.split(&amp;amp;quot;/&amp;amp;quot;).slice(-1),line:C[0].lineNumber},i._fesLogCache[F.location]))return[!0,null];T===&amp;amp;quot;preload&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t._preloadMethods[D]==null?i._friendlyError(Pe(&amp;amp;quot;fes.wrongPreload&amp;amp;quot;,{func:D,location:F?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,F):&amp;amp;quot;&amp;amp;quot;,error:b.message}),&amp;amp;quot;preload&amp;amp;quot;):i._friendlyError(Pe(&amp;amp;quot;fes.libraryError&amp;amp;quot;,{func:D,location:F?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,F):&amp;amp;quot;&amp;amp;quot;,error:b.message}),D),C&amp;amp;amp;&amp;amp;amp;C.length&amp;amp;amp;&amp;amp;amp;y(C)}return[E,C]},_=b=&amp;amp;gt;{if(i.disableFriendlyErrors||b&amp;amp;amp;&amp;amp;amp;(b instanceof o||b.reason instanceof o))return;let I;if(b instanceof Error)I=b;else if(b instanceof ErrorEvent)I=b.error;else if(b instanceof PromiseRejectionEvent&amp;amp;amp;&amp;amp;amp;(I=b.reason,!(I instanceof Error)))return;if(!I)return;let E=i._getErrorStackParser().parse(I),[A,C]=S(I,E);if(A)return;let T=A0[I.name];if(!T)return;let D;for(let N of T){let B=N.msg;B=B.replace(new RegExp(&amp;amp;quot;{{}}&amp;amp;quot;,&amp;amp;quot;g&amp;amp;quot;),&amp;amp;quot;([a-zA-Z0-9_]+)&amp;amp;quot;),B=B.replace(new RegExp(&amp;amp;quot;{{.}}&amp;amp;quot;,&amp;amp;quot;g&amp;amp;quot;),&amp;amp;quot;(.+)&amp;amp;quot;),B=B.replace(new RegExp(&amp;amp;quot;{}&amp;amp;quot;,&amp;amp;quot;g&amp;amp;quot;),&amp;amp;quot;(?:[a-zA-Z0-9_]+)&amp;amp;quot;);let U=I.message.match(B);if(U){D=Object.assign({},N),D.match=U;break}}if(!D)return;let F;switch(E&amp;amp;amp;&amp;amp;amp;E[0].fileName&amp;amp;amp;&amp;amp;amp;E[0].lineNumber&amp;amp;amp;&amp;amp;amp;E[0].columnNumber&amp;amp;amp;&amp;amp;amp;(F={location:`${E[0].fileName}:${E[0].lineNumber}:${E[0].columnNumber}`,file:E[0].fileName.split(&amp;amp;quot;/&amp;amp;quot;).slice(-1),line:C[0].lineNumber}),I.name){case&amp;amp;quot;SyntaxError&amp;amp;quot;:{switch(D.type){case&amp;amp;quot;INVALIDTOKEN&amp;amp;quot;:{i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.syntax.invalidToken&amp;amp;quot;,{url:&amp;amp;quot;https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Illegal_character#What_went_wrong&amp;amp;quot;}));break}case&amp;amp;quot;UNEXPECTEDTOKEN&amp;amp;quot;:{i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.syntax.unexpectedToken&amp;amp;quot;,{url:&amp;amp;quot;https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Unexpected_token#What_went_wrong&amp;amp;quot;}));break}case&amp;amp;quot;REDECLAREDVARIABLE&amp;amp;quot;:{let N=D.match[1];i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.syntax.redeclaredVariable&amp;amp;quot;,{symbol:N,url:&amp;amp;quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Redeclared_parameter#what_went_wrong&amp;amp;quot;}));break}case&amp;amp;quot;MISSINGINITIALIZER&amp;amp;quot;:{i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.syntax.missingInitializer&amp;amp;quot;,{url:&amp;amp;quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Missing_initializer_in_const#what_went_wrong&amp;amp;quot;}));break}case&amp;amp;quot;BADRETURNORYIELD&amp;amp;quot;:{i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.syntax.badReturnOrYield&amp;amp;quot;,{url:&amp;amp;quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Bad_return_or_yield#what_went_wrong&amp;amp;quot;}));break}}break}case&amp;amp;quot;ReferenceError&amp;amp;quot;:{switch(D.type){case&amp;amp;quot;NOTDEFINED&amp;amp;quot;:{let N=D.match[1];if(N&amp;amp;amp;&amp;amp;amp;w(N,I))break;i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.reference.notDefined&amp;amp;quot;,{url:&amp;amp;quot;https://p5js.org/examples/data-variable-scope.html&amp;amp;quot;,symbol:N,location:F?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,F):&amp;amp;quot;&amp;amp;quot;})),C&amp;amp;amp;&amp;amp;amp;y(C);break}case&amp;amp;quot;CANNOTACCESS&amp;amp;quot;:{let N=D.match[1];i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.reference.cannotAccess&amp;amp;quot;,{url:&amp;amp;quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cant_access_lexical_declaration_before_init#what_went_wrong&amp;amp;quot;,symbol:N,location:F?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,F):&amp;amp;quot;&amp;amp;quot;})),C&amp;amp;amp;&amp;amp;amp;y(C);break}}break}case&amp;amp;quot;TypeError&amp;amp;quot;:switch(D.type){case&amp;amp;quot;NOTFUNC&amp;amp;quot;:{let B=D.match[1].split(&amp;amp;quot;.&amp;amp;quot;),j={url:&amp;amp;quot;https://developer.mozilla.org/docs/Web/JavaScript/Reference/Errors/Not_a_function#What_went_wrong&amp;amp;quot;,symbol:B[B.length-1],obj:B.slice(0,B.length-1).join(&amp;amp;quot;.&amp;amp;quot;),location:F?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,F):&amp;amp;quot;&amp;amp;quot;};B.length&amp;amp;gt;1?i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.type.notfuncObj&amp;amp;quot;,j)):i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.type.notfunc&amp;amp;quot;,j)),C&amp;amp;amp;&amp;amp;amp;y(C);break}case&amp;amp;quot;READNULL&amp;amp;quot;:{let N=D.match[1];i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.type.readFromNull&amp;amp;quot;,{url:&amp;amp;quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cant_access_property#what_went_wrong&amp;amp;quot;,symbol:N,location:F?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,F):&amp;amp;quot;&amp;amp;quot;})),C&amp;amp;amp;&amp;amp;amp;y(C);break}case&amp;amp;quot;READUDEFINED&amp;amp;quot;:{let N=D.match[1];i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.type.readFromUndefined&amp;amp;quot;,{url:&amp;amp;quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Cant_access_property#what_went_wrong&amp;amp;quot;,symbol:N,location:F?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,F):&amp;amp;quot;&amp;amp;quot;})),C&amp;amp;amp;&amp;amp;amp;y(C);break}case&amp;amp;quot;CONSTASSIGN&amp;amp;quot;:{i._friendlyError(Pe(&amp;amp;quot;fes.globalErrors.type.constAssign&amp;amp;quot;,{url:&amp;amp;quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_const_assignment#what_went_wrong&amp;amp;quot;,location:F?Pe(&amp;amp;quot;fes.location&amp;amp;quot;,F):&amp;amp;quot;&amp;amp;quot;})),C&amp;amp;amp;&amp;amp;amp;y(C);break}}}};i._fesErrorMonitor=_,i._checkForUserDefinedFunctions=v,i._fesLogger=null,i._fesLogCache={},window.addEventListener(&amp;amp;quot;load&amp;amp;quot;,v,!1),window.addEventListener(&amp;amp;quot;error&amp;amp;quot;,i._fesErrorMonitor,!1),window.addEventListener(&amp;amp;quot;unhandledrejection&amp;amp;quot;,i._fesErrorMonitor,!1)}n=null;let u=&amp;amp;quot;https://github.com/processing/p5.js/wiki/p5.js-overview#why-cant-i-assign-variables-using-p5-functions-and-variables-before-setup&amp;amp;quot;;s=()=&amp;amp;gt;{let l={},c=p=&amp;amp;gt;Object.getOwnPropertyNames(p).filter(f=&amp;amp;gt;f[0]===&amp;amp;quot;_&amp;amp;quot;||f in l?!1:(l[f]=!0,!0)).map(f=&amp;amp;gt;{let d;return typeof p[f]==&amp;amp;quot;function&amp;amp;quot;?d=&amp;amp;quot;function&amp;amp;quot;:f===f.toUpperCase()?d=&amp;amp;quot;constant&amp;amp;quot;:d=&amp;amp;quot;variable&amp;amp;quot;,{name:f,type:d}});n=[].concat(c(t),c(gr)),n.sort((p,f)=&amp;amp;gt;f.name.length-p.name.length)};let h=(l,c)=&amp;amp;gt;{c||(c=console.log.bind(console)),n||s(),n.some(p=&amp;amp;gt;{if(l.message&amp;amp;amp;&amp;amp;amp;l.message.match(`\\W?${p.name}\\W`)!==null){let f=p.type===&amp;amp;quot;function&amp;amp;quot;?`${p.name}()`:p.name;return c(typeof IS_MINIFIED&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?`Did you just try to use p5.js&amp;amp;#39;s ${f} ${p.type}? If so, you may want to move it into your sketch&amp;amp;#39;s setup() function.
   7423 <a href="#l7404" class="line" id="l7404">   7404</a> &lt;a href=&quot;#l7385&quot; class=&quot;line&quot; id=&quot;l7385&quot;&gt;   7385&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2285&amp;quot; id=&amp;quot;h4-0-2285&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7424 <a href="#l7405" class="line" id="l7405">   7405</a> &lt;a href=&quot;#l7386&quot; class=&quot;line&quot; id=&quot;l7386&quot;&gt;   7386&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2286&amp;quot; id=&amp;quot;h4-0-2286&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+For more details, see: ${u}`:Pe(&amp;amp;quot;fes.misusedTopLevel&amp;amp;quot;,{symbolName:f,symbolType:p.type,url:u})),!0}})};t._helpForMisusedAtTopLevelCode=h,document.readyState!==&amp;amp;quot;complete&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(window.addEventListener(&amp;amp;quot;error&amp;amp;quot;,h,!1),window.addEventListener(&amp;amp;quot;load&amp;amp;quot;,()=&amp;amp;gt;{window.removeEventListener(&amp;amp;quot;error&amp;amp;quot;,h,!1)}))}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Qc(p5,p5.prototype);function C_(){let i=/(^|@)\S+:\d+/,t=/^\s*at .*(\S+:\d+|\(native\))/m,r=/^(eval@)?(\[native code])?$/;return{parse:function(s){if(typeof s.stacktrace&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;||typeof s[&amp;amp;quot;opera#sourceloc&amp;amp;quot;]&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)return this.parseOpera(s);if(s.stack&amp;amp;amp;&amp;amp;amp;s.stack.match(t))return this.parseV8OrIE(s);if(s.stack)return this.parseFFOrSafari(s)},extractLocation:function(s){if(s.indexOf(&amp;amp;quot;:&amp;amp;quot;)===-1)return[s];let o=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(s.replace(/[()]/g,&amp;amp;quot;&amp;amp;quot;));return[o[1],o[2]||void 0,o[3]||void 0]},parseV8OrIE:function(s){return s.stack.split(`
   7425 <a href="#l7406" class="line" id="l7406">   7406</a> &lt;a href=&quot;#l7387&quot; class=&quot;line&quot; id=&quot;l7387&quot;&gt;   7387&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2287&amp;quot; id=&amp;quot;h4-0-2287&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`).filter(function(o){return!!o.match(t)},this).map(function(o){o.indexOf(&amp;amp;quot;(eval &amp;amp;quot;)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(o=o.replace(/eval code/g,&amp;amp;quot;eval&amp;amp;quot;).replace(/(\(eval at [^()]*)|(\),.*$)/g,&amp;amp;quot;&amp;amp;quot;));let u=o.replace(/^\s+/,&amp;amp;quot;&amp;amp;quot;).replace(/\(eval code/g,&amp;amp;quot;(&amp;amp;quot;),h=u.match(/ (\((.+):(\d+):(\d+)\)$)/);u=h?u.replace(h[0],&amp;amp;quot;&amp;amp;quot;):u;let l=u.split(/\s+/).slice(1),c=this.extractLocation(h?h[1]:l.pop()),p=l.join(&amp;amp;quot; &amp;amp;quot;)||void 0,f=[&amp;amp;quot;eval&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;anonymous&amp;amp;gt;&amp;amp;quot;].indexOf(c[0])&amp;amp;gt;-1?void 0:c[0];return{functionName:p,fileName:f,lineNumber:c[1],columnNumber:c[2],source:o}},this)},parseFFOrSafari:function(s){return s.stack.split(`
   7426 <a href="#l7407" class="line" id="l7407">   7407</a> &lt;a href=&quot;#l7388&quot; class=&quot;line&quot; id=&quot;l7388&quot;&gt;   7388&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2288&amp;quot; id=&amp;quot;h4-0-2288&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`).filter(function(o){return!o.match(r)},this).map(function(o){if(o.indexOf(&amp;amp;quot; &amp;amp;gt; eval&amp;amp;quot;)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(o=o.replace(/ line (\d+)(?: &amp;amp;gt; eval line \d+)* &amp;amp;gt; eval:\d+:\d+/g,&amp;amp;quot;:$1&amp;amp;quot;)),o.indexOf(&amp;amp;quot;@&amp;amp;quot;)===-1&amp;amp;amp;&amp;amp;amp;o.indexOf(&amp;amp;quot;:&amp;amp;quot;)===-1)return{functionName:o};{let u=/((.*&amp;amp;quot;.+&amp;amp;quot;[^@]*)?[^@]*)(?:@)/,h=o.match(u),l=h&amp;amp;amp;&amp;amp;amp;h[1]?h[1]:void 0,c=this.extractLocation(o.replace(u,&amp;amp;quot;&amp;amp;quot;));return{functionName:l,fileName:c[0],lineNumber:c[1],columnNumber:c[2],source:o}}},this)},parseOpera:function(s){return!s.stacktrace||s.message.indexOf(`
   7427 <a href="#l7408" class="line" id="l7408">   7408</a> &lt;a href=&quot;#l7389&quot; class=&quot;line&quot; id=&quot;l7389&quot;&gt;   7389&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2289&amp;quot; id=&amp;quot;h4-0-2289&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;s.message.split(`
   7428 <a href="#l7409" class="line" id="l7409">   7409</a> &lt;a href=&quot;#l7390&quot; class=&quot;line&quot; id=&quot;l7390&quot;&gt;   7390&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2290&amp;quot; id=&amp;quot;h4-0-2290&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`).length&amp;amp;gt;s.stacktrace.split(`
   7429 <a href="#l7410" class="line" id="l7410">   7410</a> &lt;a href=&quot;#l7391&quot; class=&quot;line&quot; id=&quot;l7391&quot;&gt;   7391&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2291&amp;quot; id=&amp;quot;h4-0-2291&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`).length?this.parseOpera9(s):s.stack?this.parseOpera11(s):this.parseOpera10(s)},parseOpera9:function(s){let a=/Line (\d+).*script (?:in )?(\S+)/i,o=s.message.split(`
   7430 <a href="#l7411" class="line" id="l7411">   7411</a> &lt;a href=&quot;#l7392&quot; class=&quot;line&quot; id=&quot;l7392&quot;&gt;   7392&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2292&amp;quot; id=&amp;quot;h4-0-2292&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),u=[];for(let h=2,l=o.length;h&amp;amp;lt;l;h+=2){let c=a.exec(o[h]);c&amp;amp;amp;&amp;amp;amp;u.push({fileName:c[2],lineNumber:c[1],source:o[h]})}return u},parseOpera10:function(s){let a=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,o=s.stacktrace.split(`
   7431 <a href="#l7412" class="line" id="l7412">   7412</a> &lt;a href=&quot;#l7393&quot; class=&quot;line&quot; id=&quot;l7393&quot;&gt;   7393&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2293&amp;quot; id=&amp;quot;h4-0-2293&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),u=[];for(let h=0,l=o.length;h&amp;amp;lt;l;h+=2){let c=a.exec(o[h]);c&amp;amp;amp;&amp;amp;amp;u.push({functionName:c[3]||void 0,fileName:c[2],lineNumber:c[1],source:o[h]})}return u},parseOpera11:function(s){return s.stack.split(`
   7432 <a href="#l7413" class="line" id="l7413">   7413</a> &lt;a href=&quot;#l7394&quot; class=&quot;line&quot; id=&quot;l7394&quot;&gt;   7394&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2294&amp;quot; id=&amp;quot;h4-0-2294&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`).filter(function(o){return!!o.match(i)&amp;amp;amp;&amp;amp;amp;!o.match(/^Error created at/)},this).map(function(o){let u=o.split(&amp;amp;quot;@&amp;amp;quot;),h=this.extractLocation(u.pop()),l=u.shift()||&amp;amp;quot;&amp;amp;quot;,c=l.replace(/&amp;amp;lt;anonymous function(: (\w+))?&amp;amp;gt;/,&amp;amp;quot;$2&amp;amp;quot;).replace(/\([^)]*\)/g,&amp;amp;quot;&amp;amp;quot;)||void 0,p;l.match(/\(([^)]*)\)/)&amp;amp;amp;&amp;amp;amp;(p=l.replace(/^[^(]+\(([^)]*)\)$/,&amp;amp;quot;$1&amp;amp;quot;));let f=p===void 0||p===&amp;amp;quot;[arguments not available]&amp;amp;quot;?void 0:p.split(&amp;amp;quot;,&amp;amp;quot;);return{functionName:c,args:f,fileName:h[0],lineNumber:h[1],columnNumber:h[2],source:o}},this)}}}function ef(i,t){i._getErrorStackParser=function(){return new C_}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;ef(p5,p5.prototype);var He;(function(i){i.assertEqual=s=&amp;amp;gt;{};function t(s){}i.assertIs=t;function r(s){throw new Error}i.assertNever=r,i.arrayToEnum=s=&amp;amp;gt;{let a={};for(let o of s)a[o]=o;return a},i.getValidEnumValues=s=&amp;amp;gt;{let a=i.objectKeys(s).filter(u=&amp;amp;gt;typeof s[s[u]]!=&amp;amp;quot;number&amp;amp;quot;),o={};for(let u of a)o[u]=s[u];return i.objectValues(o)},i.objectValues=s=&amp;amp;gt;i.objectKeys(s).map(function(a){return s[a]}),i.objectKeys=typeof Object.keys==&amp;amp;quot;function&amp;amp;quot;?s=&amp;amp;gt;Object.keys(s):s=&amp;amp;gt;{let a=[];for(let o in s)Object.prototype.hasOwnProperty.call(s,o)&amp;amp;amp;&amp;amp;amp;a.push(o);return a},i.find=(s,a)=&amp;amp;gt;{for(let o of s)if(a(o))return o},i.isInteger=typeof Number.isInteger==&amp;amp;quot;function&amp;amp;quot;?s=&amp;amp;gt;Number.isInteger(s):s=&amp;amp;gt;typeof s==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Number.isFinite(s)&amp;amp;amp;&amp;amp;amp;Math.floor(s)===s;function n(s,a=&amp;amp;quot; | &amp;amp;quot;){return s.map(o=&amp;amp;gt;typeof o==&amp;amp;quot;string&amp;amp;quot;?`&amp;amp;#39;${o}&amp;amp;#39;`:o).join(a)}i.joinValues=n,i.jsonStringifyReplacer=(s,a)=&amp;amp;gt;typeof a==&amp;amp;quot;bigint&amp;amp;quot;?a.toString():a})(He||(He={}));var D0;(function(i){i.mergeShapes=(t,r)=&amp;amp;gt;({...t,...r})})(D0||(D0={}));var we=He.arrayToEnum([&amp;amp;quot;string&amp;amp;quot;,&amp;amp;quot;nan&amp;amp;quot;,&amp;amp;quot;number&amp;amp;quot;,&amp;amp;quot;integer&amp;amp;quot;,&amp;amp;quot;float&amp;amp;quot;,&amp;amp;quot;boolean&amp;amp;quot;,&amp;amp;quot;date&amp;amp;quot;,&amp;amp;quot;bigint&amp;amp;quot;,&amp;amp;quot;symbol&amp;amp;quot;,&amp;amp;quot;function&amp;amp;quot;,&amp;amp;quot;undefined&amp;amp;quot;,&amp;amp;quot;null&amp;amp;quot;,&amp;amp;quot;array&amp;amp;quot;,&amp;amp;quot;object&amp;amp;quot;,&amp;amp;quot;unknown&amp;amp;quot;,&amp;amp;quot;promise&amp;amp;quot;,&amp;amp;quot;void&amp;amp;quot;,&amp;amp;quot;never&amp;amp;quot;,&amp;amp;quot;map&amp;amp;quot;,&amp;amp;quot;set&amp;amp;quot;]),Ei=i=&amp;amp;gt;{switch(typeof i){case&amp;amp;quot;undefined&amp;amp;quot;:return we.undefined;case&amp;amp;quot;string&amp;amp;quot;:return we.string;case&amp;amp;quot;number&amp;amp;quot;:return Number.isNaN(i)?we.nan:we.number;case&amp;amp;quot;boolean&amp;amp;quot;:return we.boolean;case&amp;amp;quot;function&amp;amp;quot;:return we.function;case&amp;amp;quot;bigint&amp;amp;quot;:return we.bigint;case&amp;amp;quot;symbol&amp;amp;quot;:return we.symbol;case&amp;amp;quot;object&amp;amp;quot;:return Array.isArray(i)?we.array:i===null?we.null:i.then&amp;amp;amp;&amp;amp;amp;typeof i.then==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.catch&amp;amp;amp;&amp;amp;amp;typeof i.catch==&amp;amp;quot;function&amp;amp;quot;?we.promise:typeof Map&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i instanceof Map?we.map:typeof Set&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i instanceof Set?we.set:typeof Date&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i instanceof Date?we.date:we.object;default:return we.unknown}};var le=He.arrayToEnum([&amp;amp;quot;invalid_type&amp;amp;quot;,&amp;amp;quot;invalid_literal&amp;amp;quot;,&amp;amp;quot;custom&amp;amp;quot;,&amp;amp;quot;invalid_union&amp;amp;quot;,&amp;amp;quot;invalid_union_discriminator&amp;amp;quot;,&amp;amp;quot;invalid_enum_value&amp;amp;quot;,&amp;amp;quot;unrecognized_keys&amp;amp;quot;,&amp;amp;quot;invalid_arguments&amp;amp;quot;,&amp;amp;quot;invalid_return_type&amp;amp;quot;,&amp;amp;quot;invalid_date&amp;amp;quot;,&amp;amp;quot;invalid_string&amp;amp;quot;,&amp;amp;quot;too_small&amp;amp;quot;,&amp;amp;quot;too_big&amp;amp;quot;,&amp;amp;quot;invalid_intersection_types&amp;amp;quot;,&amp;amp;quot;not_multiple_of&amp;amp;quot;,&amp;amp;quot;not_finite&amp;amp;quot;]);var cr=class i extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=n=&amp;amp;gt;{this.issues=[...this.issues,n]},this.addIssues=(n=[])=&amp;amp;gt;{this.issues=[...this.issues,...n]};let r=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,r):this.__proto__=r,this.name=&amp;amp;quot;ZodError&amp;amp;quot;,this.issues=t}format(t){let r=t||function(a){return a.message},n={_errors:[]},s=a=&amp;amp;gt;{for(let o of a.issues)if(o.code===&amp;amp;quot;invalid_union&amp;amp;quot;)o.unionErrors.map(s);else if(o.code===&amp;amp;quot;invalid_return_type&amp;amp;quot;)s(o.returnTypeError);else if(o.code===&amp;amp;quot;invalid_arguments&amp;amp;quot;)s(o.argumentsError);else if(o.path.length===0)n._errors.push(r(o));else{let u=n,h=0;for(;h&amp;amp;lt;o.path.length;){let l=o.path[h];h===o.path.length-1?(u[l]=u[l]||{_errors:[]},u[l]._errors.push(r(o))):u[l]=u[l]||{_errors:[]},u=u[l],h++}}};return s(this),n}static assert(t){if(!(t instanceof i))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,He.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=r=&amp;amp;gt;r.message){let r={},n=[];for(let s of this.issues)if(s.path.length&amp;amp;gt;0){let a=s.path[0];r[a]=r[a]||[],r[a].push(t(s))}else n.push(t(s));return{formErrors:n,fieldErrors:r}}get formErrors(){return this.flatten()}};cr.create=i=&amp;amp;gt;new cr(i);var E_=(i,t)=&amp;amp;gt;{let r;switch(i.code){case le.invalid_type:i.received===we.undefined?r=&amp;amp;quot;Required&amp;amp;quot;:r=`Expected ${i.expected}, received ${i.received}`;break;case le.invalid_literal:r=`Invalid literal value, expected ${JSON.stringify(i.expected,He.jsonStringifyReplacer)}`;break;case le.unrecognized_keys:r=`Unrecognized key(s) in object: ${He.joinValues(i.keys,&amp;amp;quot;, &amp;amp;quot;)}`;break;case le.invalid_union:r=&amp;amp;quot;Invalid input&amp;amp;quot;;break;case le.invalid_union_discriminator:r=`Invalid discriminator value. Expected ${He.joinValues(i.options)}`;break;case le.invalid_enum_value:r=`Invalid enum value. Expected ${He.joinValues(i.options)}, received &amp;amp;#39;${i.received}&amp;amp;#39;`;break;case le.invalid_arguments:r=&amp;amp;quot;Invalid function arguments&amp;amp;quot;;break;case le.invalid_return_type:r=&amp;amp;quot;Invalid function return type&amp;amp;quot;;break;case le.invalid_date:r=&amp;amp;quot;Invalid date&amp;amp;quot;;break;case le.invalid_string:typeof i.validation==&amp;amp;quot;object&amp;amp;quot;?&amp;amp;quot;includes&amp;amp;quot;in i.validation?(r=`Invalid input: must include &amp;amp;quot;${i.validation.includes}&amp;amp;quot;`,typeof i.validation.position==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=`${r} at one or more positions greater than or equal to ${i.validation.position}`)):&amp;amp;quot;startsWith&amp;amp;quot;in i.validation?r=`Invalid input: must start with &amp;amp;quot;${i.validation.startsWith}&amp;amp;quot;`:&amp;amp;quot;endsWith&amp;amp;quot;in i.validation?r=`Invalid input: must end with &amp;amp;quot;${i.validation.endsWith}&amp;amp;quot;`:He.assertNever(i.validation):i.validation!==&amp;amp;quot;regex&amp;amp;quot;?r=`Invalid ${i.validation}`:r=&amp;amp;quot;Invalid&amp;amp;quot;;break;case le.too_small:i.type===&amp;amp;quot;array&amp;amp;quot;?r=`Array must contain ${i.exact?&amp;amp;quot;exactly&amp;amp;quot;:i.inclusive?&amp;amp;quot;at least&amp;amp;quot;:&amp;amp;quot;more than&amp;amp;quot;} ${i.minimum} element(s)`:i.type===&amp;amp;quot;string&amp;amp;quot;?r=`String must contain ${i.exact?&amp;amp;quot;exactly&amp;amp;quot;:i.inclusive?&amp;amp;quot;at least&amp;amp;quot;:&amp;amp;quot;over&amp;amp;quot;} ${i.minimum} character(s)`:i.type===&amp;amp;quot;number&amp;amp;quot;?r=`Number must be ${i.exact?&amp;amp;quot;exactly equal to &amp;amp;quot;:i.inclusive?&amp;amp;quot;greater than or equal to &amp;amp;quot;:&amp;amp;quot;greater than &amp;amp;quot;}${i.minimum}`:i.type===&amp;amp;quot;bigint&amp;amp;quot;?r=`Number must be ${i.exact?&amp;amp;quot;exactly equal to &amp;amp;quot;:i.inclusive?&amp;amp;quot;greater than or equal to &amp;amp;quot;:&amp;amp;quot;greater than &amp;amp;quot;}${i.minimum}`:i.type===&amp;amp;quot;date&amp;amp;quot;?r=`Date must be ${i.exact?&amp;amp;quot;exactly equal to &amp;amp;quot;:i.inclusive?&amp;amp;quot;greater than or equal to &amp;amp;quot;:&amp;amp;quot;greater than &amp;amp;quot;}${new Date(Number(i.minimum))}`:r=&amp;amp;quot;Invalid input&amp;amp;quot;;break;case le.too_big:i.type===&amp;amp;quot;array&amp;amp;quot;?r=`Array must contain ${i.exact?&amp;amp;quot;exactly&amp;amp;quot;:i.inclusive?&amp;amp;quot;at most&amp;amp;quot;:&amp;amp;quot;less than&amp;amp;quot;} ${i.maximum} element(s)`:i.type===&amp;amp;quot;string&amp;amp;quot;?r=`String must contain ${i.exact?&amp;amp;quot;exactly&amp;amp;quot;:i.inclusive?&amp;amp;quot;at most&amp;amp;quot;:&amp;amp;quot;under&amp;amp;quot;} ${i.maximum} character(s)`:i.type===&amp;amp;quot;number&amp;amp;quot;?r=`Number must be ${i.exact?&amp;amp;quot;exactly&amp;amp;quot;:i.inclusive?&amp;amp;quot;less than or equal to&amp;amp;quot;:&amp;amp;quot;less than&amp;amp;quot;} ${i.maximum}`:i.type===&amp;amp;quot;bigint&amp;amp;quot;?r=`BigInt must be ${i.exact?&amp;amp;quot;exactly&amp;amp;quot;:i.inclusive?&amp;amp;quot;less than or equal to&amp;amp;quot;:&amp;amp;quot;less than&amp;amp;quot;} ${i.maximum}`:i.type===&amp;amp;quot;date&amp;amp;quot;?r=`Date must be ${i.exact?&amp;amp;quot;exactly&amp;amp;quot;:i.inclusive?&amp;amp;quot;smaller than or equal to&amp;amp;quot;:&amp;amp;quot;smaller than&amp;amp;quot;} ${new Date(Number(i.maximum))}`:r=&amp;amp;quot;Invalid input&amp;amp;quot;;break;case le.custom:r=&amp;amp;quot;Invalid input&amp;amp;quot;;break;case le.invalid_intersection_types:r=&amp;amp;quot;Intersection results could not be merged&amp;amp;quot;;break;case le.not_multiple_of:r=`Number must be a multiple of ${i.multipleOf}`;break;case le.not_finite:r=&amp;amp;quot;Number must be finite&amp;amp;quot;;break;default:r=t.defaultError,He.assertNever(i)}return{message:r}},Yi=E_;var S_=Yi;function lo(){return S_}var xl=i=&amp;amp;gt;{let{data:t,path:r,errorMaps:n,issueData:s}=i,a=[...r,...s.path||[]],o={...s,path:a};if(s.message!==void 0)return{...s,path:a,message:s.message};let u=&amp;amp;quot;&amp;amp;quot;,h=n.filter(l=&amp;amp;gt;!!l).slice().reverse();for(let l of h)u=l(o,{data:t,defaultError:u}).message;return{...s,path:a,message:u}};function _e(i,t){let r=lo(),n=xl({issueData:t,data:i.data,path:i.path,errorMaps:[i.common.contextualErrorMap,i.schemaErrorMap,r,r===Yi?void 0:Yi].filter(s=&amp;amp;gt;!!s)});i.common.issues.push(n)}var Ot=class i{constructor(){this.value=&amp;amp;quot;valid&amp;amp;quot;}dirty(){this.value===&amp;amp;quot;valid&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.value=&amp;amp;quot;dirty&amp;amp;quot;)}abort(){this.value!==&amp;amp;quot;aborted&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.value=&amp;amp;quot;aborted&amp;amp;quot;)}static mergeArray(t,r){let n=[];for(let s of r){if(s.status===&amp;amp;quot;aborted&amp;amp;quot;)return Re;s.status===&amp;amp;quot;dirty&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.dirty(),n.push(s.value)}return{status:t.value,value:n}}static async mergeObjectAsync(t,r){let n=[];for(let s of r){let a=await s.key,o=await s.value;n.push({key:a,value:o})}return i.mergeObjectSync(t,n)}static mergeObjectSync(t,r){let n={};for(let s of r){let{key:a,value:o}=s;if(a.status===&amp;amp;quot;aborted&amp;amp;quot;||o.status===&amp;amp;quot;aborted&amp;amp;quot;)return Re;a.status===&amp;amp;quot;dirty&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.dirty(),o.status===&amp;amp;quot;dirty&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.dirty(),a.value!==&amp;amp;quot;__proto__&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(typeof o.value&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;||s.alwaysSet)&amp;amp;amp;&amp;amp;amp;(n[a.value]=o.value)}return{status:t.value,value:n}}},Re=Object.freeze({status:&amp;amp;quot;aborted&amp;amp;quot;}),Ms=i=&amp;amp;gt;({status:&amp;amp;quot;dirty&amp;amp;quot;,value:i}),Ht=i=&amp;amp;gt;({status:&amp;amp;quot;valid&amp;amp;quot;,value:i}),tf=i=&amp;amp;gt;i.status===&amp;amp;quot;aborted&amp;amp;quot;,rf=i=&amp;amp;gt;i.status===&amp;amp;quot;dirty&amp;amp;quot;,Bn=i=&amp;amp;gt;i.status===&amp;amp;quot;valid&amp;amp;quot;,ho=i=&amp;amp;gt;typeof Promise&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i instanceof Promise;var Ne;(function(i){i.errToObj=t=&amp;amp;gt;typeof t==&amp;amp;quot;string&amp;amp;quot;?{message:t}:t||{},i.toString=t=&amp;amp;gt;typeof t==&amp;amp;quot;string&amp;amp;quot;?t:t?.message})(Ne||(Ne={}));var Er=class{constructor(t,r,n,s){this._cachedPath=[],this.parent=t,this.data=r,this._path=n,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},F0=(i,t)=&amp;amp;gt;{if(Bn(t))return{success:!0,data:t.value};if(!i.common.issues.length)throw new Error(&amp;amp;quot;Validation failed but no issues detected.&amp;amp;quot;);return{success:!1,get error(){if(this._error)return this._error;let r=new cr(i.common.issues);return this._error=r,this._error}}};function Ue(i){if(!i)return{};let{errorMap:t,invalid_type_error:r,required_error:n,description:s}=i;if(t&amp;amp;amp;&amp;amp;amp;(r||n))throw new Error(`Can&amp;amp;#39;t use &amp;amp;quot;invalid_type_error&amp;amp;quot; or &amp;amp;quot;required_error&amp;amp;quot; in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(o,u)=&amp;amp;gt;{let{message:h}=i;return o.code===&amp;amp;quot;invalid_enum_value&amp;amp;quot;?{message:h??u.defaultError}:typeof u.data&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?{message:h??n??u.defaultError}:o.code!==&amp;amp;quot;invalid_type&amp;amp;quot;?{message:u.defaultError}:{message:h??r??u.defaultError}},description:s}}var ze=class{get description(){return this._def.description}_getType(t){return Ei(t.data)}_getOrReturnCtx(t,r){return r||{common:t.parent.common,data:t.data,parsedType:Ei(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Ot,ctx:{common:t.parent.common,data:t.data,parsedType:Ei(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let r=this._parse(t);if(ho(r))throw new Error(&amp;amp;quot;Synchronous parse encountered promise.&amp;amp;quot;);return r}_parseAsync(t){let r=this._parse(t);return Promise.resolve(r)}parse(t,r){let n=this.safeParse(t,r);if(n.success)return n.data;throw n.error}safeParse(t,r){let n={common:{issues:[],async:r?.async??!1,contextualErrorMap:r?.errorMap},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ei(t)},s=this._parseSync({data:t,path:n.path,parent:n});return F0(n,s)}&amp;amp;quot;~validate&amp;amp;quot;(t){let r={common:{issues:[],async:!!this[&amp;amp;quot;~standard&amp;amp;quot;].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ei(t)};if(!this[&amp;amp;quot;~standard&amp;amp;quot;].async)try{let n=this._parseSync({data:t,path:[],parent:r});return Bn(n)?{value:n.value}:{issues:r.common.issues}}catch(n){n?.message?.toLowerCase()?.includes(&amp;amp;quot;encountered&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(this[&amp;amp;quot;~standard&amp;amp;quot;].async=!0),r.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:r}).then(n=&amp;amp;gt;Bn(n)?{value:n.value}:{issues:r.common.issues})}async parseAsync(t,r){let n=await this.safeParseAsync(t,r);if(n.success)return n.data;throw n.error}async safeParseAsync(t,r){let n={common:{issues:[],contextualErrorMap:r?.errorMap,async:!0},path:r?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Ei(t)},s=this._parse({data:t,path:n.path,parent:n}),a=await(ho(s)?s:Promise.resolve(s));return F0(n,a)}refine(t,r){let n=s=&amp;amp;gt;typeof r==&amp;amp;quot;string&amp;amp;quot;||typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?{message:r}:typeof r==&amp;amp;quot;function&amp;amp;quot;?r(s):r;return this._refinement((s,a)=&amp;amp;gt;{let o=t(s),u=()=&amp;amp;gt;a.addIssue({code:le.custom,...n(s)});return typeof Promise&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o instanceof Promise?o.then(h=&amp;amp;gt;h?!0:(u(),!1)):o?!0:(u(),!1)})}refinement(t,r){return this._refinement((n,s)=&amp;amp;gt;t(n)?!0:(s.addIssue(typeof r==&amp;amp;quot;function&amp;amp;quot;?r(n,s):r),!1))}_refinement(t){return new Hr({schema:this,typeName:Be.ZodEffects,effect:{type:&amp;amp;quot;refinement&amp;amp;quot;,refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this[&amp;amp;quot;~standard&amp;amp;quot;]={version:1,vendor:&amp;amp;quot;zod&amp;amp;quot;,validate:r=&amp;amp;gt;this[&amp;amp;quot;~validate&amp;amp;quot;](r)}}optional(){return jr.create(this,this._def)}nullable(){return Ai.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Ki.create(this)}promise(){return On.create(this,this._def)}or(t){return Ji.create([this,t],this._def)}and(t){return Os.create(this,t,this._def)}transform(t){return new Hr({...Ue(this._def),schema:this,typeName:Be.ZodEffects,effect:{type:&amp;amp;quot;transform&amp;amp;quot;,transform:t}})}default(t){let r=typeof t==&amp;amp;quot;function&amp;amp;quot;?t:()=&amp;amp;gt;t;return new js({...Ue(this._def),innerType:this,defaultValue:r,typeName:Be.ZodDefault})}brand(){return new bl({typeName:Be.ZodBranded,type:this,...Ue(this._def)})}catch(t){let r=typeof t==&amp;amp;quot;function&amp;amp;quot;?t:()=&amp;amp;gt;t;return new $s({...Ue(this._def),innerType:this,catchValue:r,typeName:Be.ZodCatch})}describe(t){let r=this.constructor;return new r({...this._def,description:t})}pipe(t){return _l.create(this,t)}readonly(){return Hs.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},A_=/^c[^\s-]{8,}$/i,D_=/^[0-9a-z]+$/,F_=/^[0-9A-HJKMNP-TV-Z]{26}$/i,T_=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,N_=/^[a-z0-9_-]{21}$/i,I_=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,k_=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,M_=/^(?!\.)(?!.*\.\.)([A-Z0-9_&amp;amp;#39;+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,L_=&amp;amp;quot;^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$&amp;amp;quot;,nf,R_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,B_=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,P_=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,O_=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,V_=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,U_=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,N0=&amp;amp;quot;((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))&amp;amp;quot;,G_=new RegExp(`^${N0}$`);function I0(i){let t=&amp;amp;quot;[0-5]\\d&amp;amp;quot;;i.precision?t=`${t}\\.\\d{${i.precision}}`:i.precision==null&amp;amp;amp;&amp;amp;amp;(t=`${t}(\\.\\d+)?`);let r=i.precision?&amp;amp;quot;+&amp;amp;quot;:&amp;amp;quot;?&amp;amp;quot;;return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${r}`}function z_(i){return new RegExp(`^${I0(i)}$`)}function j_(i){let t=`${N0}T${I0(i)}`,r=[];return r.push(i.local?&amp;amp;quot;Z?&amp;amp;quot;:&amp;amp;quot;Z&amp;amp;quot;),i.offset&amp;amp;amp;&amp;amp;amp;r.push(&amp;amp;quot;([+-]\\d{2}:?\\d{2})&amp;amp;quot;),t=`${t}(${r.join(&amp;amp;quot;|&amp;amp;quot;)})`,new RegExp(`^${t}$`)}function $_(i,t){return!!((t===&amp;amp;quot;v4&amp;amp;quot;||!t)&amp;amp;amp;&amp;amp;amp;R_.test(i)||(t===&amp;amp;quot;v6&amp;amp;quot;||!t)&amp;amp;amp;&amp;amp;amp;P_.test(i))}function H_(i,t){if(!I_.test(i))return!1;try{let[r]=i.split(&amp;amp;quot;.&amp;amp;quot;);if(!r)return!1;let n=r.replace(/-/g,&amp;amp;quot;+&amp;amp;quot;).replace(/_/g,&amp;amp;quot;/&amp;amp;quot;).padEnd(r.length+(4-r.length%4)%4,&amp;amp;quot;=&amp;amp;quot;),s=JSON.parse(atob(n));return!(typeof s!=&amp;amp;quot;object&amp;amp;quot;||s===null||&amp;amp;quot;typ&amp;amp;quot;in s&amp;amp;amp;&amp;amp;amp;s?.typ!==&amp;amp;quot;JWT&amp;amp;quot;||!s.alg||t&amp;amp;amp;&amp;amp;amp;s.alg!==t)}catch{return!1}}function W_(i,t){return!!((t===&amp;amp;quot;v4&amp;amp;quot;||!t)&amp;amp;amp;&amp;amp;amp;B_.test(i)||(t===&amp;amp;quot;v6&amp;amp;quot;||!t)&amp;amp;amp;&amp;amp;amp;O_.test(i))}var Rs=class i extends ze{_parse(t){if(this._def.coerce&amp;amp;amp;&amp;amp;amp;(t.data=String(t.data)),this._getType(t)!==we.string){let a=this._getOrReturnCtx(t);return _e(a,{code:le.invalid_type,expected:we.string,received:a.parsedType}),Re}let n=new Ot,s;for(let a of this._def.checks)if(a.kind===&amp;amp;quot;min&amp;amp;quot;)t.data.length&amp;amp;lt;a.value&amp;amp;amp;&amp;amp;amp;(s=this._getOrReturnCtx(t,s),_e(s,{code:le.too_small,minimum:a.value,type:&amp;amp;quot;string&amp;amp;quot;,inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;max&amp;amp;quot;)t.data.length&amp;amp;gt;a.value&amp;amp;amp;&amp;amp;amp;(s=this._getOrReturnCtx(t,s),_e(s,{code:le.too_big,maximum:a.value,type:&amp;amp;quot;string&amp;amp;quot;,inclusive:!0,exact:!1,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;length&amp;amp;quot;){let o=t.data.length&amp;amp;gt;a.value,u=t.data.length&amp;amp;lt;a.value;(o||u)&amp;amp;amp;&amp;amp;amp;(s=this._getOrReturnCtx(t,s),o?_e(s,{code:le.too_big,maximum:a.value,type:&amp;amp;quot;string&amp;amp;quot;,inclusive:!0,exact:!0,message:a.message}):u&amp;amp;amp;&amp;amp;amp;_e(s,{code:le.too_small,minimum:a.value,type:&amp;amp;quot;string&amp;amp;quot;,inclusive:!0,exact:!0,message:a.message}),n.dirty())}else if(a.kind===&amp;amp;quot;email&amp;amp;quot;)M_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;email&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;emoji&amp;amp;quot;)nf||(nf=new RegExp(L_,&amp;amp;quot;u&amp;amp;quot;)),nf.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;emoji&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;uuid&amp;amp;quot;)T_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;uuid&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;nanoid&amp;amp;quot;)N_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;nanoid&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;cuid&amp;amp;quot;)A_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;cuid&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;cuid2&amp;amp;quot;)D_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;cuid2&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;ulid&amp;amp;quot;)F_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;ulid&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty());else if(a.kind===&amp;amp;quot;url&amp;amp;quot;)try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;url&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty()}else a.kind===&amp;amp;quot;regex&amp;amp;quot;?(a.regex.lastIndex=0,a.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;regex&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty())):a.kind===&amp;amp;quot;trim&amp;amp;quot;?t.data=t.data.trim():a.kind===&amp;amp;quot;includes&amp;amp;quot;?t.data.includes(a.value,a.position)||(s=this._getOrReturnCtx(t,s),_e(s,{code:le.invalid_string,validation:{includes:a.value,position:a.position},message:a.message}),n.dirty()):a.kind===&amp;amp;quot;toLowerCase&amp;amp;quot;?t.data=t.data.toLowerCase():a.kind===&amp;amp;quot;toUpperCase&amp;amp;quot;?t.data=t.data.toUpperCase():a.kind===&amp;amp;quot;startsWith&amp;amp;quot;?t.data.startsWith(a.value)||(s=this._getOrReturnCtx(t,s),_e(s,{code:le.invalid_string,validation:{startsWith:a.value},message:a.message}),n.dirty()):a.kind===&amp;amp;quot;endsWith&amp;amp;quot;?t.data.endsWith(a.value)||(s=this._getOrReturnCtx(t,s),_e(s,{code:le.invalid_string,validation:{endsWith:a.value},message:a.message}),n.dirty()):a.kind===&amp;amp;quot;datetime&amp;amp;quot;?j_(a).test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{code:le.invalid_string,validation:&amp;amp;quot;datetime&amp;amp;quot;,message:a.message}),n.dirty()):a.kind===&amp;amp;quot;date&amp;amp;quot;?G_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{code:le.invalid_string,validation:&amp;amp;quot;date&amp;amp;quot;,message:a.message}),n.dirty()):a.kind===&amp;amp;quot;time&amp;amp;quot;?z_(a).test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{code:le.invalid_string,validation:&amp;amp;quot;time&amp;amp;quot;,message:a.message}),n.dirty()):a.kind===&amp;amp;quot;duration&amp;amp;quot;?k_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;duration&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty()):a.kind===&amp;amp;quot;ip&amp;amp;quot;?$_(t.data,a.version)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;ip&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty()):a.kind===&amp;amp;quot;jwt&amp;amp;quot;?H_(t.data,a.alg)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;jwt&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty()):a.kind===&amp;amp;quot;cidr&amp;amp;quot;?W_(t.data,a.version)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;cidr&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty()):a.kind===&amp;amp;quot;base64&amp;amp;quot;?V_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;base64&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty()):a.kind===&amp;amp;quot;base64url&amp;amp;quot;?U_.test(t.data)||(s=this._getOrReturnCtx(t,s),_e(s,{validation:&amp;amp;quot;base64url&amp;amp;quot;,code:le.invalid_string,message:a.message}),n.dirty()):He.assertNever(a);return{status:n.value,value:t.data}}_regex(t,r,n){return this.refinement(s=&amp;amp;gt;t.test(s),{validation:r,code:le.invalid_string,...Ne.errToObj(n)})}_addCheck(t){return new i({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:&amp;amp;quot;email&amp;amp;quot;,...Ne.errToObj(t)})}url(t){return this._addCheck({kind:&amp;amp;quot;url&amp;amp;quot;,...Ne.errToObj(t)})}emoji(t){return this._addCheck({kind:&amp;amp;quot;emoji&amp;amp;quot;,...Ne.errToObj(t)})}uuid(t){return this._addCheck({kind:&amp;amp;quot;uuid&amp;amp;quot;,...Ne.errToObj(t)})}nanoid(t){return this._addCheck({kind:&amp;amp;quot;nanoid&amp;amp;quot;,...Ne.errToObj(t)})}cuid(t){return this._addCheck({kind:&amp;amp;quot;cuid&amp;amp;quot;,...Ne.errToObj(t)})}cuid2(t){return this._addCheck({kind:&amp;amp;quot;cuid2&amp;amp;quot;,...Ne.errToObj(t)})}ulid(t){return this._addCheck({kind:&amp;amp;quot;ulid&amp;amp;quot;,...Ne.errToObj(t)})}base64(t){return this._addCheck({kind:&amp;amp;quot;base64&amp;amp;quot;,...Ne.errToObj(t)})}base64url(t){return this._addCheck({kind:&amp;amp;quot;base64url&amp;amp;quot;,...Ne.errToObj(t)})}jwt(t){return this._addCheck({kind:&amp;amp;quot;jwt&amp;amp;quot;,...Ne.errToObj(t)})}ip(t){return this._addCheck({kind:&amp;amp;quot;ip&amp;amp;quot;,...Ne.errToObj(t)})}cidr(t){return this._addCheck({kind:&amp;amp;quot;cidr&amp;amp;quot;,...Ne.errToObj(t)})}datetime(t){return typeof t==&amp;amp;quot;string&amp;amp;quot;?this._addCheck({kind:&amp;amp;quot;datetime&amp;amp;quot;,precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:&amp;amp;quot;datetime&amp;amp;quot;,precision:typeof t?.precision&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...Ne.errToObj(t?.message)})}date(t){return this._addCheck({kind:&amp;amp;quot;date&amp;amp;quot;,message:t})}time(t){return typeof t==&amp;amp;quot;string&amp;amp;quot;?this._addCheck({kind:&amp;amp;quot;time&amp;amp;quot;,precision:null,message:t}):this._addCheck({kind:&amp;amp;quot;time&amp;amp;quot;,precision:typeof t?.precision&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?null:t?.precision,...Ne.errToObj(t?.message)})}duration(t){return this._addCheck({kind:&amp;amp;quot;duration&amp;amp;quot;,...Ne.errToObj(t)})}regex(t,r){return this._addCheck({kind:&amp;amp;quot;regex&amp;amp;quot;,regex:t,...Ne.errToObj(r)})}includes(t,r){return this._addCheck({kind:&amp;amp;quot;includes&amp;amp;quot;,value:t,position:r?.position,...Ne.errToObj(r?.message)})}startsWith(t,r){return this._addCheck({kind:&amp;amp;quot;startsWith&amp;amp;quot;,value:t,...Ne.errToObj(r)})}endsWith(t,r){return this._addCheck({kind:&amp;amp;quot;endsWith&amp;amp;quot;,value:t,...Ne.errToObj(r)})}min(t,r){return this._addCheck({kind:&amp;amp;quot;min&amp;amp;quot;,value:t,...Ne.errToObj(r)})}max(t,r){return this._addCheck({kind:&amp;amp;quot;max&amp;amp;quot;,value:t,...Ne.errToObj(r)})}length(t,r){return this._addCheck({kind:&amp;amp;quot;length&amp;amp;quot;,value:t,...Ne.errToObj(r)})}nonempty(t){return this.min(1,Ne.errToObj(t))}trim(){return new i({...this._def,checks:[...this._def.checks,{kind:&amp;amp;quot;trim&amp;amp;quot;}]})}toLowerCase(){return new i({...this._def,checks:[...this._def.checks,{kind:&amp;amp;quot;toLowerCase&amp;amp;quot;}]})}toUpperCase(){return new i({...this._def,checks:[...this._def.checks,{kind:&amp;amp;quot;toUpperCase&amp;amp;quot;}]})}get isDatetime(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;datetime&amp;amp;quot;)}get isDate(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;date&amp;amp;quot;)}get isTime(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;time&amp;amp;quot;)}get isDuration(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;duration&amp;amp;quot;)}get isEmail(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;email&amp;amp;quot;)}get isURL(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;url&amp;amp;quot;)}get isEmoji(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;emoji&amp;amp;quot;)}get isUUID(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;uuid&amp;amp;quot;)}get isNANOID(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;nanoid&amp;amp;quot;)}get isCUID(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;cuid&amp;amp;quot;)}get isCUID2(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;cuid2&amp;amp;quot;)}get isULID(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;ulid&amp;amp;quot;)}get isIP(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;ip&amp;amp;quot;)}get isCIDR(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;cidr&amp;amp;quot;)}get isBase64(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;base64&amp;amp;quot;)}get isBase64url(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;base64url&amp;amp;quot;)}get minLength(){let t=null;for(let r of this._def.checks)r.kind===&amp;amp;quot;min&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||r.value&amp;amp;gt;t)&amp;amp;amp;&amp;amp;amp;(t=r.value);return t}get maxLength(){let t=null;for(let r of this._def.checks)r.kind===&amp;amp;quot;max&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||r.value&amp;amp;lt;t)&amp;amp;amp;&amp;amp;amp;(t=r.value);return t}};Rs.create=i=&amp;amp;gt;new Rs({checks:[],typeName:Be.ZodString,coerce:i?.coerce??!1,...Ue(i)});function q_(i,t){let r=(i.toString().split(&amp;amp;quot;.&amp;amp;quot;)[1]||&amp;amp;quot;&amp;amp;quot;).length,n=(t.toString().split(&amp;amp;quot;.&amp;amp;quot;)[1]||&amp;amp;quot;&amp;amp;quot;).length,s=r&amp;amp;gt;n?r:n,a=Number.parseInt(i.toFixed(s).replace(&amp;amp;quot;.&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;)),o=Number.parseInt(t.toFixed(s).replace(&amp;amp;quot;.&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;));return a%o/10**s}var co=class i extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&amp;amp;amp;&amp;amp;amp;(t.data=Number(t.data)),this._getType(t)!==we.number){let a=this._getOrReturnCtx(t);return _e(a,{code:le.invalid_type,expected:we.number,received:a.parsedType}),Re}let n,s=new Ot;for(let a of this._def.checks)a.kind===&amp;amp;quot;int&amp;amp;quot;?He.isInteger(t.data)||(n=this._getOrReturnCtx(t,n),_e(n,{code:le.invalid_type,expected:&amp;amp;quot;integer&amp;amp;quot;,received:&amp;amp;quot;float&amp;amp;quot;,message:a.message}),s.dirty()):a.kind===&amp;amp;quot;min&amp;amp;quot;?(a.inclusive?t.data&amp;amp;lt;a.value:t.data&amp;amp;lt;=a.value)&amp;amp;amp;&amp;amp;amp;(n=this._getOrReturnCtx(t,n),_e(n,{code:le.too_small,minimum:a.value,type:&amp;amp;quot;number&amp;amp;quot;,inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind===&amp;amp;quot;max&amp;amp;quot;?(a.inclusive?t.data&amp;amp;gt;a.value:t.data&amp;amp;gt;=a.value)&amp;amp;amp;&amp;amp;amp;(n=this._getOrReturnCtx(t,n),_e(n,{code:le.too_big,maximum:a.value,type:&amp;amp;quot;number&amp;amp;quot;,inclusive:a.inclusive,exact:!1,message:a.message}),s.dirty()):a.kind===&amp;amp;quot;multipleOf&amp;amp;quot;?q_(t.data,a.value)!==0&amp;amp;amp;&amp;amp;amp;(n=this._getOrReturnCtx(t,n),_e(n,{code:le.not_multiple_of,multipleOf:a.value,message:a.message}),s.dirty()):a.kind===&amp;amp;quot;finite&amp;amp;quot;?Number.isFinite(t.data)||(n=this._getOrReturnCtx(t,n),_e(n,{code:le.not_finite,message:a.message}),s.dirty()):He.assertNever(a);return{status:s.value,value:t.data}}gte(t,r){return this.setLimit(&amp;amp;quot;min&amp;amp;quot;,t,!0,Ne.toString(r))}gt(t,r){return this.setLimit(&amp;amp;quot;min&amp;amp;quot;,t,!1,Ne.toString(r))}lte(t,r){return this.setLimit(&amp;amp;quot;max&amp;amp;quot;,t,!0,Ne.toString(r))}lt(t,r){return this.setLimit(&amp;amp;quot;max&amp;amp;quot;,t,!1,Ne.toString(r))}setLimit(t,r,n,s){return new i({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:Ne.toString(s)}]})}_addCheck(t){return new i({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:&amp;amp;quot;int&amp;amp;quot;,message:Ne.toString(t)})}positive(t){return this._addCheck({kind:&amp;amp;quot;min&amp;amp;quot;,value:0,inclusive:!1,message:Ne.toString(t)})}negative(t){return this._addCheck({kind:&amp;amp;quot;max&amp;amp;quot;,value:0,inclusive:!1,message:Ne.toString(t)})}nonpositive(t){return this._addCheck({kind:&amp;amp;quot;max&amp;amp;quot;,value:0,inclusive:!0,message:Ne.toString(t)})}nonnegative(t){return this._addCheck({kind:&amp;amp;quot;min&amp;amp;quot;,value:0,inclusive:!0,message:Ne.toString(t)})}multipleOf(t,r){return this._addCheck({kind:&amp;amp;quot;multipleOf&amp;amp;quot;,value:t,message:Ne.toString(r)})}finite(t){return this._addCheck({kind:&amp;amp;quot;finite&amp;amp;quot;,message:Ne.toString(t)})}safe(t){return this._addCheck({kind:&amp;amp;quot;min&amp;amp;quot;,inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ne.toString(t)})._addCheck({kind:&amp;amp;quot;max&amp;amp;quot;,inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ne.toString(t)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind===&amp;amp;quot;min&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||r.value&amp;amp;gt;t)&amp;amp;amp;&amp;amp;amp;(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind===&amp;amp;quot;max&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||r.value&amp;amp;lt;t)&amp;amp;amp;&amp;amp;amp;(t=r.value);return t}get isInt(){return!!this._def.checks.find(t=&amp;amp;gt;t.kind===&amp;amp;quot;int&amp;amp;quot;||t.kind===&amp;amp;quot;multipleOf&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;He.isInteger(t.value))}get isFinite(){let t=null,r=null;for(let n of this._def.checks){if(n.kind===&amp;amp;quot;finite&amp;amp;quot;||n.kind===&amp;amp;quot;int&amp;amp;quot;||n.kind===&amp;amp;quot;multipleOf&amp;amp;quot;)return!0;n.kind===&amp;amp;quot;min&amp;amp;quot;?(r===null||n.value&amp;amp;gt;r)&amp;amp;amp;&amp;amp;amp;(r=n.value):n.kind===&amp;amp;quot;max&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||n.value&amp;amp;lt;t)&amp;amp;amp;&amp;amp;amp;(t=n.value)}return Number.isFinite(r)&amp;amp;amp;&amp;amp;amp;Number.isFinite(t)}};co.create=i=&amp;amp;gt;new co({checks:[],typeName:Be.ZodNumber,coerce:i?.coerce||!1,...Ue(i)});var fo=class i extends ze{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==we.bigint)return this._getInvalidInput(t);let n,s=new Ot;for(let a of this._def.checks)a.kind===&amp;amp;quot;min&amp;amp;quot;?(a.inclusive?t.data&amp;amp;lt;a.value:t.data&amp;amp;lt;=a.value)&amp;amp;amp;&amp;amp;amp;(n=this._getOrReturnCtx(t,n),_e(n,{code:le.too_small,type:&amp;amp;quot;bigint&amp;amp;quot;,minimum:a.value,inclusive:a.inclusive,message:a.message}),s.dirty()):a.kind===&amp;amp;quot;max&amp;amp;quot;?(a.inclusive?t.data&amp;amp;gt;a.value:t.data&amp;amp;gt;=a.value)&amp;amp;amp;&amp;amp;amp;(n=this._getOrReturnCtx(t,n),_e(n,{code:le.too_big,type:&amp;amp;quot;bigint&amp;amp;quot;,maximum:a.value,inclusive:a.inclusive,message:a.message}),s.dirty()):a.kind===&amp;amp;quot;multipleOf&amp;amp;quot;?t.data%a.value!==BigInt(0)&amp;amp;amp;&amp;amp;amp;(n=this._getOrReturnCtx(t,n),_e(n,{code:le.not_multiple_of,multipleOf:a.value,message:a.message}),s.dirty()):He.assertNever(a);return{status:s.value,value:t.data}}_getInvalidInput(t){let r=this._getOrReturnCtx(t);return _e(r,{code:le.invalid_type,expected:we.bigint,received:r.parsedType}),Re}gte(t,r){return this.setLimit(&amp;amp;quot;min&amp;amp;quot;,t,!0,Ne.toString(r))}gt(t,r){return this.setLimit(&amp;amp;quot;min&amp;amp;quot;,t,!1,Ne.toString(r))}lte(t,r){return this.setLimit(&amp;amp;quot;max&amp;amp;quot;,t,!0,Ne.toString(r))}lt(t,r){return this.setLimit(&amp;amp;quot;max&amp;amp;quot;,t,!1,Ne.toString(r))}setLimit(t,r,n,s){return new i({...this._def,checks:[...this._def.checks,{kind:t,value:r,inclusive:n,message:Ne.toString(s)}]})}_addCheck(t){return new i({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:&amp;amp;quot;min&amp;amp;quot;,value:BigInt(0),inclusive:!1,message:Ne.toString(t)})}negative(t){return this._addCheck({kind:&amp;amp;quot;max&amp;amp;quot;,value:BigInt(0),inclusive:!1,message:Ne.toString(t)})}nonpositive(t){return this._addCheck({kind:&amp;amp;quot;max&amp;amp;quot;,value:BigInt(0),inclusive:!0,message:Ne.toString(t)})}nonnegative(t){return this._addCheck({kind:&amp;amp;quot;min&amp;amp;quot;,value:BigInt(0),inclusive:!0,message:Ne.toString(t)})}multipleOf(t,r){return this._addCheck({kind:&amp;amp;quot;multipleOf&amp;amp;quot;,value:t,message:Ne.toString(r)})}get minValue(){let t=null;for(let r of this._def.checks)r.kind===&amp;amp;quot;min&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||r.value&amp;amp;gt;t)&amp;amp;amp;&amp;amp;amp;(t=r.value);return t}get maxValue(){let t=null;for(let r of this._def.checks)r.kind===&amp;amp;quot;max&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||r.value&amp;amp;lt;t)&amp;amp;amp;&amp;amp;amp;(t=r.value);return t}};fo.create=i=&amp;amp;gt;new fo({checks:[],typeName:Be.ZodBigInt,coerce:i?.coerce??!1,...Ue(i)});var po=class extends ze{_parse(t){if(this._def.coerce&amp;amp;amp;&amp;amp;amp;(t.data=!!t.data),this._getType(t)!==we.boolean){let n=this._getOrReturnCtx(t);return _e(n,{code:le.invalid_type,expected:we.boolean,received:n.parsedType}),Re}return Ht(t.data)}};po.create=i=&amp;amp;gt;new po({typeName:Be.ZodBoolean,coerce:i?.coerce||!1,...Ue(i)});var mo=class i extends ze{_parse(t){if(this._def.coerce&amp;amp;amp;&amp;amp;amp;(t.data=new Date(t.data)),this._getType(t)!==we.date){let a=this._getOrReturnCtx(t);return _e(a,{code:le.invalid_type,expected:we.date,received:a.parsedType}),Re}if(Number.isNaN(t.data.getTime())){let a=this._getOrReturnCtx(t);return _e(a,{code:le.invalid_date}),Re}let n=new Ot,s;for(let a of this._def.checks)a.kind===&amp;amp;quot;min&amp;amp;quot;?t.data.getTime()&amp;amp;lt;a.value&amp;amp;amp;&amp;amp;amp;(s=this._getOrReturnCtx(t,s),_e(s,{code:le.too_small,message:a.message,inclusive:!0,exact:!1,minimum:a.value,type:&amp;amp;quot;date&amp;amp;quot;}),n.dirty()):a.kind===&amp;amp;quot;max&amp;amp;quot;?t.data.getTime()&amp;amp;gt;a.value&amp;amp;amp;&amp;amp;amp;(s=this._getOrReturnCtx(t,s),_e(s,{code:le.too_big,message:a.message,inclusive:!0,exact:!1,maximum:a.value,type:&amp;amp;quot;date&amp;amp;quot;}),n.dirty()):He.assertNever(a);return{status:n.value,value:new Date(t.data.getTime())}}_addCheck(t){return new i({...this._def,checks:[...this._def.checks,t]})}min(t,r){return this._addCheck({kind:&amp;amp;quot;min&amp;amp;quot;,value:t.getTime(),message:Ne.toString(r)})}max(t,r){return this._addCheck({kind:&amp;amp;quot;max&amp;amp;quot;,value:t.getTime(),message:Ne.toString(r)})}get minDate(){let t=null;for(let r of this._def.checks)r.kind===&amp;amp;quot;min&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||r.value&amp;amp;gt;t)&amp;amp;amp;&amp;amp;amp;(t=r.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let r of this._def.checks)r.kind===&amp;amp;quot;max&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t===null||r.value&amp;amp;lt;t)&amp;amp;amp;&amp;amp;amp;(t=r.value);return t!=null?new Date(t):null}};mo.create=i=&amp;amp;gt;new mo({checks:[],coerce:i?.coerce||!1,typeName:Be.ZodDate,...Ue(i)});var go=class extends ze{_parse(t){if(this._getType(t)!==we.symbol){let n=this._getOrReturnCtx(t);return _e(n,{code:le.invalid_type,expected:we.symbol,received:n.parsedType}),Re}return Ht(t.data)}};go.create=i=&amp;amp;gt;new go({typeName:Be.ZodSymbol,...Ue(i)});var Bs=class extends ze{_parse(t){if(this._getType(t)!==we.undefined){let n=this._getOrReturnCtx(t);return _e(n,{code:le.invalid_type,expected:we.undefined,received:n.parsedType}),Re}return Ht(t.data)}};Bs.create=i=&amp;amp;gt;new Bs({typeName:Be.ZodUndefined,...Ue(i)});var Ps=class extends ze{_parse(t){if(this._getType(t)!==we.null){let n=this._getOrReturnCtx(t);return _e(n,{code:le.invalid_type,expected:we.null,received:n.parsedType}),Re}return Ht(t.data)}};Ps.create=i=&amp;amp;gt;new Ps({typeName:Be.ZodNull,...Ue(i)});var Pn=class extends ze{constructor(){super(...arguments),this._any=!0}_parse(t){return Ht(t.data)}};Pn.create=i=&amp;amp;gt;new Pn({typeName:Be.ZodAny,...Ue(i)});var Xi=class extends ze{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Ht(t.data)}};Xi.create=i=&amp;amp;gt;new Xi({typeName:Be.ZodUnknown,...Ue(i)});var ii=class extends ze{_parse(t){let r=this._getOrReturnCtx(t);return _e(r,{code:le.invalid_type,expected:we.never,received:r.parsedType}),Re}};ii.create=i=&amp;amp;gt;new ii({typeName:Be.ZodNever,...Ue(i)});var yo=class extends ze{_parse(t){if(this._getType(t)!==we.undefined){let n=this._getOrReturnCtx(t);return _e(n,{code:le.invalid_type,expected:we.void,received:n.parsedType}),Re}return Ht(t.data)}};yo.create=i=&amp;amp;gt;new yo({typeName:Be.ZodVoid,...Ue(i)});var Ki=class i extends ze{_parse(t){let{ctx:r,status:n}=this._processInputParams(t),s=this._def;if(r.parsedType!==we.array)return _e(r,{code:le.invalid_type,expected:we.array,received:r.parsedType}),Re;if(s.exactLength!==null){let o=r.data.length&amp;amp;gt;s.exactLength.value,u=r.data.length&amp;amp;lt;s.exactLength.value;(o||u)&amp;amp;amp;&amp;amp;amp;(_e(r,{code:o?le.too_big:le.too_small,minimum:u?s.exactLength.value:void 0,maximum:o?s.exactLength.value:void 0,type:&amp;amp;quot;array&amp;amp;quot;,inclusive:!0,exact:!0,message:s.exactLength.message}),n.dirty())}if(s.minLength!==null&amp;amp;amp;&amp;amp;amp;r.data.length&amp;amp;lt;s.minLength.value&amp;amp;amp;&amp;amp;amp;(_e(r,{code:le.too_small,minimum:s.minLength.value,type:&amp;amp;quot;array&amp;amp;quot;,inclusive:!0,exact:!1,message:s.minLength.message}),n.dirty()),s.maxLength!==null&amp;amp;amp;&amp;amp;amp;r.data.length&amp;amp;gt;s.maxLength.value&amp;amp;amp;&amp;amp;amp;(_e(r,{code:le.too_big,maximum:s.maxLength.value,type:&amp;amp;quot;array&amp;amp;quot;,inclusive:!0,exact:!1,message:s.maxLength.message}),n.dirty()),r.common.async)return Promise.all([...r.data].map((o,u)=&amp;amp;gt;s.type._parseAsync(new Er(r,o,r.path,u)))).then(o=&amp;amp;gt;Ot.mergeArray(n,o));let a=[...r.data].map((o,u)=&amp;amp;gt;s.type._parseSync(new Er(r,o,r.path,u)));return Ot.mergeArray(n,a)}get element(){return this._def.type}min(t,r){return new i({...this._def,minLength:{value:t,message:Ne.toString(r)}})}max(t,r){return new i({...this._def,maxLength:{value:t,message:Ne.toString(r)}})}length(t,r){return new i({...this._def,exactLength:{value:t,message:Ne.toString(r)}})}nonempty(t){return this.min(1,t)}};Ki.create=(i,t)=&amp;amp;gt;new Ki({type:i,minLength:null,maxLength:null,exactLength:null,typeName:Be.ZodArray,...Ue(t)});function Ls(i){if(i instanceof fr){let t={};for(let r in i.shape){let n=i.shape[r];t[r]=jr.create(Ls(n))}return new fr({...i._def,shape:()=&amp;amp;gt;t})}else return i instanceof Ki?new Ki({...i._def,type:Ls(i.element)}):i instanceof jr?jr.create(Ls(i.unwrap())):i instanceof Ai?Ai.create(Ls(i.unwrap())):i instanceof $r?$r.create(i.items.map(t=&amp;amp;gt;Ls(t))):i}var fr=class i extends ze{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),r=He.objectKeys(t);return this._cached={shape:t,keys:r},this._cached}_parse(t){if(this._getType(t)!==we.object){let l=this._getOrReturnCtx(t);return _e(l,{code:le.invalid_type,expected:we.object,received:l.parsedType}),Re}let{status:n,ctx:s}=this._processInputParams(t),{shape:a,keys:o}=this._getCached(),u=[];if(!(this._def.catchall instanceof ii&amp;amp;amp;&amp;amp;amp;this._def.unknownKeys===&amp;amp;quot;strip&amp;amp;quot;))for(let l in s.data)o.includes(l)||u.push(l);let h=[];for(let l of o){let c=a[l],p=s.data[l];h.push({key:{status:&amp;amp;quot;valid&amp;amp;quot;,value:l},value:c._parse(new Er(s,p,s.path,l)),alwaysSet:l in s.data})}if(this._def.catchall instanceof ii){let l=this._def.unknownKeys;if(l===&amp;amp;quot;passthrough&amp;amp;quot;)for(let c of u)h.push({key:{status:&amp;amp;quot;valid&amp;amp;quot;,value:c},value:{status:&amp;amp;quot;valid&amp;amp;quot;,value:s.data[c]}});else if(l===&amp;amp;quot;strict&amp;amp;quot;)u.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(_e(s,{code:le.unrecognized_keys,keys:u}),n.dirty());else if(l!==&amp;amp;quot;strip&amp;amp;quot;)throw new Error(&amp;amp;quot;Internal ZodObject error: invalid unknownKeys value.&amp;amp;quot;)}else{let l=this._def.catchall;for(let c of u){let p=s.data[c];h.push({key:{status:&amp;amp;quot;valid&amp;amp;quot;,value:c},value:l._parse(new Er(s,p,s.path,c)),alwaysSet:c in s.data})}}return s.common.async?Promise.resolve().then(async()=&amp;amp;gt;{let l=[];for(let c of h){let p=await c.key,f=await c.value;l.push({key:p,value:f,alwaysSet:c.alwaysSet})}return l}).then(l=&amp;amp;gt;Ot.mergeObjectSync(n,l)):Ot.mergeObjectSync(n,h)}get shape(){return this._def.shape()}strict(t){return Ne.errToObj,new i({...this._def,unknownKeys:&amp;amp;quot;strict&amp;amp;quot;,...t!==void 0?{errorMap:(r,n)=&amp;amp;gt;{let s=this._def.errorMap?.(r,n).message??n.defaultError;return r.code===&amp;amp;quot;unrecognized_keys&amp;amp;quot;?{message:Ne.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new i({...this._def,unknownKeys:&amp;amp;quot;strip&amp;amp;quot;})}passthrough(){return new i({...this._def,unknownKeys:&amp;amp;quot;passthrough&amp;amp;quot;})}extend(t){return new i({...this._def,shape:()=&amp;amp;gt;({...this._def.shape(),...t})})}merge(t){return new i({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=&amp;amp;gt;({...this._def.shape(),...t._def.shape()}),typeName:Be.ZodObject})}setKey(t,r){return this.augment({[t]:r})}catchall(t){return new i({...this._def,catchall:t})}pick(t){let r={};for(let n of He.objectKeys(t))t[n]&amp;amp;amp;&amp;amp;amp;this.shape[n]&amp;amp;amp;&amp;amp;amp;(r[n]=this.shape[n]);return new i({...this._def,shape:()=&amp;amp;gt;r})}omit(t){let r={};for(let n of He.objectKeys(this.shape))t[n]||(r[n]=this.shape[n]);return new i({...this._def,shape:()=&amp;amp;gt;r})}deepPartial(){return Ls(this)}partial(t){let r={};for(let n of He.objectKeys(this.shape)){let s=this.shape[n];t&amp;amp;amp;&amp;amp;amp;!t[n]?r[n]=s:r[n]=s.optional()}return new i({...this._def,shape:()=&amp;amp;gt;r})}required(t){let r={};for(let n of He.objectKeys(this.shape))if(t&amp;amp;amp;&amp;amp;amp;!t[n])r[n]=this.shape[n];else{let a=this.shape[n];for(;a instanceof jr;)a=a._def.innerType;r[n]=a}return new i({...this._def,shape:()=&amp;amp;gt;r})}keyof(){return k0(He.objectKeys(this.shape))}};fr.create=(i,t)=&amp;amp;gt;new fr({shape:()=&amp;amp;gt;i,unknownKeys:&amp;amp;quot;strip&amp;amp;quot;,catchall:ii.create(),typeName:Be.ZodObject,...Ue(t)});fr.strictCreate=(i,t)=&amp;amp;gt;new fr({shape:()=&amp;amp;gt;i,unknownKeys:&amp;amp;quot;strict&amp;amp;quot;,catchall:ii.create(),typeName:Be.ZodObject,...Ue(t)});fr.lazycreate=(i,t)=&amp;amp;gt;new fr({shape:i,unknownKeys:&amp;amp;quot;strip&amp;amp;quot;,catchall:ii.create(),typeName:Be.ZodObject,...Ue(t)});var Ji=class extends ze{_parse(t){let{ctx:r}=this._processInputParams(t),n=this._def.options;function s(a){for(let u of a)if(u.result.status===&amp;amp;quot;valid&amp;amp;quot;)return u.result;for(let u of a)if(u.result.status===&amp;amp;quot;dirty&amp;amp;quot;)return r.common.issues.push(...u.ctx.common.issues),u.result;let o=a.map(u=&amp;amp;gt;new cr(u.ctx.common.issues));return _e(r,{code:le.invalid_union,unionErrors:o}),Re}if(r.common.async)return Promise.all(n.map(async a=&amp;amp;gt;{let o={...r,common:{...r.common,issues:[]},parent:null};return{result:await a._parseAsync({data:r.data,path:r.path,parent:o}),ctx:o}})).then(s);{let a,o=[];for(let h of n){let l={...r,common:{...r.common,issues:[]},parent:null},c=h._parseSync({data:r.data,path:r.path,parent:l});if(c.status===&amp;amp;quot;valid&amp;amp;quot;)return c;c.status===&amp;amp;quot;dirty&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!a&amp;amp;amp;&amp;amp;amp;(a={result:c,ctx:l}),l.common.issues.length&amp;amp;amp;&amp;amp;amp;o.push(l.common.issues)}if(a)return r.common.issues.push(...a.ctx.common.issues),a.result;let u=o.map(h=&amp;amp;gt;new cr(h));return _e(r,{code:le.invalid_union,unionErrors:u}),Re}}get options(){return this._def.options}};Ji.create=(i,t)=&amp;amp;gt;new Ji({options:i,typeName:Be.ZodUnion,...Ue(t)});var Si=i=&amp;amp;gt;i instanceof Vs?Si(i.schema):i instanceof Hr?Si(i.innerType()):i instanceof Us?[i.value]:i instanceof Gs?i.options:i instanceof zs?He.objectValues(i.enum):i instanceof js?Si(i._def.innerType):i instanceof Bs?[void 0]:i instanceof Ps?[null]:i instanceof jr?[void 0,...Si(i.unwrap())]:i instanceof Ai?[null,...Si(i.unwrap())]:i instanceof bl||i instanceof Hs?Si(i.unwrap()):i instanceof $s?Si(i._def.innerType):[],sf=class i extends ze{_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==we.object)return _e(r,{code:le.invalid_type,expected:we.object,received:r.parsedType}),Re;let n=this.discriminator,s=r.data[n],a=this.optionsMap.get(s);return a?r.common.async?a._parseAsync({data:r.data,path:r.path,parent:r}):a._parseSync({data:r.data,path:r.path,parent:r}):(_e(r,{code:le.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),Re)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,r,n){let s=new Map;for(let a of r){let o=Si(a.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let u of o){if(s.has(u))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(u)}`);s.set(u,a)}}return new i({typeName:Be.ZodDiscriminatedUnion,discriminator:t,options:r,optionsMap:s,...Ue(n)})}};function af(i,t){let r=Ei(i),n=Ei(t);if(i===t)return{valid:!0,data:i};if(r===we.object&amp;amp;amp;&amp;amp;amp;n===we.object){let s=He.objectKeys(t),a=He.objectKeys(i).filter(u=&amp;amp;gt;s.indexOf(u)!==-1),o={...i,...t};for(let u of a){let h=af(i[u],t[u]);if(!h.valid)return{valid:!1};o[u]=h.data}return{valid:!0,data:o}}else if(r===we.array&amp;amp;amp;&amp;amp;amp;n===we.array){if(i.length!==t.length)return{valid:!1};let s=[];for(let a=0;a&amp;amp;lt;i.length;a++){let o=i[a],u=t[a],h=af(o,u);if(!h.valid)return{valid:!1};s.push(h.data)}return{valid:!0,data:s}}else return r===we.date&amp;amp;amp;&amp;amp;amp;n===we.date&amp;amp;amp;&amp;amp;amp;+i==+t?{valid:!0,data:i}:{valid:!1}}var Os=class extends ze{_parse(t){let{status:r,ctx:n}=this._processInputParams(t),s=(a,o)=&amp;amp;gt;{if(tf(a)||tf(o))return Re;let u=af(a.value,o.value);return u.valid?((rf(a)||rf(o))&amp;amp;amp;&amp;amp;amp;r.dirty(),{status:r.value,value:u.data}):(_e(n,{code:le.invalid_intersection_types}),Re)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([a,o])=&amp;amp;gt;s(a,o)):s(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}};Os.create=(i,t,r)=&amp;amp;gt;new Os({left:i,right:t,typeName:Be.ZodIntersection,...Ue(r)});var $r=class i extends ze{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==we.array)return _e(n,{code:le.invalid_type,expected:we.array,received:n.parsedType}),Re;if(n.data.length&amp;amp;lt;this._def.items.length)return _e(n,{code:le.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:&amp;amp;quot;array&amp;amp;quot;}),Re;!this._def.rest&amp;amp;amp;&amp;amp;amp;n.data.length&amp;amp;gt;this._def.items.length&amp;amp;amp;&amp;amp;amp;(_e(n,{code:le.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:&amp;amp;quot;array&amp;amp;quot;}),r.dirty());let a=[...n.data].map((o,u)=&amp;amp;gt;{let h=this._def.items[u]||this._def.rest;return h?h._parse(new Er(n,o,n.path,u)):null}).filter(o=&amp;amp;gt;!!o);return n.common.async?Promise.all(a).then(o=&amp;amp;gt;Ot.mergeArray(r,o)):Ot.mergeArray(r,a)}get items(){return this._def.items}rest(t){return new i({...this._def,rest:t})}};$r.create=(i,t)=&amp;amp;gt;{if(!Array.isArray(i))throw new Error(&amp;amp;quot;You must pass an array of schemas to z.tuple([ ... ])&amp;amp;quot;);return new $r({items:i,typeName:Be.ZodTuple,rest:null,...Ue(t)})};var of=class i extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==we.object)return _e(n,{code:le.invalid_type,expected:we.object,received:n.parsedType}),Re;let s=[],a=this._def.keyType,o=this._def.valueType;for(let u in n.data)s.push({key:a._parse(new Er(n,u,n.path,u)),value:o._parse(new Er(n,n.data[u],n.path,u)),alwaysSet:u in n.data});return n.common.async?Ot.mergeObjectAsync(r,s):Ot.mergeObjectSync(r,s)}get element(){return this._def.valueType}static create(t,r,n){return r instanceof ze?new i({keyType:t,valueType:r,typeName:Be.ZodRecord,...Ue(n)}):new i({keyType:Rs.create(),valueType:t,typeName:Be.ZodRecord,...Ue(r)})}},vo=class extends ze{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==we.map)return _e(n,{code:le.invalid_type,expected:we.map,received:n.parsedType}),Re;let s=this._def.keyType,a=this._def.valueType,o=[...n.data.entries()].map(([u,h],l)=&amp;amp;gt;({key:s._parse(new Er(n,u,n.path,[l,&amp;amp;quot;key&amp;amp;quot;])),value:a._parse(new Er(n,h,n.path,[l,&amp;amp;quot;value&amp;amp;quot;]))}));if(n.common.async){let u=new Map;return Promise.resolve().then(async()=&amp;amp;gt;{for(let h of o){let l=await h.key,c=await h.value;if(l.status===&amp;amp;quot;aborted&amp;amp;quot;||c.status===&amp;amp;quot;aborted&amp;amp;quot;)return Re;(l.status===&amp;amp;quot;dirty&amp;amp;quot;||c.status===&amp;amp;quot;dirty&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;r.dirty(),u.set(l.value,c.value)}return{status:r.value,value:u}})}else{let u=new Map;for(let h of o){let l=h.key,c=h.value;if(l.status===&amp;amp;quot;aborted&amp;amp;quot;||c.status===&amp;amp;quot;aborted&amp;amp;quot;)return Re;(l.status===&amp;amp;quot;dirty&amp;amp;quot;||c.status===&amp;amp;quot;dirty&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;r.dirty(),u.set(l.value,c.value)}return{status:r.value,value:u}}}};vo.create=(i,t,r)=&amp;amp;gt;new vo({valueType:t,keyType:i,typeName:Be.ZodMap,...Ue(r)});var xo=class i extends ze{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.parsedType!==we.set)return _e(n,{code:le.invalid_type,expected:we.set,received:n.parsedType}),Re;let s=this._def;s.minSize!==null&amp;amp;amp;&amp;amp;amp;n.data.size&amp;amp;lt;s.minSize.value&amp;amp;amp;&amp;amp;amp;(_e(n,{code:le.too_small,minimum:s.minSize.value,type:&amp;amp;quot;set&amp;amp;quot;,inclusive:!0,exact:!1,message:s.minSize.message}),r.dirty()),s.maxSize!==null&amp;amp;amp;&amp;amp;amp;n.data.size&amp;amp;gt;s.maxSize.value&amp;amp;amp;&amp;amp;amp;(_e(n,{code:le.too_big,maximum:s.maxSize.value,type:&amp;amp;quot;set&amp;amp;quot;,inclusive:!0,exact:!1,message:s.maxSize.message}),r.dirty());let a=this._def.valueType;function o(h){let l=new Set;for(let c of h){if(c.status===&amp;amp;quot;aborted&amp;amp;quot;)return Re;c.status===&amp;amp;quot;dirty&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r.dirty(),l.add(c.value)}return{status:r.value,value:l}}let u=[...n.data.values()].map((h,l)=&amp;amp;gt;a._parse(new Er(n,h,n.path,l)));return n.common.async?Promise.all(u).then(h=&amp;amp;gt;o(h)):o(u)}min(t,r){return new i({...this._def,minSize:{value:t,message:Ne.toString(r)}})}max(t,r){return new i({...this._def,maxSize:{value:t,message:Ne.toString(r)}})}size(t,r){return this.min(t,r).max(t,r)}nonempty(t){return this.min(1,t)}};xo.create=(i,t)=&amp;amp;gt;new xo({valueType:i,minSize:null,maxSize:null,typeName:Be.ZodSet,...Ue(t)});var uf=class i extends ze{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==we.function)return _e(r,{code:le.invalid_type,expected:we.function,received:r.parsedType}),Re;function n(u,h){return xl({data:u,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,lo(),Yi].filter(l=&amp;amp;gt;!!l),issueData:{code:le.invalid_arguments,argumentsError:h}})}function s(u,h){return xl({data:u,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,lo(),Yi].filter(l=&amp;amp;gt;!!l),issueData:{code:le.invalid_return_type,returnTypeError:h}})}let a={errorMap:r.common.contextualErrorMap},o=r.data;if(this._def.returns instanceof On){let u=this;return Ht(async function(...h){let l=new cr([]),c=await u._def.args.parseAsync(h,a).catch(d=&amp;amp;gt;{throw l.addIssue(n(h,d)),l}),p=await Reflect.apply(o,this,c);return await u._def.returns._def.type.parseAsync(p,a).catch(d=&amp;amp;gt;{throw l.addIssue(s(p,d)),l})})}else{let u=this;return Ht(function(...h){let l=u._def.args.safeParse(h,a);if(!l.success)throw new cr([n(h,l.error)]);let c=Reflect.apply(o,this,l.data),p=u._def.returns.safeParse(c,a);if(!p.success)throw new cr([s(c,p.error)]);return p.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new i({...this._def,args:$r.create(t).rest(Xi.create())})}returns(t){return new i({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,r,n){return new i({args:t||$r.create([]).rest(Xi.create()),returns:r||Xi.create(),typeName:Be.ZodFunction,...Ue(n)})}},Vs=class extends ze{get schema(){return this._def.getter()}_parse(t){let{ctx:r}=this._processInputParams(t);return this._def.getter()._parse({data:r.data,path:r.path,parent:r})}};Vs.create=(i,t)=&amp;amp;gt;new Vs({getter:i,typeName:Be.ZodLazy,...Ue(t)});var Us=class extends ze{_parse(t){if(t.data!==this._def.value){let r=this._getOrReturnCtx(t);return _e(r,{received:r.data,code:le.invalid_literal,expected:this._def.value}),Re}return{status:&amp;amp;quot;valid&amp;amp;quot;,value:t.data}}get value(){return this._def.value}};Us.create=(i,t)=&amp;amp;gt;new Us({value:i,typeName:Be.ZodLiteral,...Ue(t)});function k0(i,t){return new Gs({values:i,typeName:Be.ZodEnum,...Ue(t)})}var Gs=class i extends ze{_parse(t){if(typeof t.data!=&amp;amp;quot;string&amp;amp;quot;){let r=this._getOrReturnCtx(t),n=this._def.values;return _e(r,{expected:He.joinValues(n),received:r.parsedType,code:le.invalid_type}),Re}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let r=this._getOrReturnCtx(t),n=this._def.values;return _e(r,{received:r.data,code:le.invalid_enum_value,options:n}),Re}return Ht(t.data)}get options(){return this._def.values}get enum(){let t={};for(let r of this._def.values)t[r]=r;return t}get Values(){let t={};for(let r of this._def.values)t[r]=r;return t}get Enum(){let t={};for(let r of this._def.values)t[r]=r;return t}extract(t,r=this._def){return i.create(t,{...this._def,...r})}exclude(t,r=this._def){return i.create(this.options.filter(n=&amp;amp;gt;!t.includes(n)),{...this._def,...r})}};Gs.create=k0;var zs=class extends ze{_parse(t){let r=He.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(t);if(n.parsedType!==we.string&amp;amp;amp;&amp;amp;amp;n.parsedType!==we.number){let s=He.objectValues(r);return _e(n,{expected:He.joinValues(s),received:n.parsedType,code:le.invalid_type}),Re}if(this._cache||(this._cache=new Set(He.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=He.objectValues(r);return _e(n,{received:n.data,code:le.invalid_enum_value,options:s}),Re}return Ht(t.data)}get enum(){return this._def.values}};zs.create=(i,t)=&amp;amp;gt;new zs({values:i,typeName:Be.ZodNativeEnum,...Ue(t)});var On=class extends ze{unwrap(){return this._def.type}_parse(t){let{ctx:r}=this._processInputParams(t);if(r.parsedType!==we.promise&amp;amp;amp;&amp;amp;amp;r.common.async===!1)return _e(r,{code:le.invalid_type,expected:we.promise,received:r.parsedType}),Re;let n=r.parsedType===we.promise?r.data:Promise.resolve(r.data);return Ht(n.then(s=&amp;amp;gt;this._def.type.parseAsync(s,{path:r.path,errorMap:r.common.contextualErrorMap})))}};On.create=(i,t)=&amp;amp;gt;new On({type:i,typeName:Be.ZodPromise,...Ue(t)});var Hr=class extends ze{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Be.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:r,ctx:n}=this._processInputParams(t),s=this._def.effect||null,a={addIssue:o=&amp;amp;gt;{_e(n,o),o.fatal?r.abort():r.dirty()},get path(){return n.path}};if(a.addIssue=a.addIssue.bind(a),s.type===&amp;amp;quot;preprocess&amp;amp;quot;){let o=s.transform(n.data,a);if(n.common.async)return Promise.resolve(o).then(async u=&amp;amp;gt;{if(r.value===&amp;amp;quot;aborted&amp;amp;quot;)return Re;let h=await this._def.schema._parseAsync({data:u,path:n.path,parent:n});return h.status===&amp;amp;quot;aborted&amp;amp;quot;?Re:h.status===&amp;amp;quot;dirty&amp;amp;quot;?Ms(h.value):r.value===&amp;amp;quot;dirty&amp;amp;quot;?Ms(h.value):h});{if(r.value===&amp;amp;quot;aborted&amp;amp;quot;)return Re;let u=this._def.schema._parseSync({data:o,path:n.path,parent:n});return u.status===&amp;amp;quot;aborted&amp;amp;quot;?Re:u.status===&amp;amp;quot;dirty&amp;amp;quot;?Ms(u.value):r.value===&amp;amp;quot;dirty&amp;amp;quot;?Ms(u.value):u}}if(s.type===&amp;amp;quot;refinement&amp;amp;quot;){let o=u=&amp;amp;gt;{let h=s.refinement(u,a);if(n.common.async)return Promise.resolve(h);if(h instanceof Promise)throw new Error(&amp;amp;quot;Async refinement encountered during synchronous parse operation. Use .parseAsync instead.&amp;amp;quot;);return u};if(n.common.async===!1){let u=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return u.status===&amp;amp;quot;aborted&amp;amp;quot;?Re:(u.status===&amp;amp;quot;dirty&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r.dirty(),o(u.value),{status:r.value,value:u.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(u=&amp;amp;gt;u.status===&amp;amp;quot;aborted&amp;amp;quot;?Re:(u.status===&amp;amp;quot;dirty&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r.dirty(),o(u.value).then(()=&amp;amp;gt;({status:r.value,value:u.value}))))}if(s.type===&amp;amp;quot;transform&amp;amp;quot;)if(n.common.async===!1){let o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!Bn(o))return Re;let u=s.transform(o.value,a);if(u instanceof Promise)throw new Error(&amp;amp;quot;Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.&amp;amp;quot;);return{status:r.value,value:u}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=&amp;amp;gt;Bn(o)?Promise.resolve(s.transform(o.value,a)).then(u=&amp;amp;gt;({status:r.value,value:u})):Re);He.assertNever(s)}};Hr.create=(i,t,r)=&amp;amp;gt;new Hr({schema:i,typeName:Be.ZodEffects,effect:t,...Ue(r)});Hr.createWithPreprocess=(i,t,r)=&amp;amp;gt;new Hr({schema:t,effect:{type:&amp;amp;quot;preprocess&amp;amp;quot;,transform:i},typeName:Be.ZodEffects,...Ue(r)});var jr=class extends ze{_parse(t){return this._getType(t)===we.undefined?Ht(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};jr.create=(i,t)=&amp;amp;gt;new jr({innerType:i,typeName:Be.ZodOptional,...Ue(t)});var Ai=class extends ze{_parse(t){return this._getType(t)===we.null?Ht(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Ai.create=(i,t)=&amp;amp;gt;new Ai({innerType:i,typeName:Be.ZodNullable,...Ue(t)});var js=class extends ze{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return r.parsedType===we.undefined&amp;amp;amp;&amp;amp;amp;(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:r.path,parent:r})}removeDefault(){return this._def.innerType}};js.create=(i,t)=&amp;amp;gt;new js({innerType:i,typeName:Be.ZodDefault,defaultValue:typeof t.default==&amp;amp;quot;function&amp;amp;quot;?t.default:()=&amp;amp;gt;t.default,...Ue(t)});var $s=class extends ze{_parse(t){let{ctx:r}=this._processInputParams(t),n={...r,common:{...r.common,issues:[]}},s=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return ho(s)?s.then(a=&amp;amp;gt;({status:&amp;amp;quot;valid&amp;amp;quot;,value:a.status===&amp;amp;quot;valid&amp;amp;quot;?a.value:this._def.catchValue({get error(){return new cr(n.common.issues)},input:n.data})})):{status:&amp;amp;quot;valid&amp;amp;quot;,value:s.status===&amp;amp;quot;valid&amp;amp;quot;?s.value:this._def.catchValue({get error(){return new cr(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}};$s.create=(i,t)=&amp;amp;gt;new $s({innerType:i,typeName:Be.ZodCatch,catchValue:typeof t.catch==&amp;amp;quot;function&amp;amp;quot;?t.catch:()=&amp;amp;gt;t.catch,...Ue(t)});var bo=class extends ze{_parse(t){if(this._getType(t)!==we.nan){let n=this._getOrReturnCtx(t);return _e(n,{code:le.invalid_type,expected:we.nan,received:n.parsedType}),Re}return{status:&amp;amp;quot;valid&amp;amp;quot;,value:t.data}}};bo.create=i=&amp;amp;gt;new bo({typeName:Be.ZodNaN,...Ue(i)});var AL=Symbol(&amp;amp;quot;zod_brand&amp;amp;quot;),bl=class extends ze{_parse(t){let{ctx:r}=this._processInputParams(t),n=r.data;return this._def.type._parse({data:n,path:r.path,parent:r})}unwrap(){return this._def.type}},_l=class i extends ze{_parse(t){let{status:r,ctx:n}=this._processInputParams(t);if(n.common.async)return(async()=&amp;amp;gt;{let a=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return a.status===&amp;amp;quot;aborted&amp;amp;quot;?Re:a.status===&amp;amp;quot;dirty&amp;amp;quot;?(r.dirty(),Ms(a.value)):this._def.out._parseAsync({data:a.value,path:n.path,parent:n})})();{let s=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return s.status===&amp;amp;quot;aborted&amp;amp;quot;?Re:s.status===&amp;amp;quot;dirty&amp;amp;quot;?(r.dirty(),{status:&amp;amp;quot;dirty&amp;amp;quot;,value:s.value}):this._def.out._parseSync({data:s.value,path:n.path,parent:n})}}static create(t,r){return new i({in:t,out:r,typeName:Be.ZodPipeline})}},Hs=class extends ze{_parse(t){let r=this._def.innerType._parse(t),n=s=&amp;amp;gt;(Bn(s)&amp;amp;amp;&amp;amp;amp;(s.value=Object.freeze(s.value)),s);return ho(r)?r.then(s=&amp;amp;gt;n(s)):n(r)}unwrap(){return this._def.innerType}};Hs.create=(i,t)=&amp;amp;gt;new Hs({innerType:i,typeName:Be.ZodReadonly,...Ue(t)});function T0(i,t){let r=typeof i==&amp;amp;quot;function&amp;amp;quot;?i(t):typeof i==&amp;amp;quot;string&amp;amp;quot;?{message:i}:i;return typeof r==&amp;amp;quot;string&amp;amp;quot;?{message:r}:r}function lf(i,t={},r){return i?Pn.create().superRefine((n,s)=&amp;amp;gt;{let a=i(n);if(a instanceof Promise)return a.then(o=&amp;amp;gt;{if(!o){let u=T0(t,n),h=u.fatal??r??!0;s.addIssue({code:&amp;amp;quot;custom&amp;amp;quot;,...u,fatal:h})}});if(!a){let o=T0(t,n),u=o.fatal??r??!0;s.addIssue({code:&amp;amp;quot;custom&amp;amp;quot;,...o,fatal:u})}}):Pn.create()}var DL={object:fr.lazycreate},Be;(function(i){i.ZodString=&amp;amp;quot;ZodString&amp;amp;quot;,i.ZodNumber=&amp;amp;quot;ZodNumber&amp;amp;quot;,i.ZodNaN=&amp;amp;quot;ZodNaN&amp;amp;quot;,i.ZodBigInt=&amp;amp;quot;ZodBigInt&amp;amp;quot;,i.ZodBoolean=&amp;amp;quot;ZodBoolean&amp;amp;quot;,i.ZodDate=&amp;amp;quot;ZodDate&amp;amp;quot;,i.ZodSymbol=&amp;amp;quot;ZodSymbol&amp;amp;quot;,i.ZodUndefined=&amp;amp;quot;ZodUndefined&amp;amp;quot;,i.ZodNull=&amp;amp;quot;ZodNull&amp;amp;quot;,i.ZodAny=&amp;amp;quot;ZodAny&amp;amp;quot;,i.ZodUnknown=&amp;amp;quot;ZodUnknown&amp;amp;quot;,i.ZodNever=&amp;amp;quot;ZodNever&amp;amp;quot;,i.ZodVoid=&amp;amp;quot;ZodVoid&amp;amp;quot;,i.ZodArray=&amp;amp;quot;ZodArray&amp;amp;quot;,i.ZodObject=&amp;amp;quot;ZodObject&amp;amp;quot;,i.ZodUnion=&amp;amp;quot;ZodUnion&amp;amp;quot;,i.ZodDiscriminatedUnion=&amp;amp;quot;ZodDiscriminatedUnion&amp;amp;quot;,i.ZodIntersection=&amp;amp;quot;ZodIntersection&amp;amp;quot;,i.ZodTuple=&amp;amp;quot;ZodTuple&amp;amp;quot;,i.ZodRecord=&amp;amp;quot;ZodRecord&amp;amp;quot;,i.ZodMap=&amp;amp;quot;ZodMap&amp;amp;quot;,i.ZodSet=&amp;amp;quot;ZodSet&amp;amp;quot;,i.ZodFunction=&amp;amp;quot;ZodFunction&amp;amp;quot;,i.ZodLazy=&amp;amp;quot;ZodLazy&amp;amp;quot;,i.ZodLiteral=&amp;amp;quot;ZodLiteral&amp;amp;quot;,i.ZodEnum=&amp;amp;quot;ZodEnum&amp;amp;quot;,i.ZodEffects=&amp;amp;quot;ZodEffects&amp;amp;quot;,i.ZodNativeEnum=&amp;amp;quot;ZodNativeEnum&amp;amp;quot;,i.ZodOptional=&amp;amp;quot;ZodOptional&amp;amp;quot;,i.ZodNullable=&amp;amp;quot;ZodNullable&amp;amp;quot;,i.ZodDefault=&amp;amp;quot;ZodDefault&amp;amp;quot;,i.ZodCatch=&amp;amp;quot;ZodCatch&amp;amp;quot;,i.ZodPromise=&amp;amp;quot;ZodPromise&amp;amp;quot;,i.ZodBranded=&amp;amp;quot;ZodBranded&amp;amp;quot;,i.ZodPipeline=&amp;amp;quot;ZodPipeline&amp;amp;quot;,i.ZodReadonly=&amp;amp;quot;ZodReadonly&amp;amp;quot;})(Be||(Be={}));var hf=(i,t={message:`Input not instance of ${i.name}`})=&amp;amp;gt;lf(r=&amp;amp;gt;r instanceof i,t),M0=Rs.create,cf=co.create,FL=bo.create,TL=fo.create,L0=po.create,NL=mo.create,IL=go.create,kL=Bs.create,ML=Ps.create,wl=Pn.create,LL=Xi.create,RL=ii.create,BL=yo.create,ff=Ki.create,R0=fr.create,PL=fr.strictCreate,pf=Ji.create,OL=sf.create,VL=Os.create,df=$r.create,UL=of.create,GL=vo.create,zL=xo.create,mf=uf.create,jL=Vs.create,gf=Us.create,$L=Gs.create,HL=zs.create,WL=On.create,qL=Hr.create,ZL=jr.create,YL=Ai.create,XL=Hr.createWithPreprocess,KL=_l.create;var Z_={describe:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;FALLBACK|LABEL?&amp;amp;quot;]]},describeElement:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;FALLBACK|LABEL?&amp;amp;quot;]]},textOutput:{overloads:[[&amp;amp;quot;FALLBACK|LABEL?&amp;amp;quot;]]},gridOutput:{overloads:[[&amp;amp;quot;FALLBACK|LABEL?&amp;amp;quot;]]},p5:{overloads:[[&amp;amp;quot;Object&amp;amp;quot;,&amp;amp;quot;String|HTMLElement&amp;amp;quot;]]},color:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Color&amp;amp;quot;]]},red:{overloads:[[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},green:{overloads:[[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},blue:{overloads:[[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},alpha:{overloads:[[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},hue:{overloads:[[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},saturation:{overloads:[[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},brightness:{overloads:[[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},lightness:{overloads:[[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},lerpColor:{overloads:[[&amp;amp;quot;p5.Color&amp;amp;quot;,&amp;amp;quot;p5.Color&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},paletteLerp:{overloads:[[&amp;amp;quot;[p5.Color|String|Number|Number[], Number][]&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},beginClip:{overloads:[[&amp;amp;quot;Object?&amp;amp;quot;]]},endClip:{overloads:[[]]},clip:{overloads:[[&amp;amp;quot;Function&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},background:{overloads:[[&amp;amp;quot;p5.Color&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Image&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},clear:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[]]},colorMode:{overloads:[[&amp;amp;quot;RGB|HSB|HSL|RGBHDR|HWB|LAB|LCH|OKLAB|OKLCH&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;RGB|HSB|HSL|RGBHDR|HWB|LAB|LCH|OKLAB|OKLCH&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},fill:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Color&amp;amp;quot;]]},noFill:{overloads:[[]]},noStroke:{overloads:[[]]},stroke:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Color&amp;amp;quot;]]},erase:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},noErase:{overloads:[[]]},blendMode:{overloads:[[&amp;amp;quot;BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|REMOVE|SUBTRACT&amp;amp;quot;]]},print:{overloads:[[&amp;amp;quot;Any&amp;amp;quot;],[&amp;amp;quot;String|Number|Array&amp;amp;quot;]]},cursor:{overloads:[[&amp;amp;quot;ARROW|CROSS|HAND|MOVE|TEXT|WAIT|String&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},frameRate:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;],[]]},getTargetFrameRate:{overloads:[[]]},noCursor:{overloads:[[]]},windowResized:{overloads:[[&amp;amp;quot;UIEvent?&amp;amp;quot;]]},fullscreen:{overloads:[[&amp;amp;quot;Boolean?&amp;amp;quot;]]},pixelDensity:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;],[]]},displayDensity:{overloads:[[]]},getURL:{overloads:[[]]},getURLPath:{overloads:[[]]},getURLParams:{overloads:[[]]},worldToScreen:{overloads:[[&amp;amp;quot;Number|p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},screenToWorld:{overloads:[[&amp;amp;quot;Number|p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},setup:{overloads:[[]]},draw:{overloads:[[]]},createCanvas:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;P2D|WEBGL|P2DHDR?&amp;amp;quot;,&amp;amp;quot;HTMLCanvasElement?&amp;amp;quot;],[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;HTMLCanvasElement?&amp;amp;quot;]]},resizeCanvas:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},noCanvas:{overloads:[[]]},createGraphics:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;P2D|WEBGL?&amp;amp;quot;,&amp;amp;quot;HTMLCanvasElement?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;HTMLCanvasElement?&amp;amp;quot;]]},createFramebuffer:{overloads:[[&amp;amp;quot;Object?&amp;amp;quot;]]},clearDepth:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;]]},noLoop:{overloads:[[]]},loop:{overloads:[[]]},isLooping:{overloads:[[]]},redraw:{overloads:[[&amp;amp;quot;Integer?&amp;amp;quot;]]},applyMatrix:{overloads:[[&amp;amp;quot;Array&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},resetMatrix:{overloads:[[]]},rotate:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector|Number[]?&amp;amp;quot;]]},rotateX:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},rotateY:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},rotateZ:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},scale:{overloads:[[&amp;amp;quot;Number|p5.Vector|Number[]&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Vector|Number[]&amp;amp;quot;]]},shearX:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},shearY:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},translate:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;]]},push:{overloads:[[]]},pop:{overloads:[[]]},storeItem:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String|Number|Boolean|Object|Array&amp;amp;quot;]]},getItem:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},clearStorage:{overloads:[[]]},removeItem:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},select:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String|p5.Element|HTMLElement?&amp;amp;quot;]]},selectAll:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String|p5.Element|HTMLElement?&amp;amp;quot;]]},createElement:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},removeElements:{overloads:[[]]},addElement:{overloads:[[]]},createDiv:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},createP:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},createSpan:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},createImg:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},createA:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},createSlider:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},createButton:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},createCheckbox:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},createSelect:{overloads:[[&amp;amp;quot;Boolean?&amp;amp;quot;],[&amp;amp;quot;Object&amp;amp;quot;]]},createRadio:{overloads:[[&amp;amp;quot;Object?&amp;amp;quot;],[&amp;amp;quot;String?&amp;amp;quot;],[]]},createColorPicker:{overloads:[[&amp;amp;quot;String|p5.Color?&amp;amp;quot;]]},createInput:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;],[&amp;amp;quot;String?&amp;amp;quot;]]},createFileInput:{overloads:[[&amp;amp;quot;Function&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},setMoveThreshold:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},setShakeThreshold:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},deviceMoved:{overloads:[[]]},deviceTurned:{overloads:[[]]},deviceShaken:{overloads:[[]]},keyPressed:{overloads:[[&amp;amp;quot;KeyboardEvent?&amp;amp;quot;]]},keyReleased:{overloads:[[&amp;amp;quot;KeyboardEvent?&amp;amp;quot;]]},keyTyped:{overloads:[[&amp;amp;quot;KeyboardEvent?&amp;amp;quot;]]},keyIsDown:{overloads:[[&amp;amp;quot;Number|String&amp;amp;quot;]]},mouseMoved:{overloads:[[&amp;amp;quot;MouseEvent?&amp;amp;quot;]]},mouseDragged:{overloads:[[&amp;amp;quot;MouseEvent?&amp;amp;quot;]]},mousePressed:{overloads:[[&amp;amp;quot;MouseEvent?&amp;amp;quot;]]},mouseReleased:{overloads:[[&amp;amp;quot;MouseEvent?&amp;amp;quot;]]},mouseClicked:{overloads:[[&amp;amp;quot;MouseEvent?&amp;amp;quot;]]},doubleClicked:{overloads:[[&amp;amp;quot;MouseEvent?&amp;amp;quot;]]},mouseWheel:{overloads:[[&amp;amp;quot;WheelEvent?&amp;amp;quot;]]},requestPointerLock:{overloads:[[]]},exitPointerLock:{overloads:[[]]},createImage:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;]]},saveCanvas:{overloads:[[&amp;amp;quot;p5.Framebuffer|p5.Element|HTMLCanvasElement&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;],[&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},saveFrames:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;function(Array)?&amp;amp;quot;]]},loadImage:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;function(p5.Image)?&amp;amp;quot;,&amp;amp;quot;function(Event)?&amp;amp;quot;]]},saveGif:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},image:{overloads:[[&amp;amp;quot;p5.Image|p5.Element|p5.Texture|p5.Framebuffer|p5.FramebufferTexture|p5.Renderer|p5.Graphics&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Image|p5.Element|p5.Texture|p5.Framebuffer|p5.FramebufferTexture&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;CONTAIN|COVER?&amp;amp;quot;,&amp;amp;quot;LEFT|RIGHT|CENTER?&amp;amp;quot;,&amp;amp;quot;TOP|BOTTOM|CENTER?&amp;amp;quot;]]},tint:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Color&amp;amp;quot;]]},noTint:{overloads:[[]]},imageMode:{overloads:[[&amp;amp;quot;CORNER|CORNERS|CENTER&amp;amp;quot;]]},blend:{overloads:[[&amp;amp;quot;p5.Image&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL&amp;amp;quot;],[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL&amp;amp;quot;]]},copy:{overloads:[[&amp;amp;quot;p5.Image|p5.Element&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;],[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;]]},filter:{overloads:[[&amp;amp;quot;THRESHOLD|GRAY|OPAQUE|INVERT|POSTERIZE|BLUR|ERODE|DILATE|BLUR&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;],[&amp;amp;quot;p5.Shader&amp;amp;quot;]]},get:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},loadPixels:{overloads:[[]]},set:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number|Number[]|Object&amp;amp;quot;]]},updatePixels:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[]]},loadJSON:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},loadStrings:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},loadTable:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},loadXML:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},loadBytes:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},loadBlob:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},httpGet:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;],[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},httpPost:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Object|Boolean?&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;],[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Object|Boolean&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;],[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},httpDo:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;],[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},createWriter:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},write:{overloads:[[&amp;amp;quot;String|Number|Array&amp;amp;quot;]]},close:{overloads:[[]]},save:{overloads:[[&amp;amp;quot;Object|String?&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Boolean|String?&amp;amp;quot;]]},saveJSON:{overloads:[[&amp;amp;quot;Array|Object&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},saveStrings:{overloads:[[&amp;amp;quot;String[]&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},saveTable:{overloads:[[&amp;amp;quot;p5.Table&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},abs:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},ceil:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},constrain:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},dist:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;]]},exp:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},floor:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},lerp:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},log:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},mag:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},map:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},max:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;]]},min:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;]]},norm:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},pow:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},round:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},sq:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},sqrt:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},fract:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},createVector:{overloads:[[&amp;amp;quot;...Number[]&amp;amp;quot;]]},noise:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},noiseDetail:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},noiseSeed:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},randomSeed:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},random:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Array&amp;amp;quot;]]},randomGaussian:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},acos:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},asin:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},atan:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},atan2:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},cos:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},sin:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},tan:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},degrees:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},radians:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},angleMode:{overloads:[[&amp;amp;quot;RADIANS|DEGREES&amp;amp;quot;],[]]},arc:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;CHORD|PIE|OPEN?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},ellipse:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},circle:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},line:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},point:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;]]},quad:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},rect:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},square:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},triangle:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},ellipseMode:{overloads:[[&amp;amp;quot;CENTER|RADIUS|CORNER|CORNERS&amp;amp;quot;]]},noSmooth:{overloads:[[]]},rectMode:{overloads:[[&amp;amp;quot;CENTER|RADIUS|CORNER|CORNERS&amp;amp;quot;]]},smooth:{overloads:[[]]},strokeCap:{overloads:[[&amp;amp;quot;ROUND|SQUARE|PROJECT&amp;amp;quot;]]},strokeJoin:{overloads:[[&amp;amp;quot;MITER|BEVEL|ROUND&amp;amp;quot;]]},strokeWeight:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},bezier:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},bezierPoint:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},bezierTangent:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},spline:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},splinePoint:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},splineTangent:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},bezierOrder:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;],[]]},splineVertex:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},splineProperty:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,null],[&amp;amp;quot;String&amp;amp;quot;]]},splineProperties:{overloads:[[&amp;amp;quot;Object&amp;amp;quot;],[]]},vertex:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},beginContour:{overloads:[[]]},endContour:{overloads:[[&amp;amp;quot;OPEN|CLOSE?&amp;amp;quot;]]},beginShape:{overloads:[[&amp;amp;quot;POINTS|LINES|TRIANGLES|TRIANGLE_FAN|TRIANGLE_STRIP|QUADS|QUAD_STRIP|PATH?&amp;amp;quot;]]},bezierVertex:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},endShape:{overloads:[[&amp;amp;quot;CLOSE?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},normal:{overloads:[[&amp;amp;quot;p5.Vector&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},vertexProperty:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number|Number[]&amp;amp;quot;]]},loadFont:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},text:{overloads:[[&amp;amp;quot;String|Object|Array|Number|Boolean&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},textAlign:{overloads:[[&amp;amp;quot;LEFT|CENTER|RIGHT&amp;amp;quot;,&amp;amp;quot;TOP|BOTTOM|CENTER|BASELINE?&amp;amp;quot;]]},textAscent:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},textDescent:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},textLeading:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},textFont:{overloads:[[&amp;amp;quot;p5.Font|String|Object&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},textSize:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;],[]]},textStyle:{overloads:[[&amp;amp;quot;NORMAL|ITALIC|BOLD|BOLDITALIC&amp;amp;quot;],[]]},textWidth:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},textWrap:{overloads:[[&amp;amp;quot;WORD|CHAR&amp;amp;quot;],[]]},textBounds:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},textDirection:{overloads:[[&amp;amp;quot;String&amp;amp;quot;],[]]},textProperty:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,null],[&amp;amp;quot;String&amp;amp;quot;]]},textProperties:{overloads:[[&amp;amp;quot;Object&amp;amp;quot;],[]]},fontBounds:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},fontWidth:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},fontAscent:{overloads:[[]]},fontDescent:{overloads:[[]]},textWeight:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;],[]]},float:{overloads:[[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;String[]&amp;amp;quot;]]},int:{overloads:[[&amp;amp;quot;String|Boolean|Number&amp;amp;quot;],[&amp;amp;quot;Array&amp;amp;quot;]]},str:{overloads:[[&amp;amp;quot;String|Boolean|Number&amp;amp;quot;]]},boolean:{overloads:[[&amp;amp;quot;String|Boolean|Number&amp;amp;quot;],[&amp;amp;quot;Array&amp;amp;quot;]]},byte:{overloads:[[&amp;amp;quot;String|Boolean|Number&amp;amp;quot;],[&amp;amp;quot;Array&amp;amp;quot;]]},char:{overloads:[[&amp;amp;quot;String|Number&amp;amp;quot;],[&amp;amp;quot;Array&amp;amp;quot;]]},unchar:{overloads:[[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;String[]&amp;amp;quot;]]},hex:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},unhex:{overloads:[[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;String[]&amp;amp;quot;]]},day:{overloads:[[]]},hour:{overloads:[[]]},minute:{overloads:[[]]},millis:{overloads:[[]]},month:{overloads:[[]]},second:{overloads:[[]]},year:{overloads:[[]]},nf:{overloads:[[&amp;amp;quot;Number|String&amp;amp;quot;,&amp;amp;quot;Integer|String?&amp;amp;quot;,&amp;amp;quot;Integer|String?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;,&amp;amp;quot;Integer|String?&amp;amp;quot;,&amp;amp;quot;Integer|String?&amp;amp;quot;]]},nfc:{overloads:[[&amp;amp;quot;Number|String&amp;amp;quot;,&amp;amp;quot;Integer|String?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;,&amp;amp;quot;Integer|String?&amp;amp;quot;]]},nfp:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},nfs:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;],[&amp;amp;quot;Array&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},splitTokens:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},shuffle:{overloads:[[&amp;amp;quot;Array&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},strokeMode:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},buildGeometry:{overloads:[[&amp;amp;quot;Function&amp;amp;quot;]]},freeGeometry:{overloads:[[&amp;amp;quot;p5.Geometry&amp;amp;quot;]]},plane:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},box:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},sphere:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},cylinder:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},cone:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},ellipsoid:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},torus:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;,&amp;amp;quot;Integer?&amp;amp;quot;]]},curveDetail:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},orbitControl:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},debugMode:{overloads:[[],[&amp;amp;quot;GRID|AXES&amp;amp;quot;],[&amp;amp;quot;GRID|AXES&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;GRID|AXES&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},noDebugMode:{overloads:[[]]},ambientLight:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Color&amp;amp;quot;]]},specularColor:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Color&amp;amp;quot;]]},directionalLight:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;]]},pointLight:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;]]},imageLight:{overloads:[[&amp;amp;quot;p5.image&amp;amp;quot;]]},panorama:{overloads:[[&amp;amp;quot;p5.Image&amp;amp;quot;]]},lights:{overloads:[[]]},lightFalloff:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},spotLight:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},noLights:{overloads:[[]]},loadModel:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Boolean&amp;amp;quot;,&amp;amp;quot;function(p5.Geometry)?&amp;amp;quot;,&amp;amp;quot;function(Event)?&amp;amp;quot;],[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;function(p5.Geometry)?&amp;amp;quot;,&amp;amp;quot;function(Event)?&amp;amp;quot;],[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},model:{overloads:[[&amp;amp;quot;p5.Geometry&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},createModel:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Boolean&amp;amp;quot;,&amp;amp;quot;function(p5.Geometry)?&amp;amp;quot;,&amp;amp;quot;function(Event)?&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;function(p5.Geometry)?&amp;amp;quot;,&amp;amp;quot;function(Event)?&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},loadShader:{overloads:[[&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;String|Request&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},createShader:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},loadFilterShader:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},createFilterShader:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},shader:{overloads:[[&amp;amp;quot;p5.Shader&amp;amp;quot;]]},strokeShader:{overloads:[[&amp;amp;quot;p5.Shader&amp;amp;quot;]]},imageShader:{overloads:[[&amp;amp;quot;p5.Shader&amp;amp;quot;]]},baseMaterialShader:{overloads:[[]]},baseFilterShader:{overloads:[[]]},baseNormalShader:{overloads:[[]]},baseColorShader:{overloads:[[]]},baseStrokeShader:{overloads:[[]]},resetShader:{overloads:[[]]},texture:{overloads:[[&amp;amp;quot;p5.Image|p5.MediaElement|p5.Graphics|p5.Texture|p5.Framebuffer|p5.FramebufferTexture&amp;amp;quot;]]},textureMode:{overloads:[[&amp;amp;quot;IMAGE|NORMAL&amp;amp;quot;]]},textureWrap:{overloads:[[&amp;amp;quot;CLAMP|REPEAT|MIRROR&amp;amp;quot;,&amp;amp;quot;CLAMP|REPEAT|MIRROR?&amp;amp;quot;]]},normalMaterial:{overloads:[[]]},ambientMaterial:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},emissiveMaterial:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},specularMaterial:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Color|Number[]|String&amp;amp;quot;]]},shininess:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},metalness:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},camera:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},perspective:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},linePerspective:{overloads:[[&amp;amp;quot;Boolean&amp;amp;quot;],[]]},ortho:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},frustum:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},createCamera:{overloads:[[]]},setCamera:{overloads:[[&amp;amp;quot;p5.Camera&amp;amp;quot;]]},saveObj:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},saveStl:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},setAttributes:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Boolean&amp;amp;quot;],[&amp;amp;quot;Object&amp;amp;quot;]]},remove:{overloads:[[]]},createVideo:{overloads:[[&amp;amp;quot;String|String[]&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},createAudio:{overloads:[[],[&amp;amp;quot;String|String[]?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},createCapture:{overloads:[[&amp;amp;quot;AUDIO|VIDEO|Object?&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]}},Y_={p5:Z_,&amp;amp;quot;p5.Geometry&amp;amp;quot;:{flipV:{overloads:[[]]},calculateBoundingBox:{overloads:[[]]},clearColors:{overloads:[[]]},flipU:{overloads:[[]]},computeFaces:{overloads:[[]]},computeNormals:{overloads:[[&amp;amp;quot;FLAT|SMOOTH?&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},makeEdgesFromFaces:{overloads:[[]]},normalize:{overloads:[[]]},vertexProperty:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number|Number[]&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]}},&amp;amp;quot;p5.Color&amp;amp;quot;:{toString:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},setRed:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},setGreen:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},setBlue:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},setAlpha:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]}},&amp;amp;quot;p5.Graphics&amp;amp;quot;:{reset:{overloads:[[]]},remove:{overloads:[[]]},createFramebuffer:{overloads:[[&amp;amp;quot;Object?&amp;amp;quot;]]}},&amp;amp;quot;p5.Element&amp;amp;quot;:{remove:{overloads:[[]]},parent:{overloads:[[&amp;amp;quot;String|p5.Element|Object&amp;amp;quot;],[]]},child:{overloads:[[],[&amp;amp;quot;String|p5.Element?&amp;amp;quot;]]},html:{overloads:[[],[&amp;amp;quot;String?&amp;amp;quot;,&amp;amp;quot;Boolean?&amp;amp;quot;]]},id:{overloads:[[&amp;amp;quot;String&amp;amp;quot;],[]]},class:{overloads:[[&amp;amp;quot;String&amp;amp;quot;],[]]},addClass:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},removeClass:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},hasClass:{overloads:[[null]]},toggleClass:{overloads:[[null]]},center:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},position:{overloads:[[],[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},show:{overloads:[[]]},hide:{overloads:[[]]},size:{overloads:[[],[&amp;amp;quot;Number|AUTO?&amp;amp;quot;,&amp;amp;quot;Number|AUTO?&amp;amp;quot;]]},style:{overloads:[[&amp;amp;quot;String&amp;amp;quot;],[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String|p5.Color&amp;amp;quot;]]},attribute:{overloads:[[],[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;]]},removeAttribute:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},value:{overloads:[[],[&amp;amp;quot;String|Number&amp;amp;quot;]]},mousePressed:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},doubleClicked:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},mouseWheel:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},mouseReleased:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},mouseClicked:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},mouseMoved:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},mouseOver:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},mouseOut:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},dragOver:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},dragLeave:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},changed:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},input:{overloads:[[&amp;amp;quot;Function|Boolean&amp;amp;quot;]]},drop:{overloads:[[&amp;amp;quot;Function&amp;amp;quot;,&amp;amp;quot;Function?&amp;amp;quot;]]},draggable:{overloads:[[&amp;amp;quot;p5.Element?&amp;amp;quot;]]}},&amp;amp;quot;p5.MediaElement&amp;amp;quot;:{play:{overloads:[[]]},stop:{overloads:[[]]},pause:{overloads:[[]]},loop:{overloads:[[]]},noLoop:{overloads:[[]]},autoplay:{overloads:[[&amp;amp;quot;Boolean?&amp;amp;quot;]]},volume:{overloads:[[],[&amp;amp;quot;Number&amp;amp;quot;]]},speed:{overloads:[[],[&amp;amp;quot;Number&amp;amp;quot;]]},time:{overloads:[[],[&amp;amp;quot;Number&amp;amp;quot;]]},duration:{overloads:[[]]},onended:{overloads:[[&amp;amp;quot;Function&amp;amp;quot;]]},connect:{overloads:[[&amp;amp;quot;AudioNode|Object&amp;amp;quot;]]},disconnect:{overloads:[[]]},showControls:{overloads:[[]]},hideControls:{overloads:[[]]},addCue:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Function&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},removeCue:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},clearCues:{overloads:[[]]}},&amp;amp;quot;p5.Image&amp;amp;quot;:{pixelDensity:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;]]},loadPixels:{overloads:[[]]},updatePixels:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;]]},get:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},set:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number|Number[]|Object&amp;amp;quot;]]},resize:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},copy:{overloads:[[&amp;amp;quot;p5.Image|p5.Element&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;],[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;]]},mask:{overloads:[[&amp;amp;quot;p5.Image&amp;amp;quot;]]},filter:{overloads:[[&amp;amp;quot;THRESHOLD|GRAY|OPAQUE|INVERT|POSTERIZE|ERODE|DILATE|BLUR&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},blend:{overloads:[[&amp;amp;quot;p5.Image&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL&amp;amp;quot;],[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL&amp;amp;quot;]]},save:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String?&amp;amp;quot;]]},reset:{overloads:[[]]},getCurrentFrame:{overloads:[[]]},setFrame:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},numFrames:{overloads:[[]]},play:{overloads:[[]]},pause:{overloads:[[]]},delay:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]}},&amp;amp;quot;p5.Table&amp;amp;quot;:{addRow:{overloads:[[&amp;amp;quot;p5.TableRow?&amp;amp;quot;]]},removeRow:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;]]},getRow:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;]]},getRows:{overloads:[[]]},findRow:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Integer|String&amp;amp;quot;]]},findRows:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Integer|String&amp;amp;quot;]]},matchRow:{overloads:[[&amp;amp;quot;String|RegExp&amp;amp;quot;,&amp;amp;quot;String|Integer&amp;amp;quot;]]},matchRows:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String|Integer?&amp;amp;quot;]]},getColumn:{overloads:[[&amp;amp;quot;String|Number&amp;amp;quot;]]},clearRows:{overloads:[[]]},addColumn:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},getColumnCount:{overloads:[[]]},getRowCount:{overloads:[[]]},removeTokens:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;String|Integer?&amp;amp;quot;]]},trim:{overloads:[[&amp;amp;quot;String|Integer?&amp;amp;quot;]]},removeColumn:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;]]},set:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;String|Integer&amp;amp;quot;,&amp;amp;quot;String|Number&amp;amp;quot;]]},setNum:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;String|Integer&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},setString:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;String|Integer&amp;amp;quot;,&amp;amp;quot;String&amp;amp;quot;]]},get:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;String|Integer&amp;amp;quot;]]},getNum:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;String|Integer&amp;amp;quot;]]},getString:{overloads:[[&amp;amp;quot;Integer&amp;amp;quot;,&amp;amp;quot;String|Integer&amp;amp;quot;]]},getObject:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},getArray:{overloads:[[]]}},&amp;amp;quot;p5.TableRow&amp;amp;quot;:{set:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;,&amp;amp;quot;String|Number&amp;amp;quot;]]},setNum:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;,&amp;amp;quot;Number|String&amp;amp;quot;]]},setString:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;,&amp;amp;quot;String|Number|Boolean|Object&amp;amp;quot;]]},get:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;]]},getNum:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;]]},getString:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;]]}},&amp;amp;quot;p5.XML&amp;amp;quot;:{getParent:{overloads:[[]]},getName:{overloads:[[]]},setName:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},hasChildren:{overloads:[[]]},listChildren:{overloads:[[]]},getChildren:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},getChild:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;]]},addChild:{overloads:[[&amp;amp;quot;p5.XML&amp;amp;quot;]]},removeChild:{overloads:[[&amp;amp;quot;String|Integer&amp;amp;quot;]]},getAttributeCount:{overloads:[[]]},listAttributes:{overloads:[[]]},hasAttribute:{overloads:[[&amp;amp;quot;String&amp;amp;quot;]]},getNum:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},getString:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},setAttribute:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number|String|Boolean&amp;amp;quot;]]},getContent:{overloads:[[&amp;amp;quot;String?&amp;amp;quot;]]},serialize:{overloads:[[]]}},&amp;amp;quot;p5.Vector&amp;amp;quot;:{getValue:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},setValue:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},set:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Vector|Number[]&amp;amp;quot;]]},copy:{overloads:[[],[&amp;amp;quot;p5.Vector&amp;amp;quot;]]},add:{overloads:[[&amp;amp;quot;Number|Array&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Vector|Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},rem:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;p5.Vector|Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;]]},sub:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Vector|Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},mult:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number[]&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},div:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;Number[]&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number[]&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},mag:{overloads:[[],[&amp;amp;quot;p5.Vector&amp;amp;quot;]]},magSq:{overloads:[[],[&amp;amp;quot;p5.Vector&amp;amp;quot;]]},dot:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;]]},cross:{overloads:[[&amp;amp;quot;p5.Vector&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;]]},normalize:{overloads:[[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},limit:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},setMag:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},heading:{overloads:[[],[&amp;amp;quot;p5.Vector&amp;amp;quot;]]},setHeading:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},rotate:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},angleBetween:{overloads:[[&amp;amp;quot;p5.Vector&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;]]},lerp:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},slerp:{overloads:[[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},reflect:{overloads:[[&amp;amp;quot;p5.Vector&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector?&amp;amp;quot;]]},array:{overloads:[[],[&amp;amp;quot;p5.Vector&amp;amp;quot;]]},equals:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;],[&amp;amp;quot;p5.Vector|Array&amp;amp;quot;],[],[&amp;amp;quot;p5.Vector|Array&amp;amp;quot;,&amp;amp;quot;p5.Vector|Array&amp;amp;quot;]]},fromAngle:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},fromAngles:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},random2D:{overloads:[[]]},random3D:{overloads:[[]]},dist:{overloads:[[],[&amp;amp;quot;p5.Vector&amp;amp;quot;,&amp;amp;quot;p5.Vector&amp;amp;quot;]]}},&amp;amp;quot;p5.Font&amp;amp;quot;:{textToPaths:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},textToPoints:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},textToContours:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]},textToModel:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Object?&amp;amp;quot;]]}},&amp;amp;quot;p5.Camera&amp;amp;quot;:{perspective:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},ortho:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},frustum:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},pan:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},tilt:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;]]},lookAt:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},camera:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;,&amp;amp;quot;Number?&amp;amp;quot;]]},move:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},setPosition:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},set:{overloads:[[&amp;amp;quot;p5.Camera&amp;amp;quot;]]},slerp:{overloads:[[&amp;amp;quot;p5.Camera&amp;amp;quot;,&amp;amp;quot;p5.Camera&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]}},&amp;amp;quot;p5.Framebuffer&amp;amp;quot;:{resize:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]},pixelDensity:{overloads:[[&amp;amp;quot;Number?&amp;amp;quot;]]},autoSized:{overloads:[[&amp;amp;quot;Boolean?&amp;amp;quot;]]},createCamera:{overloads:[[]]},remove:{overloads:[[]]},begin:{overloads:[[]]},end:{overloads:[[]]},draw:{overloads:[[&amp;amp;quot;Function&amp;amp;quot;]]},get:{overloads:[[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;],[],[&amp;amp;quot;Number&amp;amp;quot;,&amp;amp;quot;Number&amp;amp;quot;]]}},&amp;amp;quot;p5.Shader&amp;amp;quot;:{version:{overloads:[[]]},inspectHooks:{overloads:[[]]},modify:{overloads:[[&amp;amp;quot;Object?&amp;amp;quot;]]},copyToContext:{overloads:[[&amp;amp;quot;p5|p5.Graphics&amp;amp;quot;]]},setUniform:{overloads:[[&amp;amp;quot;String&amp;amp;quot;,&amp;amp;quot;Boolean|Number|Number[]|p5.Image|p5.Graphics|p5.MediaElement|p5.Texture&amp;amp;quot;]]}}};function yf(i,t,r){let n=new Map,s=Object.keys(i).reduce((m,g)=&amp;amp;gt;(g.match(/^[A-Z]/)&amp;amp;amp;&amp;amp;amp;!g.match(/^[A-Z][A-Z0-9]*$/)&amp;amp;amp;&amp;amp;amp;i[g]instanceof Function&amp;amp;amp;&amp;amp;amp;(m[g]=i[g]),m),{});function a(){for(let m of Object.keys(i))typeof i[m]==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;m[0]!==m[0].toLowerCase()&amp;amp;amp;&amp;amp;amp;(s[m]=i[m])}let o={};for(let[m,g]of Object.entries(gr))o[m]=g;let u={Any:wl(),Array:ff(wl()),Boolean:L0(),Function:mf(),Integer:cf().int(),Number:cf(),Object:R0({}),String:M0()},h=[&amp;amp;quot;AudioNode&amp;amp;quot;,&amp;amp;quot;HTMLCanvasElement&amp;amp;quot;,&amp;amp;quot;HTMLElement&amp;amp;quot;,&amp;amp;quot;KeyboardEvent&amp;amp;quot;,&amp;amp;quot;MouseEvent&amp;amp;quot;,&amp;amp;quot;RegExp&amp;amp;quot;,&amp;amp;quot;TouchEvent&amp;amp;quot;,&amp;amp;quot;UIEvent&amp;amp;quot;,&amp;amp;quot;WheelEvent&amp;amp;quot;];function l(m){return m.reduce((g,v)=&amp;amp;gt;(g[v]=lf(w=&amp;amp;gt;w instanceof globalThis[v],{message:`Expected a ${v}`}),g),{})}let c=l(h);Object.assign(u,c);let p=[&amp;amp;quot;first&amp;amp;quot;,&amp;amp;quot;second&amp;amp;quot;,&amp;amp;quot;third&amp;amp;quot;,&amp;amp;quot;fourth&amp;amp;quot;,&amp;amp;quot;fifth&amp;amp;quot;,&amp;amp;quot;sixth&amp;amp;quot;,&amp;amp;quot;seventh&amp;amp;quot;,&amp;amp;quot;eighth&amp;amp;quot;,&amp;amp;quot;ninth&amp;amp;quot;,&amp;amp;quot;tenth&amp;amp;quot;];function f(m){let g=m.lastIndexOf(&amp;amp;quot;.&amp;amp;quot;),v=m.slice(g+1),w=m.slice(0,g!==-1?g:0)||&amp;amp;quot;p5&amp;amp;quot;;return{funcName:v,funcClass:w}}function d(m){let g=0;for(let v=0;v&amp;amp;lt;m.length;v++)if(m[v]===&amp;amp;quot;[&amp;amp;quot;)g++;else if(m[v]===&amp;amp;quot;]&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(g--,g&amp;amp;lt;0))return!1;return g===0}t.generateZodSchemasForFunc=function(m){let{funcName:g,funcClass:v}=f(m),w=Y_[v][g];if(!w)return;let y=[];w.hasOwnProperty(&amp;amp;quot;overloads&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(y=w.overloads);let S=E=&amp;amp;gt;{if(!E)return wl();let A;if(E in o)A=gf(o[E]);else if(E.match(/^[A-Z][A-Z0-9]*$/)&amp;amp;amp;&amp;amp;amp;E in t)A=gf(t[E]);else if(E.startsWith(&amp;amp;quot;function&amp;amp;quot;))A=mf();else if(/^p5\.[a-zA-Z0-9]+$/.exec(E)||E===&amp;amp;quot;p5&amp;amp;quot;){let C=E.substring(E.indexOf(&amp;amp;quot;.&amp;amp;quot;)+1);A=hf(s[C])}else if(u[E])A=u[E];else if(E.startsWith(&amp;amp;quot;[&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;E.endsWith(&amp;amp;quot;]&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;d(E.slice(1,-1)))A=df(E.slice(1,-1).split(/, */g).map(C=&amp;amp;gt;S(C)));else if(E.match(/^[A-Z]/)&amp;amp;amp;&amp;amp;amp;E in window)A=hf(window[E]);else if(E.includes(&amp;amp;quot;|&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;E.split(&amp;amp;quot;|&amp;amp;quot;).every(C=&amp;amp;gt;d(C))){let C=E.split(&amp;amp;quot;|&amp;amp;quot;);A=pf(C.map(T=&amp;amp;gt;S(T)).filter(T=&amp;amp;gt;T!==void 0))}else if(E.endsWith(&amp;amp;quot;[]&amp;amp;quot;))A=ff(S(E.slice(0,-2)));else throw new Error(`Unsupported type &amp;amp;#39;${E}&amp;amp;#39; in parameter validation. Please report this issue.`);return A},_=E=&amp;amp;gt;{let A=E?.endsWith(&amp;amp;quot;?&amp;amp;quot;);E=E?.replace(/\?$/,&amp;amp;quot;&amp;amp;quot;);let C=E?.startsWith(&amp;amp;quot;...&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;E?.endsWith(&amp;amp;quot;[]&amp;amp;quot;);E=E?.replace(/^\.\.\.(.+)\[\]$/,&amp;amp;quot;$1&amp;amp;quot;);let T=S(E);return A&amp;amp;amp;&amp;amp;amp;(T=T.optional()),{schema:T,rest:C}},b=E=&amp;amp;gt;{if(!E.some(T=&amp;amp;gt;T?.endsWith(&amp;amp;quot;?&amp;amp;quot;)))return[E];let A=E.filter(T=&amp;amp;gt;T===null||!T.endsWith(&amp;amp;quot;?&amp;amp;quot;)).length,C=[];for(let T=A;T&amp;amp;lt;=E.length;T++)C.push(E.slice(0,T));return C},I=y.flatMap(E=&amp;amp;gt;b(E).map(C=&amp;amp;gt;{let T=C.map(N=&amp;amp;gt;_(N)).filter(N=&amp;amp;gt;N.schema!==void 0),D;T.at(-1)?.rest&amp;amp;amp;&amp;amp;amp;(D=T.pop());let F=df(T.map(N=&amp;amp;gt;N.schema));return D&amp;amp;amp;&amp;amp;amp;(F=F.rest(D.schema)),F}));return I.length===1?I[0]:pf(I)},t.findClosestSchema=function(m,g){if(!(m instanceof Ji))return m;let v=_=&amp;amp;gt;{let b=1/0;if(!(_ instanceof $r))return console.warn(&amp;amp;quot;Schema below is not a tuple: &amp;amp;quot;),printZodSchema(_),b;let I=g.length,E=_.items,A=E.length,C=E.filter(T=&amp;amp;gt;!T.isOptional()).length;I&amp;amp;gt;=C&amp;amp;amp;&amp;amp;amp;I&amp;amp;lt;=A?b=0:b=Math.abs(I&amp;amp;lt;C?C-I:I-A)*4;for(let T=0;T&amp;amp;lt;Math.min(E.length,g.length);T++){let D=E[T],F=g[T];D.safeParse(F).success||b++}return b},w=m._def.options[0],y=1/0;return m._def.options.forEach(_=&amp;amp;gt;{let b=v(_);b&amp;amp;lt;y&amp;amp;amp;&amp;amp;amp;(w=_,y=b)}),w},t.friendlyParamError=function(m,g,v){let w=&amp;amp;quot;\u{1F338} p5.js says: &amp;amp;quot;,y=!1,S=m.errors[0],_=(E,A,C)=&amp;amp;gt;{let T=C?`at the ${p[C]} parameter`:&amp;amp;quot;&amp;amp;quot;,D=E?`, but received ${E}`:&amp;amp;quot;&amp;amp;quot;;return`Expected ${A} ${T}${D}`},b=E=&amp;amp;gt;{let A=new Set,C;if(E.unionErrors.forEach(T=&amp;amp;gt;{let D=T.issues[0];if(D){if(C||(C=D.received),D.code===&amp;amp;quot;invalid_type&amp;amp;quot;)A.add(D.expected);else if(D.code===&amp;amp;quot;invalid_literal&amp;amp;quot;)A.add(&amp;amp;quot;constant (please refer to documentation for allowed values)&amp;amp;quot;);else if(D.code===&amp;amp;quot;custom&amp;amp;quot;){let F=D.message.match(/Input not instance of (\w+)/);F&amp;amp;amp;&amp;amp;amp;A.add(F[1])}}}),A.size&amp;amp;gt;0){E.path?.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;v[E.path[0]]instanceof Promise&amp;amp;amp;&amp;amp;amp;(w+=&amp;amp;quot;Did you mean to put `await` before a loading function? An unexpected Promise was found. &amp;amp;quot;,y=!0);let T=Array.from(A).join(&amp;amp;quot; or &amp;amp;quot;),D=E.path.join(&amp;amp;quot;.&amp;amp;quot;);w+=_(C,T,D)}return w};switch(S.code){case&amp;amp;quot;invalid_union&amp;amp;quot;:{b(S);break}case&amp;amp;quot;too_small&amp;amp;quot;:{let E=S.minimum;w+=`Expected at least ${E} argument${E&amp;amp;gt;1?&amp;amp;quot;s&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;}, but received fewer`;break}case&amp;amp;quot;invalid_type&amp;amp;quot;:{w+=_(S.received,S.expected,S.path.join(&amp;amp;quot;.&amp;amp;quot;));break}case&amp;amp;quot;too_big&amp;amp;quot;:{let E=S.maximum;w+=`Expected at most ${E} argument${E&amp;amp;gt;1?&amp;amp;quot;s&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;}, but received more`;break}default:console.log(&amp;amp;quot;Zod error object&amp;amp;quot;,S)}w+=` in ${g}().`;let I=E=&amp;amp;gt;{let{funcName:A,funcClass:C}=f(E);return`https://p5js.org/reference/${C}/${A}`};if(S.code===&amp;amp;quot;too_big&amp;amp;quot;||S.code===&amp;amp;quot;too_small&amp;amp;quot;){let E=I(g);w+=` For more information, see ${E}.`}return y?i._error(this,w):console.log(w),w},t.validate=function(m,g){if(i.disableFriendlyErrors)return;if(Array.isArray(g)||(g=Array.from(g)),Array.isArray(g)&amp;amp;amp;&amp;amp;amp;g.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;g.every(w=&amp;amp;gt;w===void 0))return{success:!1,error:`\u{1F338} p5.js says: All arguments for ${m}() are undefined. There is likely an error in the code.`};let v=n.get(m);if(!v){if(v=t.generateZodSchemasForFunc(m),!v)return;n.set(m,v)}try{return{success:!0,data:v.parse(g)}}catch{let S=t.findClosestSchema(v,g).safeParse(g).error;return{success:!1,error:t.friendlyParamError(S,m,g)}}},r.presetup=function(){a();let m=[&amp;amp;quot;validate&amp;amp;quot;];for(let g in this)if(!m.includes(g)&amp;amp;amp;&amp;amp;amp;!g.startsWith(&amp;amp;quot;_&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;typeof this[g]==&amp;amp;quot;function&amp;amp;quot;){let v=this[g];this[g]=function(...w){return this.validate(g,w),v.call(this,...w)}}}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;yf(p5,p5.prototype);var X_=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239],G0=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],K_=&amp;amp;quot;\u200C\u200D\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65&amp;amp;quot;,z0=&amp;amp;quot;\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC&amp;amp;quot;,vf={3:&amp;amp;quot;abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile&amp;amp;quot;,5:&amp;amp;quot;class enum extends super const export import&amp;amp;quot;,6:&amp;amp;quot;enum&amp;amp;quot;,strict:&amp;amp;quot;implements interface let package private protected public static yield&amp;amp;quot;,strictBind:&amp;amp;quot;eval arguments&amp;amp;quot;},xf=&amp;amp;quot;break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this&amp;amp;quot;,J_={5:xf,&amp;amp;quot;5module&amp;amp;quot;:xf+&amp;amp;quot; export import&amp;amp;quot;,6:xf+&amp;amp;quot; const class extends export import super&amp;amp;quot;},Q_=/^in(stanceof)?$/,e2=new RegExp(&amp;amp;quot;[&amp;amp;quot;+z0+&amp;amp;quot;]&amp;amp;quot;),t2=new RegExp(&amp;amp;quot;[&amp;amp;quot;+z0+K_+&amp;amp;quot;]&amp;amp;quot;);function _f(i,t){for(var r=65536,n=0;n&amp;amp;lt;t.length;n+=2){if(r+=t[n],r&amp;amp;gt;i)return!1;if(r+=t[n+1],r&amp;amp;gt;=i)return!0}return!1}function ni(i,t){return i&amp;amp;lt;65?i===36:i&amp;amp;lt;91?!0:i&amp;amp;lt;97?i===95:i&amp;amp;lt;123?!0:i&amp;amp;lt;=65535?i&amp;amp;gt;=170&amp;amp;amp;&amp;amp;amp;e2.test(String.fromCharCode(i)):t===!1?!1:_f(i,G0)}function en(i,t){return i&amp;amp;lt;48?i===36:i&amp;amp;lt;58?!0:i&amp;amp;lt;65?!1:i&amp;amp;lt;91?!0:i&amp;amp;lt;97?i===95:i&amp;amp;lt;123?!0:i&amp;amp;lt;=65535?i&amp;amp;gt;=170&amp;amp;amp;&amp;amp;amp;t2.test(String.fromCharCode(i)):t===!1?!1:_f(i,G0)||_f(i,X_)}var Ke=function(t,r){r===void 0&amp;amp;amp;&amp;amp;amp;(r={}),this.label=t,this.keyword=r.keyword,this.beforeExpr=!!r.beforeExpr,this.startsExpr=!!r.startsExpr,this.isLoop=!!r.isLoop,this.isAssign=!!r.isAssign,this.prefix=!!r.prefix,this.postfix=!!r.postfix,this.binop=r.binop||null,this.updateContext=null};function Sr(i,t){return new Ke(i,{beforeExpr:!0,binop:t})}var Ar={beforeExpr:!0},Jt={startsExpr:!0},Sf={};function Ze(i,t){return t===void 0&amp;amp;amp;&amp;amp;amp;(t={}),t.keyword=i,Sf[i]=new Ke(i,t)}var R={num:new Ke(&amp;amp;quot;num&amp;amp;quot;,Jt),regexp:new Ke(&amp;amp;quot;regexp&amp;amp;quot;,Jt),string:new Ke(&amp;amp;quot;string&amp;amp;quot;,Jt),name:new Ke(&amp;amp;quot;name&amp;amp;quot;,Jt),privateId:new Ke(&amp;amp;quot;privateId&amp;amp;quot;,Jt),eof:new Ke(&amp;amp;quot;eof&amp;amp;quot;),bracketL:new Ke(&amp;amp;quot;[&amp;amp;quot;,{beforeExpr:!0,startsExpr:!0}),bracketR:new Ke(&amp;amp;quot;]&amp;amp;quot;),braceL:new Ke(&amp;amp;quot;{&amp;amp;quot;,{beforeExpr:!0,startsExpr:!0}),braceR:new Ke(&amp;amp;quot;}&amp;amp;quot;),parenL:new Ke(&amp;amp;quot;(&amp;amp;quot;,{beforeExpr:!0,startsExpr:!0}),parenR:new Ke(&amp;amp;quot;)&amp;amp;quot;),comma:new Ke(&amp;amp;quot;,&amp;amp;quot;,Ar),semi:new Ke(&amp;amp;quot;;&amp;amp;quot;,Ar),colon:new Ke(&amp;amp;quot;:&amp;amp;quot;,Ar),dot:new Ke(&amp;amp;quot;.&amp;amp;quot;),question:new Ke(&amp;amp;quot;?&amp;amp;quot;,Ar),questionDot:new Ke(&amp;amp;quot;?.&amp;amp;quot;),arrow:new Ke(&amp;amp;quot;=&amp;amp;gt;&amp;amp;quot;,Ar),template:new Ke(&amp;amp;quot;template&amp;amp;quot;),invalidTemplate:new Ke(&amp;amp;quot;invalidTemplate&amp;amp;quot;),ellipsis:new Ke(&amp;amp;quot;...&amp;amp;quot;,Ar),backQuote:new Ke(&amp;amp;quot;`&amp;amp;quot;,Jt),dollarBraceL:new Ke(&amp;amp;quot;${&amp;amp;quot;,{beforeExpr:!0,startsExpr:!0}),eq:new Ke(&amp;amp;quot;=&amp;amp;quot;,{beforeExpr:!0,isAssign:!0}),assign:new Ke(&amp;amp;quot;_=&amp;amp;quot;,{beforeExpr:!0,isAssign:!0}),incDec:new Ke(&amp;amp;quot;++/--&amp;amp;quot;,{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new Ke(&amp;amp;quot;!/~&amp;amp;quot;,{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:Sr(&amp;amp;quot;||&amp;amp;quot;,1),logicalAND:Sr(&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;,2),bitwiseOR:Sr(&amp;amp;quot;|&amp;amp;quot;,3),bitwiseXOR:Sr(&amp;amp;quot;^&amp;amp;quot;,4),bitwiseAND:Sr(&amp;amp;quot;&amp;amp;amp;&amp;amp;quot;,5),equality:Sr(&amp;amp;quot;==/!=/===/!==&amp;amp;quot;,6),relational:Sr(&amp;amp;quot;&amp;amp;lt;/&amp;amp;gt;/&amp;amp;lt;=/&amp;amp;gt;=&amp;amp;quot;,7),bitShift:Sr(&amp;amp;quot;&amp;amp;lt;&amp;amp;lt;/&amp;amp;gt;&amp;amp;gt;/&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;&amp;amp;quot;,8),plusMin:new Ke(&amp;amp;quot;+/-&amp;amp;quot;,{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:Sr(&amp;amp;quot;%&amp;amp;quot;,10),star:Sr(&amp;amp;quot;*&amp;amp;quot;,10),slash:Sr(&amp;amp;quot;/&amp;amp;quot;,10),starstar:new Ke(&amp;amp;quot;**&amp;amp;quot;,{beforeExpr:!0}),coalesce:Sr(&amp;amp;quot;??&amp;amp;quot;,1),_break:Ze(&amp;amp;quot;break&amp;amp;quot;),_case:Ze(&amp;amp;quot;case&amp;amp;quot;,Ar),_catch:Ze(&amp;amp;quot;catch&amp;amp;quot;),_continue:Ze(&amp;amp;quot;continue&amp;amp;quot;),_debugger:Ze(&amp;amp;quot;debugger&amp;amp;quot;),_default:Ze(&amp;amp;quot;default&amp;amp;quot;,Ar),_do:Ze(&amp;amp;quot;do&amp;amp;quot;,{isLoop:!0,beforeExpr:!0}),_else:Ze(&amp;amp;quot;else&amp;amp;quot;,Ar),_finally:Ze(&amp;amp;quot;finally&amp;amp;quot;),_for:Ze(&amp;amp;quot;for&amp;amp;quot;,{isLoop:!0}),_function:Ze(&amp;amp;quot;function&amp;amp;quot;,Jt),_if:Ze(&amp;amp;quot;if&amp;amp;quot;),_return:Ze(&amp;amp;quot;return&amp;amp;quot;,Ar),_switch:Ze(&amp;amp;quot;switch&amp;amp;quot;),_throw:Ze(&amp;amp;quot;throw&amp;amp;quot;,Ar),_try:Ze(&amp;amp;quot;try&amp;amp;quot;),_var:Ze(&amp;amp;quot;var&amp;amp;quot;),_const:Ze(&amp;amp;quot;const&amp;amp;quot;),_while:Ze(&amp;amp;quot;while&amp;amp;quot;,{isLoop:!0}),_with:Ze(&amp;amp;quot;with&amp;amp;quot;),_new:Ze(&amp;amp;quot;new&amp;amp;quot;,{beforeExpr:!0,startsExpr:!0}),_this:Ze(&amp;amp;quot;this&amp;amp;quot;,Jt),_super:Ze(&amp;amp;quot;super&amp;amp;quot;,Jt),_class:Ze(&amp;amp;quot;class&amp;amp;quot;,Jt),_extends:Ze(&amp;amp;quot;extends&amp;amp;quot;,Ar),_export:Ze(&amp;amp;quot;export&amp;amp;quot;),_import:Ze(&amp;amp;quot;import&amp;amp;quot;,Jt),_null:Ze(&amp;amp;quot;null&amp;amp;quot;,Jt),_true:Ze(&amp;amp;quot;true&amp;amp;quot;,Jt),_false:Ze(&amp;amp;quot;false&amp;amp;quot;,Jt),_in:Ze(&amp;amp;quot;in&amp;amp;quot;,{beforeExpr:!0,binop:7}),_instanceof:Ze(&amp;amp;quot;instanceof&amp;amp;quot;,{beforeExpr:!0,binop:7}),_typeof:Ze(&amp;amp;quot;typeof&amp;amp;quot;,{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:Ze(&amp;amp;quot;void&amp;amp;quot;,{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:Ze(&amp;amp;quot;delete&amp;amp;quot;,{beforeExpr:!0,prefix:!0,startsExpr:!0})},Qt=/\r\n?|\n|\u2028|\u2029/,r2=new RegExp(Qt.source,&amp;amp;quot;g&amp;amp;quot;);function Ws(i){return i===10||i===13||i===8232||i===8233}function j0(i,t,r){r===void 0&amp;amp;amp;&amp;amp;amp;(r=i.length);for(var n=t;n&amp;amp;lt;r;n++){var s=i.charCodeAt(n);if(Ws(s))return n&amp;amp;lt;r-1&amp;amp;amp;&amp;amp;amp;s===13&amp;amp;amp;&amp;amp;amp;i.charCodeAt(n+1)===10?n+2:n+1}return-1}var $0=/[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/,Vt=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,H0=Object.prototype,i2=H0.hasOwnProperty,n2=H0.toString,qs=Object.hasOwn||function(i,t){return i2.call(i,t)},B0=Array.isArray||function(i){return n2.call(i)===&amp;amp;quot;[object Array]&amp;amp;quot;},P0=Object.create(null);function Qi(i){return P0[i]||(P0[i]=new RegExp(&amp;amp;quot;^(?:&amp;amp;quot;+i.replace(/ /g,&amp;amp;quot;|&amp;amp;quot;)+&amp;amp;quot;)$&amp;amp;quot;))}function Di(i){return i&amp;amp;lt;=65535?String.fromCharCode(i):(i-=65536,String.fromCharCode((i&amp;amp;gt;&amp;amp;gt;10)+55296,(i&amp;amp;amp;1023)+56320))}var s2=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,wo=function(t,r){this.line=t,this.column=r};wo.prototype.offset=function(t){return new wo(this.line,this.column+t)};var Fl=function(t,r,n){this.start=r,this.end=n,t.sourceFile!==null&amp;amp;amp;&amp;amp;amp;(this.source=t.sourceFile)};function W0(i,t){for(var r=1,n=0;;){var s=j0(i,n,t);if(s&amp;amp;lt;0)return new wo(r,t-n);++r,n=s}}var wf={ecmaVersion:null,sourceType:&amp;amp;quot;script&amp;amp;quot;,onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},O0=!1;function a2(i){var t={};for(var r in wf)t[r]=i&amp;amp;amp;&amp;amp;amp;qs(i,r)?i[r]:wf[r];if(t.ecmaVersion===&amp;amp;quot;latest&amp;amp;quot;?t.ecmaVersion=1e8:t.ecmaVersion==null?(!O0&amp;amp;amp;&amp;amp;amp;typeof console==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;console.warn&amp;amp;amp;&amp;amp;amp;(O0=!0,console.warn(`Since Acorn 8.0.0, options.ecmaVersion is required.
   7433 <a href="#l7414" class="line" id="l7414">   7414</a> &lt;a href=&quot;#l7395&quot; class=&quot;line&quot; id=&quot;l7395&quot;&gt;   7395&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2295&amp;quot; id=&amp;quot;h4-0-2295&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Defaulting to 2020, but this will stop working in the future.`)),t.ecmaVersion=11):t.ecmaVersion&amp;amp;gt;=2015&amp;amp;amp;&amp;amp;amp;(t.ecmaVersion-=2009),t.allowReserved==null&amp;amp;amp;&amp;amp;amp;(t.allowReserved=t.ecmaVersion&amp;amp;lt;5),(!i||i.allowHashBang==null)&amp;amp;amp;&amp;amp;amp;(t.allowHashBang=t.ecmaVersion&amp;amp;gt;=14),B0(t.onToken)){var n=t.onToken;t.onToken=function(s){return n.push(s)}}return B0(t.onComment)&amp;amp;amp;&amp;amp;amp;(t.onComment=o2(t,t.onComment)),t}function o2(i,t){return function(r,n,s,a,o,u){var h={type:r?&amp;amp;quot;Block&amp;amp;quot;:&amp;amp;quot;Line&amp;amp;quot;,value:n,start:s,end:a};i.locations&amp;amp;amp;&amp;amp;amp;(h.loc=new Fl(this,o,u)),i.ranges&amp;amp;amp;&amp;amp;amp;(h.range=[s,a]),t.push(h)}}var Co=1,Zs=2,Af=4,q0=8,Df=16,Z0=32,Tl=64,Y0=128,Vn=256,Eo=512,Nl=Co|Zs|Vn;function Ff(i,t){return Zs|(i?Af:0)|(t?q0:0)}var El=0,Tf=1,Ti=2,X0=3,K0=4,J0=5,Dt=function(t,r,n){this.options=t=a2(t),this.sourceFile=t.sourceFile,this.keywords=Qi(J_[t.ecmaVersion&amp;amp;gt;=6?6:t.sourceType===&amp;amp;quot;module&amp;amp;quot;?&amp;amp;quot;5module&amp;amp;quot;:5]);var s=&amp;amp;quot;&amp;amp;quot;;t.allowReserved!==!0&amp;amp;amp;&amp;amp;amp;(s=vf[t.ecmaVersion&amp;amp;gt;=6?6:t.ecmaVersion===5?5:3],t.sourceType===&amp;amp;quot;module&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s+=&amp;amp;quot; await&amp;amp;quot;)),this.reservedWords=Qi(s);var a=(s?s+&amp;amp;quot; &amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;)+vf.strict;this.reservedWordsStrict=Qi(a),this.reservedWordsStrictBind=Qi(a+&amp;amp;quot; &amp;amp;quot;+vf.strictBind),this.input=String(r),this.containsEsc=!1,n?(this.pos=n,this.lineStart=this.input.lastIndexOf(`
   7434 <a href="#l7415" class="line" id="l7415">   7415</a> &lt;a href=&quot;#l7396&quot; class=&quot;line&quot; id=&quot;l7396&quot;&gt;   7396&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2296&amp;quot; id=&amp;quot;h4-0-2296&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`,n-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(Qt).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=R.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule=t.sourceType===&amp;amp;quot;module&amp;amp;quot;,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),this.pos===0&amp;amp;amp;&amp;amp;amp;t.allowHashBang&amp;amp;amp;&amp;amp;amp;this.input.slice(0,2)===&amp;amp;quot;#!&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.skipLineComment(2),this.scopeStack=[],this.enterScope(Co),this.regexpState=null,this.privateNameStack=[]},si={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};Dt.prototype.parse=function(){var t=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(t)};si.inFunction.get=function(){return(this.currentVarScope().flags&amp;amp;amp;Zs)&amp;amp;gt;0};si.inGenerator.get=function(){return(this.currentVarScope().flags&amp;amp;amp;q0)&amp;amp;gt;0};si.inAsync.get=function(){return(this.currentVarScope().flags&amp;amp;amp;Af)&amp;amp;gt;0};si.canAwait.get=function(){for(var i=this.scopeStack.length-1;i&amp;amp;gt;=0;i--){var t=this.scopeStack[i],r=t.flags;if(r&amp;amp;amp;(Vn|Eo))return!1;if(r&amp;amp;amp;Zs)return(r&amp;amp;amp;Af)&amp;amp;gt;0}return this.inModule&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=13||this.options.allowAwaitOutsideFunction};si.allowSuper.get=function(){var i=this.currentThisScope(),t=i.flags;return(t&amp;amp;amp;Tl)&amp;amp;gt;0||this.options.allowSuperOutsideMethod};si.allowDirectSuper.get=function(){return(this.currentThisScope().flags&amp;amp;amp;Y0)&amp;amp;gt;0};si.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())};si.allowNewDotTarget.get=function(){for(var i=this.scopeStack.length-1;i&amp;amp;gt;=0;i--){var t=this.scopeStack[i],r=t.flags;if(r&amp;amp;amp;(Vn|Eo)||r&amp;amp;amp;Zs&amp;amp;amp;&amp;amp;amp;!(r&amp;amp;amp;Df))return!0}return!1};si.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&amp;amp;amp;Vn)&amp;amp;gt;0};Dt.extend=function(){for(var t=[],r=arguments.length;r--;)t[r]=arguments[r];for(var n=this,s=0;s&amp;amp;lt;t.length;s++)n=t[s](n);return n};Dt.parse=function(t,r){return new this(r,t).parse()};Dt.parseExpressionAt=function(t,r,n){var s=new this(n,t,r);return s.nextToken(),s.parseExpression()};Dt.tokenizer=function(t,r){return new this(r,t)};Object.defineProperties(Dt.prototype,si);var Wt=Dt.prototype,u2=/^(?:&amp;amp;#39;((?:\\[^]|[^&amp;amp;#39;\\])*?)&amp;amp;#39;|&amp;amp;quot;((?:\\[^]|[^&amp;amp;quot;\\])*?)&amp;amp;quot;)/;Wt.strictDirective=function(i){if(this.options.ecmaVersion&amp;amp;lt;5)return!1;for(;;){Vt.lastIndex=i,i+=Vt.exec(this.input)[0].length;var t=u2.exec(this.input.slice(i));if(!t)return!1;if((t[1]||t[2])===&amp;amp;quot;use strict&amp;amp;quot;){Vt.lastIndex=i+t[0].length;var r=Vt.exec(this.input),n=r.index+r[0].length,s=this.input.charAt(n);return s===&amp;amp;quot;;&amp;amp;quot;||s===&amp;amp;quot;}&amp;amp;quot;||Qt.test(r[0])&amp;amp;amp;&amp;amp;amp;!(/[(`.[+\-/*%&amp;amp;lt;&amp;amp;gt;=,?^&amp;amp;amp;]/.test(s)||s===&amp;amp;quot;!&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.input.charAt(n+1)===&amp;amp;quot;=&amp;amp;quot;)}i+=t[0].length,Vt.lastIndex=i,i+=Vt.exec(this.input)[0].length,this.input[i]===&amp;amp;quot;;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i++}};Wt.eat=function(i){return this.type===i?(this.next(),!0):!1};Wt.isContextual=function(i){return this.type===R.name&amp;amp;amp;&amp;amp;amp;this.value===i&amp;amp;amp;&amp;amp;amp;!this.containsEsc};Wt.eatContextual=function(i){return this.isContextual(i)?(this.next(),!0):!1};Wt.expectContextual=function(i){this.eatContextual(i)||this.unexpected()};Wt.canInsertSemicolon=function(){return this.type===R.eof||this.type===R.braceR||Qt.test(this.input.slice(this.lastTokEnd,this.start))};Wt.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&amp;amp;amp;&amp;amp;amp;this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0};Wt.semicolon=function(){!this.eat(R.semi)&amp;amp;amp;&amp;amp;amp;!this.insertSemicolon()&amp;amp;amp;&amp;amp;amp;this.unexpected()};Wt.afterTrailingComma=function(i,t){if(this.type===i)return this.options.onTrailingComma&amp;amp;amp;&amp;amp;amp;this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0};Wt.expect=function(i){this.eat(i)||this.unexpected()};Wt.unexpected=function(i){this.raise(i??this.start,&amp;amp;quot;Unexpected token&amp;amp;quot;)};var Il=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};Wt.checkPatternErrors=function(i,t){if(i){i.trailingComma&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.trailingComma,&amp;amp;quot;Comma is not permitted after the rest element&amp;amp;quot;);var r=t?i.parenthesizedAssign:i.parenthesizedBind;r&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(r,t?&amp;amp;quot;Assigning to rvalue&amp;amp;quot;:&amp;amp;quot;Parenthesized pattern&amp;amp;quot;)}};Wt.checkExpressionErrors=function(i,t){if(!i)return!1;var r=i.shorthandAssign,n=i.doubleProto;if(!t)return r&amp;amp;gt;=0||n&amp;amp;gt;=0;r&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;this.raise(r,&amp;amp;quot;Shorthand property assignments are valid only in destructuring patterns&amp;amp;quot;),n&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(n,&amp;amp;quot;Redefinition of __proto__ property&amp;amp;quot;)};Wt.checkYieldAwaitInDefaultParams=function(){this.yieldPos&amp;amp;amp;&amp;amp;amp;(!this.awaitPos||this.yieldPos&amp;amp;lt;this.awaitPos)&amp;amp;amp;&amp;amp;amp;this.raise(this.yieldPos,&amp;amp;quot;Yield expression cannot be a default value&amp;amp;quot;),this.awaitPos&amp;amp;amp;&amp;amp;amp;this.raise(this.awaitPos,&amp;amp;quot;Await expression cannot be a default value&amp;amp;quot;)};Wt.isSimpleAssignTarget=function(i){return i.type===&amp;amp;quot;ParenthesizedExpression&amp;amp;quot;?this.isSimpleAssignTarget(i.expression):i.type===&amp;amp;quot;Identifier&amp;amp;quot;||i.type===&amp;amp;quot;MemberExpression&amp;amp;quot;};var De=Dt.prototype;De.parseTopLevel=function(i){var t=Object.create(null);for(i.body||(i.body=[]);this.type!==R.eof;){var r=this.parseStatement(null,!0,t);i.body.push(r)}if(this.inModule)for(var n=0,s=Object.keys(this.undefinedExports);n&amp;amp;lt;s.length;n+=1){var a=s[n];this.raiseRecoverable(this.undefinedExports[a].start,&amp;amp;quot;Export &amp;amp;#39;&amp;amp;quot;+a+&amp;amp;quot;&amp;amp;#39; is not defined&amp;amp;quot;)}return this.adaptDirectivePrologue(i.body),this.next(),i.sourceType=this.options.sourceType,this.finishNode(i,&amp;amp;quot;Program&amp;amp;quot;)};var Nf={kind:&amp;amp;quot;loop&amp;amp;quot;},l2={kind:&amp;amp;quot;switch&amp;amp;quot;};De.isLet=function(i){if(this.options.ecmaVersion&amp;amp;lt;6||!this.isContextual(&amp;amp;quot;let&amp;amp;quot;))return!1;Vt.lastIndex=this.pos;var t=Vt.exec(this.input),r=this.pos+t[0].length,n=this.input.charCodeAt(r);if(n===91||n===92)return!0;if(i)return!1;if(n===123||n&amp;amp;gt;55295&amp;amp;amp;&amp;amp;amp;n&amp;amp;lt;56320)return!0;if(ni(n,!0)){for(var s=r+1;en(n=this.input.charCodeAt(s),!0);)++s;if(n===92||n&amp;amp;gt;55295&amp;amp;amp;&amp;amp;amp;n&amp;amp;lt;56320)return!0;var a=this.input.slice(r,s);if(!Q_.test(a))return!0}return!1};De.isAsyncFunction=function(){if(this.options.ecmaVersion&amp;amp;lt;8||!this.isContextual(&amp;amp;quot;async&amp;amp;quot;))return!1;Vt.lastIndex=this.pos;var i=Vt.exec(this.input),t=this.pos+i[0].length,r;return!Qt.test(this.input.slice(this.pos,t))&amp;amp;amp;&amp;amp;amp;this.input.slice(t,t+8)===&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t+8===this.input.length||!(en(r=this.input.charCodeAt(t+8))||r&amp;amp;gt;55295&amp;amp;amp;&amp;amp;amp;r&amp;amp;lt;56320))};De.isUsingKeyword=function(i,t){if(this.options.ecmaVersion&amp;amp;lt;17||!this.isContextual(i?&amp;amp;quot;await&amp;amp;quot;:&amp;amp;quot;using&amp;amp;quot;))return!1;Vt.lastIndex=this.pos;var r=Vt.exec(this.input),n=this.pos+r[0].length;if(Qt.test(this.input.slice(this.pos,n)))return!1;if(i){var s=n+5,a;if(this.input.slice(n,s)!==&amp;amp;quot;using&amp;amp;quot;||s===this.input.length||en(a=this.input.charCodeAt(s))||a&amp;amp;gt;55295&amp;amp;amp;&amp;amp;amp;a&amp;amp;lt;56320)return!1;Vt.lastIndex=s;var o=Vt.exec(this.input);if(o&amp;amp;amp;&amp;amp;amp;Qt.test(this.input.slice(s,s+o[0].length)))return!1}if(t){var u=n+2,h;if(this.input.slice(n,u)===&amp;amp;quot;of&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u===this.input.length||!en(h=this.input.charCodeAt(u))&amp;amp;amp;&amp;amp;amp;!(h&amp;amp;gt;55295&amp;amp;amp;&amp;amp;amp;h&amp;amp;lt;56320)))return!1}var l=this.input.charCodeAt(n);return ni(l,!0)||l===92};De.isAwaitUsing=function(i){return this.isUsingKeyword(!0,i)};De.isUsing=function(i){return this.isUsingKeyword(!1,i)};De.parseStatement=function(i,t,r){var n=this.type,s=this.startNode(),a;switch(this.isLet(i)&amp;amp;amp;&amp;amp;amp;(n=R._var,a=&amp;amp;quot;let&amp;amp;quot;),n){case R._break:case R._continue:return this.parseBreakContinueStatement(s,n.keyword);case R._debugger:return this.parseDebuggerStatement(s);case R._do:return this.parseDoStatement(s);case R._for:return this.parseForStatement(s);case R._function:return i&amp;amp;amp;&amp;amp;amp;(this.strict||i!==&amp;amp;quot;if&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i!==&amp;amp;quot;label&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.parseFunctionStatement(s,!1,!i);case R._class:return i&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.parseClass(s,!0);case R._if:return this.parseIfStatement(s);case R._return:return this.parseReturnStatement(s);case R._switch:return this.parseSwitchStatement(s);case R._throw:return this.parseThrowStatement(s);case R._try:return this.parseTryStatement(s);case R._const:case R._var:return a=a||this.value,i&amp;amp;amp;&amp;amp;amp;a!==&amp;amp;quot;var&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.parseVarStatement(s,a);case R._while:return this.parseWhileStatement(s);case R._with:return this.parseWithStatement(s);case R.braceL:return this.parseBlock(!0,s);case R.semi:return this.parseEmptyStatement(s);case R._export:case R._import:if(this.options.ecmaVersion&amp;amp;gt;10&amp;amp;amp;&amp;amp;amp;n===R._import){Vt.lastIndex=this.pos;var o=Vt.exec(this.input),u=this.pos+o[0].length,h=this.input.charCodeAt(u);if(h===40||h===46)return this.parseExpressionStatement(s,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,&amp;amp;quot;&amp;amp;#39;import&amp;amp;#39; and &amp;amp;#39;export&amp;amp;#39; may only appear at the top level&amp;amp;quot;),this.inModule||this.raise(this.start,&amp;amp;quot;&amp;amp;#39;import&amp;amp;#39; and &amp;amp;#39;export&amp;amp;#39; may appear only with &amp;amp;#39;sourceType: module&amp;amp;#39;&amp;amp;quot;)),n===R._import?this.parseImport(s):this.parseExport(s,r);default:if(this.isAsyncFunction())return i&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.next(),this.parseFunctionStatement(s,!0,!i);var l=this.isAwaitUsing(!1)?&amp;amp;quot;await using&amp;amp;quot;:this.isUsing(!1)?&amp;amp;quot;using&amp;amp;quot;:null;if(l)return t&amp;amp;amp;&amp;amp;amp;this.options.sourceType===&amp;amp;quot;script&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;Using declaration cannot appear in the top level when source type is `script`&amp;amp;quot;),l===&amp;amp;quot;await using&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.canAwait||this.raise(this.start,&amp;amp;quot;Await using cannot appear outside of async function&amp;amp;quot;),this.next()),this.next(),this.parseVar(s,!1,l),this.semicolon(),this.finishNode(s,&amp;amp;quot;VariableDeclaration&amp;amp;quot;);var c=this.value,p=this.parseExpression();return n===R.name&amp;amp;amp;&amp;amp;amp;p.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.eat(R.colon)?this.parseLabeledStatement(s,c,p,i):this.parseExpressionStatement(s,p)}};De.parseBreakContinueStatement=function(i,t){var r=t===&amp;amp;quot;break&amp;amp;quot;;this.next(),this.eat(R.semi)||this.insertSemicolon()?i.label=null:this.type!==R.name?this.unexpected():(i.label=this.parseIdent(),this.semicolon());for(var n=0;n&amp;amp;lt;this.labels.length;++n){var s=this.labels[n];if((i.label==null||s.name===i.label.name)&amp;amp;amp;&amp;amp;amp;(s.kind!=null&amp;amp;amp;&amp;amp;amp;(r||s.kind===&amp;amp;quot;loop&amp;amp;quot;)||i.label&amp;amp;amp;&amp;amp;amp;r))break}return n===this.labels.length&amp;amp;amp;&amp;amp;amp;this.raise(i.start,&amp;amp;quot;Unsyntactic &amp;amp;quot;+t),this.finishNode(i,r?&amp;amp;quot;BreakStatement&amp;amp;quot;:&amp;amp;quot;ContinueStatement&amp;amp;quot;)};De.parseDebuggerStatement=function(i){return this.next(),this.semicolon(),this.finishNode(i,&amp;amp;quot;DebuggerStatement&amp;amp;quot;)};De.parseDoStatement=function(i){return this.next(),this.labels.push(Nf),i.body=this.parseStatement(&amp;amp;quot;do&amp;amp;quot;),this.labels.pop(),this.expect(R._while),i.test=this.parseParenExpression(),this.options.ecmaVersion&amp;amp;gt;=6?this.eat(R.semi):this.semicolon(),this.finishNode(i,&amp;amp;quot;DoWhileStatement&amp;amp;quot;)};De.parseForStatement=function(i){this.next();var t=this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;this.canAwait&amp;amp;amp;&amp;amp;amp;this.eatContextual(&amp;amp;quot;await&amp;amp;quot;)?this.lastTokStart:-1;if(this.labels.push(Nf),this.enterScope(0),this.expect(R.parenL),this.type===R.semi)return t&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;this.unexpected(t),this.parseFor(i,null);var r=this.isLet();if(this.type===R._var||this.type===R._const||r){var n=this.startNode(),s=r?&amp;amp;quot;let&amp;amp;quot;:this.value;return this.next(),this.parseVar(n,!0,s),this.finishNode(n,&amp;amp;quot;VariableDeclaration&amp;amp;quot;),this.parseForAfterInit(i,n,t)}var a=this.isContextual(&amp;amp;quot;let&amp;amp;quot;),o=!1,u=this.isUsing(!0)?&amp;amp;quot;using&amp;amp;quot;:this.isAwaitUsing(!0)?&amp;amp;quot;await using&amp;amp;quot;:null;if(u){var h=this.startNode();return this.next(),u===&amp;amp;quot;await using&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.next(),this.parseVar(h,!0,u),this.finishNode(h,&amp;amp;quot;VariableDeclaration&amp;amp;quot;),this.parseForAfterInit(i,h,t)}var l=this.containsEsc,c=new Il,p=this.start,f=t&amp;amp;gt;-1?this.parseExprSubscripts(c,&amp;amp;quot;await&amp;amp;quot;):this.parseExpression(!0,c);return this.type===R._in||(o=this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;this.isContextual(&amp;amp;quot;of&amp;amp;quot;))?(t&amp;amp;gt;-1?(this.type===R._in&amp;amp;amp;&amp;amp;amp;this.unexpected(t),i.await=!0):o&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;(f.start===p&amp;amp;amp;&amp;amp;amp;!l&amp;amp;amp;&amp;amp;amp;f.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;f.name===&amp;amp;quot;async&amp;amp;quot;?this.unexpected():this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;(i.await=!1)),a&amp;amp;amp;&amp;amp;amp;o&amp;amp;amp;&amp;amp;amp;this.raise(f.start,&amp;amp;quot;The left-hand side of a for-of loop may not start with &amp;amp;#39;let&amp;amp;#39;.&amp;amp;quot;),this.toAssignable(f,!1,c),this.checkLValPattern(f),this.parseForIn(i,f)):(this.checkExpressionErrors(c,!0),t&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;this.unexpected(t),this.parseFor(i,f))};De.parseForAfterInit=function(i,t,r){return(this.type===R._in||this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;this.isContextual(&amp;amp;quot;of&amp;amp;quot;))&amp;amp;amp;&amp;amp;amp;t.declarations.length===1?(this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;(this.type===R._in?r&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;this.unexpected(r):i.await=r&amp;amp;gt;-1),this.parseForIn(i,t)):(r&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;this.unexpected(r),this.parseFor(i,t))};De.parseFunctionStatement=function(i,t,r){return this.next(),this.parseFunction(i,_o|(r?0:Cf),!1,t)};De.parseIfStatement=function(i){return this.next(),i.test=this.parseParenExpression(),i.consequent=this.parseStatement(&amp;amp;quot;if&amp;amp;quot;),i.alternate=this.eat(R._else)?this.parseStatement(&amp;amp;quot;if&amp;amp;quot;):null,this.finishNode(i,&amp;amp;quot;IfStatement&amp;amp;quot;)};De.parseReturnStatement=function(i){return!this.inFunction&amp;amp;amp;&amp;amp;amp;!this.options.allowReturnOutsideFunction&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;&amp;amp;#39;return&amp;amp;#39; outside of function&amp;amp;quot;),this.next(),this.eat(R.semi)||this.insertSemicolon()?i.argument=null:(i.argument=this.parseExpression(),this.semicolon()),this.finishNode(i,&amp;amp;quot;ReturnStatement&amp;amp;quot;)};De.parseSwitchStatement=function(i){this.next(),i.discriminant=this.parseParenExpression(),i.cases=[],this.expect(R.braceL),this.labels.push(l2),this.enterScope(0);for(var t,r=!1;this.type!==R.braceR;)if(this.type===R._case||this.type===R._default){var n=this.type===R._case;t&amp;amp;amp;&amp;amp;amp;this.finishNode(t,&amp;amp;quot;SwitchCase&amp;amp;quot;),i.cases.push(t=this.startNode()),t.consequent=[],this.next(),n?t.test=this.parseExpression():(r&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.lastTokStart,&amp;amp;quot;Multiple default clauses&amp;amp;quot;),r=!0,t.test=null),this.expect(R.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&amp;amp;amp;&amp;amp;amp;this.finishNode(t,&amp;amp;quot;SwitchCase&amp;amp;quot;),this.next(),this.labels.pop(),this.finishNode(i,&amp;amp;quot;SwitchStatement&amp;amp;quot;)};De.parseThrowStatement=function(i){return this.next(),Qt.test(this.input.slice(this.lastTokEnd,this.start))&amp;amp;amp;&amp;amp;amp;this.raise(this.lastTokEnd,&amp;amp;quot;Illegal newline after throw&amp;amp;quot;),i.argument=this.parseExpression(),this.semicolon(),this.finishNode(i,&amp;amp;quot;ThrowStatement&amp;amp;quot;)};var h2=[];De.parseCatchClauseParam=function(){var i=this.parseBindingAtom(),t=i.type===&amp;amp;quot;Identifier&amp;amp;quot;;return this.enterScope(t?Z0:0),this.checkLValPattern(i,t?K0:Ti),this.expect(R.parenR),i};De.parseTryStatement=function(i){if(this.next(),i.block=this.parseBlock(),i.handler=null,this.type===R._catch){var t=this.startNode();this.next(),this.eat(R.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion&amp;amp;lt;10&amp;amp;amp;&amp;amp;amp;this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),i.handler=this.finishNode(t,&amp;amp;quot;CatchClause&amp;amp;quot;)}return i.finalizer=this.eat(R._finally)?this.parseBlock():null,!i.handler&amp;amp;amp;&amp;amp;amp;!i.finalizer&amp;amp;amp;&amp;amp;amp;this.raise(i.start,&amp;amp;quot;Missing catch or finally clause&amp;amp;quot;),this.finishNode(i,&amp;amp;quot;TryStatement&amp;amp;quot;)};De.parseVarStatement=function(i,t,r){return this.next(),this.parseVar(i,!1,t,r),this.semicolon(),this.finishNode(i,&amp;amp;quot;VariableDeclaration&amp;amp;quot;)};De.parseWhileStatement=function(i){return this.next(),i.test=this.parseParenExpression(),this.labels.push(Nf),i.body=this.parseStatement(&amp;amp;quot;while&amp;amp;quot;),this.labels.pop(),this.finishNode(i,&amp;amp;quot;WhileStatement&amp;amp;quot;)};De.parseWithStatement=function(i){return this.strict&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;&amp;amp;#39;with&amp;amp;#39; in strict mode&amp;amp;quot;),this.next(),i.object=this.parseParenExpression(),i.body=this.parseStatement(&amp;amp;quot;with&amp;amp;quot;),this.finishNode(i,&amp;amp;quot;WithStatement&amp;amp;quot;)};De.parseEmptyStatement=function(i){return this.next(),this.finishNode(i,&amp;amp;quot;EmptyStatement&amp;amp;quot;)};De.parseLabeledStatement=function(i,t,r,n){for(var s=0,a=this.labels;s&amp;amp;lt;a.length;s+=1){var o=a[s];o.name===t&amp;amp;amp;&amp;amp;amp;this.raise(r.start,&amp;amp;quot;Label &amp;amp;#39;&amp;amp;quot;+t+&amp;amp;quot;&amp;amp;#39; is already declared&amp;amp;quot;)}for(var u=this.type.isLoop?&amp;amp;quot;loop&amp;amp;quot;:this.type===R._switch?&amp;amp;quot;switch&amp;amp;quot;:null,h=this.labels.length-1;h&amp;amp;gt;=0;h--){var l=this.labels[h];if(l.statementStart===i.start)l.statementStart=this.start,l.kind=u;else break}return this.labels.push({name:t,kind:u,statementStart:this.start}),i.body=this.parseStatement(n?n.indexOf(&amp;amp;quot;label&amp;amp;quot;)===-1?n+&amp;amp;quot;label&amp;amp;quot;:n:&amp;amp;quot;label&amp;amp;quot;),this.labels.pop(),i.label=r,this.finishNode(i,&amp;amp;quot;LabeledStatement&amp;amp;quot;)};De.parseExpressionStatement=function(i,t){return i.expression=t,this.semicolon(),this.finishNode(i,&amp;amp;quot;ExpressionStatement&amp;amp;quot;)};De.parseBlock=function(i,t,r){for(i===void 0&amp;amp;amp;&amp;amp;amp;(i=!0),t===void 0&amp;amp;amp;&amp;amp;amp;(t=this.startNode()),t.body=[],this.expect(R.braceL),i&amp;amp;amp;&amp;amp;amp;this.enterScope(0);this.type!==R.braceR;){var n=this.parseStatement(null);t.body.push(n)}return r&amp;amp;amp;&amp;amp;amp;(this.strict=!1),this.next(),i&amp;amp;amp;&amp;amp;amp;this.exitScope(),this.finishNode(t,&amp;amp;quot;BlockStatement&amp;amp;quot;)};De.parseFor=function(i,t){return i.init=t,this.expect(R.semi),i.test=this.type===R.semi?null:this.parseExpression(),this.expect(R.semi),i.update=this.type===R.parenR?null:this.parseExpression(),this.expect(R.parenR),i.body=this.parseStatement(&amp;amp;quot;for&amp;amp;quot;),this.exitScope(),this.labels.pop(),this.finishNode(i,&amp;amp;quot;ForStatement&amp;amp;quot;)};De.parseForIn=function(i,t){var r=this.type===R._in;return this.next(),t.type===&amp;amp;quot;VariableDeclaration&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.declarations[0].init!=null&amp;amp;amp;&amp;amp;amp;(!r||this.options.ecmaVersion&amp;amp;lt;8||this.strict||t.kind!==&amp;amp;quot;var&amp;amp;quot;||t.declarations[0].id.type!==&amp;amp;quot;Identifier&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.raise(t.start,(r?&amp;amp;quot;for-in&amp;amp;quot;:&amp;amp;quot;for-of&amp;amp;quot;)+&amp;amp;quot; loop variable declaration may not have an initializer&amp;amp;quot;),i.left=t,i.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(R.parenR),i.body=this.parseStatement(&amp;amp;quot;for&amp;amp;quot;),this.exitScope(),this.labels.pop(),this.finishNode(i,r?&amp;amp;quot;ForInStatement&amp;amp;quot;:&amp;amp;quot;ForOfStatement&amp;amp;quot;)};De.parseVar=function(i,t,r,n){for(i.declarations=[],i.kind=r;;){var s=this.startNode();if(this.parseVarId(s,r),this.eat(R.eq)?s.init=this.parseMaybeAssign(t):!n&amp;amp;amp;&amp;amp;amp;r===&amp;amp;quot;const&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!(this.type===R._in||this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;this.isContextual(&amp;amp;quot;of&amp;amp;quot;))?this.unexpected():!n&amp;amp;amp;&amp;amp;amp;(r===&amp;amp;quot;using&amp;amp;quot;||r===&amp;amp;quot;await using&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=17&amp;amp;amp;&amp;amp;amp;this.type!==R._in&amp;amp;amp;&amp;amp;amp;!this.isContextual(&amp;amp;quot;of&amp;amp;quot;)?this.raise(this.lastTokEnd,&amp;amp;quot;Missing initializer in &amp;amp;quot;+r+&amp;amp;quot; declaration&amp;amp;quot;):!n&amp;amp;amp;&amp;amp;amp;s.id.type!==&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!(t&amp;amp;amp;&amp;amp;amp;(this.type===R._in||this.isContextual(&amp;amp;quot;of&amp;amp;quot;)))?this.raise(this.lastTokEnd,&amp;amp;quot;Complex binding patterns require an initialization value&amp;amp;quot;):s.init=null,i.declarations.push(this.finishNode(s,&amp;amp;quot;VariableDeclarator&amp;amp;quot;)),!this.eat(R.comma))break}return i};De.parseVarId=function(i,t){i.id=t===&amp;amp;quot;using&amp;amp;quot;||t===&amp;amp;quot;await using&amp;amp;quot;?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(i.id,t===&amp;amp;quot;var&amp;amp;quot;?Tf:Ti,!1)};var _o=1,Cf=2,Q0=4;De.parseFunction=function(i,t,r,n,s){this.initFunction(i),(this.options.ecmaVersion&amp;amp;gt;=9||this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;!n)&amp;amp;amp;&amp;amp;amp;(this.type===R.star&amp;amp;amp;&amp;amp;amp;t&amp;amp;amp;Cf&amp;amp;amp;&amp;amp;amp;this.unexpected(),i.generator=this.eat(R.star)),this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;(i.async=!!n),t&amp;amp;amp;_o&amp;amp;amp;&amp;amp;amp;(i.id=t&amp;amp;amp;Q0&amp;amp;amp;&amp;amp;amp;this.type!==R.name?null:this.parseIdent(),i.id&amp;amp;amp;&amp;amp;amp;!(t&amp;amp;amp;Cf)&amp;amp;amp;&amp;amp;amp;this.checkLValSimple(i.id,this.strict||i.generator||i.async?this.treatFunctionsAsVar?Tf:Ti:X0));var a=this.yieldPos,o=this.awaitPos,u=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Ff(i.async,i.generator)),t&amp;amp;amp;_o||(i.id=this.type===R.name?this.parseIdent():null),this.parseFunctionParams(i),this.parseFunctionBody(i,r,!1,s),this.yieldPos=a,this.awaitPos=o,this.awaitIdentPos=u,this.finishNode(i,t&amp;amp;amp;_o?&amp;amp;quot;FunctionDeclaration&amp;amp;quot;:&amp;amp;quot;FunctionExpression&amp;amp;quot;)};De.parseFunctionParams=function(i){this.expect(R.parenL),i.params=this.parseBindingList(R.parenR,!1,this.options.ecmaVersion&amp;amp;gt;=8),this.checkYieldAwaitInDefaultParams()};De.parseClass=function(i,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(i,t),this.parseClassSuper(i);var n=this.enterClassBody(),s=this.startNode(),a=!1;for(s.body=[],this.expect(R.braceL);this.type!==R.braceR;){var o=this.parseClassElement(i.superClass!==null);o&amp;amp;amp;&amp;amp;amp;(s.body.push(o),o.type===&amp;amp;quot;MethodDefinition&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;o.kind===&amp;amp;quot;constructor&amp;amp;quot;?(a&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(o.start,&amp;amp;quot;Duplicate constructor in the same class&amp;amp;quot;),a=!0):o.key&amp;amp;amp;&amp;amp;amp;o.key.type===&amp;amp;quot;PrivateIdentifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;c2(n,o)&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(o.key.start,&amp;amp;quot;Identifier &amp;amp;#39;#&amp;amp;quot;+o.key.name+&amp;amp;quot;&amp;amp;#39; has already been declared&amp;amp;quot;))}return this.strict=r,this.next(),i.body=this.finishNode(s,&amp;amp;quot;ClassBody&amp;amp;quot;),this.exitClassBody(),this.finishNode(i,t?&amp;amp;quot;ClassDeclaration&amp;amp;quot;:&amp;amp;quot;ClassExpression&amp;amp;quot;)};De.parseClassElement=function(i){if(this.eat(R.semi))return null;var t=this.options.ecmaVersion,r=this.startNode(),n=&amp;amp;quot;&amp;amp;quot;,s=!1,a=!1,o=&amp;amp;quot;method&amp;amp;quot;,u=!1;if(this.eatContextual(&amp;amp;quot;static&amp;amp;quot;)){if(t&amp;amp;gt;=13&amp;amp;amp;&amp;amp;amp;this.eat(R.braceL))return this.parseClassStaticBlock(r),r;this.isClassElementNameStart()||this.type===R.star?u=!0:n=&amp;amp;quot;static&amp;amp;quot;}if(r.static=u,!n&amp;amp;amp;&amp;amp;amp;t&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;this.eatContextual(&amp;amp;quot;async&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;((this.isClassElementNameStart()||this.type===R.star)&amp;amp;amp;&amp;amp;amp;!this.canInsertSemicolon()?a=!0:n=&amp;amp;quot;async&amp;amp;quot;),!n&amp;amp;amp;&amp;amp;amp;(t&amp;amp;gt;=9||!a)&amp;amp;amp;&amp;amp;amp;this.eat(R.star)&amp;amp;amp;&amp;amp;amp;(s=!0),!n&amp;amp;amp;&amp;amp;amp;!a&amp;amp;amp;&amp;amp;amp;!s){var h=this.value;(this.eatContextual(&amp;amp;quot;get&amp;amp;quot;)||this.eatContextual(&amp;amp;quot;set&amp;amp;quot;))&amp;amp;amp;&amp;amp;amp;(this.isClassElementNameStart()?o=h:n=h)}if(n?(r.computed=!1,r.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),r.key.name=n,this.finishNode(r.key,&amp;amp;quot;Identifier&amp;amp;quot;)):this.parseClassElementName(r),t&amp;amp;lt;13||this.type===R.parenL||o!==&amp;amp;quot;method&amp;amp;quot;||s||a){var l=!r.static&amp;amp;amp;&amp;amp;amp;Sl(r,&amp;amp;quot;constructor&amp;amp;quot;),c=l&amp;amp;amp;&amp;amp;amp;i;l&amp;amp;amp;&amp;amp;amp;o!==&amp;amp;quot;method&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(r.key.start,&amp;amp;quot;Constructor can&amp;amp;#39;t have get/set modifier&amp;amp;quot;),r.kind=l?&amp;amp;quot;constructor&amp;amp;quot;:o,this.parseClassMethod(r,s,a,c)}else this.parseClassField(r);return r};De.isClassElementNameStart=function(){return this.type===R.name||this.type===R.privateId||this.type===R.num||this.type===R.string||this.type===R.bracketL||this.type.keyword};De.parseClassElementName=function(i){this.type===R.privateId?(this.value===&amp;amp;quot;constructor&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;Classes can&amp;amp;#39;t have an element named &amp;amp;#39;#constructor&amp;amp;#39;&amp;amp;quot;),i.computed=!1,i.key=this.parsePrivateIdent()):this.parsePropertyName(i)};De.parseClassMethod=function(i,t,r,n){var s=i.key;i.kind===&amp;amp;quot;constructor&amp;amp;quot;?(t&amp;amp;amp;&amp;amp;amp;this.raise(s.start,&amp;amp;quot;Constructor can&amp;amp;#39;t be a generator&amp;amp;quot;),r&amp;amp;amp;&amp;amp;amp;this.raise(s.start,&amp;amp;quot;Constructor can&amp;amp;#39;t be an async method&amp;amp;quot;)):i.static&amp;amp;amp;&amp;amp;amp;Sl(i,&amp;amp;quot;prototype&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.raise(s.start,&amp;amp;quot;Classes may not have a static property named prototype&amp;amp;quot;);var a=i.value=this.parseMethod(t,r,n);return i.kind===&amp;amp;quot;get&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a.params.length!==0&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(a.start,&amp;amp;quot;getter should have no params&amp;amp;quot;),i.kind===&amp;amp;quot;set&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a.params.length!==1&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(a.start,&amp;amp;quot;setter should have exactly one param&amp;amp;quot;),i.kind===&amp;amp;quot;set&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a.params[0].type===&amp;amp;quot;RestElement&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(a.params[0].start,&amp;amp;quot;Setter cannot use rest params&amp;amp;quot;),this.finishNode(i,&amp;amp;quot;MethodDefinition&amp;amp;quot;)};De.parseClassField=function(i){return Sl(i,&amp;amp;quot;constructor&amp;amp;quot;)?this.raise(i.key.start,&amp;amp;quot;Classes can&amp;amp;#39;t have a field named &amp;amp;#39;constructor&amp;amp;#39;&amp;amp;quot;):i.static&amp;amp;amp;&amp;amp;amp;Sl(i,&amp;amp;quot;prototype&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.raise(i.key.start,&amp;amp;quot;Classes can&amp;amp;#39;t have a static field named &amp;amp;#39;prototype&amp;amp;#39;&amp;amp;quot;),this.eat(R.eq)?(this.enterScope(Eo|Tl),i.value=this.parseMaybeAssign(),this.exitScope()):i.value=null,this.semicolon(),this.finishNode(i,&amp;amp;quot;PropertyDefinition&amp;amp;quot;)};De.parseClassStaticBlock=function(i){i.body=[];var t=this.labels;for(this.labels=[],this.enterScope(Vn|Tl);this.type!==R.braceR;){var r=this.parseStatement(null);i.body.push(r)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(i,&amp;amp;quot;StaticBlock&amp;amp;quot;)};De.parseClassId=function(i,t){this.type===R.name?(i.id=this.parseIdent(),t&amp;amp;amp;&amp;amp;amp;this.checkLValSimple(i.id,Ti,!1)):(t===!0&amp;amp;amp;&amp;amp;amp;this.unexpected(),i.id=null)};De.parseClassSuper=function(i){i.superClass=this.eat(R._extends)?this.parseExprSubscripts(null,!1):null};De.enterClassBody=function(){var i={declared:Object.create(null),used:[]};return this.privateNameStack.push(i),i.declared};De.exitClassBody=function(){var i=this.privateNameStack.pop(),t=i.declared,r=i.used;if(this.options.checkPrivateFields)for(var n=this.privateNameStack.length,s=n===0?null:this.privateNameStack[n-1],a=0;a&amp;amp;lt;r.length;++a){var o=r[a];qs(t,o.name)||(s?s.used.push(o):this.raiseRecoverable(o.start,&amp;amp;quot;Private field &amp;amp;#39;#&amp;amp;quot;+o.name+&amp;amp;quot;&amp;amp;#39; must be declared in an enclosing class&amp;amp;quot;))}};function c2(i,t){var r=t.key.name,n=i[r],s=&amp;amp;quot;true&amp;amp;quot;;return t.type===&amp;amp;quot;MethodDefinition&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.kind===&amp;amp;quot;get&amp;amp;quot;||t.kind===&amp;amp;quot;set&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(s=(t.static?&amp;amp;quot;s&amp;amp;quot;:&amp;amp;quot;i&amp;amp;quot;)+t.kind),n===&amp;amp;quot;iget&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s===&amp;amp;quot;iset&amp;amp;quot;||n===&amp;amp;quot;iset&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s===&amp;amp;quot;iget&amp;amp;quot;||n===&amp;amp;quot;sget&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s===&amp;amp;quot;sset&amp;amp;quot;||n===&amp;amp;quot;sset&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s===&amp;amp;quot;sget&amp;amp;quot;?(i[r]=&amp;amp;quot;true&amp;amp;quot;,!1):n?!0:(i[r]=s,!1)}function Sl(i,t){var r=i.computed,n=i.key;return!r&amp;amp;amp;&amp;amp;amp;(n.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.name===t||n.type===&amp;amp;quot;Literal&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.value===t)}De.parseExportAllDeclaration=function(i,t){return this.options.ecmaVersion&amp;amp;gt;=11&amp;amp;amp;&amp;amp;amp;(this.eatContextual(&amp;amp;quot;as&amp;amp;quot;)?(i.exported=this.parseModuleExportName(),this.checkExport(t,i.exported,this.lastTokStart)):i.exported=null),this.expectContextual(&amp;amp;quot;from&amp;amp;quot;),this.type!==R.string&amp;amp;amp;&amp;amp;amp;this.unexpected(),i.source=this.parseExprAtom(),this.options.ecmaVersion&amp;amp;gt;=16&amp;amp;amp;&amp;amp;amp;(i.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(i,&amp;amp;quot;ExportAllDeclaration&amp;amp;quot;)};De.parseExport=function(i,t){if(this.next(),this.eat(R.star))return this.parseExportAllDeclaration(i,t);if(this.eat(R._default))return this.checkExport(t,&amp;amp;quot;default&amp;amp;quot;,this.lastTokStart),i.declaration=this.parseExportDefaultDeclaration(),this.finishNode(i,&amp;amp;quot;ExportDefaultDeclaration&amp;amp;quot;);if(this.shouldParseExportStatement())i.declaration=this.parseExportDeclaration(i),i.declaration.type===&amp;amp;quot;VariableDeclaration&amp;amp;quot;?this.checkVariableExport(t,i.declaration.declarations):this.checkExport(t,i.declaration.id,i.declaration.id.start),i.specifiers=[],i.source=null,this.options.ecmaVersion&amp;amp;gt;=16&amp;amp;amp;&amp;amp;amp;(i.attributes=[]);else{if(i.declaration=null,i.specifiers=this.parseExportSpecifiers(t),this.eatContextual(&amp;amp;quot;from&amp;amp;quot;))this.type!==R.string&amp;amp;amp;&amp;amp;amp;this.unexpected(),i.source=this.parseExprAtom(),this.options.ecmaVersion&amp;amp;gt;=16&amp;amp;amp;&amp;amp;amp;(i.attributes=this.parseWithClause());else{for(var r=0,n=i.specifiers;r&amp;amp;lt;n.length;r+=1){var s=n[r];this.checkUnreserved(s.local),this.checkLocalExport(s.local),s.local.type===&amp;amp;quot;Literal&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(s.local.start,&amp;amp;quot;A string literal cannot be used as an exported binding without `from`.&amp;amp;quot;)}i.source=null,this.options.ecmaVersion&amp;amp;gt;=16&amp;amp;amp;&amp;amp;amp;(i.attributes=[])}this.semicolon()}return this.finishNode(i,&amp;amp;quot;ExportNamedDeclaration&amp;amp;quot;)};De.parseExportDeclaration=function(i){return this.parseStatement(null)};De.parseExportDefaultDeclaration=function(){var i;if(this.type===R._function||(i=this.isAsyncFunction())){var t=this.startNode();return this.next(),i&amp;amp;amp;&amp;amp;amp;this.next(),this.parseFunction(t,_o|Q0,!1,i)}else if(this.type===R._class){var r=this.startNode();return this.parseClass(r,&amp;amp;quot;nullableID&amp;amp;quot;)}else{var n=this.parseMaybeAssign();return this.semicolon(),n}};De.checkExport=function(i,t,r){i&amp;amp;amp;&amp;amp;amp;(typeof t!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t=t.type===&amp;amp;quot;Identifier&amp;amp;quot;?t.name:t.value),qs(i,t)&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(r,&amp;amp;quot;Duplicate export &amp;amp;#39;&amp;amp;quot;+t+&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;),i[t]=!0)};De.checkPatternExport=function(i,t){var r=t.type;if(r===&amp;amp;quot;Identifier&amp;amp;quot;)this.checkExport(i,t,t.start);else if(r===&amp;amp;quot;ObjectPattern&amp;amp;quot;)for(var n=0,s=t.properties;n&amp;amp;lt;s.length;n+=1){var a=s[n];this.checkPatternExport(i,a)}else if(r===&amp;amp;quot;ArrayPattern&amp;amp;quot;)for(var o=0,u=t.elements;o&amp;amp;lt;u.length;o+=1){var h=u[o];h&amp;amp;amp;&amp;amp;amp;this.checkPatternExport(i,h)}else r===&amp;amp;quot;Property&amp;amp;quot;?this.checkPatternExport(i,t.value):r===&amp;amp;quot;AssignmentPattern&amp;amp;quot;?this.checkPatternExport(i,t.left):r===&amp;amp;quot;RestElement&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.checkPatternExport(i,t.argument)};De.checkVariableExport=function(i,t){if(i)for(var r=0,n=t;r&amp;amp;lt;n.length;r+=1){var s=n[r];this.checkPatternExport(i,s.id)}};De.shouldParseExportStatement=function(){return this.type.keyword===&amp;amp;quot;var&amp;amp;quot;||this.type.keyword===&amp;amp;quot;const&amp;amp;quot;||this.type.keyword===&amp;amp;quot;class&amp;amp;quot;||this.type.keyword===&amp;amp;quot;function&amp;amp;quot;||this.isLet()||this.isAsyncFunction()};De.parseExportSpecifier=function(i){var t=this.startNode();return t.local=this.parseModuleExportName(),t.exported=this.eatContextual(&amp;amp;quot;as&amp;amp;quot;)?this.parseModuleExportName():t.local,this.checkExport(i,t.exported,t.exported.start),this.finishNode(t,&amp;amp;quot;ExportSpecifier&amp;amp;quot;)};De.parseExportSpecifiers=function(i){var t=[],r=!0;for(this.expect(R.braceL);!this.eat(R.braceR);){if(r)r=!1;else if(this.expect(R.comma),this.afterTrailingComma(R.braceR))break;t.push(this.parseExportSpecifier(i))}return t};De.parseImport=function(i){return this.next(),this.type===R.string?(i.specifiers=h2,i.source=this.parseExprAtom()):(i.specifiers=this.parseImportSpecifiers(),this.expectContextual(&amp;amp;quot;from&amp;amp;quot;),i.source=this.type===R.string?this.parseExprAtom():this.unexpected()),this.options.ecmaVersion&amp;amp;gt;=16&amp;amp;amp;&amp;amp;amp;(i.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(i,&amp;amp;quot;ImportDeclaration&amp;amp;quot;)};De.parseImportSpecifier=function(){var i=this.startNode();return i.imported=this.parseModuleExportName(),this.eatContextual(&amp;amp;quot;as&amp;amp;quot;)?i.local=this.parseIdent():(this.checkUnreserved(i.imported),i.local=i.imported),this.checkLValSimple(i.local,Ti),this.finishNode(i,&amp;amp;quot;ImportSpecifier&amp;amp;quot;)};De.parseImportDefaultSpecifier=function(){var i=this.startNode();return i.local=this.parseIdent(),this.checkLValSimple(i.local,Ti),this.finishNode(i,&amp;amp;quot;ImportDefaultSpecifier&amp;amp;quot;)};De.parseImportNamespaceSpecifier=function(){var i=this.startNode();return this.next(),this.expectContextual(&amp;amp;quot;as&amp;amp;quot;),i.local=this.parseIdent(),this.checkLValSimple(i.local,Ti),this.finishNode(i,&amp;amp;quot;ImportNamespaceSpecifier&amp;amp;quot;)};De.parseImportSpecifiers=function(){var i=[],t=!0;if(this.type===R.name&amp;amp;amp;&amp;amp;amp;(i.push(this.parseImportDefaultSpecifier()),!this.eat(R.comma)))return i;if(this.type===R.star)return i.push(this.parseImportNamespaceSpecifier()),i;for(this.expect(R.braceL);!this.eat(R.braceR);){if(t)t=!1;else if(this.expect(R.comma),this.afterTrailingComma(R.braceR))break;i.push(this.parseImportSpecifier())}return i};De.parseWithClause=function(){var i=[];if(!this.eat(R._with))return i;this.expect(R.braceL);for(var t={},r=!0;!this.eat(R.braceR);){if(r)r=!1;else if(this.expect(R.comma),this.afterTrailingComma(R.braceR))break;var n=this.parseImportAttribute(),s=n.key.type===&amp;amp;quot;Identifier&amp;amp;quot;?n.key.name:n.key.value;qs(t,s)&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(n.key.start,&amp;amp;quot;Duplicate attribute key &amp;amp;#39;&amp;amp;quot;+s+&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;),t[s]=!0,i.push(n)}return i};De.parseImportAttribute=function(){var i=this.startNode();return i.key=this.type===R.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==&amp;amp;quot;never&amp;amp;quot;),this.expect(R.colon),this.type!==R.string&amp;amp;amp;&amp;amp;amp;this.unexpected(),i.value=this.parseExprAtom(),this.finishNode(i,&amp;amp;quot;ImportAttribute&amp;amp;quot;)};De.parseModuleExportName=function(){if(this.options.ecmaVersion&amp;amp;gt;=13&amp;amp;amp;&amp;amp;amp;this.type===R.string){var i=this.parseLiteral(this.value);return s2.test(i.value)&amp;amp;amp;&amp;amp;amp;this.raise(i.start,&amp;amp;quot;An export name cannot include a lone surrogate.&amp;amp;quot;),i}return this.parseIdent(!0)};De.adaptDirectivePrologue=function(i){for(var t=0;t&amp;amp;lt;i.length&amp;amp;amp;&amp;amp;amp;this.isDirectiveCandidate(i[t]);++t)i[t].directive=i[t].expression.raw.slice(1,-1)};De.isDirectiveCandidate=function(i){return this.options.ecmaVersion&amp;amp;gt;=5&amp;amp;amp;&amp;amp;amp;i.type===&amp;amp;quot;ExpressionStatement&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.expression.type===&amp;amp;quot;Literal&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof i.expression.value==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.input[i.start]===&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;||this.input[i.start]===&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;)};var Fr=Dt.prototype;Fr.toAssignable=function(i,t,r){if(this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;i)switch(i.type){case&amp;amp;quot;Identifier&amp;amp;quot;:this.inAsync&amp;amp;amp;&amp;amp;amp;i.name===&amp;amp;quot;await&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(i.start,&amp;amp;quot;Cannot use &amp;amp;#39;await&amp;amp;#39; as identifier inside an async function&amp;amp;quot;);break;case&amp;amp;quot;ObjectPattern&amp;amp;quot;:case&amp;amp;quot;ArrayPattern&amp;amp;quot;:case&amp;amp;quot;AssignmentPattern&amp;amp;quot;:case&amp;amp;quot;RestElement&amp;amp;quot;:break;case&amp;amp;quot;ObjectExpression&amp;amp;quot;:i.type=&amp;amp;quot;ObjectPattern&amp;amp;quot;,r&amp;amp;amp;&amp;amp;amp;this.checkPatternErrors(r,!0);for(var n=0,s=i.properties;n&amp;amp;lt;s.length;n+=1){var a=s[n];this.toAssignable(a,t),a.type===&amp;amp;quot;RestElement&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a.argument.type===&amp;amp;quot;ArrayPattern&amp;amp;quot;||a.argument.type===&amp;amp;quot;ObjectPattern&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.raise(a.argument.start,&amp;amp;quot;Unexpected token&amp;amp;quot;)}break;case&amp;amp;quot;Property&amp;amp;quot;:i.kind!==&amp;amp;quot;init&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(i.key.start,&amp;amp;quot;Object pattern can&amp;amp;#39;t contain getter or setter&amp;amp;quot;),this.toAssignable(i.value,t);break;case&amp;amp;quot;ArrayExpression&amp;amp;quot;:i.type=&amp;amp;quot;ArrayPattern&amp;amp;quot;,r&amp;amp;amp;&amp;amp;amp;this.checkPatternErrors(r,!0),this.toAssignableList(i.elements,t);break;case&amp;amp;quot;SpreadElement&amp;amp;quot;:i.type=&amp;amp;quot;RestElement&amp;amp;quot;,this.toAssignable(i.argument,t),i.argument.type===&amp;amp;quot;AssignmentPattern&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(i.argument.start,&amp;amp;quot;Rest elements cannot have a default value&amp;amp;quot;);break;case&amp;amp;quot;AssignmentExpression&amp;amp;quot;:i.operator!==&amp;amp;quot;=&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(i.left.end,&amp;amp;quot;Only &amp;amp;#39;=&amp;amp;#39; operator can be used for specifying default value.&amp;amp;quot;),i.type=&amp;amp;quot;AssignmentPattern&amp;amp;quot;,delete i.operator,this.toAssignable(i.left,t);break;case&amp;amp;quot;ParenthesizedExpression&amp;amp;quot;:this.toAssignable(i.expression,t,r);break;case&amp;amp;quot;ChainExpression&amp;amp;quot;:this.raiseRecoverable(i.start,&amp;amp;quot;Optional chaining cannot appear in left-hand side&amp;amp;quot;);break;case&amp;amp;quot;MemberExpression&amp;amp;quot;:if(!t)break;default:this.raise(i.start,&amp;amp;quot;Assigning to rvalue&amp;amp;quot;)}else r&amp;amp;amp;&amp;amp;amp;this.checkPatternErrors(r,!0);return i};Fr.toAssignableList=function(i,t){for(var r=i.length,n=0;n&amp;amp;lt;r;n++){var s=i[n];s&amp;amp;amp;&amp;amp;amp;this.toAssignable(s,t)}if(r){var a=i[r-1];this.options.ecmaVersion===6&amp;amp;amp;&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;a&amp;amp;amp;&amp;amp;amp;a.type===&amp;amp;quot;RestElement&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a.argument.type!==&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.unexpected(a.argument.start)}return i};Fr.parseSpread=function(i){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,i),this.finishNode(t,&amp;amp;quot;SpreadElement&amp;amp;quot;)};Fr.parseRestBinding=function(){var i=this.startNode();return this.next(),this.options.ecmaVersion===6&amp;amp;amp;&amp;amp;amp;this.type!==R.name&amp;amp;amp;&amp;amp;amp;this.unexpected(),i.argument=this.parseBindingAtom(),this.finishNode(i,&amp;amp;quot;RestElement&amp;amp;quot;)};Fr.parseBindingAtom=function(){if(this.options.ecmaVersion&amp;amp;gt;=6)switch(this.type){case R.bracketL:var i=this.startNode();return this.next(),i.elements=this.parseBindingList(R.bracketR,!0,!0),this.finishNode(i,&amp;amp;quot;ArrayPattern&amp;amp;quot;);case R.braceL:return this.parseObj(!0)}return this.parseIdent()};Fr.parseBindingList=function(i,t,r,n){for(var s=[],a=!0;!this.eat(i);)if(a?a=!1:this.expect(R.comma),t&amp;amp;amp;&amp;amp;amp;this.type===R.comma)s.push(null);else{if(r&amp;amp;amp;&amp;amp;amp;this.afterTrailingComma(i))break;if(this.type===R.ellipsis){var o=this.parseRestBinding();this.parseBindingListItem(o),s.push(o),this.type===R.comma&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.start,&amp;amp;quot;Comma is not permitted after the rest element&amp;amp;quot;),this.expect(i);break}else s.push(this.parseAssignableListItem(n))}return s};Fr.parseAssignableListItem=function(i){var t=this.parseMaybeDefault(this.start,this.startLoc);return this.parseBindingListItem(t),t};Fr.parseBindingListItem=function(i){return i};Fr.parseMaybeDefault=function(i,t,r){if(r=r||this.parseBindingAtom(),this.options.ecmaVersion&amp;amp;lt;6||!this.eat(R.eq))return r;var n=this.startNodeAt(i,t);return n.left=r,n.right=this.parseMaybeAssign(),this.finishNode(n,&amp;amp;quot;AssignmentPattern&amp;amp;quot;)};Fr.checkLValSimple=function(i,t,r){t===void 0&amp;amp;amp;&amp;amp;amp;(t=El);var n=t!==El;switch(i.type){case&amp;amp;quot;Identifier&amp;amp;quot;:this.strict&amp;amp;amp;&amp;amp;amp;this.reservedWordsStrictBind.test(i.name)&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,(n?&amp;amp;quot;Binding &amp;amp;quot;:&amp;amp;quot;Assigning to &amp;amp;quot;)+i.name+&amp;amp;quot; in strict mode&amp;amp;quot;),n&amp;amp;amp;&amp;amp;amp;(t===Ti&amp;amp;amp;&amp;amp;amp;i.name===&amp;amp;quot;let&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,&amp;amp;quot;let is disallowed as a lexically bound name&amp;amp;quot;),r&amp;amp;amp;&amp;amp;amp;(qs(r,i.name)&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,&amp;amp;quot;Argument name clash&amp;amp;quot;),r[i.name]=!0),t!==J0&amp;amp;amp;&amp;amp;amp;this.declareName(i.name,t,i.start));break;case&amp;amp;quot;ChainExpression&amp;amp;quot;:this.raiseRecoverable(i.start,&amp;amp;quot;Optional chaining cannot appear in left-hand side&amp;amp;quot;);break;case&amp;amp;quot;MemberExpression&amp;amp;quot;:n&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,&amp;amp;quot;Binding member expression&amp;amp;quot;);break;case&amp;amp;quot;ParenthesizedExpression&amp;amp;quot;:return n&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,&amp;amp;quot;Binding parenthesized expression&amp;amp;quot;),this.checkLValSimple(i.expression,t,r);default:this.raise(i.start,(n?&amp;amp;quot;Binding&amp;amp;quot;:&amp;amp;quot;Assigning to&amp;amp;quot;)+&amp;amp;quot; rvalue&amp;amp;quot;)}};Fr.checkLValPattern=function(i,t,r){switch(t===void 0&amp;amp;amp;&amp;amp;amp;(t=El),i.type){case&amp;amp;quot;ObjectPattern&amp;amp;quot;:for(var n=0,s=i.properties;n&amp;amp;lt;s.length;n+=1){var a=s[n];this.checkLValInnerPattern(a,t,r)}break;case&amp;amp;quot;ArrayPattern&amp;amp;quot;:for(var o=0,u=i.elements;o&amp;amp;lt;u.length;o+=1){var h=u[o];h&amp;amp;amp;&amp;amp;amp;this.checkLValInnerPattern(h,t,r)}break;default:this.checkLValSimple(i,t,r)}};Fr.checkLValInnerPattern=function(i,t,r){switch(t===void 0&amp;amp;amp;&amp;amp;amp;(t=El),i.type){case&amp;amp;quot;Property&amp;amp;quot;:this.checkLValInnerPattern(i.value,t,r);break;case&amp;amp;quot;AssignmentPattern&amp;amp;quot;:this.checkLValPattern(i.left,t,r);break;case&amp;amp;quot;RestElement&amp;amp;quot;:this.checkLValPattern(i.argument,t,r);break;default:this.checkLValPattern(i,t,r)}};var Wr=function(t,r,n,s,a){this.token=t,this.isExpr=!!r,this.preserveSpace=!!n,this.override=s,this.generator=!!a},ht={b_stat:new Wr(&amp;amp;quot;{&amp;amp;quot;,!1),b_expr:new Wr(&amp;amp;quot;{&amp;amp;quot;,!0),b_tmpl:new Wr(&amp;amp;quot;${&amp;amp;quot;,!1),p_stat:new Wr(&amp;amp;quot;(&amp;amp;quot;,!1),p_expr:new Wr(&amp;amp;quot;(&amp;amp;quot;,!0),q_tmpl:new Wr(&amp;amp;quot;`&amp;amp;quot;,!0,!0,function(i){return i.tryReadTemplateToken()}),f_stat:new Wr(&amp;amp;quot;function&amp;amp;quot;,!1),f_expr:new Wr(&amp;amp;quot;function&amp;amp;quot;,!0),f_expr_gen:new Wr(&amp;amp;quot;function&amp;amp;quot;,!0,!1,null,!0),f_gen:new Wr(&amp;amp;quot;function&amp;amp;quot;,!1,!1,null,!0)},Ys=Dt.prototype;Ys.initialContext=function(){return[ht.b_stat]};Ys.curContext=function(){return this.context[this.context.length-1]};Ys.braceIsBlock=function(i){var t=this.curContext();return t===ht.f_expr||t===ht.f_stat?!0:i===R.colon&amp;amp;amp;&amp;amp;amp;(t===ht.b_stat||t===ht.b_expr)?!t.isExpr:i===R._return||i===R.name&amp;amp;amp;&amp;amp;amp;this.exprAllowed?Qt.test(this.input.slice(this.lastTokEnd,this.start)):i===R._else||i===R.semi||i===R.eof||i===R.parenR||i===R.arrow?!0:i===R.braceL?t===ht.b_stat:i===R._var||i===R._const||i===R.name?!1:!this.exprAllowed};Ys.inGeneratorContext=function(){for(var i=this.context.length-1;i&amp;amp;gt;=1;i--){var t=this.context[i];if(t.token===&amp;amp;quot;function&amp;amp;quot;)return t.generator}return!1};Ys.updateContext=function(i){var t,r=this.type;r.keyword&amp;amp;amp;&amp;amp;amp;i===R.dot?this.exprAllowed=!1:(t=r.updateContext)?t.call(this,i):this.exprAllowed=r.beforeExpr};Ys.overrideContext=function(i){this.curContext()!==i&amp;amp;amp;&amp;amp;amp;(this.context[this.context.length-1]=i)};R.parenR.updateContext=R.braceR.updateContext=function(){if(this.context.length===1){this.exprAllowed=!0;return}var i=this.context.pop();i===ht.b_stat&amp;amp;amp;&amp;amp;amp;this.curContext().token===&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i=this.context.pop()),this.exprAllowed=!i.isExpr};R.braceL.updateContext=function(i){this.context.push(this.braceIsBlock(i)?ht.b_stat:ht.b_expr),this.exprAllowed=!0};R.dollarBraceL.updateContext=function(){this.context.push(ht.b_tmpl),this.exprAllowed=!0};R.parenL.updateContext=function(i){var t=i===R._if||i===R._for||i===R._with||i===R._while;this.context.push(t?ht.p_stat:ht.p_expr),this.exprAllowed=!0};R.incDec.updateContext=function(){};R._function.updateContext=R._class.updateContext=function(i){i.beforeExpr&amp;amp;amp;&amp;amp;amp;i!==R._else&amp;amp;amp;&amp;amp;amp;!(i===R.semi&amp;amp;amp;&amp;amp;amp;this.curContext()!==ht.p_stat)&amp;amp;amp;&amp;amp;amp;!(i===R._return&amp;amp;amp;&amp;amp;amp;Qt.test(this.input.slice(this.lastTokEnd,this.start)))&amp;amp;amp;&amp;amp;amp;!((i===R.colon||i===R.braceL)&amp;amp;amp;&amp;amp;amp;this.curContext()===ht.b_stat)?this.context.push(ht.f_expr):this.context.push(ht.f_stat),this.exprAllowed=!1};R.colon.updateContext=function(){this.curContext().token===&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.context.pop(),this.exprAllowed=!0};R.backQuote.updateContext=function(){this.curContext()===ht.q_tmpl?this.context.pop():this.context.push(ht.q_tmpl),this.exprAllowed=!1};R.star.updateContext=function(i){if(i===R._function){var t=this.context.length-1;this.context[t]===ht.f_expr?this.context[t]=ht.f_expr_gen:this.context[t]=ht.f_gen}this.exprAllowed=!0};R.name.updateContext=function(i){var t=!1;this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;i!==R.dot&amp;amp;amp;&amp;amp;amp;(this.value===&amp;amp;quot;of&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!this.exprAllowed||this.value===&amp;amp;quot;yield&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.inGeneratorContext())&amp;amp;amp;&amp;amp;amp;(t=!0),this.exprAllowed=t};var Oe=Dt.prototype;Oe.checkPropClash=function(i,t,r){if(!(this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;i.type===&amp;amp;quot;SpreadElement&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!(this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;(i.computed||i.method||i.shorthand))){var n=i.key,s;switch(n.type){case&amp;amp;quot;Identifier&amp;amp;quot;:s=n.name;break;case&amp;amp;quot;Literal&amp;amp;quot;:s=String(n.value);break;default:return}var a=i.kind;if(this.options.ecmaVersion&amp;amp;gt;=6){s===&amp;amp;quot;__proto__&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a===&amp;amp;quot;init&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.proto&amp;amp;amp;&amp;amp;amp;(r?r.doubleProto&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(r.doubleProto=n.start):this.raiseRecoverable(n.start,&amp;amp;quot;Redefinition of __proto__ property&amp;amp;quot;)),t.proto=!0);return}s=&amp;amp;quot;$&amp;amp;quot;+s;var o=t[s];if(o){var u;a===&amp;amp;quot;init&amp;amp;quot;?u=this.strict&amp;amp;amp;&amp;amp;amp;o.init||o.get||o.set:u=o.init||o[a],u&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(n.start,&amp;amp;quot;Redefinition of property&amp;amp;quot;)}else o=t[s]={init:!1,get:!1,set:!1};o[a]=!0}};Oe.parseExpression=function(i,t){var r=this.start,n=this.startLoc,s=this.parseMaybeAssign(i,t);if(this.type===R.comma){var a=this.startNodeAt(r,n);for(a.expressions=[s];this.eat(R.comma);)a.expressions.push(this.parseMaybeAssign(i,t));return this.finishNode(a,&amp;amp;quot;SequenceExpression&amp;amp;quot;)}return s};Oe.parseMaybeAssign=function(i,t,r){if(this.isContextual(&amp;amp;quot;yield&amp;amp;quot;)){if(this.inGenerator)return this.parseYield(i);this.exprAllowed=!1}var n=!1,s=-1,a=-1,o=-1;t?(s=t.parenthesizedAssign,a=t.trailingComma,o=t.doubleProto,t.parenthesizedAssign=t.trailingComma=-1):(t=new Il,n=!0);var u=this.start,h=this.startLoc;(this.type===R.parenL||this.type===R.name)&amp;amp;amp;&amp;amp;amp;(this.potentialArrowAt=this.start,this.potentialArrowInForAwait=i===&amp;amp;quot;await&amp;amp;quot;);var l=this.parseMaybeConditional(i,t);if(r&amp;amp;amp;&amp;amp;amp;(l=r.call(this,l,u,h)),this.type.isAssign){var c=this.startNodeAt(u,h);return c.operator=this.value,this.type===R.eq&amp;amp;amp;&amp;amp;amp;(l=this.toAssignable(l,!1,t)),n||(t.parenthesizedAssign=t.trailingComma=t.doubleProto=-1),t.shorthandAssign&amp;amp;gt;=l.start&amp;amp;amp;&amp;amp;amp;(t.shorthandAssign=-1),this.type===R.eq?this.checkLValPattern(l):this.checkLValSimple(l),c.left=l,this.next(),c.right=this.parseMaybeAssign(i),o&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(t.doubleProto=o),this.finishNode(c,&amp;amp;quot;AssignmentExpression&amp;amp;quot;)}else n&amp;amp;amp;&amp;amp;amp;this.checkExpressionErrors(t,!0);return s&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(t.parenthesizedAssign=s),a&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;(t.trailingComma=a),l};Oe.parseMaybeConditional=function(i,t){var r=this.start,n=this.startLoc,s=this.parseExprOps(i,t);if(this.checkExpressionErrors(t))return s;if(this.eat(R.question)){var a=this.startNodeAt(r,n);return a.test=s,a.consequent=this.parseMaybeAssign(),this.expect(R.colon),a.alternate=this.parseMaybeAssign(i),this.finishNode(a,&amp;amp;quot;ConditionalExpression&amp;amp;quot;)}return s};Oe.parseExprOps=function(i,t){var r=this.start,n=this.startLoc,s=this.parseMaybeUnary(t,!1,!1,i);return this.checkExpressionErrors(t)||s.start===r&amp;amp;amp;&amp;amp;amp;s.type===&amp;amp;quot;ArrowFunctionExpression&amp;amp;quot;?s:this.parseExprOp(s,r,n,-1,i)};Oe.parseExprOp=function(i,t,r,n,s){var a=this.type.binop;if(a!=null&amp;amp;amp;&amp;amp;amp;(!s||this.type!==R._in)&amp;amp;amp;&amp;amp;amp;a&amp;amp;gt;n){var o=this.type===R.logicalOR||this.type===R.logicalAND,u=this.type===R.coalesce;u&amp;amp;amp;&amp;amp;amp;(a=R.logicalAND.binop);var h=this.value;this.next();var l=this.start,c=this.startLoc,p=this.parseExprOp(this.parseMaybeUnary(null,!1,!1,s),l,c,a,s),f=this.buildBinary(t,r,i,p,h,o||u);return(o&amp;amp;amp;&amp;amp;amp;this.type===R.coalesce||u&amp;amp;amp;&amp;amp;amp;(this.type===R.logicalOR||this.type===R.logicalAND))&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.start,&amp;amp;quot;Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses&amp;amp;quot;),this.parseExprOp(f,t,r,n,s)}return i};Oe.buildBinary=function(i,t,r,n,s,a){n.type===&amp;amp;quot;PrivateIdentifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raise(n.start,&amp;amp;quot;Private identifier can only be left side of binary expression&amp;amp;quot;);var o=this.startNodeAt(i,t);return o.left=r,o.operator=s,o.right=n,this.finishNode(o,a?&amp;amp;quot;LogicalExpression&amp;amp;quot;:&amp;amp;quot;BinaryExpression&amp;amp;quot;)};Oe.parseMaybeUnary=function(i,t,r,n){var s=this.start,a=this.startLoc,o;if(this.isContextual(&amp;amp;quot;await&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.canAwait)o=this.parseAwait(n),t=!0;else if(this.type.prefix){var u=this.startNode(),h=this.type===R.incDec;u.operator=this.value,u.prefix=!0,this.next(),u.argument=this.parseMaybeUnary(null,!0,h,n),this.checkExpressionErrors(i,!0),h?this.checkLValSimple(u.argument):this.strict&amp;amp;amp;&amp;amp;amp;u.operator===&amp;amp;quot;delete&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;eg(u.argument)?this.raiseRecoverable(u.start,&amp;amp;quot;Deleting local variable in strict mode&amp;amp;quot;):u.operator===&amp;amp;quot;delete&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ef(u.argument)?this.raiseRecoverable(u.start,&amp;amp;quot;Private fields can not be deleted&amp;amp;quot;):t=!0,o=this.finishNode(u,h?&amp;amp;quot;UpdateExpression&amp;amp;quot;:&amp;amp;quot;UnaryExpression&amp;amp;quot;)}else if(!t&amp;amp;amp;&amp;amp;amp;this.type===R.privateId)(n||this.privateNameStack.length===0)&amp;amp;amp;&amp;amp;amp;this.options.checkPrivateFields&amp;amp;amp;&amp;amp;amp;this.unexpected(),o=this.parsePrivateIdent(),this.type!==R._in&amp;amp;amp;&amp;amp;amp;this.unexpected();else{if(o=this.parseExprSubscripts(i,n),this.checkExpressionErrors(i))return o;for(;this.type.postfix&amp;amp;amp;&amp;amp;amp;!this.canInsertSemicolon();){var l=this.startNodeAt(s,a);l.operator=this.value,l.prefix=!1,l.argument=o,this.checkLValSimple(o),this.next(),o=this.finishNode(l,&amp;amp;quot;UpdateExpression&amp;amp;quot;)}}if(!r&amp;amp;amp;&amp;amp;amp;this.eat(R.starstar))if(t)this.unexpected(this.lastTokStart);else return this.buildBinary(s,a,o,this.parseMaybeUnary(null,!1,!1,n),&amp;amp;quot;**&amp;amp;quot;,!1);else return o};function eg(i){return i.type===&amp;amp;quot;Identifier&amp;amp;quot;||i.type===&amp;amp;quot;ParenthesizedExpression&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;eg(i.expression)}function Ef(i){return i.type===&amp;amp;quot;MemberExpression&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.property.type===&amp;amp;quot;PrivateIdentifier&amp;amp;quot;||i.type===&amp;amp;quot;ChainExpression&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ef(i.expression)||i.type===&amp;amp;quot;ParenthesizedExpression&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Ef(i.expression)}Oe.parseExprSubscripts=function(i,t){var r=this.start,n=this.startLoc,s=this.parseExprAtom(i,t);if(s.type===&amp;amp;quot;ArrowFunctionExpression&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.input.slice(this.lastTokStart,this.lastTokEnd)!==&amp;amp;quot;)&amp;amp;quot;)return s;var a=this.parseSubscripts(s,r,n,!1,t);return i&amp;amp;amp;&amp;amp;amp;a.type===&amp;amp;quot;MemberExpression&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.parenthesizedAssign&amp;amp;gt;=a.start&amp;amp;amp;&amp;amp;amp;(i.parenthesizedAssign=-1),i.parenthesizedBind&amp;amp;gt;=a.start&amp;amp;amp;&amp;amp;amp;(i.parenthesizedBind=-1),i.trailingComma&amp;amp;gt;=a.start&amp;amp;amp;&amp;amp;amp;(i.trailingComma=-1)),a};Oe.parseSubscripts=function(i,t,r,n,s){for(var a=this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;i.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.name===&amp;amp;quot;async&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.lastTokEnd===i.end&amp;amp;amp;&amp;amp;amp;!this.canInsertSemicolon()&amp;amp;amp;&amp;amp;amp;i.end-i.start===5&amp;amp;amp;&amp;amp;amp;this.potentialArrowAt===i.start,o=!1;;){var u=this.parseSubscript(i,t,r,n,a,o,s);if(u.optional&amp;amp;amp;&amp;amp;amp;(o=!0),u===i||u.type===&amp;amp;quot;ArrowFunctionExpression&amp;amp;quot;){if(o){var h=this.startNodeAt(t,r);h.expression=u,u=this.finishNode(h,&amp;amp;quot;ChainExpression&amp;amp;quot;)}return u}i=u}};Oe.shouldParseAsyncArrow=function(){return!this.canInsertSemicolon()&amp;amp;amp;&amp;amp;amp;this.eat(R.arrow)};Oe.parseSubscriptAsyncArrow=function(i,t,r,n){return this.parseArrowExpression(this.startNodeAt(i,t),r,!0,n)};Oe.parseSubscript=function(i,t,r,n,s,a,o){var u=this.options.ecmaVersion&amp;amp;gt;=11,h=u&amp;amp;amp;&amp;amp;amp;this.eat(R.questionDot);n&amp;amp;amp;&amp;amp;amp;h&amp;amp;amp;&amp;amp;amp;this.raise(this.lastTokStart,&amp;amp;quot;Optional chaining cannot appear in the callee of new expressions&amp;amp;quot;);var l=this.eat(R.bracketL);if(l||h&amp;amp;amp;&amp;amp;amp;this.type!==R.parenL&amp;amp;amp;&amp;amp;amp;this.type!==R.backQuote||this.eat(R.dot)){var c=this.startNodeAt(t,r);c.object=i,l?(c.property=this.parseExpression(),this.expect(R.bracketR)):this.type===R.privateId&amp;amp;amp;&amp;amp;amp;i.type!==&amp;amp;quot;Super&amp;amp;quot;?c.property=this.parsePrivateIdent():c.property=this.parseIdent(this.options.allowReserved!==&amp;amp;quot;never&amp;amp;quot;),c.computed=!!l,u&amp;amp;amp;&amp;amp;amp;(c.optional=h),i=this.finishNode(c,&amp;amp;quot;MemberExpression&amp;amp;quot;)}else if(!n&amp;amp;amp;&amp;amp;amp;this.eat(R.parenL)){var p=new Il,f=this.yieldPos,d=this.awaitPos,m=this.awaitIdentPos;this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0;var g=this.parseExprList(R.parenR,this.options.ecmaVersion&amp;amp;gt;=8,!1,p);if(s&amp;amp;amp;&amp;amp;amp;!h&amp;amp;amp;&amp;amp;amp;this.shouldParseAsyncArrow())return this.checkPatternErrors(p,!1),this.checkYieldAwaitInDefaultParams(),this.awaitIdentPos&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.raise(this.awaitIdentPos,&amp;amp;quot;Cannot use &amp;amp;#39;await&amp;amp;#39; as identifier inside an async function&amp;amp;quot;),this.yieldPos=f,this.awaitPos=d,this.awaitIdentPos=m,this.parseSubscriptAsyncArrow(t,r,g,o);this.checkExpressionErrors(p,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=d||this.awaitPos,this.awaitIdentPos=m||this.awaitIdentPos;var v=this.startNodeAt(t,r);v.callee=i,v.arguments=g,u&amp;amp;amp;&amp;amp;amp;(v.optional=h),i=this.finishNode(v,&amp;amp;quot;CallExpression&amp;amp;quot;)}else if(this.type===R.backQuote){(h||a)&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;Optional chaining cannot appear in the tag of tagged template expressions&amp;amp;quot;);var w=this.startNodeAt(t,r);w.tag=i,w.quasi=this.parseTemplate({isTagged:!0}),i=this.finishNode(w,&amp;amp;quot;TaggedTemplateExpression&amp;amp;quot;)}return i};Oe.parseExprAtom=function(i,t,r){this.type===R.slash&amp;amp;amp;&amp;amp;amp;this.readRegexp();var n,s=this.potentialArrowAt===this.start;switch(this.type){case R._super:return this.allowSuper||this.raise(this.start,&amp;amp;quot;&amp;amp;#39;super&amp;amp;#39; keyword outside a method&amp;amp;quot;),n=this.startNode(),this.next(),this.type===R.parenL&amp;amp;amp;&amp;amp;amp;!this.allowDirectSuper&amp;amp;amp;&amp;amp;amp;this.raise(n.start,&amp;amp;quot;super() call outside constructor of a subclass&amp;amp;quot;),this.type!==R.dot&amp;amp;amp;&amp;amp;amp;this.type!==R.bracketL&amp;amp;amp;&amp;amp;amp;this.type!==R.parenL&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.finishNode(n,&amp;amp;quot;Super&amp;amp;quot;);case R._this:return n=this.startNode(),this.next(),this.finishNode(n,&amp;amp;quot;ThisExpression&amp;amp;quot;);case R.name:var a=this.start,o=this.startLoc,u=this.containsEsc,h=this.parseIdent(!1);if(this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;!u&amp;amp;amp;&amp;amp;amp;h.name===&amp;amp;quot;async&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!this.canInsertSemicolon()&amp;amp;amp;&amp;amp;amp;this.eat(R._function))return this.overrideContext(ht.f_expr),this.parseFunction(this.startNodeAt(a,o),0,!1,!0,t);if(s&amp;amp;amp;&amp;amp;amp;!this.canInsertSemicolon()){if(this.eat(R.arrow))return this.parseArrowExpression(this.startNodeAt(a,o),[h],!1,t);if(this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;h.name===&amp;amp;quot;async&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.type===R.name&amp;amp;amp;&amp;amp;amp;!u&amp;amp;amp;&amp;amp;amp;(!this.potentialArrowInForAwait||this.value!==&amp;amp;quot;of&amp;amp;quot;||this.containsEsc))return h=this.parseIdent(!1),(this.canInsertSemicolon()||!this.eat(R.arrow))&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,o),[h],!0,t)}return h;case R.regexp:var l=this.value;return n=this.parseLiteral(l.value),n.regex={pattern:l.pattern,flags:l.flags},n;case R.num:case R.string:return this.parseLiteral(this.value);case R._null:case R._true:case R._false:return n=this.startNode(),n.value=this.type===R._null?null:this.type===R._true,n.raw=this.type.keyword,this.next(),this.finishNode(n,&amp;amp;quot;Literal&amp;amp;quot;);case R.parenL:var c=this.start,p=this.parseParenAndDistinguishExpression(s,t);return i&amp;amp;amp;&amp;amp;amp;(i.parenthesizedAssign&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;!this.isSimpleAssignTarget(p)&amp;amp;amp;&amp;amp;amp;(i.parenthesizedAssign=c),i.parenthesizedBind&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(i.parenthesizedBind=c)),p;case R.bracketL:return n=this.startNode(),this.next(),n.elements=this.parseExprList(R.bracketR,!0,!0,i),this.finishNode(n,&amp;amp;quot;ArrayExpression&amp;amp;quot;);case R.braceL:return this.overrideContext(ht.b_expr),this.parseObj(!1,i);case R._function:return n=this.startNode(),this.next(),this.parseFunction(n,0);case R._class:return this.parseClass(this.startNode(),!1);case R._new:return this.parseNew();case R.backQuote:return this.parseTemplate();case R._import:return this.options.ecmaVersion&amp;amp;gt;=11?this.parseExprImport(r):this.unexpected();default:return this.parseExprAtomDefault()}};Oe.parseExprAtomDefault=function(){this.unexpected()};Oe.parseExprImport=function(i){var t=this.startNode();if(this.containsEsc&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.start,&amp;amp;quot;Escape sequence in keyword import&amp;amp;quot;),this.next(),this.type===R.parenL&amp;amp;amp;&amp;amp;amp;!i)return this.parseDynamicImport(t);if(this.type===R.dot){var r=this.startNodeAt(t.start,t.loc&amp;amp;amp;&amp;amp;amp;t.loc.start);return r.name=&amp;amp;quot;import&amp;amp;quot;,t.meta=this.finishNode(r,&amp;amp;quot;Identifier&amp;amp;quot;),this.parseImportMeta(t)}else this.unexpected()};Oe.parseDynamicImport=function(i){if(this.next(),i.source=this.parseMaybeAssign(),this.options.ecmaVersion&amp;amp;gt;=16)this.eat(R.parenR)?i.options=null:(this.expect(R.comma),this.afterTrailingComma(R.parenR)?i.options=null:(i.options=this.parseMaybeAssign(),this.eat(R.parenR)||(this.expect(R.comma),this.afterTrailingComma(R.parenR)||this.unexpected())));else if(!this.eat(R.parenR)){var t=this.start;this.eat(R.comma)&amp;amp;amp;&amp;amp;amp;this.eat(R.parenR)?this.raiseRecoverable(t,&amp;amp;quot;Trailing comma is not allowed in import()&amp;amp;quot;):this.unexpected(t)}return this.finishNode(i,&amp;amp;quot;ImportExpression&amp;amp;quot;)};Oe.parseImportMeta=function(i){this.next();var t=this.containsEsc;return i.property=this.parseIdent(!0),i.property.name!==&amp;amp;quot;meta&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.property.start,&amp;amp;quot;The only valid meta property for import is &amp;amp;#39;import.meta&amp;amp;#39;&amp;amp;quot;),t&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,&amp;amp;quot;&amp;amp;#39;import.meta&amp;amp;#39; must not contain escaped characters&amp;amp;quot;),this.options.sourceType!==&amp;amp;quot;module&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!this.options.allowImportExportEverywhere&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,&amp;amp;quot;Cannot use &amp;amp;#39;import.meta&amp;amp;#39; outside a module&amp;amp;quot;),this.finishNode(i,&amp;amp;quot;MetaProperty&amp;amp;quot;)};Oe.parseLiteral=function(i){var t=this.startNode();return t.value=i,t.raw=this.input.slice(this.start,this.end),t.raw.charCodeAt(t.raw.length-1)===110&amp;amp;amp;&amp;amp;amp;(t.bigint=t.value!=null?t.value.toString():t.raw.slice(0,-1).replace(/_/g,&amp;amp;quot;&amp;amp;quot;)),this.next(),this.finishNode(t,&amp;amp;quot;Literal&amp;amp;quot;)};Oe.parseParenExpression=function(){this.expect(R.parenL);var i=this.parseExpression();return this.expect(R.parenR),i};Oe.shouldParseArrow=function(i){return!this.canInsertSemicolon()};Oe.parseParenAndDistinguishExpression=function(i,t){var r=this.start,n=this.startLoc,s,a=this.options.ecmaVersion&amp;amp;gt;=8;if(this.options.ecmaVersion&amp;amp;gt;=6){this.next();var o=this.start,u=this.startLoc,h=[],l=!0,c=!1,p=new Il,f=this.yieldPos,d=this.awaitPos,m;for(this.yieldPos=0,this.awaitPos=0;this.type!==R.parenR;)if(l?l=!1:this.expect(R.comma),a&amp;amp;amp;&amp;amp;amp;this.afterTrailingComma(R.parenR,!0)){c=!0;break}else if(this.type===R.ellipsis){m=this.start,h.push(this.parseParenItem(this.parseRestBinding())),this.type===R.comma&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.start,&amp;amp;quot;Comma is not permitted after the rest element&amp;amp;quot;);break}else h.push(this.parseMaybeAssign(!1,p,this.parseParenItem));var g=this.lastTokEnd,v=this.lastTokEndLoc;if(this.expect(R.parenR),i&amp;amp;amp;&amp;amp;amp;this.shouldParseArrow(h)&amp;amp;amp;&amp;amp;amp;this.eat(R.arrow))return this.checkPatternErrors(p,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=f,this.awaitPos=d,this.parseParenArrowList(r,n,h,t);(!h.length||c)&amp;amp;amp;&amp;amp;amp;this.unexpected(this.lastTokStart),m&amp;amp;amp;&amp;amp;amp;this.unexpected(m),this.checkExpressionErrors(p,!0),this.yieldPos=f||this.yieldPos,this.awaitPos=d||this.awaitPos,h.length&amp;amp;gt;1?(s=this.startNodeAt(o,u),s.expressions=h,this.finishNodeAt(s,&amp;amp;quot;SequenceExpression&amp;amp;quot;,g,v)):s=h[0]}else s=this.parseParenExpression();if(this.options.preserveParens){var w=this.startNodeAt(r,n);return w.expression=s,this.finishNode(w,&amp;amp;quot;ParenthesizedExpression&amp;amp;quot;)}else return s};Oe.parseParenItem=function(i){return i};Oe.parseParenArrowList=function(i,t,r,n){return this.parseArrowExpression(this.startNodeAt(i,t),r,!1,n)};var f2=[];Oe.parseNew=function(){this.containsEsc&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.start,&amp;amp;quot;Escape sequence in keyword new&amp;amp;quot;);var i=this.startNode();if(this.next(),this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;this.type===R.dot){var t=this.startNodeAt(i.start,i.loc&amp;amp;amp;&amp;amp;amp;i.loc.start);t.name=&amp;amp;quot;new&amp;amp;quot;,i.meta=this.finishNode(t,&amp;amp;quot;Identifier&amp;amp;quot;),this.next();var r=this.containsEsc;return i.property=this.parseIdent(!0),i.property.name!==&amp;amp;quot;target&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.property.start,&amp;amp;quot;The only valid meta property for new is &amp;amp;#39;new.target&amp;amp;#39;&amp;amp;quot;),r&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,&amp;amp;quot;&amp;amp;#39;new.target&amp;amp;#39; must not contain escaped characters&amp;amp;quot;),this.allowNewDotTarget||this.raiseRecoverable(i.start,&amp;amp;quot;&amp;amp;#39;new.target&amp;amp;#39; can only be used in functions and class static block&amp;amp;quot;),this.finishNode(i,&amp;amp;quot;MetaProperty&amp;amp;quot;)}var n=this.start,s=this.startLoc;return i.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),n,s,!0,!1),this.eat(R.parenL)?i.arguments=this.parseExprList(R.parenR,this.options.ecmaVersion&amp;amp;gt;=8,!1):i.arguments=f2,this.finishNode(i,&amp;amp;quot;NewExpression&amp;amp;quot;)};Oe.parseTemplateElement=function(i){var t=i.isTagged,r=this.startNode();return this.type===R.invalidTemplate?(t||this.raiseRecoverable(this.start,&amp;amp;quot;Bad escape sequence in untagged template literal&amp;amp;quot;),r.value={raw:this.value.replace(/\r\n?/g,`
   7435 <a href="#l7416" class="line" id="l7416">   7416</a> &lt;a href=&quot;#l7397&quot; class=&quot;line&quot; id=&quot;l7397&quot;&gt;   7397&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2297&amp;quot; id=&amp;quot;h4-0-2297&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,`
   7436 <a href="#l7417" class="line" id="l7417">   7417</a> &lt;a href=&quot;#l7398&quot; class=&quot;line&quot; id=&quot;l7398&quot;&gt;   7398&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2298&amp;quot; id=&amp;quot;h4-0-2298&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),cooked:this.value},this.next(),r.tail=this.type===R.backQuote,this.finishNode(r,&amp;amp;quot;TemplateElement&amp;amp;quot;)};Oe.parseTemplate=function(i){i===void 0&amp;amp;amp;&amp;amp;amp;(i={});var t=i.isTagged;t===void 0&amp;amp;amp;&amp;amp;amp;(t=!1);var r=this.startNode();this.next(),r.expressions=[];var n=this.parseTemplateElement({isTagged:t});for(r.quasis=[n];!n.tail;)this.type===R.eof&amp;amp;amp;&amp;amp;amp;this.raise(this.pos,&amp;amp;quot;Unterminated template literal&amp;amp;quot;),this.expect(R.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(R.braceR),r.quasis.push(n=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,&amp;amp;quot;TemplateLiteral&amp;amp;quot;)};Oe.isAsyncProp=function(i){return!i.computed&amp;amp;amp;&amp;amp;amp;i.key.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.key.name===&amp;amp;quot;async&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(this.type===R.name||this.type===R.num||this.type===R.string||this.type===R.bracketL||this.type.keyword||this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;this.type===R.star)&amp;amp;amp;&amp;amp;amp;!Qt.test(this.input.slice(this.lastTokEnd,this.start))};Oe.parseObj=function(i,t){var r=this.startNode(),n=!0,s={};for(r.properties=[],this.next();!this.eat(R.braceR);){if(n)n=!1;else if(this.expect(R.comma),this.options.ecmaVersion&amp;amp;gt;=5&amp;amp;amp;&amp;amp;amp;this.afterTrailingComma(R.braceR))break;var a=this.parseProperty(i,t);i||this.checkPropClash(a,s,t),r.properties.push(a)}return this.finishNode(r,i?&amp;amp;quot;ObjectPattern&amp;amp;quot;:&amp;amp;quot;ObjectExpression&amp;amp;quot;)};Oe.parseProperty=function(i,t){var r=this.startNode(),n,s,a,o;if(this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;this.eat(R.ellipsis))return i?(r.argument=this.parseIdent(!1),this.type===R.comma&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.start,&amp;amp;quot;Comma is not permitted after the rest element&amp;amp;quot;),this.finishNode(r,&amp;amp;quot;RestElement&amp;amp;quot;)):(r.argument=this.parseMaybeAssign(!1,t),this.type===R.comma&amp;amp;amp;&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;t.trailingComma&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(t.trailingComma=this.start),this.finishNode(r,&amp;amp;quot;SpreadElement&amp;amp;quot;));this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;(r.method=!1,r.shorthand=!1,(i||t)&amp;amp;amp;&amp;amp;amp;(a=this.start,o=this.startLoc),i||(n=this.eat(R.star)));var u=this.containsEsc;return this.parsePropertyName(r),!i&amp;amp;amp;&amp;amp;amp;!u&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;!n&amp;amp;amp;&amp;amp;amp;this.isAsyncProp(r)?(s=!0,n=this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;this.eat(R.star),this.parsePropertyName(r)):s=!1,this.parsePropertyValue(r,i,n,s,a,o,t,u),this.finishNode(r,&amp;amp;quot;Property&amp;amp;quot;)};Oe.parseGetterSetter=function(i){var t=i.key.name;this.parsePropertyName(i),i.value=this.parseMethod(!1),i.kind=t;var r=i.kind===&amp;amp;quot;get&amp;amp;quot;?0:1;if(i.value.params.length!==r){var n=i.value.start;i.kind===&amp;amp;quot;get&amp;amp;quot;?this.raiseRecoverable(n,&amp;amp;quot;getter should have no params&amp;amp;quot;):this.raiseRecoverable(n,&amp;amp;quot;setter should have exactly one param&amp;amp;quot;)}else i.kind===&amp;amp;quot;set&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.value.params[0].type===&amp;amp;quot;RestElement&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.value.params[0].start,&amp;amp;quot;Setter cannot use rest params&amp;amp;quot;)};Oe.parsePropertyValue=function(i,t,r,n,s,a,o,u){(r||n)&amp;amp;amp;&amp;amp;amp;this.type===R.colon&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.eat(R.colon)?(i.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),i.kind=&amp;amp;quot;init&amp;amp;quot;):this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;this.type===R.parenL?(t&amp;amp;amp;&amp;amp;amp;this.unexpected(),i.method=!0,i.value=this.parseMethod(r,n),i.kind=&amp;amp;quot;init&amp;amp;quot;):!t&amp;amp;amp;&amp;amp;amp;!u&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=5&amp;amp;amp;&amp;amp;amp;!i.computed&amp;amp;amp;&amp;amp;amp;i.key.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(i.key.name===&amp;amp;quot;get&amp;amp;quot;||i.key.name===&amp;amp;quot;set&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.type!==R.comma&amp;amp;amp;&amp;amp;amp;this.type!==R.braceR&amp;amp;amp;&amp;amp;amp;this.type!==R.eq?((r||n)&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.parseGetterSetter(i)):this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;!i.computed&amp;amp;amp;&amp;amp;amp;i.key.type===&amp;amp;quot;Identifier&amp;amp;quot;?((r||n)&amp;amp;amp;&amp;amp;amp;this.unexpected(),this.checkUnreserved(i.key),i.key.name===&amp;amp;quot;await&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!this.awaitIdentPos&amp;amp;amp;&amp;amp;amp;(this.awaitIdentPos=s),t?i.value=this.parseMaybeDefault(s,a,this.copyNode(i.key)):this.type===R.eq&amp;amp;amp;&amp;amp;amp;o?(o.shorthandAssign&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(o.shorthandAssign=this.start),i.value=this.parseMaybeDefault(s,a,this.copyNode(i.key))):i.value=this.copyNode(i.key),i.kind=&amp;amp;quot;init&amp;amp;quot;,i.shorthand=!0):this.unexpected()};Oe.parsePropertyName=function(i){if(this.options.ecmaVersion&amp;amp;gt;=6){if(this.eat(R.bracketL))return i.computed=!0,i.key=this.parseMaybeAssign(),this.expect(R.bracketR),i.key;i.computed=!1}return i.key=this.type===R.num||this.type===R.string?this.parseExprAtom():this.parseIdent(this.options.allowReserved!==&amp;amp;quot;never&amp;amp;quot;)};Oe.initFunction=function(i){i.id=null,this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;(i.generator=i.expression=!1),this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;(i.async=!1)};Oe.parseMethod=function(i,t,r){var n=this.startNode(),s=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(n),this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;(n.generator=i),this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;(n.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(Ff(t,n.generator)|Tl|(r?Y0:0)),this.expect(R.parenL),n.params=this.parseBindingList(R.parenR,!1,this.options.ecmaVersion&amp;amp;gt;=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1,!0,!1),this.yieldPos=s,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(n,&amp;amp;quot;FunctionExpression&amp;amp;quot;)};Oe.parseArrowExpression=function(i,t,r,n){var s=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(Ff(r,!1)|Df),this.initFunction(i),this.options.ecmaVersion&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;(i.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,i.params=this.toAssignableList(t,!0),this.parseFunctionBody(i,!0,!1,n),this.yieldPos=s,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(i,&amp;amp;quot;ArrowFunctionExpression&amp;amp;quot;)};Oe.parseFunctionBody=function(i,t,r,n){var s=t&amp;amp;amp;&amp;amp;amp;this.type!==R.braceL,a=this.strict,o=!1;if(s)i.body=this.parseMaybeAssign(n),i.expression=!0,this.checkParams(i,!1);else{var u=this.options.ecmaVersion&amp;amp;gt;=7&amp;amp;amp;&amp;amp;amp;!this.isSimpleParamList(i.params);(!a||u)&amp;amp;amp;&amp;amp;amp;(o=this.strictDirective(this.end),o&amp;amp;amp;&amp;amp;amp;u&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(i.start,&amp;amp;quot;Illegal &amp;amp;#39;use strict&amp;amp;#39; directive in function with non-simple parameter list&amp;amp;quot;));var h=this.labels;this.labels=[],o&amp;amp;amp;&amp;amp;amp;(this.strict=!0),this.checkParams(i,!a&amp;amp;amp;&amp;amp;amp;!o&amp;amp;amp;&amp;amp;amp;!t&amp;amp;amp;&amp;amp;amp;!r&amp;amp;amp;&amp;amp;amp;this.isSimpleParamList(i.params)),this.strict&amp;amp;amp;&amp;amp;amp;i.id&amp;amp;amp;&amp;amp;amp;this.checkLValSimple(i.id,J0),i.body=this.parseBlock(!1,void 0,o&amp;amp;amp;&amp;amp;amp;!a),i.expression=!1,this.adaptDirectivePrologue(i.body.body),this.labels=h}this.exitScope()};Oe.isSimpleParamList=function(i){for(var t=0,r=i;t&amp;amp;lt;r.length;t+=1){var n=r[t];if(n.type!==&amp;amp;quot;Identifier&amp;amp;quot;)return!1}return!0};Oe.checkParams=function(i,t){for(var r=Object.create(null),n=0,s=i.params;n&amp;amp;lt;s.length;n+=1){var a=s[n];this.checkLValInnerPattern(a,Tf,t?null:r)}};Oe.parseExprList=function(i,t,r,n){for(var s=[],a=!0;!this.eat(i);){if(a)a=!1;else if(this.expect(R.comma),t&amp;amp;amp;&amp;amp;amp;this.afterTrailingComma(i))break;var o=void 0;r&amp;amp;amp;&amp;amp;amp;this.type===R.comma?o=null:this.type===R.ellipsis?(o=this.parseSpread(n),n&amp;amp;amp;&amp;amp;amp;this.type===R.comma&amp;amp;amp;&amp;amp;amp;n.trailingComma&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(n.trailingComma=this.start)):o=this.parseMaybeAssign(!1,n),s.push(o)}return s};Oe.checkUnreserved=function(i){var t=i.start,r=i.end,n=i.name;if(this.inGenerator&amp;amp;amp;&amp;amp;amp;n===&amp;amp;quot;yield&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(t,&amp;amp;quot;Cannot use &amp;amp;#39;yield&amp;amp;#39; as identifier inside a generator&amp;amp;quot;),this.inAsync&amp;amp;amp;&amp;amp;amp;n===&amp;amp;quot;await&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(t,&amp;amp;quot;Cannot use &amp;amp;#39;await&amp;amp;#39; as identifier inside an async function&amp;amp;quot;),!(this.currentThisScope().flags&amp;amp;amp;Nl)&amp;amp;amp;&amp;amp;amp;n===&amp;amp;quot;arguments&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(t,&amp;amp;quot;Cannot use &amp;amp;#39;arguments&amp;amp;#39; in class field initializer&amp;amp;quot;),this.inClassStaticBlock&amp;amp;amp;&amp;amp;amp;(n===&amp;amp;quot;arguments&amp;amp;quot;||n===&amp;amp;quot;await&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.raise(t,&amp;amp;quot;Cannot use &amp;amp;quot;+n+&amp;amp;quot; in class static initialization block&amp;amp;quot;),this.keywords.test(n)&amp;amp;amp;&amp;amp;amp;this.raise(t,&amp;amp;quot;Unexpected keyword &amp;amp;#39;&amp;amp;quot;+n+&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;),!(this.options.ecmaVersion&amp;amp;lt;6&amp;amp;amp;&amp;amp;amp;this.input.slice(t,r).indexOf(&amp;amp;quot;\\&amp;amp;quot;)!==-1)){var s=this.strict?this.reservedWordsStrict:this.reservedWords;s.test(n)&amp;amp;amp;&amp;amp;amp;(!this.inAsync&amp;amp;amp;&amp;amp;amp;n===&amp;amp;quot;await&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(t,&amp;amp;quot;Cannot use keyword &amp;amp;#39;await&amp;amp;#39; outside an async function&amp;amp;quot;),this.raiseRecoverable(t,&amp;amp;quot;The keyword &amp;amp;#39;&amp;amp;quot;+n+&amp;amp;quot;&amp;amp;#39; is reserved&amp;amp;quot;))}};Oe.parseIdent=function(i){var t=this.parseIdentNode();return this.next(!!i),this.finishNode(t,&amp;amp;quot;Identifier&amp;amp;quot;),i||(this.checkUnreserved(t),t.name===&amp;amp;quot;await&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!this.awaitIdentPos&amp;amp;amp;&amp;amp;amp;(this.awaitIdentPos=t.start)),t};Oe.parseIdentNode=function(){var i=this.startNode();return this.type===R.name?i.name=this.value:this.type.keyword?(i.name=this.type.keyword,(i.name===&amp;amp;quot;class&amp;amp;quot;||i.name===&amp;amp;quot;function&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(this.lastTokEnd!==this.lastTokStart+1||this.input.charCodeAt(this.lastTokStart)!==46)&amp;amp;amp;&amp;amp;amp;this.context.pop(),this.type=R.name):this.unexpected(),i};Oe.parsePrivateIdent=function(){var i=this.startNode();return this.type===R.privateId?i.name=this.value:this.unexpected(),this.next(),this.finishNode(i,&amp;amp;quot;PrivateIdentifier&amp;amp;quot;),this.options.checkPrivateFields&amp;amp;amp;&amp;amp;amp;(this.privateNameStack.length===0?this.raise(i.start,&amp;amp;quot;Private field &amp;amp;#39;#&amp;amp;quot;+i.name+&amp;amp;quot;&amp;amp;#39; must be declared in an enclosing class&amp;amp;quot;):this.privateNameStack[this.privateNameStack.length-1].used.push(i)),i};Oe.parseYield=function(i){this.yieldPos||(this.yieldPos=this.start);var t=this.startNode();return this.next(),this.type===R.semi||this.canInsertSemicolon()||this.type!==R.star&amp;amp;amp;&amp;amp;amp;!this.type.startsExpr?(t.delegate=!1,t.argument=null):(t.delegate=this.eat(R.star),t.argument=this.parseMaybeAssign(i)),this.finishNode(t,&amp;amp;quot;YieldExpression&amp;amp;quot;)};Oe.parseAwait=function(i){this.awaitPos||(this.awaitPos=this.start);var t=this.startNode();return this.next(),t.argument=this.parseMaybeUnary(null,!0,!1,i),this.finishNode(t,&amp;amp;quot;AwaitExpression&amp;amp;quot;)};var Al=Dt.prototype;Al.raise=function(i,t){var r=W0(this.input,i);t+=&amp;amp;quot; (&amp;amp;quot;+r.line+&amp;amp;quot;:&amp;amp;quot;+r.column+&amp;amp;quot;)&amp;amp;quot;,this.sourceFile&amp;amp;amp;&amp;amp;amp;(t+=&amp;amp;quot; in &amp;amp;quot;+this.sourceFile);var n=new SyntaxError(t);throw n.pos=i,n.loc=r,n.raisedAt=this.pos,n};Al.raiseRecoverable=Al.raise;Al.curPosition=function(){if(this.options.locations)return new wo(this.curLine,this.pos-this.lineStart)};var tn=Dt.prototype,p2=function(t){this.flags=t,this.var=[],this.lexical=[],this.functions=[]};tn.enterScope=function(i){this.scopeStack.push(new p2(i))};tn.exitScope=function(){this.scopeStack.pop()};tn.treatFunctionsAsVarInScope=function(i){return i.flags&amp;amp;amp;Zs||!this.inModule&amp;amp;amp;&amp;amp;amp;i.flags&amp;amp;amp;Co};tn.declareName=function(i,t,r){var n=!1;if(t===Ti){var s=this.currentScope();n=s.lexical.indexOf(i)&amp;amp;gt;-1||s.functions.indexOf(i)&amp;amp;gt;-1||s.var.indexOf(i)&amp;amp;gt;-1,s.lexical.push(i),this.inModule&amp;amp;amp;&amp;amp;amp;s.flags&amp;amp;amp;Co&amp;amp;amp;&amp;amp;amp;delete this.undefinedExports[i]}else if(t===K0){var a=this.currentScope();a.lexical.push(i)}else if(t===X0){var o=this.currentScope();this.treatFunctionsAsVar?n=o.lexical.indexOf(i)&amp;amp;gt;-1:n=o.lexical.indexOf(i)&amp;amp;gt;-1||o.var.indexOf(i)&amp;amp;gt;-1,o.functions.push(i)}else for(var u=this.scopeStack.length-1;u&amp;amp;gt;=0;--u){var h=this.scopeStack[u];if(h.lexical.indexOf(i)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;!(h.flags&amp;amp;amp;Z0&amp;amp;amp;&amp;amp;amp;h.lexical[0]===i)||!this.treatFunctionsAsVarInScope(h)&amp;amp;amp;&amp;amp;amp;h.functions.indexOf(i)&amp;amp;gt;-1){n=!0;break}if(h.var.push(i),this.inModule&amp;amp;amp;&amp;amp;amp;h.flags&amp;amp;amp;Co&amp;amp;amp;&amp;amp;amp;delete this.undefinedExports[i],h.flags&amp;amp;amp;Nl)break}n&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(r,&amp;amp;quot;Identifier &amp;amp;#39;&amp;amp;quot;+i+&amp;amp;quot;&amp;amp;#39; has already been declared&amp;amp;quot;)};tn.checkLocalExport=function(i){this.scopeStack[0].lexical.indexOf(i.name)===-1&amp;amp;amp;&amp;amp;amp;this.scopeStack[0].var.indexOf(i.name)===-1&amp;amp;amp;&amp;amp;amp;(this.undefinedExports[i.name]=i)};tn.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]};tn.currentVarScope=function(){for(var i=this.scopeStack.length-1;;i--){var t=this.scopeStack[i];if(t.flags&amp;amp;amp;(Nl|Eo|Vn))return t}};tn.currentThisScope=function(){for(var i=this.scopeStack.length-1;;i--){var t=this.scopeStack[i];if(t.flags&amp;amp;amp;(Nl|Eo|Vn)&amp;amp;amp;&amp;amp;amp;!(t.flags&amp;amp;amp;Df))return t}};var kl=function(t,r,n){this.type=&amp;amp;quot;&amp;amp;quot;,this.start=r,this.end=0,t.options.locations&amp;amp;amp;&amp;amp;amp;(this.loc=new Fl(t,n)),t.options.directSourceFile&amp;amp;amp;&amp;amp;amp;(this.sourceFile=t.options.directSourceFile),t.options.ranges&amp;amp;amp;&amp;amp;amp;(this.range=[r,0])},So=Dt.prototype;So.startNode=function(){return new kl(this,this.start,this.startLoc)};So.startNodeAt=function(i,t){return new kl(this,i,t)};function tg(i,t,r,n){return i.type=t,i.end=r,this.options.locations&amp;amp;amp;&amp;amp;amp;(i.loc.end=n),this.options.ranges&amp;amp;amp;&amp;amp;amp;(i.range[1]=r),i}So.finishNode=function(i,t){return tg.call(this,i,t,this.lastTokEnd,this.lastTokEndLoc)};So.finishNodeAt=function(i,t,r,n){return tg.call(this,i,t,r,n)};So.copyNode=function(i){var t=new kl(this,i.start,this.startLoc);for(var r in i)t[r]=i[r];return t};var d2=&amp;amp;quot;Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz&amp;amp;quot;,rg=&amp;amp;quot;ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS&amp;amp;quot;,ig=rg+&amp;amp;quot; Extended_Pictographic&amp;amp;quot;,ng=ig,sg=ng+&amp;amp;quot; EBase EComp EMod EPres ExtPict&amp;amp;quot;,ag=sg,m2=ag,g2={9:rg,10:ig,11:ng,12:sg,13:ag,14:m2},y2=&amp;amp;quot;Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji&amp;amp;quot;,v2={9:&amp;amp;quot;&amp;amp;quot;,10:&amp;amp;quot;&amp;amp;quot;,11:&amp;amp;quot;&amp;amp;quot;,12:&amp;amp;quot;&amp;amp;quot;,13:&amp;amp;quot;&amp;amp;quot;,14:y2},V0=&amp;amp;quot;Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu&amp;amp;quot;,og=&amp;amp;quot;Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb&amp;amp;quot;,ug=og+&amp;amp;quot; Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd&amp;amp;quot;,lg=ug+&amp;amp;quot; Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho&amp;amp;quot;,hg=lg+&amp;amp;quot; Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi&amp;amp;quot;,cg=hg+&amp;amp;quot; Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith&amp;amp;quot;,x2=cg+&amp;amp;quot; &amp;amp;quot;+d2,b2={9:og,10:ug,11:lg,12:hg,13:cg,14:x2},fg={};function _2(i){var t=fg[i]={binary:Qi(g2[i]+&amp;amp;quot; &amp;amp;quot;+V0),binaryOfStrings:Qi(v2[i]),nonBinary:{General_Category:Qi(V0),Script:Qi(b2[i])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(Cl=0,bf=[9,10,11,12,13,14];Cl&amp;amp;lt;bf.length;Cl+=1)U0=bf[Cl],_2(U0);var U0,Cl,bf,Ae=Dt.prototype,Dl=function(t,r){this.parent=t,this.base=r||this};Dl.prototype.separatedFrom=function(t){for(var r=this;r;r=r.parent)for(var n=t;n;n=n.parent)if(r.base===n.base&amp;amp;amp;&amp;amp;amp;r!==n)return!0;return!1};Dl.prototype.sibling=function(){return new Dl(this.parent,this.base)};var ai=function(t){this.parser=t,this.validFlags=&amp;amp;quot;gim&amp;amp;quot;+(t.options.ecmaVersion&amp;amp;gt;=6?&amp;amp;quot;uy&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;)+(t.options.ecmaVersion&amp;amp;gt;=9?&amp;amp;quot;s&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;)+(t.options.ecmaVersion&amp;amp;gt;=13?&amp;amp;quot;d&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;)+(t.options.ecmaVersion&amp;amp;gt;=15?&amp;amp;quot;v&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;),this.unicodeProperties=fg[t.options.ecmaVersion&amp;amp;gt;=14?14:t.options.ecmaVersion],this.source=&amp;amp;quot;&amp;amp;quot;,this.flags=&amp;amp;quot;&amp;amp;quot;,this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue=&amp;amp;quot;&amp;amp;quot;,this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};ai.prototype.reset=function(t,r,n){var s=n.indexOf(&amp;amp;quot;v&amp;amp;quot;)!==-1,a=n.indexOf(&amp;amp;quot;u&amp;amp;quot;)!==-1;this.start=t|0,this.source=r+&amp;amp;quot;&amp;amp;quot;,this.flags=n,s&amp;amp;amp;&amp;amp;amp;this.parser.options.ecmaVersion&amp;amp;gt;=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=a&amp;amp;amp;&amp;amp;amp;this.parser.options.ecmaVersion&amp;amp;gt;=6,this.switchV=!1,this.switchN=a&amp;amp;amp;&amp;amp;amp;this.parser.options.ecmaVersion&amp;amp;gt;=9)};ai.prototype.raise=function(t){this.parser.raiseRecoverable(this.start,&amp;amp;quot;Invalid regular expression: /&amp;amp;quot;+this.source+&amp;amp;quot;/: &amp;amp;quot;+t)};ai.prototype.at=function(t,r){r===void 0&amp;amp;amp;&amp;amp;amp;(r=!1);var n=this.source,s=n.length;if(t&amp;amp;gt;=s)return-1;var a=n.charCodeAt(t);if(!(r||this.switchU)||a&amp;amp;lt;=55295||a&amp;amp;gt;=57344||t+1&amp;amp;gt;=s)return a;var o=n.charCodeAt(t+1);return o&amp;amp;gt;=56320&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=57343?(a&amp;amp;lt;&amp;amp;lt;10)+o-56613888:a};ai.prototype.nextIndex=function(t,r){r===void 0&amp;amp;amp;&amp;amp;amp;(r=!1);var n=this.source,s=n.length;if(t&amp;amp;gt;=s)return s;var a=n.charCodeAt(t),o;return!(r||this.switchU)||a&amp;amp;lt;=55295||a&amp;amp;gt;=57344||t+1&amp;amp;gt;=s||(o=n.charCodeAt(t+1))&amp;amp;lt;56320||o&amp;amp;gt;57343?t+1:t+2};ai.prototype.current=function(t){return t===void 0&amp;amp;amp;&amp;amp;amp;(t=!1),this.at(this.pos,t)};ai.prototype.lookahead=function(t){return t===void 0&amp;amp;amp;&amp;amp;amp;(t=!1),this.at(this.nextIndex(this.pos,t),t)};ai.prototype.advance=function(t){t===void 0&amp;amp;amp;&amp;amp;amp;(t=!1),this.pos=this.nextIndex(this.pos,t)};ai.prototype.eat=function(t,r){return r===void 0&amp;amp;amp;&amp;amp;amp;(r=!1),this.current(r)===t?(this.advance(r),!0):!1};ai.prototype.eatChars=function(t,r){r===void 0&amp;amp;amp;&amp;amp;amp;(r=!1);for(var n=this.pos,s=0,a=t;s&amp;amp;lt;a.length;s+=1){var o=a[s],u=this.at(n,r);if(u===-1||u!==o)return!1;n=this.nextIndex(n,r)}return this.pos=n,!0};Ae.validateRegExpFlags=function(i){for(var t=i.validFlags,r=i.flags,n=!1,s=!1,a=0;a&amp;amp;lt;r.length;a++){var o=r.charAt(a);t.indexOf(o)===-1&amp;amp;amp;&amp;amp;amp;this.raise(i.start,&amp;amp;quot;Invalid regular expression flag&amp;amp;quot;),r.indexOf(o,a+1)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;this.raise(i.start,&amp;amp;quot;Duplicate regular expression flag&amp;amp;quot;),o===&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=!0),o===&amp;amp;quot;v&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s=!0)}this.options.ecmaVersion&amp;amp;gt;=15&amp;amp;amp;&amp;amp;amp;n&amp;amp;amp;&amp;amp;amp;s&amp;amp;amp;&amp;amp;amp;this.raise(i.start,&amp;amp;quot;Invalid regular expression flag&amp;amp;quot;)};function w2(i){for(var t in i)return!0;return!1}Ae.validateRegExpPattern=function(i){this.regexp_pattern(i),!i.switchN&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;w2(i.groupNames)&amp;amp;amp;&amp;amp;amp;(i.switchN=!0,this.regexp_pattern(i))};Ae.regexp_pattern=function(i){i.pos=0,i.lastIntValue=0,i.lastStringValue=&amp;amp;quot;&amp;amp;quot;,i.lastAssertionIsQuantifiable=!1,i.numCapturingParens=0,i.maxBackReference=0,i.groupNames=Object.create(null),i.backReferenceNames.length=0,i.branchID=null,this.regexp_disjunction(i),i.pos!==i.source.length&amp;amp;amp;&amp;amp;amp;(i.eat(41)&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Unmatched &amp;amp;#39;)&amp;amp;#39;&amp;amp;quot;),(i.eat(93)||i.eat(125))&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Lone quantifier brackets&amp;amp;quot;)),i.maxBackReference&amp;amp;gt;i.numCapturingParens&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid escape&amp;amp;quot;);for(var t=0,r=i.backReferenceNames;t&amp;amp;lt;r.length;t+=1){var n=r[t];i.groupNames[n]||i.raise(&amp;amp;quot;Invalid named capture referenced&amp;amp;quot;)}};Ae.regexp_disjunction=function(i){var t=this.options.ecmaVersion&amp;amp;gt;=16;for(t&amp;amp;amp;&amp;amp;amp;(i.branchID=new Dl(i.branchID,null)),this.regexp_alternative(i);i.eat(124);)t&amp;amp;amp;&amp;amp;amp;(i.branchID=i.branchID.sibling()),this.regexp_alternative(i);t&amp;amp;amp;&amp;amp;amp;(i.branchID=i.branchID.parent),this.regexp_eatQuantifier(i,!0)&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Nothing to repeat&amp;amp;quot;),i.eat(123)&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Lone quantifier brackets&amp;amp;quot;)};Ae.regexp_alternative=function(i){for(;i.pos&amp;amp;lt;i.source.length&amp;amp;amp;&amp;amp;amp;this.regexp_eatTerm(i););};Ae.regexp_eatTerm=function(i){return this.regexp_eatAssertion(i)?(i.lastAssertionIsQuantifiable&amp;amp;amp;&amp;amp;amp;this.regexp_eatQuantifier(i)&amp;amp;amp;&amp;amp;amp;i.switchU&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid quantifier&amp;amp;quot;),!0):(i.switchU?this.regexp_eatAtom(i):this.regexp_eatExtendedAtom(i))?(this.regexp_eatQuantifier(i),!0):!1};Ae.regexp_eatAssertion=function(i){var t=i.pos;if(i.lastAssertionIsQuantifiable=!1,i.eat(94)||i.eat(36))return!0;if(i.eat(92)){if(i.eat(66)||i.eat(98))return!0;i.pos=t}if(i.eat(40)&amp;amp;amp;&amp;amp;amp;i.eat(63)){var r=!1;if(this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;(r=i.eat(60)),i.eat(61)||i.eat(33))return this.regexp_disjunction(i),i.eat(41)||i.raise(&amp;amp;quot;Unterminated group&amp;amp;quot;),i.lastAssertionIsQuantifiable=!r,!0}return i.pos=t,!1};Ae.regexp_eatQuantifier=function(i,t){return t===void 0&amp;amp;amp;&amp;amp;amp;(t=!1),this.regexp_eatQuantifierPrefix(i,t)?(i.eat(63),!0):!1};Ae.regexp_eatQuantifierPrefix=function(i,t){return i.eat(42)||i.eat(43)||i.eat(63)||this.regexp_eatBracedQuantifier(i,t)};Ae.regexp_eatBracedQuantifier=function(i,t){var r=i.pos;if(i.eat(123)){var n=0,s=-1;if(this.regexp_eatDecimalDigits(i)&amp;amp;amp;&amp;amp;amp;(n=i.lastIntValue,i.eat(44)&amp;amp;amp;&amp;amp;amp;this.regexp_eatDecimalDigits(i)&amp;amp;amp;&amp;amp;amp;(s=i.lastIntValue),i.eat(125)))return s!==-1&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;n&amp;amp;amp;&amp;amp;amp;!t&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;numbers out of order in {} quantifier&amp;amp;quot;),!0;i.switchU&amp;amp;amp;&amp;amp;amp;!t&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Incomplete quantifier&amp;amp;quot;),i.pos=r}return!1};Ae.regexp_eatAtom=function(i){return this.regexp_eatPatternCharacters(i)||i.eat(46)||this.regexp_eatReverseSolidusAtomEscape(i)||this.regexp_eatCharacterClass(i)||this.regexp_eatUncapturingGroup(i)||this.regexp_eatCapturingGroup(i)};Ae.regexp_eatReverseSolidusAtomEscape=function(i){var t=i.pos;if(i.eat(92)){if(this.regexp_eatAtomEscape(i))return!0;i.pos=t}return!1};Ae.regexp_eatUncapturingGroup=function(i){var t=i.pos;if(i.eat(40)){if(i.eat(63)){if(this.options.ecmaVersion&amp;amp;gt;=16){var r=this.regexp_eatModifiers(i),n=i.eat(45);if(r||n){for(var s=0;s&amp;amp;lt;r.length;s++){var a=r.charAt(s);r.indexOf(a,s+1)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Duplicate regular expression modifiers&amp;amp;quot;)}if(n){var o=this.regexp_eatModifiers(i);!r&amp;amp;amp;&amp;amp;amp;!o&amp;amp;amp;&amp;amp;amp;i.current()===58&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid regular expression modifiers&amp;amp;quot;);for(var u=0;u&amp;amp;lt;o.length;u++){var h=o.charAt(u);(o.indexOf(h,u+1)&amp;amp;gt;-1||r.indexOf(h)&amp;amp;gt;-1)&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Duplicate regular expression modifiers&amp;amp;quot;)}}}}if(i.eat(58)){if(this.regexp_disjunction(i),i.eat(41))return!0;i.raise(&amp;amp;quot;Unterminated group&amp;amp;quot;)}}i.pos=t}return!1};Ae.regexp_eatCapturingGroup=function(i){if(i.eat(40)){if(this.options.ecmaVersion&amp;amp;gt;=9?this.regexp_groupSpecifier(i):i.current()===63&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid group&amp;amp;quot;),this.regexp_disjunction(i),i.eat(41))return i.numCapturingParens+=1,!0;i.raise(&amp;amp;quot;Unterminated group&amp;amp;quot;)}return!1};Ae.regexp_eatModifiers=function(i){for(var t=&amp;amp;quot;&amp;amp;quot;,r=0;(r=i.current())!==-1&amp;amp;amp;&amp;amp;amp;C2(r);)t+=Di(r),i.advance();return t};function C2(i){return i===105||i===109||i===115}Ae.regexp_eatExtendedAtom=function(i){return i.eat(46)||this.regexp_eatReverseSolidusAtomEscape(i)||this.regexp_eatCharacterClass(i)||this.regexp_eatUncapturingGroup(i)||this.regexp_eatCapturingGroup(i)||this.regexp_eatInvalidBracedQuantifier(i)||this.regexp_eatExtendedPatternCharacter(i)};Ae.regexp_eatInvalidBracedQuantifier=function(i){return this.regexp_eatBracedQuantifier(i,!0)&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Nothing to repeat&amp;amp;quot;),!1};Ae.regexp_eatSyntaxCharacter=function(i){var t=i.current();return pg(t)?(i.lastIntValue=t,i.advance(),!0):!1};function pg(i){return i===36||i&amp;amp;gt;=40&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=43||i===46||i===63||i&amp;amp;gt;=91&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=94||i&amp;amp;gt;=123&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=125}Ae.regexp_eatPatternCharacters=function(i){for(var t=i.pos,r=0;(r=i.current())!==-1&amp;amp;amp;&amp;amp;amp;!pg(r);)i.advance();return i.pos!==t};Ae.regexp_eatExtendedPatternCharacter=function(i){var t=i.current();return t!==-1&amp;amp;amp;&amp;amp;amp;t!==36&amp;amp;amp;&amp;amp;amp;!(t&amp;amp;gt;=40&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;=43)&amp;amp;amp;&amp;amp;amp;t!==46&amp;amp;amp;&amp;amp;amp;t!==63&amp;amp;amp;&amp;amp;amp;t!==91&amp;amp;amp;&amp;amp;amp;t!==94&amp;amp;amp;&amp;amp;amp;t!==124?(i.advance(),!0):!1};Ae.regexp_groupSpecifier=function(i){if(i.eat(63)){this.regexp_eatGroupName(i)||i.raise(&amp;amp;quot;Invalid group&amp;amp;quot;);var t=this.options.ecmaVersion&amp;amp;gt;=16,r=i.groupNames[i.lastStringValue];if(r)if(t)for(var n=0,s=r;n&amp;amp;lt;s.length;n+=1){var a=s[n];a.separatedFrom(i.branchID)||i.raise(&amp;amp;quot;Duplicate capture group name&amp;amp;quot;)}else i.raise(&amp;amp;quot;Duplicate capture group name&amp;amp;quot;);t?(r||(i.groupNames[i.lastStringValue]=[])).push(i.branchID):i.groupNames[i.lastStringValue]=!0}};Ae.regexp_eatGroupName=function(i){if(i.lastStringValue=&amp;amp;quot;&amp;amp;quot;,i.eat(60)){if(this.regexp_eatRegExpIdentifierName(i)&amp;amp;amp;&amp;amp;amp;i.eat(62))return!0;i.raise(&amp;amp;quot;Invalid capture group name&amp;amp;quot;)}return!1};Ae.regexp_eatRegExpIdentifierName=function(i){if(i.lastStringValue=&amp;amp;quot;&amp;amp;quot;,this.regexp_eatRegExpIdentifierStart(i)){for(i.lastStringValue+=Di(i.lastIntValue);this.regexp_eatRegExpIdentifierPart(i);)i.lastStringValue+=Di(i.lastIntValue);return!0}return!1};Ae.regexp_eatRegExpIdentifierStart=function(i){var t=i.pos,r=this.options.ecmaVersion&amp;amp;gt;=11,n=i.current(r);return i.advance(r),n===92&amp;amp;amp;&amp;amp;amp;this.regexp_eatRegExpUnicodeEscapeSequence(i,r)&amp;amp;amp;&amp;amp;amp;(n=i.lastIntValue),E2(n)?(i.lastIntValue=n,!0):(i.pos=t,!1)};function E2(i){return ni(i,!0)||i===36||i===95}Ae.regexp_eatRegExpIdentifierPart=function(i){var t=i.pos,r=this.options.ecmaVersion&amp;amp;gt;=11,n=i.current(r);return i.advance(r),n===92&amp;amp;amp;&amp;amp;amp;this.regexp_eatRegExpUnicodeEscapeSequence(i,r)&amp;amp;amp;&amp;amp;amp;(n=i.lastIntValue),S2(n)?(i.lastIntValue=n,!0):(i.pos=t,!1)};function S2(i){return en(i,!0)||i===36||i===95||i===8204||i===8205}Ae.regexp_eatAtomEscape=function(i){return this.regexp_eatBackReference(i)||this.regexp_eatCharacterClassEscape(i)||this.regexp_eatCharacterEscape(i)||i.switchN&amp;amp;amp;&amp;amp;amp;this.regexp_eatKGroupName(i)?!0:(i.switchU&amp;amp;amp;&amp;amp;amp;(i.current()===99&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid unicode escape&amp;amp;quot;),i.raise(&amp;amp;quot;Invalid escape&amp;amp;quot;)),!1)};Ae.regexp_eatBackReference=function(i){var t=i.pos;if(this.regexp_eatDecimalEscape(i)){var r=i.lastIntValue;if(i.switchU)return r&amp;amp;gt;i.maxBackReference&amp;amp;amp;&amp;amp;amp;(i.maxBackReference=r),!0;if(r&amp;amp;lt;=i.numCapturingParens)return!0;i.pos=t}return!1};Ae.regexp_eatKGroupName=function(i){if(i.eat(107)){if(this.regexp_eatGroupName(i))return i.backReferenceNames.push(i.lastStringValue),!0;i.raise(&amp;amp;quot;Invalid named reference&amp;amp;quot;)}return!1};Ae.regexp_eatCharacterEscape=function(i){return this.regexp_eatControlEscape(i)||this.regexp_eatCControlLetter(i)||this.regexp_eatZero(i)||this.regexp_eatHexEscapeSequence(i)||this.regexp_eatRegExpUnicodeEscapeSequence(i,!1)||!i.switchU&amp;amp;amp;&amp;amp;amp;this.regexp_eatLegacyOctalEscapeSequence(i)||this.regexp_eatIdentityEscape(i)};Ae.regexp_eatCControlLetter=function(i){var t=i.pos;if(i.eat(99)){if(this.regexp_eatControlLetter(i))return!0;i.pos=t}return!1};Ae.regexp_eatZero=function(i){return i.current()===48&amp;amp;amp;&amp;amp;amp;!Ml(i.lookahead())?(i.lastIntValue=0,i.advance(),!0):!1};Ae.regexp_eatControlEscape=function(i){var t=i.current();return t===116?(i.lastIntValue=9,i.advance(),!0):t===110?(i.lastIntValue=10,i.advance(),!0):t===118?(i.lastIntValue=11,i.advance(),!0):t===102?(i.lastIntValue=12,i.advance(),!0):t===114?(i.lastIntValue=13,i.advance(),!0):!1};Ae.regexp_eatControlLetter=function(i){var t=i.current();return dg(t)?(i.lastIntValue=t%32,i.advance(),!0):!1};function dg(i){return i&amp;amp;gt;=65&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=90||i&amp;amp;gt;=97&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=122}Ae.regexp_eatRegExpUnicodeEscapeSequence=function(i,t){t===void 0&amp;amp;amp;&amp;amp;amp;(t=!1);var r=i.pos,n=t||i.switchU;if(i.eat(117)){if(this.regexp_eatFixedHexDigits(i,4)){var s=i.lastIntValue;if(n&amp;amp;amp;&amp;amp;amp;s&amp;amp;gt;=55296&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;=56319){var a=i.pos;if(i.eat(92)&amp;amp;amp;&amp;amp;amp;i.eat(117)&amp;amp;amp;&amp;amp;amp;this.regexp_eatFixedHexDigits(i,4)){var o=i.lastIntValue;if(o&amp;amp;gt;=56320&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=57343)return i.lastIntValue=(s-55296)*1024+(o-56320)+65536,!0}i.pos=a,i.lastIntValue=s}return!0}if(n&amp;amp;amp;&amp;amp;amp;i.eat(123)&amp;amp;amp;&amp;amp;amp;this.regexp_eatHexDigits(i)&amp;amp;amp;&amp;amp;amp;i.eat(125)&amp;amp;amp;&amp;amp;amp;A2(i.lastIntValue))return!0;n&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid unicode escape&amp;amp;quot;),i.pos=r}return!1};function A2(i){return i&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=1114111}Ae.regexp_eatIdentityEscape=function(i){if(i.switchU)return this.regexp_eatSyntaxCharacter(i)?!0:i.eat(47)?(i.lastIntValue=47,!0):!1;var t=i.current();return t!==99&amp;amp;amp;&amp;amp;amp;(!i.switchN||t!==107)?(i.lastIntValue=t,i.advance(),!0):!1};Ae.regexp_eatDecimalEscape=function(i){i.lastIntValue=0;var t=i.current();if(t&amp;amp;gt;=49&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;=57){do i.lastIntValue=10*i.lastIntValue+(t-48),i.advance();while((t=i.current())&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;=57);return!0}return!1};var mg=0,Fi=1,Dr=2;Ae.regexp_eatCharacterClassEscape=function(i){var t=i.current();if(D2(t))return i.lastIntValue=-1,i.advance(),Fi;var r=!1;if(i.switchU&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=9&amp;amp;amp;&amp;amp;amp;((r=t===80)||t===112)){i.lastIntValue=-1,i.advance();var n;if(i.eat(123)&amp;amp;amp;&amp;amp;amp;(n=this.regexp_eatUnicodePropertyValueExpression(i))&amp;amp;amp;&amp;amp;amp;i.eat(125))return r&amp;amp;amp;&amp;amp;amp;n===Dr&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid property name&amp;amp;quot;),n;i.raise(&amp;amp;quot;Invalid property name&amp;amp;quot;)}return mg};function D2(i){return i===100||i===68||i===115||i===83||i===119||i===87}Ae.regexp_eatUnicodePropertyValueExpression=function(i){var t=i.pos;if(this.regexp_eatUnicodePropertyName(i)&amp;amp;amp;&amp;amp;amp;i.eat(61)){var r=i.lastStringValue;if(this.regexp_eatUnicodePropertyValue(i)){var n=i.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(i,r,n),Fi}}if(i.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(i)){var s=i.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(i,s)}return mg};Ae.regexp_validateUnicodePropertyNameAndValue=function(i,t,r){qs(i.unicodeProperties.nonBinary,t)||i.raise(&amp;amp;quot;Invalid property name&amp;amp;quot;),i.unicodeProperties.nonBinary[t].test(r)||i.raise(&amp;amp;quot;Invalid property value&amp;amp;quot;)};Ae.regexp_validateUnicodePropertyNameOrValue=function(i,t){if(i.unicodeProperties.binary.test(t))return Fi;if(i.switchV&amp;amp;amp;&amp;amp;amp;i.unicodeProperties.binaryOfStrings.test(t))return Dr;i.raise(&amp;amp;quot;Invalid property name&amp;amp;quot;)};Ae.regexp_eatUnicodePropertyName=function(i){var t=0;for(i.lastStringValue=&amp;amp;quot;&amp;amp;quot;;gg(t=i.current());)i.lastStringValue+=Di(t),i.advance();return i.lastStringValue!==&amp;amp;quot;&amp;amp;quot;};function gg(i){return dg(i)||i===95}Ae.regexp_eatUnicodePropertyValue=function(i){var t=0;for(i.lastStringValue=&amp;amp;quot;&amp;amp;quot;;F2(t=i.current());)i.lastStringValue+=Di(t),i.advance();return i.lastStringValue!==&amp;amp;quot;&amp;amp;quot;};function F2(i){return gg(i)||Ml(i)}Ae.regexp_eatLoneUnicodePropertyNameOrValue=function(i){return this.regexp_eatUnicodePropertyValue(i)};Ae.regexp_eatCharacterClass=function(i){if(i.eat(91)){var t=i.eat(94),r=this.regexp_classContents(i);return i.eat(93)||i.raise(&amp;amp;quot;Unterminated character class&amp;amp;quot;),t&amp;amp;amp;&amp;amp;amp;r===Dr&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Negated character class may contain strings&amp;amp;quot;),!0}return!1};Ae.regexp_classContents=function(i){return i.current()===93?Fi:i.switchV?this.regexp_classSetExpression(i):(this.regexp_nonEmptyClassRanges(i),Fi)};Ae.regexp_nonEmptyClassRanges=function(i){for(;this.regexp_eatClassAtom(i);){var t=i.lastIntValue;if(i.eat(45)&amp;amp;amp;&amp;amp;amp;this.regexp_eatClassAtom(i)){var r=i.lastIntValue;i.switchU&amp;amp;amp;&amp;amp;amp;(t===-1||r===-1)&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid character class&amp;amp;quot;),t!==-1&amp;amp;amp;&amp;amp;amp;r!==-1&amp;amp;amp;&amp;amp;amp;t&amp;amp;gt;r&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Range out of order in character class&amp;amp;quot;)}}};Ae.regexp_eatClassAtom=function(i){var t=i.pos;if(i.eat(92)){if(this.regexp_eatClassEscape(i))return!0;if(i.switchU){var r=i.current();(r===99||xg(r))&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid class escape&amp;amp;quot;),i.raise(&amp;amp;quot;Invalid escape&amp;amp;quot;)}i.pos=t}var n=i.current();return n!==93?(i.lastIntValue=n,i.advance(),!0):!1};Ae.regexp_eatClassEscape=function(i){var t=i.pos;if(i.eat(98))return i.lastIntValue=8,!0;if(i.switchU&amp;amp;amp;&amp;amp;amp;i.eat(45))return i.lastIntValue=45,!0;if(!i.switchU&amp;amp;amp;&amp;amp;amp;i.eat(99)){if(this.regexp_eatClassControlLetter(i))return!0;i.pos=t}return this.regexp_eatCharacterClassEscape(i)||this.regexp_eatCharacterEscape(i)};Ae.regexp_classSetExpression=function(i){var t=Fi,r;if(!this.regexp_eatClassSetRange(i))if(r=this.regexp_eatClassSetOperand(i)){r===Dr&amp;amp;amp;&amp;amp;amp;(t=Dr);for(var n=i.pos;i.eatChars([38,38]);){if(i.current()!==38&amp;amp;amp;&amp;amp;amp;(r=this.regexp_eatClassSetOperand(i))){r!==Dr&amp;amp;amp;&amp;amp;amp;(t=Fi);continue}i.raise(&amp;amp;quot;Invalid character in character class&amp;amp;quot;)}if(n!==i.pos)return t;for(;i.eatChars([45,45]);)this.regexp_eatClassSetOperand(i)||i.raise(&amp;amp;quot;Invalid character in character class&amp;amp;quot;);if(n!==i.pos)return t}else i.raise(&amp;amp;quot;Invalid character in character class&amp;amp;quot;);for(;;)if(!this.regexp_eatClassSetRange(i)){if(r=this.regexp_eatClassSetOperand(i),!r)return t;r===Dr&amp;amp;amp;&amp;amp;amp;(t=Dr)}};Ae.regexp_eatClassSetRange=function(i){var t=i.pos;if(this.regexp_eatClassSetCharacter(i)){var r=i.lastIntValue;if(i.eat(45)&amp;amp;amp;&amp;amp;amp;this.regexp_eatClassSetCharacter(i)){var n=i.lastIntValue;return r!==-1&amp;amp;amp;&amp;amp;amp;n!==-1&amp;amp;amp;&amp;amp;amp;r&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Range out of order in character class&amp;amp;quot;),!0}i.pos=t}return!1};Ae.regexp_eatClassSetOperand=function(i){return this.regexp_eatClassSetCharacter(i)?Fi:this.regexp_eatClassStringDisjunction(i)||this.regexp_eatNestedClass(i)};Ae.regexp_eatNestedClass=function(i){var t=i.pos;if(i.eat(91)){var r=i.eat(94),n=this.regexp_classContents(i);if(i.eat(93))return r&amp;amp;amp;&amp;amp;amp;n===Dr&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Negated character class may contain strings&amp;amp;quot;),n;i.pos=t}if(i.eat(92)){var s=this.regexp_eatCharacterClassEscape(i);if(s)return s;i.pos=t}return null};Ae.regexp_eatClassStringDisjunction=function(i){var t=i.pos;if(i.eatChars([92,113])){if(i.eat(123)){var r=this.regexp_classStringDisjunctionContents(i);if(i.eat(125))return r}else i.raise(&amp;amp;quot;Invalid escape&amp;amp;quot;);i.pos=t}return null};Ae.regexp_classStringDisjunctionContents=function(i){for(var t=this.regexp_classString(i);i.eat(124);)this.regexp_classString(i)===Dr&amp;amp;amp;&amp;amp;amp;(t=Dr);return t};Ae.regexp_classString=function(i){for(var t=0;this.regexp_eatClassSetCharacter(i);)t++;return t===1?Fi:Dr};Ae.regexp_eatClassSetCharacter=function(i){var t=i.pos;if(i.eat(92))return this.regexp_eatCharacterEscape(i)||this.regexp_eatClassSetReservedPunctuator(i)?!0:i.eat(98)?(i.lastIntValue=8,!0):(i.pos=t,!1);var r=i.current();return r&amp;amp;lt;0||r===i.lookahead()&amp;amp;amp;&amp;amp;amp;T2(r)||N2(r)?!1:(i.advance(),i.lastIntValue=r,!0)};function T2(i){return i===33||i&amp;amp;gt;=35&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=38||i&amp;amp;gt;=42&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=44||i===46||i&amp;amp;gt;=58&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=64||i===94||i===96||i===126}function N2(i){return i===40||i===41||i===45||i===47||i&amp;amp;gt;=91&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=93||i&amp;amp;gt;=123&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=125}Ae.regexp_eatClassSetReservedPunctuator=function(i){var t=i.current();return I2(t)?(i.lastIntValue=t,i.advance(),!0):!1};function I2(i){return i===33||i===35||i===37||i===38||i===44||i===45||i&amp;amp;gt;=58&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=62||i===64||i===96||i===126}Ae.regexp_eatClassControlLetter=function(i){var t=i.current();return Ml(t)||t===95?(i.lastIntValue=t%32,i.advance(),!0):!1};Ae.regexp_eatHexEscapeSequence=function(i){var t=i.pos;if(i.eat(120)){if(this.regexp_eatFixedHexDigits(i,2))return!0;i.switchU&amp;amp;amp;&amp;amp;amp;i.raise(&amp;amp;quot;Invalid escape&amp;amp;quot;),i.pos=t}return!1};Ae.regexp_eatDecimalDigits=function(i){var t=i.pos,r=0;for(i.lastIntValue=0;Ml(r=i.current());)i.lastIntValue=10*i.lastIntValue+(r-48),i.advance();return i.pos!==t};function Ml(i){return i&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=57}Ae.regexp_eatHexDigits=function(i){var t=i.pos,r=0;for(i.lastIntValue=0;yg(r=i.current());)i.lastIntValue=16*i.lastIntValue+vg(r),i.advance();return i.pos!==t};function yg(i){return i&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=57||i&amp;amp;gt;=65&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=70||i&amp;amp;gt;=97&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=102}function vg(i){return i&amp;amp;gt;=65&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=70?10+(i-65):i&amp;amp;gt;=97&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=102?10+(i-97):i-48}Ae.regexp_eatLegacyOctalEscapeSequence=function(i){if(this.regexp_eatOctalDigit(i)){var t=i.lastIntValue;if(this.regexp_eatOctalDigit(i)){var r=i.lastIntValue;t&amp;amp;lt;=3&amp;amp;amp;&amp;amp;amp;this.regexp_eatOctalDigit(i)?i.lastIntValue=t*64+r*8+i.lastIntValue:i.lastIntValue=t*8+r}else i.lastIntValue=t;return!0}return!1};Ae.regexp_eatOctalDigit=function(i){var t=i.current();return xg(t)?(i.lastIntValue=t-48,i.advance(),!0):(i.lastIntValue=0,!1)};function xg(i){return i&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=55}Ae.regexp_eatFixedHexDigits=function(i,t){var r=i.pos;i.lastIntValue=0;for(var n=0;n&amp;amp;lt;t;++n){var s=i.current();if(!yg(s))return i.pos=r,!1;i.lastIntValue=16*i.lastIntValue+vg(s),i.advance()}return!0};var If=function(t){this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,t.options.locations&amp;amp;amp;&amp;amp;amp;(this.loc=new Fl(t,t.startLoc,t.endLoc)),t.options.ranges&amp;amp;amp;&amp;amp;amp;(this.range=[t.start,t.end])},We=Dt.prototype;We.next=function(i){!i&amp;amp;amp;&amp;amp;amp;this.type.keyword&amp;amp;amp;&amp;amp;amp;this.containsEsc&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.start,&amp;amp;quot;Escape sequence in keyword &amp;amp;quot;+this.type.keyword),this.options.onToken&amp;amp;amp;&amp;amp;amp;this.options.onToken(new If(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()};We.getToken=function(){return this.next(),new If(this)};typeof Symbol&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(We[Symbol.iterator]=function(){var i=this;return{next:function(){var t=i.getToken();return{done:t.type===R.eof,value:t}}}});We.nextToken=function(){var i=this.curContext();if((!i||!i.preserveSpace)&amp;amp;amp;&amp;amp;amp;this.skipSpace(),this.start=this.pos,this.options.locations&amp;amp;amp;&amp;amp;amp;(this.startLoc=this.curPosition()),this.pos&amp;amp;gt;=this.input.length)return this.finishToken(R.eof);if(i.override)return i.override(this);this.readToken(this.fullCharCodeAtPos())};We.readToken=function(i){return ni(i,this.options.ecmaVersion&amp;amp;gt;=6)||i===92?this.readWord():this.getTokenFromCode(i)};We.fullCharCodeAtPos=function(){var i=this.input.charCodeAt(this.pos);if(i&amp;amp;lt;=55295||i&amp;amp;gt;=56320)return i;var t=this.input.charCodeAt(this.pos+1);return t&amp;amp;lt;=56319||t&amp;amp;gt;=57344?i:(i&amp;amp;lt;&amp;amp;lt;10)+t-56613888};We.skipBlockComment=function(){var i=this.options.onComment&amp;amp;amp;&amp;amp;amp;this.curPosition(),t=this.pos,r=this.input.indexOf(&amp;amp;quot;*/&amp;amp;quot;,this.pos+=2);if(r===-1&amp;amp;amp;&amp;amp;amp;this.raise(this.pos-2,&amp;amp;quot;Unterminated comment&amp;amp;quot;),this.pos=r+2,this.options.locations)for(var n=void 0,s=t;(n=j0(this.input,s,this.pos))&amp;amp;gt;-1;)++this.curLine,s=this.lineStart=n;this.options.onComment&amp;amp;amp;&amp;amp;amp;this.options.onComment(!0,this.input.slice(t+2,r),t,this.pos,i,this.curPosition())};We.skipLineComment=function(i){for(var t=this.pos,r=this.options.onComment&amp;amp;amp;&amp;amp;amp;this.curPosition(),n=this.input.charCodeAt(this.pos+=i);this.pos&amp;amp;lt;this.input.length&amp;amp;amp;&amp;amp;amp;!Ws(n);)n=this.input.charCodeAt(++this.pos);this.options.onComment&amp;amp;amp;&amp;amp;amp;this.options.onComment(!1,this.input.slice(t+i,this.pos),t,this.pos,r,this.curPosition())};We.skipSpace=function(){e:for(;this.pos&amp;amp;lt;this.input.length;){var i=this.input.charCodeAt(this.pos);switch(i){case 32:case 160:++this.pos;break;case 13:this.input.charCodeAt(this.pos+1)===10&amp;amp;amp;&amp;amp;amp;++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&amp;amp;amp;&amp;amp;amp;(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(i&amp;amp;gt;8&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;14||i&amp;amp;gt;=5760&amp;amp;amp;&amp;amp;amp;$0.test(String.fromCharCode(i)))++this.pos;else break e}}};We.finishToken=function(i,t){this.end=this.pos,this.options.locations&amp;amp;amp;&amp;amp;amp;(this.endLoc=this.curPosition());var r=this.type;this.type=i,this.value=t,this.updateContext(r)};We.readToken_dot=function(){var i=this.input.charCodeAt(this.pos+1);if(i&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;i&amp;amp;lt;=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;i===46&amp;amp;amp;&amp;amp;amp;t===46?(this.pos+=3,this.finishToken(R.ellipsis)):(++this.pos,this.finishToken(R.dot))};We.readToken_slash=function(){var i=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):i===61?this.finishOp(R.assign,2):this.finishOp(R.slash,1)};We.readToken_mult_modulo_exp=function(i){var t=this.input.charCodeAt(this.pos+1),r=1,n=i===42?R.star:R.modulo;return this.options.ecmaVersion&amp;amp;gt;=7&amp;amp;amp;&amp;amp;amp;i===42&amp;amp;amp;&amp;amp;amp;t===42&amp;amp;amp;&amp;amp;amp;(++r,n=R.starstar,t=this.input.charCodeAt(this.pos+2)),t===61?this.finishOp(R.assign,r+1):this.finishOp(n,r)};We.readToken_pipe_amp=function(i){var t=this.input.charCodeAt(this.pos+1);if(t===i){if(this.options.ecmaVersion&amp;amp;gt;=12){var r=this.input.charCodeAt(this.pos+2);if(r===61)return this.finishOp(R.assign,3)}return this.finishOp(i===124?R.logicalOR:R.logicalAND,2)}return t===61?this.finishOp(R.assign,2):this.finishOp(i===124?R.bitwiseOR:R.bitwiseAND,1)};We.readToken_caret=function(){var i=this.input.charCodeAt(this.pos+1);return i===61?this.finishOp(R.assign,2):this.finishOp(R.bitwiseXOR,1)};We.readToken_plus_min=function(i){var t=this.input.charCodeAt(this.pos+1);return t===i?t===45&amp;amp;amp;&amp;amp;amp;!this.inModule&amp;amp;amp;&amp;amp;amp;this.input.charCodeAt(this.pos+2)===62&amp;amp;amp;&amp;amp;amp;(this.lastTokEnd===0||Qt.test(this.input.slice(this.lastTokEnd,this.pos)))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(R.incDec,2):t===61?this.finishOp(R.assign,2):this.finishOp(R.plusMin,1)};We.readToken_lt_gt=function(i){var t=this.input.charCodeAt(this.pos+1),r=1;return t===i?(r=i===62&amp;amp;amp;&amp;amp;amp;this.input.charCodeAt(this.pos+2)===62?3:2,this.input.charCodeAt(this.pos+r)===61?this.finishOp(R.assign,r+1):this.finishOp(R.bitShift,r)):t===33&amp;amp;amp;&amp;amp;amp;i===60&amp;amp;amp;&amp;amp;amp;!this.inModule&amp;amp;amp;&amp;amp;amp;this.input.charCodeAt(this.pos+2)===45&amp;amp;amp;&amp;amp;amp;this.input.charCodeAt(this.pos+3)===45?(this.skipLineComment(4),this.skipSpace(),this.nextToken()):(t===61&amp;amp;amp;&amp;amp;amp;(r=2),this.finishOp(R.relational,r))};We.readToken_eq_excl=function(i){var t=this.input.charCodeAt(this.pos+1);return t===61?this.finishOp(R.equality,this.input.charCodeAt(this.pos+2)===61?3:2):i===61&amp;amp;amp;&amp;amp;amp;t===62&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=6?(this.pos+=2,this.finishToken(R.arrow)):this.finishOp(i===61?R.eq:R.prefix,1)};We.readToken_question=function(){var i=this.options.ecmaVersion;if(i&amp;amp;gt;=11){var t=this.input.charCodeAt(this.pos+1);if(t===46){var r=this.input.charCodeAt(this.pos+2);if(r&amp;amp;lt;48||r&amp;amp;gt;57)return this.finishOp(R.questionDot,2)}if(t===63){if(i&amp;amp;gt;=12){var n=this.input.charCodeAt(this.pos+2);if(n===61)return this.finishOp(R.assign,3)}return this.finishOp(R.coalesce,2)}}return this.finishOp(R.question,1)};We.readToken_numberSign=function(){var i=this.options.ecmaVersion,t=35;if(i&amp;amp;gt;=13&amp;amp;amp;&amp;amp;amp;(++this.pos,t=this.fullCharCodeAtPos(),ni(t,!0)||t===92))return this.finishToken(R.privateId,this.readWord1());this.raise(this.pos,&amp;amp;quot;Unexpected character &amp;amp;#39;&amp;amp;quot;+Di(t)+&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;)};We.getTokenFromCode=function(i){switch(i){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(R.parenL);case 41:return++this.pos,this.finishToken(R.parenR);case 59:return++this.pos,this.finishToken(R.semi);case 44:return++this.pos,this.finishToken(R.comma);case 91:return++this.pos,this.finishToken(R.bracketL);case 93:return++this.pos,this.finishToken(R.bracketR);case 123:return++this.pos,this.finishToken(R.braceL);case 125:return++this.pos,this.finishToken(R.braceR);case 58:return++this.pos,this.finishToken(R.colon);case 96:if(this.options.ecmaVersion&amp;amp;lt;6)break;return++this.pos,this.finishToken(R.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(t===120||t===88)return this.readRadixNumber(16);if(this.options.ecmaVersion&amp;amp;gt;=6){if(t===111||t===79)return this.readRadixNumber(8);if(t===98||t===66)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(i);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(i);case 124:case 38:return this.readToken_pipe_amp(i);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(i);case 60:case 62:return this.readToken_lt_gt(i);case 61:case 33:return this.readToken_eq_excl(i);case 63:return this.readToken_question();case 126:return this.finishOp(R.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,&amp;amp;quot;Unexpected character &amp;amp;#39;&amp;amp;quot;+Di(i)+&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;)};We.finishOp=function(i,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(i,r)};We.readRegexp=function(){for(var i,t,r=this.pos;;){this.pos&amp;amp;gt;=this.input.length&amp;amp;amp;&amp;amp;amp;this.raise(r,&amp;amp;quot;Unterminated regular expression&amp;amp;quot;);var n=this.input.charAt(this.pos);if(Qt.test(n)&amp;amp;amp;&amp;amp;amp;this.raise(r,&amp;amp;quot;Unterminated regular expression&amp;amp;quot;),i)i=!1;else{if(n===&amp;amp;quot;[&amp;amp;quot;)t=!0;else if(n===&amp;amp;quot;]&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t)t=!1;else if(n===&amp;amp;quot;/&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!t)break;i=n===&amp;amp;quot;\\&amp;amp;quot;}++this.pos}var s=this.input.slice(r,this.pos);++this.pos;var a=this.pos,o=this.readWord1();this.containsEsc&amp;amp;amp;&amp;amp;amp;this.unexpected(a);var u=this.regexpState||(this.regexpState=new ai(this));u.reset(r,s,o),this.validateRegExpFlags(u),this.validateRegExpPattern(u);var h=null;try{h=new RegExp(s,o)}catch{}return this.finishToken(R.regexp,{pattern:s,flags:o,value:h})};We.readInt=function(i,t,r){for(var n=this.options.ecmaVersion&amp;amp;gt;=12&amp;amp;amp;&amp;amp;amp;t===void 0,s=r&amp;amp;amp;&amp;amp;amp;this.input.charCodeAt(this.pos)===48,a=this.pos,o=0,u=0,h=0,l=t??1/0;h&amp;amp;lt;l;++h,++this.pos){var c=this.input.charCodeAt(this.pos),p=void 0;if(n&amp;amp;amp;&amp;amp;amp;c===95){s&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.pos,&amp;amp;quot;Numeric separator is not allowed in legacy octal numeric literals&amp;amp;quot;),u===95&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.pos,&amp;amp;quot;Numeric separator must be exactly one underscore&amp;amp;quot;),h===0&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.pos,&amp;amp;quot;Numeric separator is not allowed at the first of digits&amp;amp;quot;),u=c;continue}if(c&amp;amp;gt;=97?p=c-97+10:c&amp;amp;gt;=65?p=c-65+10:c&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;c&amp;amp;lt;=57?p=c-48:p=1/0,p&amp;amp;gt;=i)break;u=c,o=o*i+p}return n&amp;amp;amp;&amp;amp;amp;u===95&amp;amp;amp;&amp;amp;amp;this.raiseRecoverable(this.pos-1,&amp;amp;quot;Numeric separator is not allowed at the last of digits&amp;amp;quot;),this.pos===a||t!=null&amp;amp;amp;&amp;amp;amp;this.pos-a!==t?null:o};function k2(i,t){return t?parseInt(i,8):parseFloat(i.replace(/_/g,&amp;amp;quot;&amp;amp;quot;))}function bg(i){return typeof BigInt!=&amp;amp;quot;function&amp;amp;quot;?null:BigInt(i.replace(/_/g,&amp;amp;quot;&amp;amp;quot;))}We.readRadixNumber=function(i){var t=this.pos;this.pos+=2;var r=this.readInt(i);return r==null&amp;amp;amp;&amp;amp;amp;this.raise(this.start+2,&amp;amp;quot;Expected number in radix &amp;amp;quot;+i),this.options.ecmaVersion&amp;amp;gt;=11&amp;amp;amp;&amp;amp;amp;this.input.charCodeAt(this.pos)===110?(r=bg(this.input.slice(t,this.pos)),++this.pos):ni(this.fullCharCodeAtPos())&amp;amp;amp;&amp;amp;amp;this.raise(this.pos,&amp;amp;quot;Identifier directly after number&amp;amp;quot;),this.finishToken(R.num,r)};We.readNumber=function(i){var t=this.pos;!i&amp;amp;amp;&amp;amp;amp;this.readInt(10,void 0,!0)===null&amp;amp;amp;&amp;amp;amp;this.raise(t,&amp;amp;quot;Invalid number&amp;amp;quot;);var r=this.pos-t&amp;amp;gt;=2&amp;amp;amp;&amp;amp;amp;this.input.charCodeAt(t)===48;r&amp;amp;amp;&amp;amp;amp;this.strict&amp;amp;amp;&amp;amp;amp;this.raise(t,&amp;amp;quot;Invalid number&amp;amp;quot;);var n=this.input.charCodeAt(this.pos);if(!r&amp;amp;amp;&amp;amp;amp;!i&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=11&amp;amp;amp;&amp;amp;amp;n===110){var s=bg(this.input.slice(t,this.pos));return++this.pos,ni(this.fullCharCodeAtPos())&amp;amp;amp;&amp;amp;amp;this.raise(this.pos,&amp;amp;quot;Identifier directly after number&amp;amp;quot;),this.finishToken(R.num,s)}r&amp;amp;amp;&amp;amp;amp;/[89]/.test(this.input.slice(t,this.pos))&amp;amp;amp;&amp;amp;amp;(r=!1),n===46&amp;amp;amp;&amp;amp;amp;!r&amp;amp;amp;&amp;amp;amp;(++this.pos,this.readInt(10),n=this.input.charCodeAt(this.pos)),(n===69||n===101)&amp;amp;amp;&amp;amp;amp;!r&amp;amp;amp;&amp;amp;amp;(n=this.input.charCodeAt(++this.pos),(n===43||n===45)&amp;amp;amp;&amp;amp;amp;++this.pos,this.readInt(10)===null&amp;amp;amp;&amp;amp;amp;this.raise(t,&amp;amp;quot;Invalid number&amp;amp;quot;)),ni(this.fullCharCodeAtPos())&amp;amp;amp;&amp;amp;amp;this.raise(this.pos,&amp;amp;quot;Identifier directly after number&amp;amp;quot;);var a=k2(this.input.slice(t,this.pos),r);return this.finishToken(R.num,a)};We.readCodePoint=function(){var i=this.input.charCodeAt(this.pos),t;if(i===123){this.options.ecmaVersion&amp;amp;lt;6&amp;amp;amp;&amp;amp;amp;this.unexpected();var r=++this.pos;t=this.readHexChar(this.input.indexOf(&amp;amp;quot;}&amp;amp;quot;,this.pos)-this.pos),++this.pos,t&amp;amp;gt;1114111&amp;amp;amp;&amp;amp;amp;this.invalidStringToken(r,&amp;amp;quot;Code point out of bounds&amp;amp;quot;)}else t=this.readHexChar(4);return t};We.readString=function(i){for(var t=&amp;amp;quot;&amp;amp;quot;,r=++this.pos;;){this.pos&amp;amp;gt;=this.input.length&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;Unterminated string constant&amp;amp;quot;);var n=this.input.charCodeAt(this.pos);if(n===i)break;n===92?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):n===8232||n===8233?(this.options.ecmaVersion&amp;amp;lt;10&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;Unterminated string constant&amp;amp;quot;),++this.pos,this.options.locations&amp;amp;amp;&amp;amp;amp;(this.curLine++,this.lineStart=this.pos)):(Ws(n)&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;Unterminated string constant&amp;amp;quot;),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(R.string,t)};var _g={};We.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(i){if(i===_g)this.readInvalidTemplateToken();else throw i}this.inTemplateElement=!1};We.invalidStringToken=function(i,t){if(this.inTemplateElement&amp;amp;amp;&amp;amp;amp;this.options.ecmaVersion&amp;amp;gt;=9)throw _g;this.raise(i,t)};We.readTmplToken=function(){for(var i=&amp;amp;quot;&amp;amp;quot;,t=this.pos;;){this.pos&amp;amp;gt;=this.input.length&amp;amp;amp;&amp;amp;amp;this.raise(this.start,&amp;amp;quot;Unterminated template&amp;amp;quot;);var r=this.input.charCodeAt(this.pos);if(r===96||r===36&amp;amp;amp;&amp;amp;amp;this.input.charCodeAt(this.pos+1)===123)return this.pos===this.start&amp;amp;amp;&amp;amp;amp;(this.type===R.template||this.type===R.invalidTemplate)?r===36?(this.pos+=2,this.finishToken(R.dollarBraceL)):(++this.pos,this.finishToken(R.backQuote)):(i+=this.input.slice(t,this.pos),this.finishToken(R.template,i));if(r===92)i+=this.input.slice(t,this.pos),i+=this.readEscapedChar(!0),t=this.pos;else if(Ws(r)){switch(i+=this.input.slice(t,this.pos),++this.pos,r){case 13:this.input.charCodeAt(this.pos)===10&amp;amp;amp;&amp;amp;amp;++this.pos;case 10:i+=`
   7437 <a href="#l7418" class="line" id="l7418">   7418</a> &lt;a href=&quot;#l7399&quot; class=&quot;line&quot; id=&quot;l7399&quot;&gt;   7399&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2299&amp;quot; id=&amp;quot;h4-0-2299&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`;break;default:i+=String.fromCharCode(r);break}this.options.locations&amp;amp;amp;&amp;amp;amp;(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}};We.readInvalidTemplateToken=function(){for(;this.pos&amp;amp;lt;this.input.length;this.pos++)switch(this.input[this.pos]){case&amp;amp;quot;\\&amp;amp;quot;:++this.pos;break;case&amp;amp;quot;$&amp;amp;quot;:if(this.input[this.pos+1]!==&amp;amp;quot;{&amp;amp;quot;)break;case&amp;amp;quot;`&amp;amp;quot;:return this.finishToken(R.invalidTemplate,this.input.slice(this.start,this.pos));case&amp;amp;quot;\r&amp;amp;quot;:this.input[this.pos+1]===`
   7438 <a href="#l7419" class="line" id="l7419">   7419</a> &lt;a href=&quot;#l7400&quot; class=&quot;line&quot; id=&quot;l7400&quot;&gt;   7400&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2300&amp;quot; id=&amp;quot;h4-0-2300&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`&amp;amp;amp;&amp;amp;amp;++this.pos;case`
   7439 <a href="#l7420" class="line" id="l7420">   7420</a> &lt;a href=&quot;#l7401&quot; class=&quot;line&quot; id=&quot;l7401&quot;&gt;   7401&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2301&amp;quot; id=&amp;quot;h4-0-2301&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`:case&amp;amp;quot;\u2028&amp;amp;quot;:case&amp;amp;quot;\u2029&amp;amp;quot;:++this.curLine,this.lineStart=this.pos+1;break}this.raise(this.start,&amp;amp;quot;Unterminated template&amp;amp;quot;)};We.readEscapedChar=function(i){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return`
   7440 <a href="#l7421" class="line" id="l7421">   7421</a> &lt;a href=&quot;#l7402&quot; class=&quot;line&quot; id=&quot;l7402&quot;&gt;   7402&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2302&amp;quot; id=&amp;quot;h4-0-2302&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`;case 114:return&amp;amp;quot;\r&amp;amp;quot;;case 120:return String.fromCharCode(this.readHexChar(2));case 117:return Di(this.readCodePoint());case 116:return&amp;amp;quot;	&amp;amp;quot;;case 98:return&amp;amp;quot;\b&amp;amp;quot;;case 118:return&amp;amp;quot;\v&amp;amp;quot;;case 102:return&amp;amp;quot;\f&amp;amp;quot;;case 13:this.input.charCodeAt(this.pos)===10&amp;amp;amp;&amp;amp;amp;++this.pos;case 10:return this.options.locations&amp;amp;amp;&amp;amp;amp;(this.lineStart=this.pos,++this.curLine),&amp;amp;quot;&amp;amp;quot;;case 56:case 57:if(this.strict&amp;amp;amp;&amp;amp;amp;this.invalidStringToken(this.pos-1,&amp;amp;quot;Invalid escape sequence&amp;amp;quot;),i){var r=this.pos-1;this.invalidStringToken(r,&amp;amp;quot;Invalid escape sequence in template string&amp;amp;quot;)}default:if(t&amp;amp;gt;=48&amp;amp;amp;&amp;amp;amp;t&amp;amp;lt;=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],s=parseInt(n,8);return s&amp;amp;gt;255&amp;amp;amp;&amp;amp;amp;(n=n.slice(0,-1),s=parseInt(n,8)),this.pos+=n.length-1,t=this.input.charCodeAt(this.pos),(n!==&amp;amp;quot;0&amp;amp;quot;||t===56||t===57)&amp;amp;amp;&amp;amp;amp;(this.strict||i)&amp;amp;amp;&amp;amp;amp;this.invalidStringToken(this.pos-1-n.length,i?&amp;amp;quot;Octal literal in template string&amp;amp;quot;:&amp;amp;quot;Octal literal in strict mode&amp;amp;quot;),String.fromCharCode(s)}return Ws(t)?(this.options.locations&amp;amp;amp;&amp;amp;amp;(this.lineStart=this.pos,++this.curLine),&amp;amp;quot;&amp;amp;quot;):String.fromCharCode(t)}};We.readHexChar=function(i){var t=this.pos,r=this.readInt(16,i);return r===null&amp;amp;amp;&amp;amp;amp;this.invalidStringToken(t,&amp;amp;quot;Bad character escape sequence&amp;amp;quot;),r};We.readWord1=function(){this.containsEsc=!1;for(var i=&amp;amp;quot;&amp;amp;quot;,t=!0,r=this.pos,n=this.options.ecmaVersion&amp;amp;gt;=6;this.pos&amp;amp;lt;this.input.length;){var s=this.fullCharCodeAtPos();if(en(s,n))this.pos+=s&amp;amp;lt;=65535?1:2;else if(s===92){this.containsEsc=!0,i+=this.input.slice(r,this.pos);var a=this.pos;this.input.charCodeAt(++this.pos)!==117&amp;amp;amp;&amp;amp;amp;this.invalidStringToken(this.pos,&amp;amp;quot;Expecting Unicode escape sequence \\uXXXX&amp;amp;quot;),++this.pos;var o=this.readCodePoint();(t?ni:en)(o,n)||this.invalidStringToken(a,&amp;amp;quot;Invalid Unicode escape&amp;amp;quot;),i+=Di(o),r=this.pos}else break;t=!1}return i+this.input.slice(r,this.pos)};We.readWord=function(){var i=this.readWord1(),t=R.name;return this.keywords.test(i)&amp;amp;amp;&amp;amp;amp;(t=Sf[i]),this.finishToken(t,i)};var M2=&amp;amp;quot;8.15.0&amp;amp;quot;;Dt.acorn={Parser:Dt,version:M2,defaultOptions:wf,Position:wo,SourceLocation:Fl,getLineInfo:W0,Node:kl,TokenType:Ke,tokTypes:R,keywordTypes:Sf,TokContext:Wr,tokContexts:ht,isIdentifierChar:en,isIdentifierStart:ni,Token:If,isNewLine:Ws,lineBreak:Qt,lineBreakG:r2,nonASCIIwhitespace:$0};function Ll(i,t){return Dt.parse(i,t)}function wg(i,t,r,n,s){r||(r=ye),function a(o,u,h){var l=h||o.type;r[l](o,u,a),t[l]&amp;amp;amp;&amp;amp;amp;t[l](o,u)}(i,n,s)}function Cg(i,t,r,n,s){var a=[];r||(r=ye),function o(u,h,l){var c=l||u.type,p=u!==a[a.length-1];p&amp;amp;amp;&amp;amp;amp;a.push(u),r[c](u,h,o),t[c]&amp;amp;amp;&amp;amp;amp;t[c](u,h||a,a),p&amp;amp;amp;&amp;amp;amp;a.pop()}(i,n,s)}function kf(i,t,r){r(i,t)}function Un(i,t,r){}var ye={};ye.Program=ye.BlockStatement=ye.StaticBlock=function(i,t,r){for(var n=0,s=i.body;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t,&amp;amp;quot;Statement&amp;amp;quot;)}};ye.Statement=kf;ye.EmptyStatement=Un;ye.ExpressionStatement=ye.ParenthesizedExpression=ye.ChainExpression=function(i,t,r){return r(i.expression,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.IfStatement=function(i,t,r){r(i.test,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.consequent,t,&amp;amp;quot;Statement&amp;amp;quot;),i.alternate&amp;amp;amp;&amp;amp;amp;r(i.alternate,t,&amp;amp;quot;Statement&amp;amp;quot;)};ye.LabeledStatement=function(i,t,r){return r(i.body,t,&amp;amp;quot;Statement&amp;amp;quot;)};ye.BreakStatement=ye.ContinueStatement=Un;ye.WithStatement=function(i,t,r){r(i.object,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.body,t,&amp;amp;quot;Statement&amp;amp;quot;)};ye.SwitchStatement=function(i,t,r){r(i.discriminant,t,&amp;amp;quot;Expression&amp;amp;quot;);for(var n=0,s=i.cases;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t)}};ye.SwitchCase=function(i,t,r){i.test&amp;amp;amp;&amp;amp;amp;r(i.test,t,&amp;amp;quot;Expression&amp;amp;quot;);for(var n=0,s=i.consequent;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t,&amp;amp;quot;Statement&amp;amp;quot;)}};ye.ReturnStatement=ye.YieldExpression=ye.AwaitExpression=function(i,t,r){i.argument&amp;amp;amp;&amp;amp;amp;r(i.argument,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.ThrowStatement=ye.SpreadElement=function(i,t,r){return r(i.argument,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.TryStatement=function(i,t,r){r(i.block,t,&amp;amp;quot;Statement&amp;amp;quot;),i.handler&amp;amp;amp;&amp;amp;amp;r(i.handler,t),i.finalizer&amp;amp;amp;&amp;amp;amp;r(i.finalizer,t,&amp;amp;quot;Statement&amp;amp;quot;)};ye.CatchClause=function(i,t,r){i.param&amp;amp;amp;&amp;amp;amp;r(i.param,t,&amp;amp;quot;Pattern&amp;amp;quot;),r(i.body,t,&amp;amp;quot;Statement&amp;amp;quot;)};ye.WhileStatement=ye.DoWhileStatement=function(i,t,r){r(i.test,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.body,t,&amp;amp;quot;Statement&amp;amp;quot;)};ye.ForStatement=function(i,t,r){i.init&amp;amp;amp;&amp;amp;amp;r(i.init,t,&amp;amp;quot;ForInit&amp;amp;quot;),i.test&amp;amp;amp;&amp;amp;amp;r(i.test,t,&amp;amp;quot;Expression&amp;amp;quot;),i.update&amp;amp;amp;&amp;amp;amp;r(i.update,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.body,t,&amp;amp;quot;Statement&amp;amp;quot;)};ye.ForInStatement=ye.ForOfStatement=function(i,t,r){r(i.left,t,&amp;amp;quot;ForInit&amp;amp;quot;),r(i.right,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.body,t,&amp;amp;quot;Statement&amp;amp;quot;)};ye.ForInit=function(i,t,r){i.type===&amp;amp;quot;VariableDeclaration&amp;amp;quot;?r(i,t):r(i,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.DebuggerStatement=Un;ye.FunctionDeclaration=function(i,t,r){return r(i,t,&amp;amp;quot;Function&amp;amp;quot;)};ye.VariableDeclaration=function(i,t,r){for(var n=0,s=i.declarations;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t)}};ye.VariableDeclarator=function(i,t,r){r(i.id,t,&amp;amp;quot;Pattern&amp;amp;quot;),i.init&amp;amp;amp;&amp;amp;amp;r(i.init,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.Function=function(i,t,r){i.id&amp;amp;amp;&amp;amp;amp;r(i.id,t,&amp;amp;quot;Pattern&amp;amp;quot;);for(var n=0,s=i.params;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t,&amp;amp;quot;Pattern&amp;amp;quot;)}r(i.body,t,i.expression?&amp;amp;quot;Expression&amp;amp;quot;:&amp;amp;quot;Statement&amp;amp;quot;)};ye.Pattern=function(i,t,r){i.type===&amp;amp;quot;Identifier&amp;amp;quot;?r(i,t,&amp;amp;quot;VariablePattern&amp;amp;quot;):i.type===&amp;amp;quot;MemberExpression&amp;amp;quot;?r(i,t,&amp;amp;quot;MemberPattern&amp;amp;quot;):r(i,t)};ye.VariablePattern=Un;ye.MemberPattern=kf;ye.RestElement=function(i,t,r){return r(i.argument,t,&amp;amp;quot;Pattern&amp;amp;quot;)};ye.ArrayPattern=function(i,t,r){for(var n=0,s=i.elements;n&amp;amp;lt;s.length;n+=1){var a=s[n];a&amp;amp;amp;&amp;amp;amp;r(a,t,&amp;amp;quot;Pattern&amp;amp;quot;)}};ye.ObjectPattern=function(i,t,r){for(var n=0,s=i.properties;n&amp;amp;lt;s.length;n+=1){var a=s[n];a.type===&amp;amp;quot;Property&amp;amp;quot;?(a.computed&amp;amp;amp;&amp;amp;amp;r(a.key,t,&amp;amp;quot;Expression&amp;amp;quot;),r(a.value,t,&amp;amp;quot;Pattern&amp;amp;quot;)):a.type===&amp;amp;quot;RestElement&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r(a.argument,t,&amp;amp;quot;Pattern&amp;amp;quot;)}};ye.Expression=kf;ye.ThisExpression=ye.Super=ye.MetaProperty=Un;ye.ArrayExpression=function(i,t,r){for(var n=0,s=i.elements;n&amp;amp;lt;s.length;n+=1){var a=s[n];a&amp;amp;amp;&amp;amp;amp;r(a,t,&amp;amp;quot;Expression&amp;amp;quot;)}};ye.ObjectExpression=function(i,t,r){for(var n=0,s=i.properties;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t)}};ye.FunctionExpression=ye.ArrowFunctionExpression=ye.FunctionDeclaration;ye.SequenceExpression=function(i,t,r){for(var n=0,s=i.expressions;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t,&amp;amp;quot;Expression&amp;amp;quot;)}};ye.TemplateLiteral=function(i,t,r){for(var n=0,s=i.quasis;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t)}for(var o=0,u=i.expressions;o&amp;amp;lt;u.length;o+=1){var h=u[o];r(h,t,&amp;amp;quot;Expression&amp;amp;quot;)}};ye.TemplateElement=Un;ye.UnaryExpression=ye.UpdateExpression=function(i,t,r){r(i.argument,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.BinaryExpression=ye.LogicalExpression=function(i,t,r){r(i.left,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.right,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.AssignmentExpression=ye.AssignmentPattern=function(i,t,r){r(i.left,t,&amp;amp;quot;Pattern&amp;amp;quot;),r(i.right,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.ConditionalExpression=function(i,t,r){r(i.test,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.consequent,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.alternate,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.NewExpression=ye.CallExpression=function(i,t,r){if(r(i.callee,t,&amp;amp;quot;Expression&amp;amp;quot;),i.arguments)for(var n=0,s=i.arguments;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t,&amp;amp;quot;Expression&amp;amp;quot;)}};ye.MemberExpression=function(i,t,r){r(i.object,t,&amp;amp;quot;Expression&amp;amp;quot;),i.computed&amp;amp;amp;&amp;amp;amp;r(i.property,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.ExportNamedDeclaration=ye.ExportDefaultDeclaration=function(i,t,r){i.declaration&amp;amp;amp;&amp;amp;amp;r(i.declaration,t,i.type===&amp;amp;quot;ExportNamedDeclaration&amp;amp;quot;||i.declaration.id?&amp;amp;quot;Statement&amp;amp;quot;:&amp;amp;quot;Expression&amp;amp;quot;),i.source&amp;amp;amp;&amp;amp;amp;r(i.source,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.ExportAllDeclaration=function(i,t,r){i.exported&amp;amp;amp;&amp;amp;amp;r(i.exported,t),r(i.source,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.ImportDeclaration=function(i,t,r){for(var n=0,s=i.specifiers;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t)}r(i.source,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.ImportExpression=function(i,t,r){r(i.source,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.ImportSpecifier=ye.ImportDefaultSpecifier=ye.ImportNamespaceSpecifier=ye.Identifier=ye.PrivateIdentifier=ye.Literal=Un;ye.TaggedTemplateExpression=function(i,t,r){r(i.tag,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.quasi,t,&amp;amp;quot;Expression&amp;amp;quot;)};ye.ClassDeclaration=ye.ClassExpression=function(i,t,r){return r(i,t,&amp;amp;quot;Class&amp;amp;quot;)};ye.Class=function(i,t,r){i.id&amp;amp;amp;&amp;amp;amp;r(i.id,t,&amp;amp;quot;Pattern&amp;amp;quot;),i.superClass&amp;amp;amp;&amp;amp;amp;r(i.superClass,t,&amp;amp;quot;Expression&amp;amp;quot;),r(i.body,t)};ye.ClassBody=function(i,t,r){for(var n=0,s=i.body;n&amp;amp;lt;s.length;n+=1){var a=s[n];r(a,t)}};ye.MethodDefinition=ye.PropertyDefinition=ye.Property=function(i,t,r){i.computed&amp;amp;amp;&amp;amp;amp;r(i.key,t,&amp;amp;quot;Expression&amp;amp;quot;),i.value&amp;amp;amp;&amp;amp;amp;r(i.value,t,&amp;amp;quot;Expression&amp;amp;quot;)};var L2=[&amp;amp;quot;setup&amp;amp;quot;,&amp;amp;quot;draw&amp;amp;quot;,&amp;amp;quot;preload&amp;amp;quot;,&amp;amp;quot;deviceMoved&amp;amp;quot;,&amp;amp;quot;deviceTurned&amp;amp;quot;,&amp;amp;quot;deviceShaken&amp;amp;quot;,&amp;amp;quot;doubleClicked&amp;amp;quot;,&amp;amp;quot;mousePressed&amp;amp;quot;,&amp;amp;quot;mouseReleased&amp;amp;quot;,&amp;amp;quot;mouseMoved&amp;amp;quot;,&amp;amp;quot;mouseDragged&amp;amp;quot;,&amp;amp;quot;mouseClicked&amp;amp;quot;,&amp;amp;quot;mouseWheel&amp;amp;quot;,&amp;amp;quot;touchStarted&amp;amp;quot;,&amp;amp;quot;touchMoved&amp;amp;quot;,&amp;amp;quot;touchEnded&amp;amp;quot;,&amp;amp;quot;keyPressed&amp;amp;quot;,&amp;amp;quot;keyReleased&amp;amp;quot;,&amp;amp;quot;keyTyped&amp;amp;quot;,&amp;amp;quot;windowResized&amp;amp;quot;],Ao={fetchScript:async function(i){if(i.src)try{return await fetch(i.src).then(r=&amp;amp;gt;r.text())}catch(t){return console.error(&amp;amp;quot;Error fetching script:&amp;amp;quot;,t),&amp;amp;quot;&amp;amp;quot;}else return i.textContent},extractUserDefinedVariablesAndFuncs:function(i){let t={variables:[],functions:[]},r=-1;try{let n=Ll(i,{ecmaVersion:2021,sourceType:&amp;amp;quot;module&amp;amp;quot;,locations:!0});wg(n,{VariableDeclarator(s){if(s.id.type===&amp;amp;quot;Identifier&amp;amp;quot;){let a=s.init&amp;amp;amp;&amp;amp;amp;[&amp;amp;quot;ArrowFunctionExpression&amp;amp;quot;,&amp;amp;quot;FunctionExpression&amp;amp;quot;].includes(s.init.type)?&amp;amp;quot;functions&amp;amp;quot;:&amp;amp;quot;variables&amp;amp;quot;;t[a].push({name:s.id.name,line:s.loc.start.line+r})}},FunctionDeclaration(s){s.id&amp;amp;amp;&amp;amp;amp;s.id.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.functions.push({name:s.id.name,line:s.loc.start.line+r})},ClassDeclaration(s){s.id&amp;amp;amp;&amp;amp;amp;s.id.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.variables.push({name:s.id.name,line:s.loc.start.line+r})}})}catch(n){console.error(&amp;amp;quot;Error parsing code:&amp;amp;quot;,n)}return t},checkForConstsAndFuncs:function(i,t){let r=[...i.variables,...i.functions];function n(a,o,u){let h=`https://p5js.org/reference/p5/${o}`;return`${a} &amp;amp;quot;${o}&amp;amp;quot; on line ${u} is being redeclared and conflicts with a p5.js ${a.toLowerCase()}. p5.js reference: ${h}`}for(let{name:a,line:o}of r)if(gr[a]!==void 0){let h=n(&amp;amp;quot;Constant&amp;amp;quot;,a,o);return console.log(h),!0}let s=new Set(Object.getOwnPropertyNames(t.prototype).filter(a=&amp;amp;gt;!a.startsWith(&amp;amp;quot;_&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;a!==&amp;amp;quot;constructor&amp;amp;quot;));for(let{name:a,line:o}of r)if(!L2.includes(a)&amp;amp;amp;&amp;amp;amp;s.has(a)){let u=n(&amp;amp;quot;Function&amp;amp;quot;,a,o);return console.log(u),!0}return!1},getUserCode:async function(){let i=document.querySelectorAll(&amp;amp;quot;script&amp;amp;quot;),t=i[i.length-1];return await Ao.fetchScript(t)},runFES:async function(i){let t=await Ao.getUserCode(),r=Ao.extractUserDefinedVariablesAndFuncs(t);Ao.checkForConstsAndFuncs(r,i)}};function Mf(i,t,r){r.presetup=async function(){i.disableFriendlyErrors||Ao.runFES(i)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Mf(p5,p5.prototype);function Lf(i,t){let r=(n,s)=&amp;amp;gt;{let a=Pe(&amp;amp;quot;fes.fileLoadError.suggestion&amp;amp;quot;,{filePath:s,url:&amp;amp;quot;https://github.com/processing/p5.js/wiki/Local-server&amp;amp;quot;});switch(n){case 0:return{message:Pe(&amp;amp;quot;fes.fileLoadError.image&amp;amp;quot;,{suggestion:a}),method:&amp;amp;quot;loadImage&amp;amp;quot;};case 1:return{message:Pe(&amp;amp;quot;fes.fileLoadError.xml&amp;amp;quot;,{suggestion:a}),method:&amp;amp;quot;loadXML&amp;amp;quot;};case 2:return{message:Pe(&amp;amp;quot;fes.fileLoadError.table&amp;amp;quot;,{suggestion:a}),method:&amp;amp;quot;loadTable&amp;amp;quot;};case 3:return{message:Pe(&amp;amp;quot;fes.fileLoadError.strings&amp;amp;quot;,{suggestion:a}),method:&amp;amp;quot;loadStrings&amp;amp;quot;};case 4:return{message:Pe(&amp;amp;quot;fes.fileLoadError.font&amp;amp;quot;,{suggestion:a}),method:&amp;amp;quot;loadFont&amp;amp;quot;};case 5:return{message:Pe(&amp;amp;quot;fes.fileLoadError.json&amp;amp;quot;,{suggestion:a}),method:&amp;amp;quot;loadJSON&amp;amp;quot;};case 6:return{message:Pe(&amp;amp;quot;fes.fileLoadError.bytes&amp;amp;quot;,{suggestion:a}),method:&amp;amp;quot;loadBytes&amp;amp;quot;};case 7:return{message:Pe(&amp;amp;quot;fes.fileLoadError.large&amp;amp;quot;),method:&amp;amp;quot;loadX&amp;amp;quot;};case 8:return{message:Pe(&amp;amp;quot;fes.fileLoadError.gif&amp;amp;quot;),method:&amp;amp;quot;loadImage&amp;amp;quot;}}};i._friendlyFileLoadError=function(n,s){let{message:a,method:o}=r(n,s);i._friendlyError(a,o,3)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Lf(p5,p5.prototype);function Eg(i){i.registerAddon(Qc),i.registerAddon(ef),i.registerAddon(yf),i.registerAddon(Mf),i.registerAddon(Lf)}function Rf(i,t){t.storeItem=function(r,n){typeof r!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;console.log(`The argument that you passed to storeItem() - ${r} is not a string.`),r.endsWith(&amp;amp;quot;p5TypeID&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;console.log(`The argument that you passed to storeItem() - ${r} must not end with &amp;amp;#39;p5TypeID&amp;amp;#39;.`),typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;You cannot store undefined variables using storeItem().&amp;amp;quot;);let s=typeof n;switch(s){case&amp;amp;quot;number&amp;amp;quot;:case&amp;amp;quot;boolean&amp;amp;quot;:n=n.toString();break;case&amp;amp;quot;object&amp;amp;quot;:n instanceof i.Color?(s=&amp;amp;quot;p5.Color&amp;amp;quot;,n=n.toString()):n instanceof i.Vector&amp;amp;amp;&amp;amp;amp;(s=&amp;amp;quot;p5.Vector&amp;amp;quot;,n=[n.x,n.y,n.z]),n=JSON.stringify(n);break}localStorage.setItem(r,n);let a=`${r}p5TypeID`;localStorage.setItem(a,s)},t.getItem=function(r){let n=localStorage.getItem(r),s=localStorage.getItem(`${r}p5TypeID`);if(typeof s&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)console.log(`Unable to determine type of item stored under ${r}in local storage. Did you save the item with something other than setItem()?`);else if(n!==null)switch(s){case&amp;amp;quot;number&amp;amp;quot;:n=parseFloat(n);break;case&amp;amp;quot;boolean&amp;amp;quot;:n=n===&amp;amp;quot;true&amp;amp;quot;;break;case&amp;amp;quot;object&amp;amp;quot;:n=JSON.parse(n);break;case&amp;amp;quot;p5.Color&amp;amp;quot;:n=this.color(JSON.parse(n));break;case&amp;amp;quot;p5.Vector&amp;amp;quot;:n=JSON.parse(n),n=this.createVector(...n);break}return n},t.clearStorage=function(){Object.keys(localStorage).forEach(n=&amp;amp;gt;{n.endsWith(&amp;amp;quot;p5TypeID&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;this.removeItem(n.replace(&amp;amp;quot;p5TypeID&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;))})},t.removeItem=function(r){typeof r!=&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;console.log(`The argument that you passed to removeItem() - ${r} is not a string.`),localStorage.removeItem(r),localStorage.removeItem(`${r}p5TypeID`)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Rf(p5,p5.prototype);function Sg(i){i.registerAddon(Rf)}function Bf(i,t){t.select=function(s,a){let u=this._getContainer(a).querySelector(s);return u?this._wrapElement(u):null},t.selectAll=function(s,a){let o=[],h=this._getContainer(a).querySelectorAll(s);if(h)for(let l=0;l&amp;amp;lt;h.length;l++){let c=this._wrapElement(h[l]);o.push(c)}return o},t._getContainer=function(s){let a=document;return typeof s==&amp;amp;quot;string&amp;amp;quot;?a=document.querySelector(s)||document:s instanceof st?a=s.elt:s instanceof HTMLElement&amp;amp;amp;&amp;amp;amp;(a=s),a},t._wrapElement=function(s){let a=Array.prototype.slice.call(s.children);if(s.tagName===&amp;amp;quot;INPUT&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;s.type===&amp;amp;quot;checkbox&amp;amp;quot;){let o=new st(s,this);return o.checked=function(...u){return u.length===0?this.elt.checked:(u[0]?this.elt.checked=!0:this.elt.checked=!1,this)},o}else return s.tagName===&amp;amp;quot;VIDEO&amp;amp;quot;||s.tagName===&amp;amp;quot;AUDIO&amp;amp;quot;?new xi(s,this):s.tagName===&amp;amp;quot;SELECT&amp;amp;quot;?this.createSelect(new st(s,this)):a.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;a.every(function(o){return o.tagName===&amp;amp;quot;INPUT&amp;amp;quot;||o.tagName===&amp;amp;quot;LABEL&amp;amp;quot;})&amp;amp;amp;&amp;amp;amp;(s.tagName===&amp;amp;quot;DIV&amp;amp;quot;||s.tagName===&amp;amp;quot;SPAN&amp;amp;quot;)?this.createRadio(new st(s,this)):new st(s,this)},t.createElement=function(s,a){let o=document.createElement(s);return typeof a&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o.innerHTML=a),r(o,this)},t.removeElements=function(s){let a=u=&amp;amp;gt;!(u.elt instanceof HTMLCanvasElement);this._elements.filter(a).map(u=&amp;amp;gt;u.remove())};function r(s,a,o){(a._userNode?a._userNode:document.body).appendChild(s);let h=o?new xi(s,a):new st(s,a);return a._elements.push(h),h}t.createDiv=function(s=&amp;amp;quot;&amp;amp;quot;){let a=document.createElement(&amp;amp;quot;div&amp;amp;quot;);return a.innerHTML=s,r(a,this)},t.createP=function(s=&amp;amp;quot;&amp;amp;quot;){let a=document.createElement(&amp;amp;quot;p&amp;amp;quot;);return a.innerHTML=s,r(a,this)},t.createSpan=function(s=&amp;amp;quot;&amp;amp;quot;){let a=document.createElement(&amp;amp;quot;span&amp;amp;quot;);return a.innerHTML=s,r(a,this)},t.createImg=function(){let s=document.createElement(&amp;amp;quot;img&amp;amp;quot;),a=arguments,o;return a.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;typeof a[1]==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s.alt=a[1]),a.length&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;typeof a[2]==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s.crossOrigin=a[2]),s.src=a[0],o=r(s,this),s.addEventListener(&amp;amp;quot;load&amp;amp;quot;,function(){o.width=s.offsetWidth||s.width,o.height=s.offsetHeight||s.height;let u=a[a.length-1];typeof u==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u(o)}),o},t.createA=function(s,a,o){let u=document.createElement(&amp;amp;quot;a&amp;amp;quot;);return u.href=s,u.innerHTML=a,o&amp;amp;amp;&amp;amp;amp;(u.target=o),r(u,this)},t.createSlider=function(s,a,o,u){let h=document.createElement(&amp;amp;quot;input&amp;amp;quot;);return h.type=&amp;amp;quot;range&amp;amp;quot;,h.min=s,h.max=a,u===0?h.step=1e-18:u&amp;amp;amp;&amp;amp;amp;(h.step=u),typeof o==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(h.value=o),r(h,this)},t.createButton=function(s,a){let o=document.createElement(&amp;amp;quot;button&amp;amp;quot;);return o.innerHTML=s,a&amp;amp;amp;&amp;amp;amp;(o.value=a),r(o,this)},t.createCheckbox=function(...s){let a=document.createElement(&amp;amp;quot;div&amp;amp;quot;),o=document.createElement(&amp;amp;quot;input&amp;amp;quot;);o.type=&amp;amp;quot;checkbox&amp;amp;quot;;let u=document.createElement(&amp;amp;quot;label&amp;amp;quot;);u.appendChild(o),a.appendChild(u);let h=r(a,this);if(h.checked=function(...l){let c=h.elt.firstElementChild.getElementsByTagName(&amp;amp;quot;input&amp;amp;quot;)[0];if(c){if(l.length===0)return c.checked;l[0]?c.checked=!0:c.checked=!1}return h},this.value=function(l){return h.value=l,this},s[0]){h.value(s[0]);let l=document.createElement(&amp;amp;quot;span&amp;amp;quot;);l.innerHTML=s[0],u.appendChild(l)}return s[1]&amp;amp;amp;&amp;amp;amp;(o.checked=!0),h},t.createSelect=function(...s){let a,o=s[0];if(o instanceof st&amp;amp;amp;&amp;amp;amp;o.elt instanceof HTMLSelectElement)a=o,this.elt=o.elt;else if(o instanceof HTMLSelectElement)a=r(o,this),this.elt=o;else{let u=document.createElement(&amp;amp;quot;select&amp;amp;quot;);o&amp;amp;amp;&amp;amp;amp;typeof o==&amp;amp;quot;boolean&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;u.setAttribute(&amp;amp;quot;multiple&amp;amp;quot;,&amp;amp;quot;true&amp;amp;quot;),a=r(u,this),this.elt=u}return a.option=function(u,h){let l;if(u!==void 0){for(let c=0;c&amp;amp;lt;this.elt.length;c+=1)if(this.elt[c].textContent===u){l=c;break}if(l!==void 0)h===!1?this.elt.remove(l):this.elt[l].value=h;else{let c=document.createElement(&amp;amp;quot;option&amp;amp;quot;);c.textContent=u,c.value=h===void 0?u:h,this.elt.appendChild(c),this._pInst._elements.push(c)}}},a.selected=function(u){if(u!==void 0){for(let h=0;h&amp;amp;lt;this.elt.length;h+=1)this.elt[h].value.toString()===u.toString()&amp;amp;amp;&amp;amp;amp;(this.elt.selectedIndex=h);return this}else if(this.elt.getAttribute(&amp;amp;quot;multiple&amp;amp;quot;)){let h=[];for(let l of this.elt.selectedOptions)h.push(l.value);return h}else return this.elt.value},a.disable=function(u){if(typeof u==&amp;amp;quot;string&amp;amp;quot;)for(let h=0;h&amp;amp;lt;this.elt.length;h++)this.elt[h].value.toString()===u&amp;amp;amp;&amp;amp;amp;(this.elt[h].disabled=!0,this.elt[h].selected=!1);else this.elt.disabled=!0;return this},a.enable=function(u){if(typeof u==&amp;amp;quot;string&amp;amp;quot;)for(let h=0;h&amp;amp;lt;this.elt.length;h++)this.elt[h].value.toString()===u&amp;amp;amp;&amp;amp;amp;(this.elt[h].disabled=!1,this.elt[h].selected=!1);else{this.elt.disabled=!1;for(let h=0;h&amp;amp;lt;this.elt.length;h++)this.elt[h].disabled=!1,this.elt[h].selected=!1}return this},a};let n=0;t.createRadio=function(...s){let a,o,u,h=s[0];h instanceof st&amp;amp;amp;&amp;amp;amp;(h.elt instanceof HTMLDivElement||h.elt instanceof HTMLSpanElement)?(a=h,this.elt=h.elt):h instanceof HTMLDivElement||h instanceof HTMLSpanElement?(a=r(h,this),this.elt=h,o=h,typeof s[1]==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u=s[1])):(typeof h==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(u=h),o=document.createElement(&amp;amp;quot;div&amp;amp;quot;),a=r(o,this),this.elt=o),a._name=u||`radioOption_${n++}`;let l=f=&amp;amp;gt;f instanceof HTMLInputElement&amp;amp;amp;&amp;amp;amp;f.type===&amp;amp;quot;radio&amp;amp;quot;,c=f=&amp;amp;gt;f instanceof HTMLLabelElement,p=f=&amp;amp;gt;f instanceof HTMLSpanElement;return a._getOptionsArray=function(){return Array.from(this.elt.children).filter(f=&amp;amp;gt;l(f)||c(f)&amp;amp;amp;&amp;amp;amp;l(f.firstElementChild)).map(f=&amp;amp;gt;l(f)?f:f.firstElementChild)},a.option=function(f,d){let m;for(let w of a._getOptionsArray())if(w.value===f){m=w;break}m===void 0&amp;amp;amp;&amp;amp;amp;(m=document.createElement(&amp;amp;quot;input&amp;amp;quot;),m.setAttribute(&amp;amp;quot;type&amp;amp;quot;,&amp;amp;quot;radio&amp;amp;quot;),m.setAttribute(&amp;amp;quot;value&amp;amp;quot;,f)),m.setAttribute(&amp;amp;quot;name&amp;amp;quot;,a._name);let g;c(m.parentElement)?g=m.parentElement:(g=document.createElement(&amp;amp;quot;label&amp;amp;quot;),g.insertAdjacentElement(&amp;amp;quot;afterbegin&amp;amp;quot;,m));let v;return p(g.lastElementChild)?v=g.lastElementChild:(v=document.createElement(&amp;amp;quot;span&amp;amp;quot;),m.insertAdjacentElement(&amp;amp;quot;afterend&amp;amp;quot;,v)),v.innerHTML=d===void 0?f:d,this.elt.appendChild(g),m},a.remove=function(f){for(let d of a._getOptionsArray())if(d.value===f){c(d.parentElement)?d.parentElement.remove():d.remove();return}},a.value=function(){let f=&amp;amp;quot;&amp;amp;quot;;for(let d of a._getOptionsArray())if(d.checked){f=d.value;break}return f},a.selected=function(f){let d=null;if(f===void 0){for(let m of a._getOptionsArray())if(m.checked){d=m;break}}else{a._getOptionsArray().forEach(m=&amp;amp;gt;{m.checked=!1,m.removeAttribute(&amp;amp;quot;checked&amp;amp;quot;)});for(let m of a._getOptionsArray())m.value===f&amp;amp;amp;&amp;amp;amp;(m.setAttribute(&amp;amp;quot;checked&amp;amp;quot;,!0),m.checked=!0,d=m)}return d},a.disable=function(f=!0){for(let d of a._getOptionsArray())d.setAttribute(&amp;amp;quot;disabled&amp;amp;quot;,f)},a},t.createColorPicker=function(s){let a=document.createElement(&amp;amp;quot;input&amp;amp;quot;),o;a.type=&amp;amp;quot;color&amp;amp;quot;,s?s instanceof i.Color?a.value=s.toString(&amp;amp;quot;#rrggbb&amp;amp;quot;):(this.push(),this.colorMode(&amp;amp;quot;rgb&amp;amp;quot;),a.value=this.color(s).toString(&amp;amp;quot;#rrggbb&amp;amp;quot;),this.pop()):a.value=&amp;amp;quot;#000000&amp;amp;quot;,o=r(a,this);let u=this;return o.color=function(){u.push(),s&amp;amp;amp;&amp;amp;amp;s.mode&amp;amp;amp;&amp;amp;amp;u.colorMode(s.mode,...s?.maxes?s.maxes[s.mode]||[]:[]);let h=u.color(this.elt.value);return u.pop(),h},o},t.createInput=function(s=&amp;amp;quot;&amp;amp;quot;,a=&amp;amp;quot;text&amp;amp;quot;){let o=document.createElement(&amp;amp;quot;input&amp;amp;quot;);return o.setAttribute(&amp;amp;quot;value&amp;amp;quot;,s),o.setAttribute(&amp;amp;quot;type&amp;amp;quot;,a),r(o,this)},t.createFileInput=function(s,a=!1){let o=function(h){for(let l of h.target.files)Fn._load(l,s)};if(!(window.File&amp;amp;amp;&amp;amp;amp;window.FileReader&amp;amp;amp;&amp;amp;amp;window.FileList&amp;amp;amp;&amp;amp;amp;window.Blob)){console.log(&amp;amp;quot;The File APIs are not fully supported in this browser. Cannot create element.&amp;amp;quot;);return}let u=document.createElement(&amp;amp;quot;input&amp;amp;quot;);return u.setAttribute(&amp;amp;quot;type&amp;amp;quot;,&amp;amp;quot;file&amp;amp;quot;),a&amp;amp;amp;&amp;amp;amp;u.setAttribute(&amp;amp;quot;multiple&amp;amp;quot;,!0),u.addEventListener(&amp;amp;quot;change&amp;amp;quot;,o,!1),r(u,this)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Bf(p5,p5.prototype);function Ag(i){i.registerAddon(Bf),i.registerAddon(Wh),i.registerAddon(Qh),i.registerAddon(Hh)}function Pf(i,t){t.deviceOrientation=window.innerWidth/window.innerHeight&amp;amp;gt;1?&amp;amp;quot;landscape&amp;amp;quot;:&amp;amp;quot;portrait&amp;amp;quot;,t.accelerationX=0,t.accelerationY=0,t.accelerationZ=0,t.pAccelerationX=0,t.pAccelerationY=0,t.pAccelerationZ=0,t._updatePAccelerations=function(){this.pAccelerationX=this.accelerationX,this.pAccelerationY=this.accelerationY,this.pAccelerationZ=this.accelerationZ},t.rotationX=0,t.rotationY=0,t.rotationZ=0,t.pRotationX=0,t.pRotationY=0,t.pRotationZ=0;let r=0,n=0,s=0,a=&amp;amp;quot;clockwise&amp;amp;quot;,o=&amp;amp;quot;clockwise&amp;amp;quot;,u=&amp;amp;quot;clockwise&amp;amp;quot;;t.pRotateDirectionX=void 0,t.pRotateDirectionY=void 0,t.pRotateDirectionZ=void 0,t._updatePRotations=function(){this.pRotationX=this.rotationX,this.pRotationY=this.rotationY,this.pRotationZ=this.rotationZ},t.turnAxis=void 0;let h=.5,l=30;t.setMoveThreshold=function(c){h=c},t.setShakeThreshold=function(c){l=c},t._ondeviceorientation=function(c){this._updatePRotations(),this.rotationX=this._fromDegrees(c.beta),this.rotationY=this._fromDegrees(c.gamma),this.rotationZ=this._fromDegrees(c.alpha),this._handleMotion()},t._ondevicemotion=function(c){this._updatePAccelerations(),this.accelerationX=c.acceleration.x*2,this.accelerationY=c.acceleration.y*2,this.accelerationZ=c.acceleration.z*2,this._handleMotion()},t._handleMotion=function(){window.orientation===90||window.orientation===-90?this.deviceOrientation=&amp;amp;quot;landscape&amp;amp;quot;:window.orientation===0?this.deviceOrientation=&amp;amp;quot;portrait&amp;amp;quot;:window.orientation===void 0&amp;amp;amp;&amp;amp;amp;(this.deviceOrientation=&amp;amp;quot;undefined&amp;amp;quot;);let c=this._isGlobal?window:this;if(typeof c.deviceMoved==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(Math.abs(this.accelerationX-this.pAccelerationX)&amp;amp;gt;h||Math.abs(this.accelerationY-this.pAccelerationY)&amp;amp;gt;h||Math.abs(this.accelerationZ-this.pAccelerationZ)&amp;amp;gt;h)&amp;amp;amp;&amp;amp;amp;c.deviceMoved(),typeof c.deviceTurned==&amp;amp;quot;function&amp;amp;quot;){let p=this._toDegrees(this.rotationX)+180,f=this._toDegrees(this.pRotationX)+180,d=r+180;p-f&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;p-f&amp;amp;lt;270||p-f&amp;amp;lt;-270?a=&amp;amp;quot;clockwise&amp;amp;quot;:(p-f&amp;amp;lt;0||p-f&amp;amp;gt;270)&amp;amp;amp;&amp;amp;amp;(a=&amp;amp;quot;counter-clockwise&amp;amp;quot;),a!==this.pRotateDirectionX&amp;amp;amp;&amp;amp;amp;(d=p),Math.abs(p-d)&amp;amp;gt;90&amp;amp;amp;&amp;amp;amp;Math.abs(p-d)&amp;amp;lt;270&amp;amp;amp;&amp;amp;amp;(d=p,this.turnAxis=&amp;amp;quot;X&amp;amp;quot;,c.deviceTurned()),this.pRotateDirectionX=a,r=d-180;let m=this._toDegrees(this.rotationY)+180,g=this._toDegrees(this.pRotationY)+180,v=n+180;m-g&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;m-g&amp;amp;lt;270||m-g&amp;amp;lt;-270?o=&amp;amp;quot;clockwise&amp;amp;quot;:(m-g&amp;amp;lt;0||m-this.pRotationY&amp;amp;gt;270)&amp;amp;amp;&amp;amp;amp;(o=&amp;amp;quot;counter-clockwise&amp;amp;quot;),o!==this.pRotateDirectionY&amp;amp;amp;&amp;amp;amp;(v=m),Math.abs(m-v)&amp;amp;gt;90&amp;amp;amp;&amp;amp;amp;Math.abs(m-v)&amp;amp;lt;270&amp;amp;amp;&amp;amp;amp;(v=m,this.turnAxis=&amp;amp;quot;Y&amp;amp;quot;,c.deviceTurned()),this.pRotateDirectionY=o,n=v-180;let w=this._toDegrees(this.rotationZ),y=this._toDegrees(this.pRotationZ);w-y&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;w-y&amp;amp;lt;270||w-y&amp;amp;lt;-270?u=&amp;amp;quot;clockwise&amp;amp;quot;:(w-y&amp;amp;lt;0||w-y&amp;amp;gt;270)&amp;amp;amp;&amp;amp;amp;(u=&amp;amp;quot;counter-clockwise&amp;amp;quot;),u!==this.pRotateDirectionZ&amp;amp;amp;&amp;amp;amp;(s=w),Math.abs(w-s)&amp;amp;gt;90&amp;amp;amp;&amp;amp;amp;Math.abs(w-s)&amp;amp;lt;270&amp;amp;amp;&amp;amp;amp;(s=w,this.turnAxis=&amp;amp;quot;Z&amp;amp;quot;,c.deviceTurned()),this.pRotateDirectionZ=u,this.turnAxis=void 0}if(typeof c.deviceShaken==&amp;amp;quot;function&amp;amp;quot;){let p,f;this.pAccelerationX!==null&amp;amp;amp;&amp;amp;amp;(p=Math.abs(this.accelerationX-this.pAccelerationX),f=Math.abs(this.accelerationY-this.pAccelerationY)),p+f&amp;amp;gt;l&amp;amp;amp;&amp;amp;amp;c.deviceShaken()}}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Pf(p5,p5.prototype);function R2(i){return[&amp;amp;quot;Alt&amp;amp;quot;,&amp;amp;quot;Shift&amp;amp;quot;,&amp;amp;quot;Control&amp;amp;quot;,&amp;amp;quot;Meta&amp;amp;quot;].includes(i)||typeof i!=&amp;amp;quot;string&amp;amp;quot;?!1:i.length&amp;amp;gt;1}function Of(i,t){t.keyIsPressed=!1,t.code=null,t.key=&amp;amp;quot;&amp;amp;quot;,t.keyCode=0,t._onkeydown=function(r){if(this._downKeys[r.code])return;this.keyIsPressed=!0,this.keyCode=r.which,this.key=r.key,this.code=r.code,this._downKeyCodes[r.code]=!0,this._downKeys[r.key]=!0;let n=this._isGlobal?window:this;typeof n.keyPressed==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!r.charCode&amp;amp;amp;&amp;amp;amp;n.keyPressed(r)===!1&amp;amp;amp;&amp;amp;amp;r.preventDefault()},t._onkeyup=function(r){let n=this._isGlobal?window:this;if(typeof n.keyReleased==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.keyReleased(r)===!1&amp;amp;amp;&amp;amp;amp;r.preventDefault(),delete this._downKeyCodes[r.code],delete this._downKeys[r.key],!this._areDownKeys())this.keyIsPressed=!1,this.key=&amp;amp;quot;&amp;amp;quot;,this.code=null;else{let s=Object.keys(this._downKeyCodes).pop();this.code=s;let a=Object.keys(this._downKeys).pop();this.key=a}},t._onkeypress=function(r){if(r.which===this._lastKeyCodeTyped&amp;amp;amp;&amp;amp;amp;r.repeat)return;this._lastKeyCodeTyped=r.which,this.key=r.key||String.fromCharCode(r.which)||r.which;let n=this._isGlobal?window:this;typeof n.keyTyped==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;n.keyTyped(r)===!1&amp;amp;amp;&amp;amp;amp;r.preventDefault()},t._onblur=function(r){this._downKeys={}},t.keyIsDown=function(r){return R2(r)?this._downKeyCodes[r]||this._downKeys[r]||!1:this._downKeys[r]||this._downKeyCodes[r]||!1},t._areDownKeys=function(){for(let r in this._downKeys)if(this._downKeys.hasOwnProperty(r)&amp;amp;amp;&amp;amp;amp;this._downKeys[r]===!0)return!0;return!1}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Of(p5,p5.prototype);function Vf(i,t){t.movedX=0,t.movedY=0,t._hasMouseInteracted=!1,t.mouseX=0,t.mouseY=0,t.pmouseX=0,t.pmouseY=0,t.winMouseX=0,t.winMouseY=0,t.pwinMouseX=0,t.pwinMouseY=0,t.mouseButton={left:!1,right:!1,center:!1},t.touches=[],t._activePointers=new Map,t.mouseIsPressed=!1,t._updatePointerCoords=function(s){if(this._curElement!==null){let a=this._curElement.elt,o=a.scrollWidth/this.width||1,u=a.scrollHeight/this.height||1;if(s.pointerType==&amp;amp;quot;touch&amp;amp;quot;){let l=[];for(let c of this._activePointers.values())l.push(n(a,o,u,c));this.touches=l}let h=r(a,o,u,s);this.movedX=s.movementX||0,this.movedY=s.movementY||0,this.mouseX=h.x,this.mouseY=h.y,this.winMouseX=h.winX,this.winMouseY=h.winY,this._hasMouseInteracted||(this._updateMouseCoords(),this._hasMouseInteracted=!0)}},t._updateMouseCoords=function(){this.pmouseX=this.mouseX,this.pmouseY=this.mouseY,this.pwinMouseX=this.winMouseX,this.pwinMouseY=this.winMouseY,this._pmouseWheelDeltaY=this._mouseWheelDeltaY};function r(s,a,o,u){let h=s.getBoundingClientRect();return{x:(u.clientX-h.left)/a,y:(u.clientY-h.top)/o,winX:u.clientX,winY:u.clientY}}function n(s,a,o,u){let h=s.getBoundingClientRect();return{x:(u.clientX-h.left)/a,y:(u.clientY-h.top)/o,winX:u.clientX,winY:u.clientY,id:u.pointerId}}t._setMouseButton=function(s){this.mouseButton.left=Array.from(this._activePointers.values()).some(a=&amp;amp;gt;(a.buttons&amp;amp;amp;1)!==0),this.mouseButton.center=Array.from(this._activePointers.values()).some(a=&amp;amp;gt;(a.buttons&amp;amp;amp;4)!==0),this.mouseButton.right=Array.from(this._activePointers.values()).some(a=&amp;amp;gt;(a.buttons&amp;amp;amp;2)!==0)},t._onpointermove=function(s){let a=this._isGlobal?window:this,o;this._updatePointerCoords(s),this._activePointers.set(s.pointerId,s),this._setMouseButton(s),!this.mouseIsPressed&amp;amp;amp;&amp;amp;amp;typeof a.mouseMoved==&amp;amp;quot;function&amp;amp;quot;?(o=a.mouseMoved(s),o===!1&amp;amp;amp;&amp;amp;amp;s.preventDefault()):this.mouseIsPressed&amp;amp;amp;&amp;amp;amp;typeof a.mouseDragged==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=a.mouseDragged(s),o===!1&amp;amp;amp;&amp;amp;amp;s.preventDefault())},t._onpointerdown=function(s){let a=this._isGlobal?window:this,o;this.mouseIsPressed=!0,this._activePointers.set(s.pointerId,s),this._setMouseButton(s),this._updatePointerCoords(s),typeof a.mousePressed==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=a.mousePressed(s),o===!1&amp;amp;amp;&amp;amp;amp;s.preventDefault())},t._onpointerup=function(s){let a=this._isGlobal?window:this,o;this.mouseIsPressed=!1,this._activePointers.delete(s.pointerId),this._setMouseButton(s),this._updatePointerCoords(s),typeof a.mouseReleased==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=a.mouseReleased(s),o===!1&amp;amp;amp;&amp;amp;amp;s.preventDefault())},t._ondragend=t._onpointerup,t._ondragover=t._onpointermove,t._onclick=function(s){let a=this._isGlobal?window:this;typeof a.mouseClicked==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a.mouseClicked(s)===!1&amp;amp;amp;&amp;amp;amp;s.preventDefault()},t._ondblclick=function(s){let a=this._isGlobal?window:this;typeof a.doubleClicked==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;a.doubleClicked(s)===!1&amp;amp;amp;&amp;amp;amp;s.preventDefault()},t._mouseWheelDeltaY=0,t._pmouseWheelDeltaY=0,t._onwheel=function(s){let a=this._isGlobal?window:this;this._mouseWheelDeltaY=s.deltaY,typeof a.mouseWheel==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s.delta=s.deltaY,a.mouseWheel(s)===!1&amp;amp;amp;&amp;amp;amp;s.preventDefault())},t.requestPointerLock=function(){let s=this._curElement.elt;return s.requestPointerLock=s.requestPointerLock||s.mozRequestPointerLock,s.requestPointerLock?(s.requestPointerLock(),!0):(console.log(&amp;amp;quot;requestPointerLock is not implemented in this browser&amp;amp;quot;),!1)},t.exitPointerLock=function(){document.exitPointerLock()}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Vf(p5,p5.prototype);function Dg(i){i.registerAddon(Pf),i.registerAddon(Of),i.registerAddon(Vf)}var dR=Se(or());var yR=Se(Bt()),vR=Se(ur());var NR=Se(lr());function Fg(i){i.registerAddon(sl),i.registerAddon(al),i.registerAddon(Kh),i.registerAddon(Ya),i.registerAddon(io),i.registerAddon(no)}var Uf=class{constructor(t){this.columns=[],this.rows=[]}toString(t=&amp;amp;quot;,&amp;amp;quot;){let r=this.rows.map(n=&amp;amp;gt;n.arr);return this.columns.some(n=&amp;amp;gt;n===null)||(r=[this.columns,...r]),nm(r,{separator:t})}addRow(t){let r=t||new p5.TableRow;if(typeof r.arr&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;||typeof r.obj&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)throw new Error(`invalid TableRow: ${r}`);return r.table=this,this.rows.push(r),r}removeRow(t){this.rows[t].table=null;let r=this.rows.splice(t+1,this.rows.length);this.rows.pop(),this.rows=this.rows.concat(r)}getRow(t){return this.rows[t]}getRows(){return this.rows}findRow(t,r){if(typeof r==&amp;amp;quot;string&amp;amp;quot;){for(let n=0;n&amp;amp;lt;this.rows.length;n++)if(this.rows[n].obj[this.columns.indexOf(r)]===t)return this.rows[n]}else for(let n=0;n&amp;amp;lt;this.rows.length;n++)if(this.rows[n].arr[r]===t)return this.rows[n];return null}findRows(t,r){let n=[];if(typeof r==&amp;amp;quot;string&amp;amp;quot;)for(let s=0;s&amp;amp;lt;this.rows.length;s++)this.rows[s].obj[this.columns.indexOf(r)]===t&amp;amp;amp;&amp;amp;amp;n.push(this.rows[s]);else for(let s=0;s&amp;amp;lt;this.rows.length;s++)this.rows[s].arr[r]===t&amp;amp;amp;&amp;amp;amp;n.push(this.rows[s]);return n}matchRow(t,r){if(typeof r==&amp;amp;quot;number&amp;amp;quot;){for(let n=0;n&amp;amp;lt;this.rows.length;n++)if(this.rows[n].arr[r].match(t))return this.rows[n]}else for(let n=0;n&amp;amp;lt;this.rows.length;n++)if(this.rows[n].obj[this.columns.indexOf(r)].match(t))return this.rows[n];return null}matchRows(t,r){let n=[];if(typeof r==&amp;amp;quot;number&amp;amp;quot;)for(let s=0;s&amp;amp;lt;this.rows.length;s++)this.rows[s].arr[r].match(t)&amp;amp;amp;&amp;amp;amp;n.push(this.rows[s]);else for(let s=0;s&amp;amp;lt;this.rows.length;s++)this.rows[s].obj[this.columns.indexOf(r)].match(t)&amp;amp;amp;&amp;amp;amp;n.push(this.rows[s]);return n}getColumn(t){let r=[];if(typeof t==&amp;amp;quot;string&amp;amp;quot;)for(let n=0;n&amp;amp;lt;this.rows.length;n++)r.push(this.rows[n].obj[this.columns.indexOf(t)]);else for(let n=0;n&amp;amp;lt;this.rows.length;n++)r.push(this.rows[n].arr[t]);return r}clearRows(){delete this.rows,this.rows=[]}addColumn(t){let r=t||null;this.columns.push(r)}getColumnCount(){return this.columns.length}getRowCount(){return this.rows.length}removeTokens(t,r){let n=o=&amp;amp;gt;o.replace(/[-/\\^$*+?.()|[\]{}]/g,&amp;amp;quot;\\$&amp;amp;amp;&amp;amp;quot;),s=[];for(let o=0;o&amp;amp;lt;t.length;o++)s.push(n(t.charAt(o)));let a=new RegExp(s.join(&amp;amp;quot;|&amp;amp;quot;),&amp;amp;quot;g&amp;amp;quot;);if(typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)for(let o=0;o&amp;amp;lt;this.columns.length;o++)for(let u=0;u&amp;amp;lt;this.rows.length;u++){let h=this.rows[u].arr[o];h=h.replace(a,&amp;amp;quot;&amp;amp;quot;),this.rows[u].arr[o]=h,this.rows[u].obj[this.columns[o]]=h}else if(typeof r==&amp;amp;quot;string&amp;amp;quot;)for(let o=0;o&amp;amp;lt;this.rows.length;o++){let u=this.rows[o].obj[r];u=u.replace(a,&amp;amp;quot;&amp;amp;quot;),this.rows[o].obj[r]=u;let h=this.columns.indexOf(r);this.rows[o].arr[h]=u}else for(let o=0;o&amp;amp;lt;this.rows.length;o++){let u=this.rows[o].arr[r];u=u.replace(a,&amp;amp;quot;&amp;amp;quot;),this.rows[o].arr[r]=u,this.rows[o].obj[this.columns[r]]=u}}trim(t){let r=new RegExp(&amp;amp;quot; &amp;amp;quot;,&amp;amp;quot;g&amp;amp;quot;);if(typeof t&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)for(let n=0;n&amp;amp;lt;this.columns.length;n++)for(let s=0;s&amp;amp;lt;this.rows.length;s++){let a=this.rows[s].arr[n];a=a.replace(r,&amp;amp;quot;&amp;amp;quot;),this.rows[s].arr[n]=a,this.rows[s].obj[this.columns[n]]=a}else if(typeof t==&amp;amp;quot;string&amp;amp;quot;)for(let n=0;n&amp;amp;lt;this.rows.length;n++){let s=this.rows[n].obj[t];s=s.replace(r,&amp;amp;quot;&amp;amp;quot;),this.rows[n].obj[t]=s;let a=this.columns.indexOf(t);this.rows[n].arr[a]=s}else for(let n=0;n&amp;amp;lt;this.rows.length;n++){let s=this.rows[n].arr[t];s=s.replace(r,&amp;amp;quot;&amp;amp;quot;),this.rows[n].arr[t]=s,this.rows[n].obj[this.columns[t]]=s}}removeColumn(t){let r,n;typeof t==&amp;amp;quot;string&amp;amp;quot;?(r=t,n=this.columns.indexOf(t)):(n=t,r=this.columns[t]);let s=this.columns.splice(n+1,this.columns.length);this.columns.pop(),this.columns=this.columns.concat(s);for(let a=0;a&amp;amp;lt;this.rows.length;a++){let o=this.rows[a].arr,u=o.splice(n+1,o.length);o.pop(),this.rows[a].arr=o.concat(u),delete this.rows[a].obj[r]}}set(t,r,n){this.rows[t].set(r,n)}setNum(t,r,n){this.rows[t].setNum(r,n)}setString(t,r,n){this.rows[t].setString(r,n)}get(t,r){return typeof r==&amp;amp;quot;string&amp;amp;quot;?this.rows[t].get(this.columns.indexOf(r)):this.rows[t].get(r)}getNum(t,r){return this.rows[t].getNum(r)}getString(t,r){return this.rows[t].getString(r)}getObject(t){let r={},n,s,a;for(let o=0;o&amp;amp;lt;this.rows.length;o++)if(n=this.rows[o].obj,typeof t==&amp;amp;quot;string&amp;amp;quot;)if(s=this.columns.indexOf(t),s&amp;amp;gt;=0)a=n[t],r[a]=n;else throw new Error(`This table has no column named &amp;amp;quot;${t}&amp;amp;quot;`);else r[o]=this.rows[o].obj;return r}getArray(){let t=[];for(let r=0;r&amp;amp;lt;this.rows.length;r++)t.push(this.rows[r].arr);return t}};function Gf(i,t){i.Table=Uf}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Gf(p5,p5.prototype);var zf=class{constructor(t=[]){let r=t;this.arr=r,this.obj=Object.fromEntries(r.entries()),this.table=null}set(t,r){if(typeof t==&amp;amp;quot;string&amp;amp;quot;){let n=this.table.columns.indexOf(t);if(n&amp;amp;gt;=0)this.obj[t]=r,this.arr[n]=r;else throw new Error(`This table has no column named &amp;amp;quot;${t}&amp;amp;quot;`)}else if(t&amp;amp;lt;this.table.columns.length){this.arr[t]=r;let n=this.table.columns[t];this.obj[n]=r}else throw new Error(`Column #${t} is out of the range of this table`)}setNum(t,r){let n=parseFloat(r);this.set(t,n)}setString(t,r){let n=r.toString();this.set(t,n)}get(t){return typeof t==&amp;amp;quot;string&amp;amp;quot;?this.obj[this.table.columns.indexOf(t)]:this.arr[t]}getNum(t){let r;if(typeof t==&amp;amp;quot;string&amp;amp;quot;?r=parseFloat(this.obj[this.table.columns.indexOf(t)]):r=parseFloat(this.arr[t]),r.toString()===&amp;amp;quot;NaN&amp;amp;quot;)throw`Error: ${this.obj[t]} is NaN (Not a Number)`;return r}getString(t){return typeof t==&amp;amp;quot;string&amp;amp;quot;?this.obj[this.table.columns.indexOf(t)].toString():this.arr[t].toString()}};function jf(i,t){i.TableRow=zf}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;jf(p5,p5.prototype);var rB=Se(Bt());var hB=Se(or());var fB=Se(ur());var EB=Se(lr());function Tg(i){i.registerAddon(Ec),i.registerAddon(Gf),i.registerAddon(jf),i.registerAddon($h)}function $f(i,t){t.abs=Math.abs,t.ceil=Math.ceil,t.constrain=function(r,n,s){return Math.max(Math.min(r,s),n)},t.dist=function(...r){if(r.length===4)return Math.hypot(r[2]-r[0],r[3]-r[1]);if(r.length===6)return Math.hypot(r[3]-r[0],r[4]-r[1],r[5]-r[2])},t.exp=Math.exp,t.floor=Math.floor,t.lerp=function(r,n,s){return s*(n-r)+r},t.log=Math.log,t.mag=function(r,n){return Math.hypot(r,n)},t.map=function(r,n,s,a,o,u){let h=(r-n)/(s-n)*(o-a)+a;return u?a&amp;amp;lt;o?this.constrain(h,a,o):this.constrain(h,o,a):h},t.max=function(...r){let n=s=&amp;amp;gt;{let a=-1/0;for(let o of s)a=Math.max(a,o);return a};return r[0]instanceof Array?n(r[0]):n(r)},t.min=function(...r){let n=s=&amp;amp;gt;{let a=1/0;for(let o of s)a=Math.min(a,o);return a};return r[0]instanceof Array?n(r[0]):n(r)},t.norm=function(r,n,s){return this.map(r,n,s,0,1)},t.pow=Math.pow,t.round=function(r,n){if(!n)return Math.round(r);let s=Math.pow(10,n);return Math.round(r*s)/s},t.sq=r=&amp;amp;gt;r*r,t.sqrt=Math.sqrt,t.fract=function(r){let n=0,s=Number(r);if(isNaN(s)||Math.abs(s)===1/0)return s;if(s&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(s=-s,n=1),String(s).includes(&amp;amp;quot;.&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!String(s).includes(&amp;amp;quot;e&amp;amp;quot;)){let a=String(s);return a=+(&amp;amp;quot;0&amp;amp;quot;+a.slice(a.indexOf(&amp;amp;quot;.&amp;amp;quot;))),Math.abs(n-a)}else return s&amp;amp;lt;1?Math.abs(n-s):0}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;$f(p5,p5.prototype);function Hf(i,t){let u=4,h=.5,l=p=&amp;amp;gt;.5*(1-Math.cos(p*Math.PI)),c;t.noise=function(p,f=0,d=0){if(c==null){c=new Array(4096);for(let D=0;D&amp;amp;lt;4096;D++)c[D]=Math.random()}p&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(p=-p),f&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(f=-f),d&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(d=-d);let m=Math.floor(p),g=Math.floor(f),v=Math.floor(d),w=p-m,y=f-g,S=d-v,_,b,I=0,E=.5,A,C,T;for(let D=0;D&amp;amp;lt;u;D++){let F=m+(g&amp;amp;lt;&amp;amp;lt;4)+(v&amp;amp;lt;&amp;amp;lt;8);_=l(w),b=l(y),A=c[F&amp;amp;amp;4095],A+=_*(c[F+1&amp;amp;amp;4095]-A),C=c[F+16&amp;amp;amp;4095],C+=_*(c[F+16+1&amp;amp;amp;4095]-C),A+=b*(C-A),F+=256,C=c[F&amp;amp;amp;4095],C+=_*(c[F+1&amp;amp;amp;4095]-C),T=c[F+16&amp;amp;amp;4095],T+=_*(c[F+16+1&amp;amp;amp;4095]-T),C+=b*(T-C),A+=l(S)*(C-A),I+=A*E,E*=h,m&amp;amp;lt;&amp;amp;lt;=1,w*=2,g&amp;amp;lt;&amp;amp;lt;=1,y*=2,v&amp;amp;lt;&amp;amp;lt;=1,S*=2,w&amp;amp;gt;=1&amp;amp;amp;&amp;amp;amp;(m++,w--),y&amp;amp;gt;=1&amp;amp;amp;&amp;amp;amp;(g++,y--),S&amp;amp;gt;=1&amp;amp;amp;&amp;amp;amp;(v++,S--)}return I},t.noiseDetail=function(p,f){p&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(u=p),f&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(h=f)},t.noiseSeed=function(p){let f=(()=&amp;amp;gt;{let v,w;return{setSeed(y){w=v=(y??Math.random()*4294967296)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0},getSeed(){return v},rand(){return w=(1664525*w+1013904223)%4294967296,w/4294967296}}})();f.setSeed(p),c=new Array(4096);for(let d=0;d&amp;amp;lt;4096;d++)c[d]=f.rand()}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Hf(p5,p5.prototype);function Wf(i,t){let r=&amp;amp;quot;_lcg_random_state&amp;amp;quot;,o=0;t._lcg=function(u){return this[u]=(1664525*this[u]+1013904223)%4294967296,this[u]/4294967296},t._lcgSetSeed=function(u,h){this[u]=(h??Math.random()*4294967296)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0},t.randomSeed=function(u){this._lcgSetSeed(r,u),this._gaussian_previous=!1},t.random=function(u,h){let l;if(this[r]!=null?l=this._lcg(r):l=Math.random(),typeof u&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return l;if(typeof h&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)return u instanceof Array?u[Math.floor(l*u.length)]:l*u;if(u&amp;amp;gt;h){let c=u;u=h,h=c}return l*(h-u)+u},t.randomGaussian=function(u,h=1){let l,c,p,f;if(this._gaussian_previous)l=o,this._gaussian_previous=!1;else{do c=this.random(2)-1,p=this.random(2)-1,f=c*c+p*p;while(f&amp;amp;gt;=1);f=Math.sqrt(-2*Math.log(f)/f),l=c*f,o=p*f,this._gaussian_previous=!0}let d=u||0;return l*h+d}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Wf(p5,p5.prototype);function qf(i,t){t.createVector=function(r,n,s){return this instanceof i?new i.Vector(this._fromRadians.bind(this),this._toRadians.bind(this),...arguments):new i.Vector(r,n,s)},t.createMatrix=function(...r){return new i.Matrix(...r)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;qf(p5,p5.prototype);function Ng(i){i.registerAddon($f),i.registerAddon(Hf),i.registerAddon(Wf),i.registerAddon(ro),i.registerAddon(qf),i.registerAddon(Sh)}function Zf(i,t){t.float=function(r){return r instanceof Array?r.map(parseFloat):parseFloat(r)},t.int=function(r,n=10){if(r===1/0||r===&amp;amp;quot;Infinity&amp;amp;quot;)return 1/0;if(r===-1/0||r===&amp;amp;quot;-Infinity&amp;amp;quot;)return-1/0;if(typeof r==&amp;amp;quot;string&amp;amp;quot;)return parseInt(r,n);if(typeof r==&amp;amp;quot;number&amp;amp;quot;)return r|0;if(typeof r==&amp;amp;quot;boolean&amp;amp;quot;)return r?1:0;if(r instanceof Array)return r.map(s=&amp;amp;gt;t.int(s,n))},t.str=function(r){return r instanceof Array?r.map(t.str):String(r)},t.boolean=function(r){if(typeof r==&amp;amp;quot;number&amp;amp;quot;)return r!==0;if(typeof r==&amp;amp;quot;string&amp;amp;quot;)return r.toLowerCase()===&amp;amp;quot;true&amp;amp;quot;;if(typeof r==&amp;amp;quot;boolean&amp;amp;quot;)return r;if(r instanceof Array)return r.map(t.boolean)},t.byte=function(r){let n=t.int(r,10);if(typeof n==&amp;amp;quot;number&amp;amp;quot;)return(n+128)%256-128;if(n instanceof Array)return n.map(t.byte)},t.char=function(r){if(typeof r==&amp;amp;quot;number&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;!isNaN(r))return String.fromCharCode(r);if(r instanceof Array)return r.map(t.char);if(typeof r==&amp;amp;quot;string&amp;amp;quot;)return t.char(parseInt(r,10))},t.unchar=function(r){if(typeof r==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r.length===1)return r.charCodeAt(0);if(r instanceof Array)return r.map(t.unchar)},t.hex=function(r,n){if(n=n??(n=8),r instanceof Array)return r.map(s=&amp;amp;gt;t.hex(s,n));if(r===1/0||r===-1/0)return(r===1/0?&amp;amp;quot;F&amp;amp;quot;:&amp;amp;quot;0&amp;amp;quot;).repeat(n);if(typeof r==&amp;amp;quot;number&amp;amp;quot;){r&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(r=4294967295+r+1);let s=Number(r).toString(16).toUpperCase();for(;s.length&amp;amp;lt;n;)s=`0${s}`;return s.length&amp;amp;gt;=n&amp;amp;amp;&amp;amp;amp;(s=s.substring(s.length-n,s.length)),s}},t.unhex=function(r){return r instanceof Array?r.map(t.unhex):parseInt(`0x${r}`,16)}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Zf(p5,p5.prototype);function Yf(i,t){t.nf=function(o,u,h){return o instanceof Array?o.map(l=&amp;amp;gt;r(l,u,h)):Object.prototype.toString.call(o)===&amp;amp;quot;[object Arguments]&amp;amp;quot;?o.length===3?this.nf(o[0],o[1],o[2]):o.length===2?this.nf(o[0],o[1]):this.nf(o[0]):r(o,u,h)};function r(o,u,h){let l=o&amp;amp;lt;0;o=Math.abs(o);let[c,p]=o.toString().split(&amp;amp;quot;.&amp;amp;quot;);if(typeof h&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;){c=c.padStart(u,&amp;amp;quot;0&amp;amp;quot;);let f=p?c+&amp;amp;quot;.&amp;amp;quot;+p:c;return l?&amp;amp;quot;-&amp;amp;quot;+f:f}else{[c,p]=o.toFixed(h).toString().split(&amp;amp;quot;.&amp;amp;quot;),c=c.padStart(u,&amp;amp;quot;0&amp;amp;quot;);let d=typeof p&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?c:c+&amp;amp;quot;.&amp;amp;quot;+p;return l?&amp;amp;quot;-&amp;amp;quot;+d:d}}t.nfc=function(o,u){return o instanceof Array?o.map(h=&amp;amp;gt;n(h,u)):n(o,u)};function n(o,u){o=o.toString();let h=o.indexOf(&amp;amp;quot;.&amp;amp;quot;),l=h!==-1?o.substring(h):&amp;amp;quot;&amp;amp;quot;,c=h!==-1?o.substring(0,h):o;if(c=c.toString().replace(/\B(?=(\d{3})+(?!\d))/g,&amp;amp;quot;,&amp;amp;quot;),u===0)l=&amp;amp;quot;&amp;amp;quot;;else if(typeof u&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)if(u&amp;amp;gt;l.length){l+=h===-1?&amp;amp;quot;.&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;;let p=u-l.length+1;for(let f=0;f&amp;amp;lt;p;f++)l+=&amp;amp;quot;0&amp;amp;quot;}else l=l.substring(0,u+1);return c+l}t.nfp=function(...o){let u=t.nf.apply(this,o);return u instanceof Array?u.map(s):s(u)};function s(o){return parseFloat(o)&amp;amp;gt;0?`+${o.toString()}`:o.toString()}t.nfs=function(...o){let u=t.nf.apply(this,o);return u instanceof Array?u.map(a):a(u)};function a(o){return parseFloat(o)&amp;amp;gt;=0?` ${o.toString()}`:o.toString()}t.splitTokens=function(o,u){let h;if(typeof u&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){let l=u,c=/\]/g.exec(l),p=/\[/g.exec(l);p&amp;amp;amp;&amp;amp;amp;c?(l=l.slice(0,c.index)+l.slice(c.index+1),p=/\[/g.exec(l),l=l.slice(0,p.index)+l.slice(p.index+1),h=new RegExp(`[\\[${l}\\]]`,&amp;amp;quot;g&amp;amp;quot;)):c?(l=l.slice(0,c.index)+l.slice(c.index+1),h=new RegExp(`[${l}\\]]`,&amp;amp;quot;g&amp;amp;quot;)):p?(l=l.slice(0,p.index)+l.slice(p.index+1),h=new RegExp(`[${l}\\[]`,&amp;amp;quot;g&amp;amp;quot;)):h=new RegExp(`[${l}]`,&amp;amp;quot;g&amp;amp;quot;)}else h=/\s/g;return o.split(h).filter(l=&amp;amp;gt;l)},t.shuffle=function(o,u){let h=ArrayBuffer&amp;amp;amp;&amp;amp;amp;ArrayBuffer.isView&amp;amp;amp;&amp;amp;amp;ArrayBuffer.isView(o);o=u||h?o:o.slice();let l,c,p=o.length;for(;p&amp;amp;gt;1;)l=this.random(0,1)*p|0,c=o[--p],o[p]=o[l],o[l]=c;return o}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Yf(p5,p5.prototype);function Xf(i,t){t.day=function(){return new Date().getDate()},t.hour=function(){return new Date().getHours()},t.minute=function(){return new Date().getMinutes()},t.millis=function(){return this._millisStart===-1?0:window.performance.now()-this._millisStart},t.month=function(){return new Date().getMonth()+1},t.second=function(){return new Date().getSeconds()},t.year=function(){return new Date().getFullYear()}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Xf(p5,p5.prototype);function Ig(i){i.registerAddon(Zf),i.registerAddon(Yf),i.registerAddon(Xf)}function Kf(i,t){t.orbitControl=function(r,n,s,a){this._assert3d(&amp;amp;quot;orbitControl&amp;amp;quot;);let o=this._renderer.states.curCamera;typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=1),typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=r),typeof s&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s=1),typeof a!=&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a={}),this.contextMenuDisabled!==!0&amp;amp;amp;&amp;amp;amp;(this.canvas.oncontextmenu=()=&amp;amp;gt;!1,this.contextMenuDisabled=!0),this.wheelDefaultDisabled!==!0&amp;amp;amp;&amp;amp;amp;(this.canvas.onwheel=()=&amp;amp;gt;!1,this.wheelDefaultDisabled=!0);let{disableTouchActions:u=!0}=a;this.touchActionsDisabled!==!0&amp;amp;amp;&amp;amp;amp;u&amp;amp;amp;&amp;amp;amp;(this.canvas.style[&amp;amp;quot;touch-action&amp;amp;quot;]=&amp;amp;quot;none&amp;amp;quot;,this.touchActionsDisabled=!0);let{freeRotation:h=!1}=a,l=[];this.touches.forEach(I=&amp;amp;gt;{this._renderer.prevTouches.forEach(E=&amp;amp;gt;{if(I.id===E.id){let A={x:I.x,y:I.y,px:E.x,py:E.y};l.push(A)}})}),this._renderer.prevTouches=this.touches;let c=0,p=0,f=0,d=0,m=0,g=.85,v=.6,w=.15,y=.01,S=4e-4,_=this.height&amp;amp;lt;this.width?this.height:this.width,b=!1;if(l.length&amp;amp;gt;0){if(b=l[0].x&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;l[0].x&amp;amp;lt;this.width&amp;amp;amp;&amp;amp;amp;l[0].y&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;l[0].y&amp;amp;lt;this.height,l.length===1){let I=l[0];p=-r*(I.x-I.px)/_,f=n*(I.y-I.py)/_}else{let I=l[0],E=l[1],A=Math.hypot(I.x-E.x,I.y-E.y),C=Math.hypot(I.px-E.px,I.py-E.py);c=-(A-C)*s*S,d=.5*(I.x+E.x)-.5*(I.px+E.px),m=.5*(I.y+E.y)-.5*(I.py+E.py)}this.touches.length&amp;amp;gt;0?b&amp;amp;amp;&amp;amp;amp;(this._renderer.executeRotateAndMove=!0,this._renderer.executeZoom=!0):(this._renderer.executeRotateAndMove=!1,this._renderer.executeZoom=!1)}else b=this.mouseX&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.mouseX&amp;amp;lt;this.width&amp;amp;amp;&amp;amp;amp;this.mouseY&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.mouseY&amp;amp;lt;this.height,this._mouseWheelDeltaY!==0?(c=Math.sign(this._mouseWheelDeltaY)*s,c*=y,this._mouseWheelDeltaY=0,b&amp;amp;amp;&amp;amp;amp;(this._renderer.executeZoom=!0)):this._renderer.executeZoom=!1,this.mouseIsPressed?(this.mouseButton.left?(p=-r*this.movedX/_,f=n*this.movedY/_):this.mouseButton.right&amp;amp;amp;&amp;amp;amp;(d=this.movedX,m=this.movedY*o.yScale),b&amp;amp;amp;&amp;amp;amp;(this._renderer.executeRotateAndMove=!0)):this._renderer.executeRotateAndMove=!1;if(c!==0&amp;amp;amp;&amp;amp;amp;this._renderer.executeZoom&amp;amp;amp;&amp;amp;amp;(this._renderer.zoomVelocity+=c),Math.abs(this._renderer.zoomVelocity)&amp;amp;gt;.001?(h?o._orbitFree(0,0,this._renderer.zoomVelocity):o._orbit(0,0,this._renderer.zoomVelocity),o.projMatrix.mat4[15]!==0&amp;amp;amp;&amp;amp;amp;(o.projMatrix.mat4[0]*=Math.pow(10,-this._renderer.zoomVelocity),o.projMatrix.mat4[5]*=Math.pow(10,-this._renderer.zoomVelocity),this._renderer.states.setValue(&amp;amp;quot;uPMatrix&amp;amp;quot;,this._renderer.states.uPMatrix.clone()),this._renderer.states.uPMatrix.mat4[0]=o.projMatrix.mat4[0],this._renderer.states.uPMatrix.mat4[5]=o.projMatrix.mat4[5]),this._renderer.zoomVelocity*=g):this._renderer.zoomVelocity=0,(p!==0||f!==0)&amp;amp;amp;&amp;amp;amp;this._renderer.executeRotateAndMove&amp;amp;amp;&amp;amp;amp;this._renderer.rotateVelocity.add(p*v,f*v),this._renderer.rotateVelocity.magSq()&amp;amp;gt;1e-6?(h?o._orbitFree(-this._renderer.rotateVelocity.x,this._renderer.rotateVelocity.y,0):o._orbit(this._renderer.rotateVelocity.x,this._renderer.rotateVelocity.y,0),this._renderer.rotateVelocity.mult(g)):this._renderer.rotateVelocity.set(0,0),(d!==0||m!==0)&amp;amp;amp;&amp;amp;amp;this._renderer.executeRotateAndMove){let I=d*2/this.width,E=-m*2/this.height;this._renderer.moveVelocity.add(I*w,E*w)}if(this._renderer.moveVelocity.magSq()&amp;amp;gt;1e-6){let I=o._getLocalAxes(),E=o.eyeX-o.centerX,A=o.eyeY-o.centerY,C=o.eyeZ-o.centerZ,T=Math.sqrt(E*E+A*A+C*C),D=new H(o.centerX,o.centerY,o.centerZ);D=o.cameraMatrix.multiplyPoint(D),D=this._renderer.states.uPMatrix.multiplyAndNormalizePoint(D),D.x-=this._renderer.moveVelocity.x,D.y-=this._renderer.moveVelocity.y;let F,N,B=this._renderer.states.uPMatrix.mat4;B[15]===0?(F=(B[8]+D.x)/B[0]*T,N=(B[9]+D.y)/B[5]*T):(F=(D.x-B[12])/B[0],N=(D.y-B[13])/B[5]),o.setPosition(o.eyeX+F*I.x[0]+N*I.y[0],o.eyeY+F*I.x[1]+N*I.y[1],o.eyeZ+F*I.x[2]+N*I.y[2]),this._renderer.moveVelocity.mult(g)}else this._renderer.moveVelocity.set(0,0);return this},t.debugMode=function(...r){this._assert3d(&amp;amp;quot;debugMode&amp;amp;quot;);for(let n=i.lifecycleHooks.postdraw.length-1;n&amp;amp;gt;=0;n--)(i.lifecycleHooks.postdraw[n].toString()===this._grid().toString()||i.lifecycleHooks.postdraw[n].toString()===this._axesIcon().toString())&amp;amp;amp;&amp;amp;amp;i.lifecycleHooks.postdraw.splice(n,1);r[0]===xh?i.lifecycleHooks.postdraw.push(this._grid(r[1],r[2],r[3],r[4],r[5])):r[0]===bh?i.lifecycleHooks.postdraw.push(this._axesIcon(r[1],r[2],r[3],r[4])):(i.lifecycleHooks.postdraw.push(this._grid(r[0],r[1],r[2],r[3],r[4])),i.lifecycleHooks.postdraw.push(this._axesIcon(r[5],r[6],r[7],r[8])))},t.noDebugMode=function(){this._assert3d(&amp;amp;quot;noDebugMode&amp;amp;quot;);for(let r=i.lifecycleHooks.postdraw.length-1;r&amp;amp;gt;=0;r--)(i.lifecycleHooks.postdraw[r].toString()===this._grid().toString()||i.lifecycleHooks.postdraw[r].toString()===this._axesIcon().toString())&amp;amp;amp;&amp;amp;amp;i.lifecycleHooks.postdraw.splice(r,1)},t._grid=function(r,n,s,a,o){typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=this.width/2),typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=Math.round(r/30)&amp;amp;lt;4?4:Math.round(r/30)),typeof s&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s=0),typeof a&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a=0),typeof o&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(o=0);let u=r/n,h=r/2;return function(){this.push(),this.stroke(this._renderer.states.curStrokeColor[0]*255,this._renderer.states.curStrokeColor[1]*255,this._renderer.states.curStrokeColor[2]*255),this._renderer.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this._renderer.states.uModelMatrix.clone()),this._renderer.states.uModelMatrix.reset();for(let l=0;l&amp;amp;lt;=n;l++)this.beginShape(this.LINES),this.vertex(-h+s,a,l*u-h+o),this.vertex(+h+s,a,l*u-h+o),this.endShape();for(let l=0;l&amp;amp;lt;=n;l++)this.beginShape(this.LINES),this.vertex(l*u-h+s,a,-h+o),this.vertex(l*u-h+s,a,+h+o),this.endShape();this.pop()}},t._axesIcon=function(r,n,s,a){return typeof r&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=this.width/20&amp;amp;gt;40?this.width/20:40),typeof n&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=-this.width/4),typeof s&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(s=n),typeof a&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a=n),()=&amp;amp;gt;{this.push(),this._renderer.states.setValue(&amp;amp;quot;uModelMatrix&amp;amp;quot;,this._renderer.states.uModelMatrix.clone()),this._renderer.states.uModelMatrix.reset(),this.strokeWeight(2),this.stroke(255,0,0),this.beginShape(this.LINES),this.vertex(n,s,a),this.vertex(n+r,s,a),this.endShape(),this.stroke(0,255,0),this.beginShape(this.LINES),this.vertex(n,s,a),this.vertex(n,s+r,a),this.endShape(),this.stroke(0,0,255),this.beginShape(this.LINES),this.vertex(n,s,a),this.vertex(n,s,a+r),this.endShape(),this.pop()}}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Kf(p5,p5.prototype);var f8=Se(Bt());var b8=Se(or());var w8=Se(ur());var k8=Se(lr());async function B2(i){try{return(await fetch(i,{method:&amp;amp;quot;HEAD&amp;amp;quot;})).ok}catch{return!1}}function Jf(i,t){t.loadModel=async function(c,p,f,d,m){let g=!1,v=!1;typeof p==&amp;amp;quot;object&amp;amp;quot;?(f=p.normalize||!1,d=p.successCallback,m=p.failureCallback,p=p.fileType||p,g=p.flipU||!1,v=p.flipV||!1):(typeof arguments[arguments.length-1]==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(typeof arguments[arguments.length-2]==&amp;amp;quot;function&amp;amp;quot;?(d=arguments[arguments.length-2],m=arguments[arguments.length-1]):d=arguments[arguments.length-1]),typeof p==&amp;amp;quot;string&amp;amp;quot;?typeof f!=&amp;amp;quot;boolean&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(f=!1):typeof p==&amp;amp;quot;boolean&amp;amp;quot;?(f=p,p=c.slice(-4)):(p=c.slice(-4),f=!1)),p.toLowerCase()!==&amp;amp;quot;.obj&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;p.toLowerCase()!==&amp;amp;quot;.stl&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(p=&amp;amp;quot;.obj&amp;amp;quot;);let w=new dt(void 0,void 0,void 0,this._renderer);w.gid=`${c}|${f}`;async function y(S){let _=[];for(let b of S){let I=b.match(/^mtllib (.+)/);if(I){let E=&amp;amp;quot;&amp;amp;quot;,A=I[1],C=c.split(&amp;amp;quot;/&amp;amp;quot;);C.length&amp;amp;gt;1?(C.pop(),E=C.join(&amp;amp;quot;/&amp;amp;quot;)+&amp;amp;quot;/&amp;amp;quot;+A):E=A,_.push(B2(E).then(T=&amp;amp;gt;T?r(E):(console.warn(`MTL file not found or error in parsing; proceeding without materials: ${E}`),{})).catch(T=&amp;amp;gt;(console.warn(`Error loading MTL file: ${E}`,T),{})))}}try{let b=await Promise.all(_);return Object.assign({},...b)}catch{return{}}}try{if(p.match(/\.stl$/i)){let{data:S}=await Kt(c,&amp;amp;quot;arrayBuffer&amp;amp;quot;);return s(w,S),f&amp;amp;amp;&amp;amp;amp;w.normalize(),g&amp;amp;amp;&amp;amp;amp;w.flipU(),v&amp;amp;amp;&amp;amp;amp;w.flipV(),w._makeTriangleEdges(),d?d(w):w}else if(p.match(/\.obj$/i)){let{data:S}=await Kt(c,&amp;amp;quot;text&amp;amp;quot;),_=S.split(`
   7441 <a href="#l7422" class="line" id="l7422">   7422</a> &lt;a href=&quot;#l7403&quot; class=&quot;line&quot; id=&quot;l7403&quot;&gt;   7403&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2303&amp;quot; id=&amp;quot;h4-0-2303&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),b=await y(_);return n(w,_,b),f&amp;amp;amp;&amp;amp;amp;w.normalize(),g&amp;amp;amp;&amp;amp;amp;w.flipU(),v&amp;amp;amp;&amp;amp;amp;w.flipV(),w._makeTriangleEdges(),d?d(w):w}}catch(S){if(i._friendlyFileLoadError(3,c),m)return m(S);throw S}};async function r(c){let p=null,f={},{data:d}=await Kt(c,&amp;amp;quot;text&amp;amp;quot;),m=d.split(`
   7442 <a href="#l7423" class="line" id="l7423">   7423</a> &lt;a href=&quot;#l7404&quot; class=&quot;line&quot; id=&quot;l7404&quot;&gt;   7404&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2304&amp;quot; id=&amp;quot;h4-0-2304&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);for(let g=0;g&amp;amp;lt;m.length;++g){let v=m[g].trim().split(/\s+/);v[0]===&amp;amp;quot;newmtl&amp;amp;quot;?(p=v[1],f[p]={}):v[0]===&amp;amp;quot;Kd&amp;amp;quot;?f[p].diffuseColor=[parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3])]:v[0]===&amp;amp;quot;Ka&amp;amp;quot;?f[p].ambientColor=[parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3])]:v[0]===&amp;amp;quot;Ks&amp;amp;quot;?f[p].specularColor=[parseFloat(v[1]),parseFloat(v[2]),parseFloat(v[3])]:v[0]===&amp;amp;quot;map_Kd&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(f[p].texturePath=v[1])}return f}function n(c,p,f={}){let d={v:[],vt:[],vn:[]},m={},g=null,v=!1,w=!1;for(let y=0;y&amp;amp;lt;p.length;++y){let S=p[y].trim().split(/\b\s+/);if(S.length&amp;amp;gt;0){if(S[0]===&amp;amp;quot;usemtl&amp;amp;quot;)g=S[1];else if(S[0]===&amp;amp;quot;v&amp;amp;quot;||S[0]===&amp;amp;quot;vn&amp;amp;quot;){let _=new H(parseFloat(S[1]),parseFloat(S[2]),parseFloat(S[3]));d[S[0]].push(_)}else if(S[0]===&amp;amp;quot;vt&amp;amp;quot;){let _=[parseFloat(S[1]),1-parseFloat(S[2])];d[S[0]].push(_)}else if(S[0]===&amp;amp;quot;f&amp;amp;quot;)for(let _=3;_&amp;amp;lt;S.length;++_){let b=[],I=[1,_-1,_];for(let E=0;E&amp;amp;lt;I.length;++E){let A=S[I[E]],C=A.split(&amp;amp;quot;/&amp;amp;quot;);for(let T=0;T&amp;amp;lt;C.length;T++)C[T]=parseInt(C[T])-1;if(m[A]||(m[A]={}),m[A][g]===void 0){let T=c.vertices.length;if(c.vertices.push(d.v[C[0]].copy()),c.uvs.push(d.vt[C[1]]?d.vt[C[1]].slice():[0,0]),c.vertexNormals.push(d.vn[C[2]]?d.vn[C[2]].copy():new H),m[A][g]=T,b.push(T),g&amp;amp;amp;&amp;amp;amp;f[g]&amp;amp;amp;&amp;amp;amp;f[g].diffuseColor){v=!0;let D=f[g].diffuseColor;c.vertexColors.push(D[0]),c.vertexColors.push(D[1]),c.vertexColors.push(D[2]),c.vertexColors.push(1)}else w=!0}else b.push(m[A][g])}b[0]!==b[1]&amp;amp;amp;&amp;amp;amp;b[0]!==b[2]&amp;amp;amp;&amp;amp;amp;b[1]!==b[2]&amp;amp;amp;&amp;amp;amp;c.faces.push(b)}}}if(c.vertexNormals.length===0&amp;amp;amp;&amp;amp;amp;c.computeNormals(),v===w)throw new Error(&amp;amp;quot;Model coloring is inconsistent. Either all vertices should have colors or none should.&amp;amp;quot;);return c}function s(c,p){if(a(p))u(c,p);else{let f=new DataView(p);if(!(&amp;amp;quot;TextDecoder&amp;amp;quot;in window))return console.warn(&amp;amp;quot;Sorry, ASCII STL loading only works in browsers that support TextDecoder (https://caniuse.com/#feat=textencoder)&amp;amp;quot;),c;let g=new TextDecoder(&amp;amp;quot;utf-8&amp;amp;quot;).decode(f).split(`
   7443 <a href="#l7424" class="line" id="l7424">   7424</a> &lt;a href=&quot;#l7405&quot; class=&quot;line&quot; id=&quot;l7405&quot;&gt;   7405&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2305&amp;quot; id=&amp;quot;h4-0-2305&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);h(c,g)}return c}function a(c){let p=new DataView(c),f=[115,111,108,105,100];for(let d=0;d&amp;amp;lt;5;d++)if(o(f,p,d))return!1;return!0}function o(c,p,f){for(let d=0,m=c.length;d&amp;amp;lt;m;d++)if(c[d]!==p.getUint8(f+d,!1))return!1;return!0}function u(c,p){let f=new DataView(p),d=f.getUint32(80,!0),m,g,v,w=!1,y,S,_,b;for(let A=0;A&amp;amp;lt;70;A++)f.getUint32(A,!1)===1129270351&amp;amp;amp;&amp;amp;amp;f.getUint8(A+4)===82&amp;amp;amp;&amp;amp;amp;f.getUint8(A+5)===61&amp;amp;amp;&amp;amp;amp;(w=!0,y=[],S=f.getUint8(A+6)/255,_=f.getUint8(A+7)/255,b=f.getUint8(A+8)/255);let I=84,E=50;for(let A=0;A&amp;amp;lt;d;A++){let C=I+A*E,T=f.getFloat32(C,!0),D=f.getFloat32(C+4,!0),F=f.getFloat32(C+8,!0);if(w){let B=f.getUint16(C+48,!0);(B&amp;amp;amp;32768)===0?(m=(B&amp;amp;amp;31)/31,g=(B&amp;amp;gt;&amp;amp;gt;5&amp;amp;amp;31)/31,v=(B&amp;amp;gt;&amp;amp;gt;10&amp;amp;amp;31)/31):(m=S,g=_,v=b)}let N=new H(T,D,F);for(let B=1;B&amp;amp;lt;=3;B++){let U=C+B*12,j=new H(f.getFloat32(U,!0),f.getFloat32(U+4,!0),f.getFloat32(U+8,!0));c.vertices.push(j),c.vertexNormals.push(N),w&amp;amp;amp;&amp;amp;amp;y.push(m,g,v)}c.faces.push([3*A,3*A+1,3*A+2]),c.uvs.push([0,0],[0,0],[0,0])}return c}function h(c,p){let f=&amp;amp;quot;&amp;amp;quot;,d=[],m,g;for(let v=0;v&amp;amp;lt;p.length;++v){let w=p[v].trim(),y=w.split(&amp;amp;quot; &amp;amp;quot;);for(let S=0;S&amp;amp;lt;y.length;++S)y[S]===&amp;amp;quot;&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;y.splice(S,1);if(y.length!==0)switch(f){case&amp;amp;quot;&amp;amp;quot;:if(y[0]!==&amp;amp;quot;solid&amp;amp;quot;){console.error(w),console.error(`Invalid state &amp;amp;quot;${y[0]}&amp;amp;quot;, should be &amp;amp;quot;solid&amp;amp;quot;`);return}else f=&amp;amp;quot;solid&amp;amp;quot;;break;case&amp;amp;quot;solid&amp;amp;quot;:if(y[0]!==&amp;amp;quot;facet&amp;amp;quot;||y[1]!==&amp;amp;quot;normal&amp;amp;quot;){console.error(w),console.error(`Invalid state &amp;amp;quot;${y[0]}&amp;amp;quot;, should be &amp;amp;quot;facet normal&amp;amp;quot;`);return}else m=new H(parseFloat(y[2]),parseFloat(y[3]),parseFloat(y[4])),c.vertexNormals.push(m,m,m),f=&amp;amp;quot;facet normal&amp;amp;quot;;break;case&amp;amp;quot;facet normal&amp;amp;quot;:if(y[0]!==&amp;amp;quot;outer&amp;amp;quot;||y[1]!==&amp;amp;quot;loop&amp;amp;quot;){console.error(w),console.error(`Invalid state &amp;amp;quot;${y[0]}&amp;amp;quot;, should be &amp;amp;quot;outer loop&amp;amp;quot;`);return}else f=&amp;amp;quot;vertex&amp;amp;quot;;break;case&amp;amp;quot;vertex&amp;amp;quot;:if(y[0]===&amp;amp;quot;vertex&amp;amp;quot;)g=new H(parseFloat(y[1]),parseFloat(y[2]),parseFloat(y[3])),c.vertices.push(g),c.uvs.push([0,0]),d.push(c.vertices.indexOf(g));else if(y[0]===&amp;amp;quot;endloop&amp;amp;quot;)c.faces.push(d),d=[],f=&amp;amp;quot;endloop&amp;amp;quot;;else{console.error(w),console.error(`Invalid state &amp;amp;quot;${y[0]}&amp;amp;quot;, should be &amp;amp;quot;vertex&amp;amp;quot; or &amp;amp;quot;endloop&amp;amp;quot;`);return}break;case&amp;amp;quot;endloop&amp;amp;quot;:if(y[0]!==&amp;amp;quot;endfacet&amp;amp;quot;){console.error(w),console.error(`Invalid state &amp;amp;quot;${y[0]}&amp;amp;quot;, should be &amp;amp;quot;endfacet&amp;amp;quot;`);return}else f=&amp;amp;quot;endfacet&amp;amp;quot;;break;case&amp;amp;quot;endfacet&amp;amp;quot;:if(y[0]!==&amp;amp;quot;endsolid&amp;amp;quot;)if(y[0]===&amp;amp;quot;facet&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;y[1]===&amp;amp;quot;normal&amp;amp;quot;)m=new H(parseFloat(y[2]),parseFloat(y[3]),parseFloat(y[4])),c.vertexNormals.push(m,m,m),f=&amp;amp;quot;facet normal&amp;amp;quot;;else{console.error(w),console.error(`Invalid state &amp;amp;quot;${y[0]}&amp;amp;quot;, should be &amp;amp;quot;endsolid&amp;amp;quot; or &amp;amp;quot;facet normal&amp;amp;quot;`);return}break;default:console.error(`Invalid state &amp;amp;quot;${f}&amp;amp;quot;`);break}}return c}t.model=function(c,p=1){this._assert3d(&amp;amp;quot;model&amp;amp;quot;),this._renderer.model(c,p)};let l=0;t.createModel=function(c,p=&amp;amp;quot; &amp;amp;quot;,f){let d=!1,m,g,v=!1,w=!1;f&amp;amp;amp;&amp;amp;amp;typeof f==&amp;amp;quot;object&amp;amp;quot;?(d=f.normalize||!1,m=f.successCallback,g=f.failureCallback,v=f.flipU||!1,w=f.flipV||!1):typeof f==&amp;amp;quot;boolean&amp;amp;quot;?(d=f,m=arguments[3],g=arguments[4]):(m=typeof arguments[2]==&amp;amp;quot;function&amp;amp;quot;?arguments[2]:void 0,g=arguments[3]);let y=new i.Geometry;if(y.gid=`${p}|${d}|${l++}`,p.match(/\.stl$/i))try{let _=new TextEncoder().encode(c).buffer;s(y,_)}catch(S){g?g(S):i._friendlyError(&amp;amp;quot;Error during parsing: &amp;amp;quot;+S.message);return}else if(p.match(/\.obj$/i))try{let S=c.split(`
   7444 <a href="#l7425" class="line" id="l7425">   7425</a> &lt;a href=&quot;#l7406&quot; class=&quot;line&quot; id=&quot;l7406&quot;&gt;   7406&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2306&amp;quot; id=&amp;quot;h4-0-2306&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);n(y,S)}catch(S){g?g(S):i._friendlyError(&amp;amp;quot;Error during parsing: &amp;amp;quot;+S.message);return}else i._friendlyFileLoadError(3,c),g?g():i._friendlyError(&amp;amp;quot;Sorry, the file type is invalid. Only OBJ and STL files are supported.&amp;amp;quot;);return d&amp;amp;amp;&amp;amp;amp;y.normalize(),v&amp;amp;amp;&amp;amp;amp;y.flipU(),w&amp;amp;amp;&amp;amp;amp;y.flipV(),y._makeTriangleEdges(),typeof m==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;m(y),y}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Jf(p5,p5.prototype);var W8=Se(Bt()),qt={IDEOGRAPHIC:&amp;amp;quot;ideographic&amp;amp;quot;,RIGHT_TO_LEFT:&amp;amp;quot;rtl&amp;amp;quot;,LEFT_TO_RIGHT:&amp;amp;quot;ltr&amp;amp;quot;,_CTX_MIDDLE:&amp;amp;quot;middle&amp;amp;quot;,_TEXT_BOUNDS:&amp;amp;quot;_textBoundsSingle&amp;amp;quot;,_FONT_BOUNDS:&amp;amp;quot;_fontBoundsSingle&amp;amp;quot;,HANGING:&amp;amp;quot;hanging&amp;amp;quot;,START:&amp;amp;quot;start&amp;amp;quot;,END:&amp;amp;quot;end&amp;amp;quot;};function Qf(i,t){let n=&amp;amp;quot;#000000&amp;amp;quot;,s=/\r?\n/g,a=/,\s+/,o=/^&amp;amp;quot;.*&amp;amp;quot;$/,u=/\t/g,h=&amp;amp;quot;fontVariationSettings&amp;amp;quot;,l=[&amp;amp;quot;wght&amp;amp;quot;,&amp;amp;quot;wdth&amp;amp;quot;,&amp;amp;quot;ital&amp;amp;quot;,&amp;amp;quot;slnt&amp;amp;quot;,&amp;amp;quot;opsz&amp;amp;quot;],c=new RegExp(`(?:${l.join(&amp;amp;quot;|&amp;amp;quot;)})`);[&amp;amp;quot;text&amp;amp;quot;,&amp;amp;quot;textAlign&amp;amp;quot;,&amp;amp;quot;textAscent&amp;amp;quot;,&amp;amp;quot;textDescent&amp;amp;quot;,&amp;amp;quot;textLeading&amp;amp;quot;,&amp;amp;quot;textMode&amp;amp;quot;,&amp;amp;quot;textFont&amp;amp;quot;,&amp;amp;quot;textSize&amp;amp;quot;,&amp;amp;quot;textStyle&amp;amp;quot;,&amp;amp;quot;textWidth&amp;amp;quot;,&amp;amp;quot;textWrap&amp;amp;quot;,&amp;amp;quot;textBounds&amp;amp;quot;,&amp;amp;quot;textDirection&amp;amp;quot;,&amp;amp;quot;textProperty&amp;amp;quot;,&amp;amp;quot;textProperties&amp;amp;quot;,&amp;amp;quot;fontBounds&amp;amp;quot;,&amp;amp;quot;fontWidth&amp;amp;quot;,&amp;amp;quot;fontAscent&amp;amp;quot;,&amp;amp;quot;fontDescent&amp;amp;quot;,&amp;amp;quot;textWeight&amp;amp;quot;].forEach(y=&amp;amp;gt;{t[y]=function(...S){if(!(y in ke.prototype))throw Error(`Renderer2D.prototype.${y} is not defined.`);return this._renderer[y](...S)},i.Graphics.prototype[y]=function(...S){return this._renderer[y](...S)}});let f={textAlign:{default:t.LEFT,type:&amp;amp;quot;Context2d&amp;amp;quot;},textBaseline:{default:t.BASELINE,type:&amp;amp;quot;Context2d&amp;amp;quot;},textFont:{default:{family:&amp;amp;quot;sans-serif&amp;amp;quot;}},textLeading:{default:15},textSize:{default:12},textWrap:{default:t.WORD},fontStretch:{default:t.NORMAL,isShorthand:!0},fontWeight:{default:t.NORMAL,isShorthand:!0},lineHeight:{default:t.NORMAL,isShorthand:!0},fontVariant:{default:t.NORMAL,isShorthand:!0},fontStyle:{default:t.NORMAL,isShorthand:!0},direction:{default:&amp;amp;quot;inherit&amp;amp;quot;}},d=[&amp;amp;quot;font&amp;amp;quot;,&amp;amp;quot;direction&amp;amp;quot;,&amp;amp;quot;fontKerning&amp;amp;quot;,&amp;amp;quot;fontStretch&amp;amp;quot;,&amp;amp;quot;fontVariantCaps&amp;amp;quot;,&amp;amp;quot;letterSpacing&amp;amp;quot;,&amp;amp;quot;textAlign&amp;amp;quot;,&amp;amp;quot;textBaseline&amp;amp;quot;,&amp;amp;quot;textRendering&amp;amp;quot;,&amp;amp;quot;wordSpacing&amp;amp;quot;],m=Object.keys(f).filter(y=&amp;amp;gt;f[y].isShorthand),g=[&amp;amp;quot;ultra-condensed&amp;amp;quot;,&amp;amp;quot;extra-condensed&amp;amp;quot;,&amp;amp;quot;condensed&amp;amp;quot;,&amp;amp;quot;semi-condensed&amp;amp;quot;,&amp;amp;quot;normal&amp;amp;quot;,&amp;amp;quot;semi-expanded&amp;amp;quot;,&amp;amp;quot;expanded&amp;amp;quot;,&amp;amp;quot;extra-expanded&amp;amp;quot;,&amp;amp;quot;ultra-expanded&amp;amp;quot;],v,w;if(ke.prototype.text=function(y,S,_,b,I){let E=this.textDrawingContext().textBaseline;({x:S,y:_,width:b,height:I}=this._handleRectMode(S,_,b,I));let A=this._processLines(y,b,I);A=this._positionLines(S,_,b,I,A),A.forEach(C=&amp;amp;gt;this._renderText(C.text,C.x,C.y)),this.textDrawingContext().textBaseline=E},ke.prototype.textBounds=function(y,S,_,b,I){return this._computeBounds(qt._TEXT_BOUNDS,y,S,_,b,I).bounds},ke.prototype.fontBounds=function(y,S,_,b,I){return this._computeBounds(qt._FONT_BOUNDS,y,S,_,b,I).bounds},ke.prototype.textWidth=function(y){let S=this._processLines(y);return Math.max(...S.map(_=&amp;amp;gt;this._textWidthSingle(_)))},ke.prototype.fontWidth=function(y){let S=this._processLines(y);return Math.max(...S.map(_=&amp;amp;gt;this._fontWidthSingle(_)))},ke.prototype.textAscent=function(y=&amp;amp;quot;&amp;amp;quot;){return y.length?this.textDrawingContext().measureText(y).actualBoundingBoxAscent:this.fontAscent()},ke.prototype.fontAscent=function(){return this.textDrawingContext().measureText(&amp;amp;quot;_&amp;amp;quot;).fontBoundingBoxAscent},ke.prototype.textDescent=function(y=&amp;amp;quot;&amp;amp;quot;){return y.length?this.textDrawingContext().measureText(y).actualBoundingBoxDescent:this.fontDescent()},ke.prototype.fontDescent=function(){return this.textDrawingContext().measureText(&amp;amp;quot;_&amp;amp;quot;).fontBoundingBoxDescent},ke.prototype.textAlign=function(y,S){return typeof y&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(this.states.setValue(&amp;amp;quot;textAlign&amp;amp;quot;,y),typeof S&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(S===t.CENTER&amp;amp;amp;&amp;amp;amp;(S=qt._CTX_MIDDLE),this.states.setValue(&amp;amp;quot;textBaseline&amp;amp;quot;,S)),this._applyTextProperties()):{horizontal:this.states.textAlign,vertical:this.states.textBaseline}},ke.prototype._currentTextFont=function(){return this.states.textFont.font||this.states.textFont.family},ke.prototype.textFont=function(y,S,_){if(arguments.length===0)return this._currentTextFont();let b=y;if(y instanceof i.Font?b=y.face.family:y.data instanceof Uint8Array?(b=y.name.fontFamily,y.name?.fontSubfamily&amp;amp;amp;&amp;amp;amp;(b+=&amp;amp;quot;-&amp;amp;quot;+y.name.fontSubfamily)):typeof y==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof S&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;/[.0-9]+(%|em|p[xt])/.test(b)&amp;amp;amp;&amp;amp;amp;({family:b,size:S}=this._directSetFontString(b)),typeof b!=&amp;amp;quot;string&amp;amp;quot;)throw Error(&amp;amp;quot;null font in textFont()&amp;amp;quot;);return arguments.length===2&amp;amp;amp;&amp;amp;amp;typeof S==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(_=S,S=void 0),this.states.setValue(&amp;amp;quot;textFont&amp;amp;quot;,{font:y,family:b,size:S}),typeof S&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this._setTextSize(S),typeof _==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.textProperties(_),this._applyTextProperties()},ke.prototype._directSetFontString=function(y,S=0){S&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;#39;_directSetFontString&amp;amp;quot;&amp;amp;#39;+y+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;);let _=m.reduce((E,A)=&amp;amp;gt;(E[A]=f[A].default,E),{}),b=this._cachedDiv(_);b.style.font=y;let I=getComputedStyle(b);return m.forEach(E=&amp;amp;gt;{this.states[E]=I[E],S&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;  this.states.&amp;amp;quot;+E+&amp;amp;#39;=&amp;amp;quot;&amp;amp;#39;+I[E]+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;)}),{family:I.fontFamily,size:I.fontSize}},ke.prototype.textLeading=function(y){return typeof y==&amp;amp;quot;number&amp;amp;quot;?(this.states.setValue(&amp;amp;quot;leadingSet&amp;amp;quot;,!0),this.states.setValue(&amp;amp;quot;textLeading&amp;amp;quot;,y),this._applyTextProperties()):this.states.textLeading},ke.prototype.textWeight=function(y){if(typeof y==&amp;amp;quot;number&amp;amp;quot;){this.states.setValue(&amp;amp;quot;fontWeight&amp;amp;quot;,y),this._applyTextProperties(),i.prototype._isSafari()||this._setCanvasStyleProperty(&amp;amp;quot;font-variation-settings&amp;amp;quot;,`&amp;amp;quot;wght&amp;amp;quot; ${y}`);return}return this.states.fontWeight},ke.prototype.textSize=function(y){return typeof y&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(this._setTextSize(y),this._applyTextProperties()):this.states.textSize},ke.prototype.textStyle=function(y){return typeof y&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(this.states.setValue(&amp;amp;quot;fontStyle&amp;amp;quot;,y),this._applyTextProperties()):this.states.fontStyle},ke.prototype.textWrap=function(y){return y===t.WORD||y===t.CHAR?(this.states.setValue(&amp;amp;quot;textWrap&amp;amp;quot;,y),this._pInst):this.states.textWrap},ke.prototype.textDirection=function(y){return typeof y&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;?(this.states.setValue(&amp;amp;quot;direction&amp;amp;quot;,y),this._applyTextProperties()):this.states.direction},ke.prototype.textProperty=function(y,S,_){let b=!1,I=_?.debug||!1;if(typeof S&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;){let E=this.textProperties();if(y in E)return E[y];throw Error(&amp;amp;#39;Unknown text option &amp;amp;quot;&amp;amp;#39;+y+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;)}return y in this.states&amp;amp;amp;&amp;amp;amp;this.states[y]!==S?(this.states[y]=S,b=!0,I&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;this.states.&amp;amp;quot;+y+&amp;amp;#39;=&amp;amp;quot;&amp;amp;#39;+options[y]+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;)):y in this.textDrawingContext()?(this._setContextProperty(y,S,I),b=!0):y in this.textCanvas().style?(this._setCanvasStyleProperty(y,S,I),b=!0):console.warn(&amp;amp;#39;Ignoring unknown text option: &amp;amp;quot;&amp;amp;#39;+y+`&amp;amp;quot;
   7445 <a href="#l7426" class="line" id="l7426">   7426</a> &lt;a href=&quot;#l7407&quot; class=&quot;line&quot; id=&quot;l7407&quot;&gt;   7407&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2307&amp;quot; id=&amp;quot;h4-0-2307&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),b?this._applyTextProperties():this._pInst},ke.prototype.textProperties=function(y){if(typeof y&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)return Object.keys(y).forEach(_=&amp;amp;gt;{this.textProperty(_,y[_])}),this._pInst;let S=this.textDrawingContext();return y=d.reduce((_,b)=&amp;amp;gt;(_[b]=S[b],_),{}),Object.keys(f).forEach(_=&amp;amp;gt;{if(f[_]?.type===&amp;amp;quot;Context2d&amp;amp;quot;)y[_]=S[_];else if(_===&amp;amp;quot;textFont&amp;amp;quot;){let b=this._currentTextFont();typeof b==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;_pInst&amp;amp;quot;in b&amp;amp;amp;&amp;amp;amp;(b=Object.assign({},b),delete b._pInst),y[_]=b}else y[_]=this.states[_]}),y},ke.prototype.textMode=function(){},ke.prototype._currentTextFont=function(){return this.states.textFont.font||this.states.textFont.family},ke.prototype._computeBounds=function(y,S,_,b,I,E,A){let C=this.textDrawingContext(),T=C.textBaseline,{textLeading:D,textAlign:F}=this.states;({width:I,height:E}=this._rectModeAdjust(_,b,I,E));let N=this._processLines(S,I,E),B=N.map((j,W)=&amp;amp;gt;this[y].bind(this)(j,_,b+W*D));N.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;B.forEach(j=&amp;amp;gt;j.x+=i.Renderer2D.prototype._xAlignOffset.call(this,F,I)),typeof E&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;i.Renderer2D.prototype._yAlignOffset.call(this,B,E);let U=B[0];return N.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(U=this._aggregateBounds(B),A?.ignoreRectMode||this._rectModeAlign(U,I||0,E||0)),C.textBaseline=T,{bounds:U,lines:N}},ke.prototype._rectModeAdjust=function(y,S,_,b){if(typeof _&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)switch(this.states.rectMode){case t.CENTER:break;case t.CORNERS:_-=y,b-=S;break;case t.RADIUS:_*=2,b*=2;break}return{x:y,y:S,width:_,height:b}},ke.prototype._setCanvasStyleProperty=function(y,S,_){let b=S.toString();_&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;canvas.style.&amp;amp;quot;+y+&amp;amp;#39;=&amp;amp;quot;&amp;amp;#39;+b+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;),y===h&amp;amp;amp;&amp;amp;amp;this._handleFontVariationSettings(b),this.textCanvas().style[y]=b,this.textCanvas().style[y]},ke.prototype._handleFontVariationSettings=function(y,S=!1){typeof y==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(y=Object.keys(y).map(b=&amp;amp;gt;b+&amp;amp;quot; &amp;amp;quot;+y[b]).join(&amp;amp;quot;, &amp;amp;quot;)),y.split(a).forEach(b=&amp;amp;gt;{b=b.replace(/[&amp;amp;quot;&amp;amp;#39;]/g,&amp;amp;quot;&amp;amp;quot;);let I=c.exec(b);if(I&amp;amp;amp;&amp;amp;amp;I.length){let E=I[0],A=parseFloat(parseFloat(b.replace(E,&amp;amp;quot;&amp;amp;quot;).trim()).toFixed(3));switch(E){case&amp;amp;quot;wght&amp;amp;quot;:return S&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;setting font-weight=&amp;amp;quot;+A),this.states.fontWeight!==A&amp;amp;amp;&amp;amp;amp;this.textWeight(A),A;case&amp;amp;quot;wdth&amp;amp;quot;:break;case&amp;amp;quot;ital&amp;amp;quot;:S&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;setting font-style=&amp;amp;quot;+(A?&amp;amp;quot;italic&amp;amp;quot;:&amp;amp;quot;normal&amp;amp;quot;));break;case&amp;amp;quot;slnt&amp;amp;quot;:S&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;setting font-style=&amp;amp;quot;+(A?&amp;amp;quot;oblique&amp;amp;quot;:&amp;amp;quot;normal&amp;amp;quot;));break;case&amp;amp;quot;opsz&amp;amp;quot;:S&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;setting font-optical-size=&amp;amp;quot;+A);break}}})},ke.prototype._setContextProperty=function(y,S,_=!1){if(this.textDrawingContext()[y]===S)return this._pInst;(v??=[]).push([y,S]),_&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;queued context2d.&amp;amp;quot;+y+&amp;amp;#39;=&amp;amp;quot;&amp;amp;#39;+S+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;)},ke.prototype._handleRectMode=function(y,S,_,b){let I=this.states.rectMode;if(typeof _&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)switch(I){case t.RADIUS:_*=2,y-=_/2,typeof b&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(b*=2,S-=b/2);break;case t.CENTER:y-=_/2,typeof b&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(S-=b/2);break;case t.CORNERS:_-=y,typeof b&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(b-=S);break}return{x:y,y:S,width:_,height:b}},ke.prototype._fontSizePx=function(y,{family:S}=this.states.textFont){if((A=&amp;amp;gt;!isNaN(A)&amp;amp;amp;&amp;amp;amp;A.trim()!==&amp;amp;quot;&amp;amp;quot;)(y))return parseFloat(y);let b=this._cachedDiv({fontSize:y});b.style.fontSize=y,b.style.fontFamily=S;let I=getComputedStyle(b).fontSize,E=parseFloat(I);if(typeof E!=&amp;amp;quot;number&amp;amp;quot;)throw Error(&amp;amp;quot;textSize: invalid font-size&amp;amp;quot;);return E},ke.prototype._cachedDiv=function(y){if(typeof w&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;){let S=document.createElement(&amp;amp;quot;div&amp;amp;quot;);S.ariaHidden=&amp;amp;quot;true&amp;amp;quot;,S.style.display=&amp;amp;quot;none&amp;amp;quot;,Object.entries(y).forEach(([_,b])=&amp;amp;gt;{S.style[_]=b}),this.textCanvas().appendChild(S),w=S}return w},ke.prototype._aggregateBounds=function(y){let S=Math.min(...y.map(E=&amp;amp;gt;E.x)),_=Math.min(...y.map(E=&amp;amp;gt;E.y)),b=Math.max(...y.map(E=&amp;amp;gt;E.y+E.h)),I=Math.max(...y.map(E=&amp;amp;gt;E.x+E.w));return{x:S,y:_,w:I-S,h:b-_}},ke.prototype._processLines=function(y,S,_){typeof S&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;this.textDrawingContext().textBaseline===t.BASELINE&amp;amp;amp;&amp;amp;amp;(this.drawingContext.textBaseline=t.TOP);let b=this._splitOnBreaks(y.toString()),I=b.length&amp;amp;gt;1,E=typeof S&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;,A=E&amp;amp;amp;&amp;amp;amp;b.some(D=&amp;amp;gt;this._textWidthSingle(D)&amp;amp;gt;S),{textLeading:C,textWrap:T}=this.states;if((I||A)&amp;amp;amp;&amp;amp;amp;E&amp;amp;amp;&amp;amp;amp;(b=this._lineate(T,b,S)),E&amp;amp;amp;&amp;amp;amp;typeof _&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){if(typeof C&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)throw Error(&amp;amp;quot;leading is required if height is specified&amp;amp;quot;);for(let D=0;D&amp;amp;lt;b.length;D++)if(C*(D+1)&amp;amp;gt;_){b=b.slice(0,D);break}}return b},ke.prototype._xAlignOffset=function(y,S){switch(y){case t.LEFT:return 0;case t.CENTER:return S/2;case t.RIGHT:return S;case qt.START:return 0;case qt.END:throw new Error(&amp;amp;quot;textBounds: END not yet supported for textAlign&amp;amp;quot;);default:return 0}},ke.prototype._rectModeAlign=function(y,S,_){if(typeof S&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){switch(this.states.rectMode){case t.CENTER:y.x-=(S-y.w)/2,y.y-=(_-y.h)/2;break;case t.CORNERS:y.w+=y.x,y.h+=y.y;break;case t.RADIUS:y.x-=(S-y.w)/2,y.y-=(_-y.h)/2,y.w/=2,y.h/=2;break}return y}},ke.prototype._rectModeAlignRevert=function(y,S,_){if(typeof S&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){switch(this.states.rectMode){case t.CENTER:y.x+=(S-y.w)/2,y.y+=(_-y.h)/2;break;case t.CORNERS:y.w-=y.x,y.h-=y.y;break;case t.RADIUS:y.x+=(S-y.w)/2,y.y+=(_-y.h)/2,y.w*=2,y.h*=2;break}return y}},ke.prototype._textWidthSingle=function(y){let S=this.textDrawingContext().measureText(y),_=S.actualBoundingBoxLeft;return S.actualBoundingBoxRight+_},ke.prototype._fontWidthSingle=function(y){return this.textDrawingContext().measureText(y).width},ke.prototype._textBoundsSingle=function(y,S=0,_=0){let b=this.textDrawingContext().measureText(y),I=b.actualBoundingBoxAscent,E=b.actualBoundingBoxDescent,A=b.actualBoundingBoxLeft,C=b.actualBoundingBoxRight;return{x:S-A,y:_-I,w:C+A,h:I+E}},ke.prototype._fontBoundsSingle=function(y,S=0,_=0){let b=this.textDrawingContext().measureText(y),I=b.fontBoundingBoxAscent,E=b.fontBoundingBoxDescent;return S-=this._xAlignOffset(this.states.textAlign,b.width),{x:S,y:_-I,w:b.width,h:I+E}},ke.prototype._setTextSize=function(y){if(typeof y==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(y=this._fontSizePx(y)),typeof y==&amp;amp;quot;number&amp;amp;quot;){if(this.states.textSize!==y)return this.states.setValue(&amp;amp;quot;textSize&amp;amp;quot;,y),this.states.leadingSet||this.states.setValue(&amp;amp;quot;textLeading&amp;amp;quot;,this.states.textSize*1.275),!0}else console.warn(&amp;amp;quot;textSize: invalid size: &amp;amp;quot;+y);return!1},ke.prototype._lineate=function(y,S,_=1/0,b={}){let I=b.splitChar??(y===t.WORD?&amp;amp;quot; &amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;),E,A,C,T,D=[];for(let F=0;F&amp;amp;lt;S.length;F++){E=&amp;amp;quot;&amp;amp;quot;,T=S[F].split(I);for(let N=0;N&amp;amp;lt;T.length;N++)A=`${E+T[N]}`+I,C=this._textWidthSingle(A),E.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;C&amp;amp;gt;_?(D.push(E.trim()),E=`${T[N]}`+I):E=A;D.push(E.trim())}return D},ke.prototype._splitOnBreaks=function(y){return!y||y.length===0?[&amp;amp;quot;&amp;amp;quot;]:y.replace(u,&amp;amp;quot;  &amp;amp;quot;).split(s)},ke.prototype._parseFontFamily=function(y){return y.split(a).map(b=&amp;amp;gt;(b=b.trim(),b.indexOf(&amp;amp;quot; &amp;amp;quot;)&amp;amp;gt;-1&amp;amp;amp;&amp;amp;amp;!o.test(b)&amp;amp;amp;&amp;amp;amp;(b=`&amp;amp;quot;${b}&amp;amp;quot;`),b)).join(&amp;amp;quot;, &amp;amp;quot;)},ke.prototype._applyFontString=function(){let{textFont:y,textSize:S,lineHeight:_,fontStyle:b,fontWeight:I,fontVariant:E}=this.states,A=this.textDrawingContext(),C=this._parseFontFamily(y.family),T=b!==t.NORMAL?`${b} `:&amp;amp;quot;&amp;amp;quot;,D=I!==t.NORMAL?`${I} `:&amp;amp;quot;&amp;amp;quot;,F=E!==t.NORMAL?`${E} `:&amp;amp;quot;&amp;amp;quot;,N=`${S}px`+(_!==t.NORMAL?`/${_} `:&amp;amp;quot; &amp;amp;quot;),B=`${T}${F}${D}${N}${C}`.trim();if(A.font=B,A.font!==B){let U=B,j=A.font;if(U!==j)return!1}return!0},ke.prototype._applyTextProperties=function(y=!1){this._applyFontString();let S=this.textDrawingContext();S.direction=this.states.direction,S.textAlign=this.states.textAlign,S.textBaseline=this.states.textBaseline;let _=this.states.fontStretch;for(g.includes(_)&amp;amp;amp;&amp;amp;amp;S.fontStretch!==_&amp;amp;amp;&amp;amp;amp;(S.fontStretch=_);v?.length;){let[b,I]=v.shift();y&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;#39;apply context property &amp;amp;quot;&amp;amp;#39;+b+&amp;amp;#39;&amp;amp;quot; = &amp;amp;quot;&amp;amp;#39;+I+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;),S[b]=I,S[b]!==I&amp;amp;amp;&amp;amp;amp;(console.warn(`Unable to set &amp;amp;#39;${b}&amp;amp;#39; property on context2d. It may not be supported.`),console.log(&amp;amp;#39;Expected &amp;amp;quot;&amp;amp;#39;+I+&amp;amp;#39;&amp;amp;quot; but got: &amp;amp;quot;&amp;amp;#39;+S[b]+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;))}return this._pInst},i.Renderer2D&amp;amp;amp;&amp;amp;amp;(i.Renderer2D.prototype.textCanvas=function(){return this.canvas},i.Renderer2D.prototype.textDrawingContext=function(){return this.drawingContext},i.Renderer2D.prototype._renderText=function(y,S,_,b,I){let E=this.states,A=this.textDrawingContext();_&amp;amp;lt;I||_&amp;amp;gt;=b||(this.push(),E.strokeColor&amp;amp;amp;&amp;amp;amp;E.strokeSet&amp;amp;amp;&amp;amp;amp;A.strokeText(y,S,_),!this._clipping&amp;amp;amp;&amp;amp;amp;E.fillColor&amp;amp;amp;&amp;amp;amp;(E.fillSet||this._setFill(n),A.fillText(y,S,_)),this.pop())},i.Renderer2D.prototype._positionLines=function(y,S,_,b,I){let{textLeading:E,textAlign:A}=this.states,C,T=new Array(I.length),D=typeof _&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?0:_,F=typeof b&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?0:b;for(let N=0;N&amp;amp;lt;I.length;N++){switch(A){case qt.START:throw new Error(&amp;amp;quot;textBounds: START not yet supported for textAlign&amp;amp;quot;);case t.LEFT:C=y;break;case t.CENTER:C=y+D/2;break;case t.RIGHT:C=y+D;break;case qt.END:throw new Error(&amp;amp;quot;textBounds: END not yet supported for textAlign&amp;amp;quot;)}T[N]={text:I[N],x:C,y:S+N*E}}return this._yAlignOffset(T,F)},i.Renderer2D.prototype._yAlignOffset=function(y,S){if(typeof S&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)throw Error(&amp;amp;quot;_yAlignOffset: height is required&amp;amp;quot;);let{textLeading:_,textBaseline:b}=this.states,I=0,E=y.length,A=S-_*(E-1);switch(b){case t.TOP:break;case t.BASELINE:break;case qt._CTX_MIDDLE:I=A/2;break;case t.BOTTOM:I=A;break;case qt.IDEOGRAPHIC:console.warn(&amp;amp;quot;textBounds: IDEOGRAPHIC not yet supported for textBaseline&amp;amp;quot;);break;case qt.HANGING:console.warn(&amp;amp;quot;textBounds: HANGING not yet supported for textBaseline&amp;amp;quot;);break}return y.forEach(C=&amp;amp;gt;C.y+=I),y}),i.RendererGL){i.RendererGL.prototype.textCanvas=function(){return this._textCanvas||(this._textCanvas=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),this._textCanvas.width=1,this._textCanvas.height=1,this._textCanvas.style.display=&amp;amp;quot;none&amp;amp;quot;,this.canvas.parentElement.insertBefore(this._textCanvas,this.canvas)),this._textCanvas},i.RendererGL.prototype.textDrawingContext=function(){if(!this._textDrawingContext){let S=this.textCanvas();this._textDrawingContext=S.getContext(&amp;amp;quot;2d&amp;amp;quot;)}return this._textDrawingContext};let y=i.RendererGL.prototype.remove;i.RendererGL.prototype.remove=function(){this._textCanvas&amp;amp;amp;&amp;amp;amp;this._textCanvas.parentElement.removeChild(this._textCanvas),y.call(this)},i.RendererGL.prototype._positionLines=function(S,_,b,I,E){let{textLeading:A,textAlign:C}=this.states,T=E.map(U=&amp;amp;gt;this._fontWidthSingle(U)),D,F=new Array(E.length),N=typeof b&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?Math.max(0,...T):b,B=typeof I&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?0:I;for(let U=0;U&amp;amp;lt;E.length;U++){switch(C){case qt.START:throw new Error(&amp;amp;quot;textBounds: START not yet supported for textAlign&amp;amp;quot;);case t.LEFT:D=S;break;case t.CENTER:D=S+(N-T[U])/2-N/2+(b||0)/2;break;case t.RIGHT:D=S+N-T[U]-N+(b||0);break;case qt.END:throw new Error(&amp;amp;quot;textBounds: END not yet supported for textAlign&amp;amp;quot;)}F[U]={text:E[U],x:D,y:_+U*A}}return this._yAlignOffset(F,B)},i.RendererGL.prototype._yAlignOffset=function(S,_){if(typeof _&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;)throw Error(&amp;amp;quot;_yAlignOffset: height is required&amp;amp;quot;);let{textLeading:b,textBaseline:I,textSize:E,textFont:A}=this.states,C=0,T=S.length,D=E*T+(b-E)*(T-1);switch(I){case t.TOP:C=E;break;case t.BASELINE:break;case qt._CTX_MIDDLE:C=-D/2+E+(_||0)/2;break;case t.BOTTOM:C=-(D-E)+(_||0);break;default:console.warn(`${I} is not supported in WebGL mode.`);break}return C+=this.states.textFont.font?._verticalAlign(E)||0,S.forEach(F=&amp;amp;gt;F.y+=C),S}}}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Qf(p5,p5.prototype);var kp=Se(Xs());var kg=[{category:&amp;amp;quot;control character&amp;amp;quot;,hexrange:[&amp;amp;quot;0000&amp;amp;quot;,&amp;amp;quot;001f&amp;amp;quot;]},{category:&amp;amp;quot;basic latin&amp;amp;quot;,hexrange:[&amp;amp;quot;0000&amp;amp;quot;,&amp;amp;quot;007f&amp;amp;quot;]},{category:&amp;amp;quot;latin-1 supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;0080&amp;amp;quot;,&amp;amp;quot;00ff&amp;amp;quot;]},{category:&amp;amp;quot;latin extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;0100&amp;amp;quot;,&amp;amp;quot;017f&amp;amp;quot;]},{category:&amp;amp;quot;latin extended-b&amp;amp;quot;,hexrange:[&amp;amp;quot;0180&amp;amp;quot;,&amp;amp;quot;024f&amp;amp;quot;]},{category:&amp;amp;quot;ipa extensions&amp;amp;quot;,hexrange:[&amp;amp;quot;0250&amp;amp;quot;,&amp;amp;quot;02af&amp;amp;quot;]},{category:&amp;amp;quot;spacing modifier letters&amp;amp;quot;,hexrange:[&amp;amp;quot;02b0&amp;amp;quot;,&amp;amp;quot;02ff&amp;amp;quot;]},{category:&amp;amp;quot;combining diacritical marks&amp;amp;quot;,hexrange:[&amp;amp;quot;0300&amp;amp;quot;,&amp;amp;quot;036f&amp;amp;quot;]},{category:&amp;amp;quot;greek and coptic&amp;amp;quot;,hexrange:[&amp;amp;quot;0370&amp;amp;quot;,&amp;amp;quot;03ff&amp;amp;quot;]},{category:&amp;amp;quot;cyrillic&amp;amp;quot;,hexrange:[&amp;amp;quot;0400&amp;amp;quot;,&amp;amp;quot;04ff&amp;amp;quot;]},{category:&amp;amp;quot;cyrillic supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;0500&amp;amp;quot;,&amp;amp;quot;052f&amp;amp;quot;]},{category:&amp;amp;quot;armenian&amp;amp;quot;,hexrange:[&amp;amp;quot;0530&amp;amp;quot;,&amp;amp;quot;058f&amp;amp;quot;]},{category:&amp;amp;quot;hebrew&amp;amp;quot;,hexrange:[&amp;amp;quot;0590&amp;amp;quot;,&amp;amp;quot;05ff&amp;amp;quot;]},{category:&amp;amp;quot;arabic&amp;amp;quot;,hexrange:[&amp;amp;quot;0600&amp;amp;quot;,&amp;amp;quot;06ff&amp;amp;quot;]},{category:&amp;amp;quot;syriac&amp;amp;quot;,hexrange:[&amp;amp;quot;0700&amp;amp;quot;,&amp;amp;quot;074f&amp;amp;quot;]},{category:&amp;amp;quot;arabic supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;0750&amp;amp;quot;,&amp;amp;quot;077f&amp;amp;quot;]},{category:&amp;amp;quot;thaana&amp;amp;quot;,hexrange:[&amp;amp;quot;0780&amp;amp;quot;,&amp;amp;quot;07bf&amp;amp;quot;]},{category:&amp;amp;quot;nko&amp;amp;quot;,hexrange:[&amp;amp;quot;07c0&amp;amp;quot;,&amp;amp;quot;07ff&amp;amp;quot;]},{category:&amp;amp;quot;samaritan&amp;amp;quot;,hexrange:[&amp;amp;quot;0800&amp;amp;quot;,&amp;amp;quot;083f&amp;amp;quot;]},{category:&amp;amp;quot;mandaic&amp;amp;quot;,hexrange:[&amp;amp;quot;0840&amp;amp;quot;,&amp;amp;quot;085f&amp;amp;quot;]},{category:&amp;amp;quot;syriac supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;0860&amp;amp;quot;,&amp;amp;quot;086f&amp;amp;quot;]},{category:&amp;amp;quot;arabic extended-b&amp;amp;quot;,hexrange:[&amp;amp;quot;0870&amp;amp;quot;,&amp;amp;quot;089f&amp;amp;quot;]},{category:&amp;amp;quot;arabic extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;08a0&amp;amp;quot;,&amp;amp;quot;08ff&amp;amp;quot;]},{category:&amp;amp;quot;devanagari&amp;amp;quot;,hexrange:[&amp;amp;quot;0900&amp;amp;quot;,&amp;amp;quot;097f&amp;amp;quot;]},{category:&amp;amp;quot;bengali&amp;amp;quot;,hexrange:[&amp;amp;quot;0980&amp;amp;quot;,&amp;amp;quot;09ff&amp;amp;quot;]},{category:&amp;amp;quot;gurmukhi&amp;amp;quot;,hexrange:[&amp;amp;quot;0a00&amp;amp;quot;,&amp;amp;quot;0a7f&amp;amp;quot;]},{category:&amp;amp;quot;gujarati&amp;amp;quot;,hexrange:[&amp;amp;quot;0a80&amp;amp;quot;,&amp;amp;quot;0aff&amp;amp;quot;]},{category:&amp;amp;quot;oriya&amp;amp;quot;,hexrange:[&amp;amp;quot;0b00&amp;amp;quot;,&amp;amp;quot;0b7f&amp;amp;quot;]},{category:&amp;amp;quot;tamil&amp;amp;quot;,hexrange:[&amp;amp;quot;0b80&amp;amp;quot;,&amp;amp;quot;0bff&amp;amp;quot;]},{category:&amp;amp;quot;telugu&amp;amp;quot;,hexrange:[&amp;amp;quot;0c00&amp;amp;quot;,&amp;amp;quot;0c7f&amp;amp;quot;]},{category:&amp;amp;quot;kannada&amp;amp;quot;,hexrange:[&amp;amp;quot;0c80&amp;amp;quot;,&amp;amp;quot;0cff&amp;amp;quot;]},{category:&amp;amp;quot;malayalam&amp;amp;quot;,hexrange:[&amp;amp;quot;0d00&amp;amp;quot;,&amp;amp;quot;0d7f&amp;amp;quot;]},{category:&amp;amp;quot;sinhala&amp;amp;quot;,hexrange:[&amp;amp;quot;0d80&amp;amp;quot;,&amp;amp;quot;0dff&amp;amp;quot;]},{category:&amp;amp;quot;thai&amp;amp;quot;,hexrange:[&amp;amp;quot;0e00&amp;amp;quot;,&amp;amp;quot;0e7f&amp;amp;quot;]},{category:&amp;amp;quot;lao&amp;amp;quot;,hexrange:[&amp;amp;quot;0e80&amp;amp;quot;,&amp;amp;quot;0eff&amp;amp;quot;]},{category:&amp;amp;quot;tibetan&amp;amp;quot;,hexrange:[&amp;amp;quot;0f00&amp;amp;quot;,&amp;amp;quot;0fff&amp;amp;quot;]},{category:&amp;amp;quot;myanmar&amp;amp;quot;,hexrange:[&amp;amp;quot;1000&amp;amp;quot;,&amp;amp;quot;109f&amp;amp;quot;]},{category:&amp;amp;quot;georgian&amp;amp;quot;,hexrange:[&amp;amp;quot;10a0&amp;amp;quot;,&amp;amp;quot;10ff&amp;amp;quot;]},{category:&amp;amp;quot;hangul jamo&amp;amp;quot;,hexrange:[&amp;amp;quot;1100&amp;amp;quot;,&amp;amp;quot;11ff&amp;amp;quot;]},{category:&amp;amp;quot;ethiopic&amp;amp;quot;,hexrange:[&amp;amp;quot;1200&amp;amp;quot;,&amp;amp;quot;137f&amp;amp;quot;]},{category:&amp;amp;quot;ethiopic supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;1380&amp;amp;quot;,&amp;amp;quot;139f&amp;amp;quot;]},{category:&amp;amp;quot;cherokee&amp;amp;quot;,hexrange:[&amp;amp;quot;13a0&amp;amp;quot;,&amp;amp;quot;13ff&amp;amp;quot;]},{category:&amp;amp;quot;unified canadian aboriginal syllabics&amp;amp;quot;,hexrange:[&amp;amp;quot;1400&amp;amp;quot;,&amp;amp;quot;167f&amp;amp;quot;]},{category:&amp;amp;quot;ogham&amp;amp;quot;,hexrange:[&amp;amp;quot;1680&amp;amp;quot;,&amp;amp;quot;169f&amp;amp;quot;]},{category:&amp;amp;quot;runic&amp;amp;quot;,hexrange:[&amp;amp;quot;16a0&amp;amp;quot;,&amp;amp;quot;16ff&amp;amp;quot;]},{category:&amp;amp;quot;tagalog&amp;amp;quot;,hexrange:[&amp;amp;quot;1700&amp;amp;quot;,&amp;amp;quot;171f&amp;amp;quot;]},{category:&amp;amp;quot;hanunoo&amp;amp;quot;,hexrange:[&amp;amp;quot;1720&amp;amp;quot;,&amp;amp;quot;173f&amp;amp;quot;]},{category:&amp;amp;quot;buhid&amp;amp;quot;,hexrange:[&amp;amp;quot;1740&amp;amp;quot;,&amp;amp;quot;175f&amp;amp;quot;]},{category:&amp;amp;quot;tagbanwa&amp;amp;quot;,hexrange:[&amp;amp;quot;1760&amp;amp;quot;,&amp;amp;quot;177f&amp;amp;quot;]},{category:&amp;amp;quot;khmer&amp;amp;quot;,hexrange:[&amp;amp;quot;1780&amp;amp;quot;,&amp;amp;quot;17ff&amp;amp;quot;]},{category:&amp;amp;quot;mongolian&amp;amp;quot;,hexrange:[&amp;amp;quot;1800&amp;amp;quot;,&amp;amp;quot;18af&amp;amp;quot;]},{category:&amp;amp;quot;unified canadian aboriginal syllabics extended&amp;amp;quot;,hexrange:[&amp;amp;quot;18b0&amp;amp;quot;,&amp;amp;quot;18ff&amp;amp;quot;]},{category:&amp;amp;quot;limbu&amp;amp;quot;,hexrange:[&amp;amp;quot;1900&amp;amp;quot;,&amp;amp;quot;194f&amp;amp;quot;]},{category:&amp;amp;quot;tai le&amp;amp;quot;,hexrange:[&amp;amp;quot;1950&amp;amp;quot;,&amp;amp;quot;197f&amp;amp;quot;]},{category:&amp;amp;quot;new tai lue&amp;amp;quot;,hexrange:[&amp;amp;quot;1980&amp;amp;quot;,&amp;amp;quot;19df&amp;amp;quot;]},{category:&amp;amp;quot;khmer symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;19e0&amp;amp;quot;,&amp;amp;quot;19ff&amp;amp;quot;]},{category:&amp;amp;quot;buginese&amp;amp;quot;,hexrange:[&amp;amp;quot;1a00&amp;amp;quot;,&amp;amp;quot;1a1f&amp;amp;quot;]},{category:&amp;amp;quot;tai tham&amp;amp;quot;,hexrange:[&amp;amp;quot;1a20&amp;amp;quot;,&amp;amp;quot;1aaf&amp;amp;quot;]},{category:&amp;amp;quot;combining diacritical marks extended&amp;amp;quot;,hexrange:[&amp;amp;quot;1ab0&amp;amp;quot;,&amp;amp;quot;1aff&amp;amp;quot;]},{category:&amp;amp;quot;balinese&amp;amp;quot;,hexrange:[&amp;amp;quot;1b00&amp;amp;quot;,&amp;amp;quot;1b7f&amp;amp;quot;]},{category:&amp;amp;quot;sundanese&amp;amp;quot;,hexrange:[&amp;amp;quot;1b80&amp;amp;quot;,&amp;amp;quot;1bbf&amp;amp;quot;]},{category:&amp;amp;quot;batak&amp;amp;quot;,hexrange:[&amp;amp;quot;1bc0&amp;amp;quot;,&amp;amp;quot;1bff&amp;amp;quot;]},{category:&amp;amp;quot;lepcha&amp;amp;quot;,hexrange:[&amp;amp;quot;1c00&amp;amp;quot;,&amp;amp;quot;1c4f&amp;amp;quot;]},{category:&amp;amp;quot;ol chiki&amp;amp;quot;,hexrange:[&amp;amp;quot;1c50&amp;amp;quot;,&amp;amp;quot;1c7f&amp;amp;quot;]},{category:&amp;amp;quot;cyrillic extended-c&amp;amp;quot;,hexrange:[&amp;amp;quot;1c80&amp;amp;quot;,&amp;amp;quot;1c8f&amp;amp;quot;]},{category:&amp;amp;quot;georgian extended&amp;amp;quot;,hexrange:[&amp;amp;quot;1c90&amp;amp;quot;,&amp;amp;quot;1cbf&amp;amp;quot;]},{category:&amp;amp;quot;sundanese supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;1cc0&amp;amp;quot;,&amp;amp;quot;1ccf&amp;amp;quot;]},{category:&amp;amp;quot;vedic extensions&amp;amp;quot;,hexrange:[&amp;amp;quot;1cd0&amp;amp;quot;,&amp;amp;quot;1cff&amp;amp;quot;]},{category:&amp;amp;quot;phonetic extensions&amp;amp;quot;,hexrange:[&amp;amp;quot;1d00&amp;amp;quot;,&amp;amp;quot;1d7f&amp;amp;quot;]},{category:&amp;amp;quot;phonetic extensions supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;1d80&amp;amp;quot;,&amp;amp;quot;1dbf&amp;amp;quot;]},{category:&amp;amp;quot;combining diacritical marks supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;1dc0&amp;amp;quot;,&amp;amp;quot;1dff&amp;amp;quot;]},{category:&amp;amp;quot;latin extended additional&amp;amp;quot;,hexrange:[&amp;amp;quot;1e00&amp;amp;quot;,&amp;amp;quot;1eff&amp;amp;quot;]},{category:&amp;amp;quot;greek extended&amp;amp;quot;,hexrange:[&amp;amp;quot;1f00&amp;amp;quot;,&amp;amp;quot;1fff&amp;amp;quot;]},{category:&amp;amp;quot;general punctuation&amp;amp;quot;,hexrange:[&amp;amp;quot;2000&amp;amp;quot;,&amp;amp;quot;206f&amp;amp;quot;]},{category:&amp;amp;quot;superscripts and subscripts&amp;amp;quot;,hexrange:[&amp;amp;quot;2070&amp;amp;quot;,&amp;amp;quot;209f&amp;amp;quot;]},{category:&amp;amp;quot;currency symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;20a0&amp;amp;quot;,&amp;amp;quot;20cf&amp;amp;quot;]},{category:&amp;amp;quot;combining diacritical marks for symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;20d0&amp;amp;quot;,&amp;amp;quot;20ff&amp;amp;quot;]},{category:&amp;amp;quot;letterlike symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;2100&amp;amp;quot;,&amp;amp;quot;214f&amp;amp;quot;]},{category:&amp;amp;quot;number forms&amp;amp;quot;,hexrange:[&amp;amp;quot;2150&amp;amp;quot;,&amp;amp;quot;218f&amp;amp;quot;]},{category:&amp;amp;quot;arrows&amp;amp;quot;,hexrange:[&amp;amp;quot;2190&amp;amp;quot;,&amp;amp;quot;21ff&amp;amp;quot;]},{category:&amp;amp;quot;mathematical operators&amp;amp;quot;,hexrange:[&amp;amp;quot;2200&amp;amp;quot;,&amp;amp;quot;22ff&amp;amp;quot;]},{category:&amp;amp;quot;miscellaneous technical&amp;amp;quot;,hexrange:[&amp;amp;quot;2300&amp;amp;quot;,&amp;amp;quot;23ff&amp;amp;quot;]},{category:&amp;amp;quot;control pictures&amp;amp;quot;,hexrange:[&amp;amp;quot;2400&amp;amp;quot;,&amp;amp;quot;243f&amp;amp;quot;]},{category:&amp;amp;quot;optical character recognition&amp;amp;quot;,hexrange:[&amp;amp;quot;2440&amp;amp;quot;,&amp;amp;quot;245f&amp;amp;quot;]},{category:&amp;amp;quot;enclosed alphanumerics&amp;amp;quot;,hexrange:[&amp;amp;quot;2460&amp;amp;quot;,&amp;amp;quot;24ff&amp;amp;quot;]},{category:&amp;amp;quot;box drawing&amp;amp;quot;,hexrange:[&amp;amp;quot;2500&amp;amp;quot;,&amp;amp;quot;257f&amp;amp;quot;]},{category:&amp;amp;quot;block elements&amp;amp;quot;,hexrange:[&amp;amp;quot;2580&amp;amp;quot;,&amp;amp;quot;259f&amp;amp;quot;]},{category:&amp;amp;quot;geometric shapes&amp;amp;quot;,hexrange:[&amp;amp;quot;25a0&amp;amp;quot;,&amp;amp;quot;25ff&amp;amp;quot;]},{category:&amp;amp;quot;miscellaneous symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;2600&amp;amp;quot;,&amp;amp;quot;26ff&amp;amp;quot;]},{category:&amp;amp;quot;dingbats&amp;amp;quot;,hexrange:[&amp;amp;quot;2700&amp;amp;quot;,&amp;amp;quot;27bf&amp;amp;quot;]},{category:&amp;amp;quot;miscellaneous mathematical symbols-a&amp;amp;quot;,hexrange:[&amp;amp;quot;27c0&amp;amp;quot;,&amp;amp;quot;27ef&amp;amp;quot;]},{category:&amp;amp;quot;supplemental arrows-a&amp;amp;quot;,hexrange:[&amp;amp;quot;27f0&amp;amp;quot;,&amp;amp;quot;27ff&amp;amp;quot;]},{category:&amp;amp;quot;braille patterns&amp;amp;quot;,hexrange:[&amp;amp;quot;2800&amp;amp;quot;,&amp;amp;quot;28ff&amp;amp;quot;]},{category:&amp;amp;quot;supplemental arrows-b&amp;amp;quot;,hexrange:[&amp;amp;quot;2900&amp;amp;quot;,&amp;amp;quot;297f&amp;amp;quot;]},{category:&amp;amp;quot;miscellaneous mathematical symbols-b&amp;amp;quot;,hexrange:[&amp;amp;quot;2980&amp;amp;quot;,&amp;amp;quot;29ff&amp;amp;quot;]},{category:&amp;amp;quot;supplemental mathematical operators&amp;amp;quot;,hexrange:[&amp;amp;quot;2a00&amp;amp;quot;,&amp;amp;quot;2aff&amp;amp;quot;]},{category:&amp;amp;quot;miscellaneous symbols and arrows&amp;amp;quot;,hexrange:[&amp;amp;quot;2b00&amp;amp;quot;,&amp;amp;quot;2bff&amp;amp;quot;]},{category:&amp;amp;quot;glagolitic&amp;amp;quot;,hexrange:[&amp;amp;quot;2c00&amp;amp;quot;,&amp;amp;quot;2c5f&amp;amp;quot;]},{category:&amp;amp;quot;latin extended-c&amp;amp;quot;,hexrange:[&amp;amp;quot;2c60&amp;amp;quot;,&amp;amp;quot;2c7f&amp;amp;quot;]},{category:&amp;amp;quot;coptic&amp;amp;quot;,hexrange:[&amp;amp;quot;2c80&amp;amp;quot;,&amp;amp;quot;2cff&amp;amp;quot;]},{category:&amp;amp;quot;georgian supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;2d00&amp;amp;quot;,&amp;amp;quot;2d2f&amp;amp;quot;]},{category:&amp;amp;quot;tifinagh&amp;amp;quot;,hexrange:[&amp;amp;quot;2d30&amp;amp;quot;,&amp;amp;quot;2d7f&amp;amp;quot;]},{category:&amp;amp;quot;ethiopic extended&amp;amp;quot;,hexrange:[&amp;amp;quot;2d80&amp;amp;quot;,&amp;amp;quot;2ddf&amp;amp;quot;]},{category:&amp;amp;quot;cyrillic extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;2de0&amp;amp;quot;,&amp;amp;quot;2dff&amp;amp;quot;]},{category:&amp;amp;quot;supplemental punctuation&amp;amp;quot;,hexrange:[&amp;amp;quot;2e00&amp;amp;quot;,&amp;amp;quot;2e7f&amp;amp;quot;]},{category:&amp;amp;quot;cjk radicals supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;2e80&amp;amp;quot;,&amp;amp;quot;2eff&amp;amp;quot;]},{category:&amp;amp;quot;kangxi radicals&amp;amp;quot;,hexrange:[&amp;amp;quot;2f00&amp;amp;quot;,&amp;amp;quot;2fdf&amp;amp;quot;]},{category:&amp;amp;quot;ideographic description characters&amp;amp;quot;,hexrange:[&amp;amp;quot;2ff0&amp;amp;quot;,&amp;amp;quot;2fff&amp;amp;quot;]},{category:&amp;amp;quot;cjk symbols and punctuation&amp;amp;quot;,hexrange:[&amp;amp;quot;3000&amp;amp;quot;,&amp;amp;quot;303f&amp;amp;quot;]},{category:&amp;amp;quot;hiragana&amp;amp;quot;,hexrange:[&amp;amp;quot;3040&amp;amp;quot;,&amp;amp;quot;309f&amp;amp;quot;]},{category:&amp;amp;quot;katakana&amp;amp;quot;,hexrange:[&amp;amp;quot;30a0&amp;amp;quot;,&amp;amp;quot;30ff&amp;amp;quot;]},{category:&amp;amp;quot;bopomofo&amp;amp;quot;,hexrange:[&amp;amp;quot;3100&amp;amp;quot;,&amp;amp;quot;312f&amp;amp;quot;]},{category:&amp;amp;quot;hangul compatibility jamo&amp;amp;quot;,hexrange:[&amp;amp;quot;3130&amp;amp;quot;,&amp;amp;quot;318f&amp;amp;quot;]},{category:&amp;amp;quot;kanbun&amp;amp;quot;,hexrange:[&amp;amp;quot;3190&amp;amp;quot;,&amp;amp;quot;319f&amp;amp;quot;]},{category:&amp;amp;quot;bopomofo extended&amp;amp;quot;,hexrange:[&amp;amp;quot;31a0&amp;amp;quot;,&amp;amp;quot;31bf&amp;amp;quot;]},{category:&amp;amp;quot;cjk strokes&amp;amp;quot;,hexrange:[&amp;amp;quot;31c0&amp;amp;quot;,&amp;amp;quot;31ef&amp;amp;quot;]},{category:&amp;amp;quot;katakana phonetic extensions&amp;amp;quot;,hexrange:[&amp;amp;quot;31f0&amp;amp;quot;,&amp;amp;quot;31ff&amp;amp;quot;]},{category:&amp;amp;quot;enclosed cjk letters and months&amp;amp;quot;,hexrange:[&amp;amp;quot;3200&amp;amp;quot;,&amp;amp;quot;32ff&amp;amp;quot;]},{category:&amp;amp;quot;cjk compatibility&amp;amp;quot;,hexrange:[&amp;amp;quot;3300&amp;amp;quot;,&amp;amp;quot;33ff&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension a&amp;amp;quot;,hexrange:[&amp;amp;quot;3400&amp;amp;quot;,&amp;amp;quot;4dbf&amp;amp;quot;]},{category:&amp;amp;quot;yijing hexagram symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;4dc0&amp;amp;quot;,&amp;amp;quot;4dff&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs&amp;amp;quot;,hexrange:[&amp;amp;quot;4e00&amp;amp;quot;,&amp;amp;quot;9fff&amp;amp;quot;]},{category:&amp;amp;quot;yi syllables&amp;amp;quot;,hexrange:[&amp;amp;quot;a000&amp;amp;quot;,&amp;amp;quot;a48f&amp;amp;quot;]},{category:&amp;amp;quot;yi radicals&amp;amp;quot;,hexrange:[&amp;amp;quot;a490&amp;amp;quot;,&amp;amp;quot;a4cf&amp;amp;quot;]},{category:&amp;amp;quot;lisu&amp;amp;quot;,hexrange:[&amp;amp;quot;a4d0&amp;amp;quot;,&amp;amp;quot;a4ff&amp;amp;quot;]},{category:&amp;amp;quot;vai&amp;amp;quot;,hexrange:[&amp;amp;quot;a500&amp;amp;quot;,&amp;amp;quot;a63f&amp;amp;quot;]},{category:&amp;amp;quot;cyrillic extended-b&amp;amp;quot;,hexrange:[&amp;amp;quot;a640&amp;amp;quot;,&amp;amp;quot;a69f&amp;amp;quot;]},{category:&amp;amp;quot;bamum&amp;amp;quot;,hexrange:[&amp;amp;quot;a6a0&amp;amp;quot;,&amp;amp;quot;a6ff&amp;amp;quot;]},{category:&amp;amp;quot;modifier tone letters&amp;amp;quot;,hexrange:[&amp;amp;quot;a700&amp;amp;quot;,&amp;amp;quot;a71f&amp;amp;quot;]},{category:&amp;amp;quot;latin extended-d&amp;amp;quot;,hexrange:[&amp;amp;quot;a720&amp;amp;quot;,&amp;amp;quot;a7ff&amp;amp;quot;]},{category:&amp;amp;quot;syloti nagri&amp;amp;quot;,hexrange:[&amp;amp;quot;a800&amp;amp;quot;,&amp;amp;quot;a82f&amp;amp;quot;]},{category:&amp;amp;quot;common indic number forms&amp;amp;quot;,hexrange:[&amp;amp;quot;a830&amp;amp;quot;,&amp;amp;quot;a83f&amp;amp;quot;]},{category:&amp;amp;quot;phags-pa&amp;amp;quot;,hexrange:[&amp;amp;quot;a840&amp;amp;quot;,&amp;amp;quot;a87f&amp;amp;quot;]},{category:&amp;amp;quot;saurashtra&amp;amp;quot;,hexrange:[&amp;amp;quot;a880&amp;amp;quot;,&amp;amp;quot;a8df&amp;amp;quot;]},{category:&amp;amp;quot;devanagari extended&amp;amp;quot;,hexrange:[&amp;amp;quot;a8e0&amp;amp;quot;,&amp;amp;quot;a8ff&amp;amp;quot;]},{category:&amp;amp;quot;kayah li&amp;amp;quot;,hexrange:[&amp;amp;quot;a900&amp;amp;quot;,&amp;amp;quot;a92f&amp;amp;quot;]},{category:&amp;amp;quot;rejang&amp;amp;quot;,hexrange:[&amp;amp;quot;a930&amp;amp;quot;,&amp;amp;quot;a95f&amp;amp;quot;]},{category:&amp;amp;quot;hangul jamo extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;a960&amp;amp;quot;,&amp;amp;quot;a97f&amp;amp;quot;]},{category:&amp;amp;quot;javanese&amp;amp;quot;,hexrange:[&amp;amp;quot;a980&amp;amp;quot;,&amp;amp;quot;a9df&amp;amp;quot;]},{category:&amp;amp;quot;myanmar extended-b&amp;amp;quot;,hexrange:[&amp;amp;quot;a9e0&amp;amp;quot;,&amp;amp;quot;a9ff&amp;amp;quot;]},{category:&amp;amp;quot;cham&amp;amp;quot;,hexrange:[&amp;amp;quot;aa00&amp;amp;quot;,&amp;amp;quot;aa5f&amp;amp;quot;]},{category:&amp;amp;quot;myanmar extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;aa60&amp;amp;quot;,&amp;amp;quot;aa7f&amp;amp;quot;]},{category:&amp;amp;quot;tai viet&amp;amp;quot;,hexrange:[&amp;amp;quot;aa80&amp;amp;quot;,&amp;amp;quot;aadf&amp;amp;quot;]},{category:&amp;amp;quot;meetei mayek extensions&amp;amp;quot;,hexrange:[&amp;amp;quot;aae0&amp;amp;quot;,&amp;amp;quot;aaff&amp;amp;quot;]},{category:&amp;amp;quot;ethiopic extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;ab00&amp;amp;quot;,&amp;amp;quot;ab2f&amp;amp;quot;]},{category:&amp;amp;quot;latin extended-e&amp;amp;quot;,hexrange:[&amp;amp;quot;ab30&amp;amp;quot;,&amp;amp;quot;ab6f&amp;amp;quot;]},{category:&amp;amp;quot;cherokee supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;ab70&amp;amp;quot;,&amp;amp;quot;abbf&amp;amp;quot;]},{category:&amp;amp;quot;meetei mayek&amp;amp;quot;,hexrange:[&amp;amp;quot;abc0&amp;amp;quot;,&amp;amp;quot;abff&amp;amp;quot;]},{category:&amp;amp;quot;hangul syllables&amp;amp;quot;,hexrange:[&amp;amp;quot;ac00&amp;amp;quot;,&amp;amp;quot;d7af&amp;amp;quot;]},{category:&amp;amp;quot;hangul jamo extended-b&amp;amp;quot;,hexrange:[&amp;amp;quot;d7b0&amp;amp;quot;,&amp;amp;quot;d7ff&amp;amp;quot;]},{category:&amp;amp;quot;high surrogates&amp;amp;quot;,hexrange:[&amp;amp;quot;d800&amp;amp;quot;,&amp;amp;quot;db7f&amp;amp;quot;]},{category:&amp;amp;quot;high private use surrogates&amp;amp;quot;,hexrange:[&amp;amp;quot;db80&amp;amp;quot;,&amp;amp;quot;dbff&amp;amp;quot;]},{category:&amp;amp;quot;low surrogates&amp;amp;quot;,hexrange:[&amp;amp;quot;dc00&amp;amp;quot;,&amp;amp;quot;dfff&amp;amp;quot;]},{category:&amp;amp;quot;private use area&amp;amp;quot;,hexrange:[&amp;amp;quot;e000&amp;amp;quot;,&amp;amp;quot;f8ff&amp;amp;quot;]},{category:&amp;amp;quot;cjk compatibility ideographs&amp;amp;quot;,hexrange:[&amp;amp;quot;f900&amp;amp;quot;,&amp;amp;quot;faff&amp;amp;quot;]},{category:&amp;amp;quot;alphabetic presentation forms&amp;amp;quot;,hexrange:[&amp;amp;quot;fb00&amp;amp;quot;,&amp;amp;quot;fb4f&amp;amp;quot;]},{category:&amp;amp;quot;arabic presentation forms-a&amp;amp;quot;,hexrange:[&amp;amp;quot;fb50&amp;amp;quot;,&amp;amp;quot;fdff&amp;amp;quot;]},{category:&amp;amp;quot;variation selectors&amp;amp;quot;,hexrange:[&amp;amp;quot;fe00&amp;amp;quot;,&amp;amp;quot;fe0f&amp;amp;quot;]},{category:&amp;amp;quot;vertical forms&amp;amp;quot;,hexrange:[&amp;amp;quot;fe10&amp;amp;quot;,&amp;amp;quot;fe1f&amp;amp;quot;]},{category:&amp;amp;quot;combining half marks&amp;amp;quot;,hexrange:[&amp;amp;quot;fe20&amp;amp;quot;,&amp;amp;quot;fe2f&amp;amp;quot;]},{category:&amp;amp;quot;cjk compatibility forms&amp;amp;quot;,hexrange:[&amp;amp;quot;fe30&amp;amp;quot;,&amp;amp;quot;fe4f&amp;amp;quot;]},{category:&amp;amp;quot;small form variants&amp;amp;quot;,hexrange:[&amp;amp;quot;fe50&amp;amp;quot;,&amp;amp;quot;fe6f&amp;amp;quot;]},{category:&amp;amp;quot;arabic presentation forms-b&amp;amp;quot;,hexrange:[&amp;amp;quot;fe70&amp;amp;quot;,&amp;amp;quot;feff&amp;amp;quot;]},{category:&amp;amp;quot;halfwidth and fullwidth forms&amp;amp;quot;,hexrange:[&amp;amp;quot;ff00&amp;amp;quot;,&amp;amp;quot;ffef&amp;amp;quot;]},{category:&amp;amp;quot;specials&amp;amp;quot;,hexrange:[&amp;amp;quot;fff0&amp;amp;quot;,&amp;amp;quot;ffff&amp;amp;quot;]},{category:&amp;amp;quot;linear b syllabary&amp;amp;quot;,hexrange:[&amp;amp;quot;10000&amp;amp;quot;,&amp;amp;quot;1007f&amp;amp;quot;]},{category:&amp;amp;quot;linear b ideograms&amp;amp;quot;,hexrange:[&amp;amp;quot;10080&amp;amp;quot;,&amp;amp;quot;100ff&amp;amp;quot;]},{category:&amp;amp;quot;aegean numbers&amp;amp;quot;,hexrange:[&amp;amp;quot;10100&amp;amp;quot;,&amp;amp;quot;1013f&amp;amp;quot;]},{category:&amp;amp;quot;ancient greek numbers&amp;amp;quot;,hexrange:[&amp;amp;quot;10140&amp;amp;quot;,&amp;amp;quot;1018f&amp;amp;quot;]},{category:&amp;amp;quot;ancient symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;10190&amp;amp;quot;,&amp;amp;quot;101cf&amp;amp;quot;]},{category:&amp;amp;quot;phaistos disc&amp;amp;quot;,hexrange:[&amp;amp;quot;101d0&amp;amp;quot;,&amp;amp;quot;101ff&amp;amp;quot;]},{category:&amp;amp;quot;lycian&amp;amp;quot;,hexrange:[&amp;amp;quot;10280&amp;amp;quot;,&amp;amp;quot;1029f&amp;amp;quot;]},{category:&amp;amp;quot;carian&amp;amp;quot;,hexrange:[&amp;amp;quot;102a0&amp;amp;quot;,&amp;amp;quot;102df&amp;amp;quot;]},{category:&amp;amp;quot;coptic epact numbers&amp;amp;quot;,hexrange:[&amp;amp;quot;102e0&amp;amp;quot;,&amp;amp;quot;102ff&amp;amp;quot;]},{category:&amp;amp;quot;old italic&amp;amp;quot;,hexrange:[&amp;amp;quot;10300&amp;amp;quot;,&amp;amp;quot;1032f&amp;amp;quot;]},{category:&amp;amp;quot;gothic&amp;amp;quot;,hexrange:[&amp;amp;quot;10330&amp;amp;quot;,&amp;amp;quot;1034f&amp;amp;quot;]},{category:&amp;amp;quot;old permic&amp;amp;quot;,hexrange:[&amp;amp;quot;10350&amp;amp;quot;,&amp;amp;quot;1037f&amp;amp;quot;]},{category:&amp;amp;quot;ugaritic&amp;amp;quot;,hexrange:[&amp;amp;quot;10380&amp;amp;quot;,&amp;amp;quot;1039f&amp;amp;quot;]},{category:&amp;amp;quot;old persian&amp;amp;quot;,hexrange:[&amp;amp;quot;103a0&amp;amp;quot;,&amp;amp;quot;103df&amp;amp;quot;]},{category:&amp;amp;quot;deseret&amp;amp;quot;,hexrange:[&amp;amp;quot;10400&amp;amp;quot;,&amp;amp;quot;1044f&amp;amp;quot;]},{category:&amp;amp;quot;shavian&amp;amp;quot;,hexrange:[&amp;amp;quot;10450&amp;amp;quot;,&amp;amp;quot;1047f&amp;amp;quot;]},{category:&amp;amp;quot;osmanya&amp;amp;quot;,hexrange:[&amp;amp;quot;10480&amp;amp;quot;,&amp;amp;quot;104af&amp;amp;quot;]},{category:&amp;amp;quot;osage&amp;amp;quot;,hexrange:[&amp;amp;quot;104b0&amp;amp;quot;,&amp;amp;quot;104ff&amp;amp;quot;]},{category:&amp;amp;quot;elbasan&amp;amp;quot;,hexrange:[&amp;amp;quot;10500&amp;amp;quot;,&amp;amp;quot;1052f&amp;amp;quot;]},{category:&amp;amp;quot;caucasian albanian&amp;amp;quot;,hexrange:[&amp;amp;quot;10530&amp;amp;quot;,&amp;amp;quot;1056f&amp;amp;quot;]},{category:&amp;amp;quot;vithkuqi&amp;amp;quot;,hexrange:[&amp;amp;quot;10570&amp;amp;quot;,&amp;amp;quot;105bf&amp;amp;quot;]},{category:&amp;amp;quot;linear a&amp;amp;quot;,hexrange:[&amp;amp;quot;10600&amp;amp;quot;,&amp;amp;quot;1077f&amp;amp;quot;]},{category:&amp;amp;quot;latin extended-f&amp;amp;quot;,hexrange:[&amp;amp;quot;10780&amp;amp;quot;,&amp;amp;quot;107bf&amp;amp;quot;]},{category:&amp;amp;quot;cypriot syllabary&amp;amp;quot;,hexrange:[&amp;amp;quot;10800&amp;amp;quot;,&amp;amp;quot;1083f&amp;amp;quot;]},{category:&amp;amp;quot;imperial aramaic&amp;amp;quot;,hexrange:[&amp;amp;quot;10840&amp;amp;quot;,&amp;amp;quot;1085f&amp;amp;quot;]},{category:&amp;amp;quot;palmyrene&amp;amp;quot;,hexrange:[&amp;amp;quot;10860&amp;amp;quot;,&amp;amp;quot;1087f&amp;amp;quot;]},{category:&amp;amp;quot;nabataean&amp;amp;quot;,hexrange:[&amp;amp;quot;10880&amp;amp;quot;,&amp;amp;quot;108af&amp;amp;quot;]},{category:&amp;amp;quot;hatran&amp;amp;quot;,hexrange:[&amp;amp;quot;108e0&amp;amp;quot;,&amp;amp;quot;108ff&amp;amp;quot;]},{category:&amp;amp;quot;phoenician&amp;amp;quot;,hexrange:[&amp;amp;quot;10900&amp;amp;quot;,&amp;amp;quot;1091f&amp;amp;quot;]},{category:&amp;amp;quot;lydian&amp;amp;quot;,hexrange:[&amp;amp;quot;10920&amp;amp;quot;,&amp;amp;quot;1093f&amp;amp;quot;]},{category:&amp;amp;quot;meroitic hieroglyphs&amp;amp;quot;,hexrange:[&amp;amp;quot;10980&amp;amp;quot;,&amp;amp;quot;1099f&amp;amp;quot;]},{category:&amp;amp;quot;meroitic cursive&amp;amp;quot;,hexrange:[&amp;amp;quot;109a0&amp;amp;quot;,&amp;amp;quot;109ff&amp;amp;quot;]},{category:&amp;amp;quot;kharoshthi&amp;amp;quot;,hexrange:[&amp;amp;quot;10a00&amp;amp;quot;,&amp;amp;quot;10a5f&amp;amp;quot;]},{category:&amp;amp;quot;old south arabian&amp;amp;quot;,hexrange:[&amp;amp;quot;10a60&amp;amp;quot;,&amp;amp;quot;10a7f&amp;amp;quot;]},{category:&amp;amp;quot;old north arabian&amp;amp;quot;,hexrange:[&amp;amp;quot;10a80&amp;amp;quot;,&amp;amp;quot;10a9f&amp;amp;quot;]},{category:&amp;amp;quot;manichaean&amp;amp;quot;,hexrange:[&amp;amp;quot;10ac0&amp;amp;quot;,&amp;amp;quot;10aff&amp;amp;quot;]},{category:&amp;amp;quot;avestan&amp;amp;quot;,hexrange:[&amp;amp;quot;10b00&amp;amp;quot;,&amp;amp;quot;10b3f&amp;amp;quot;]},{category:&amp;amp;quot;inscriptional parthian&amp;amp;quot;,hexrange:[&amp;amp;quot;10b40&amp;amp;quot;,&amp;amp;quot;10b5f&amp;amp;quot;]},{category:&amp;amp;quot;inscriptional pahlavi&amp;amp;quot;,hexrange:[&amp;amp;quot;10b60&amp;amp;quot;,&amp;amp;quot;10b7f&amp;amp;quot;]},{category:&amp;amp;quot;psalter pahlavi&amp;amp;quot;,hexrange:[&amp;amp;quot;10b80&amp;amp;quot;,&amp;amp;quot;10baf&amp;amp;quot;]},{category:&amp;amp;quot;old turkic&amp;amp;quot;,hexrange:[&amp;amp;quot;10c00&amp;amp;quot;,&amp;amp;quot;10c4f&amp;amp;quot;]},{category:&amp;amp;quot;old hungarian&amp;amp;quot;,hexrange:[&amp;amp;quot;10c80&amp;amp;quot;,&amp;amp;quot;10cff&amp;amp;quot;]},{category:&amp;amp;quot;hanifi rohingya&amp;amp;quot;,hexrange:[&amp;amp;quot;10d00&amp;amp;quot;,&amp;amp;quot;10d3f&amp;amp;quot;]},{category:&amp;amp;quot;rumi numeral symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;10e60&amp;amp;quot;,&amp;amp;quot;10e7f&amp;amp;quot;]},{category:&amp;amp;quot;yezidi&amp;amp;quot;,hexrange:[&amp;amp;quot;10e80&amp;amp;quot;,&amp;amp;quot;10ebf&amp;amp;quot;]},{category:&amp;amp;quot;arabic extended-c&amp;amp;quot;,hexrange:[&amp;amp;quot;10ec0&amp;amp;quot;,&amp;amp;quot;10eff&amp;amp;quot;]},{category:&amp;amp;quot;old sogdian&amp;amp;quot;,hexrange:[&amp;amp;quot;10f00&amp;amp;quot;,&amp;amp;quot;10f2f&amp;amp;quot;]},{category:&amp;amp;quot;sogdian&amp;amp;quot;,hexrange:[&amp;amp;quot;10f30&amp;amp;quot;,&amp;amp;quot;10f6f&amp;amp;quot;]},{category:&amp;amp;quot;old uyghur&amp;amp;quot;,hexrange:[&amp;amp;quot;10f70&amp;amp;quot;,&amp;amp;quot;10faf&amp;amp;quot;]},{category:&amp;amp;quot;chorasmian&amp;amp;quot;,hexrange:[&amp;amp;quot;10fb0&amp;amp;quot;,&amp;amp;quot;10fdf&amp;amp;quot;]},{category:&amp;amp;quot;elymaic&amp;amp;quot;,hexrange:[&amp;amp;quot;10fe0&amp;amp;quot;,&amp;amp;quot;10fff&amp;amp;quot;]},{category:&amp;amp;quot;brahmi&amp;amp;quot;,hexrange:[&amp;amp;quot;11000&amp;amp;quot;,&amp;amp;quot;1107f&amp;amp;quot;]},{category:&amp;amp;quot;kaithi&amp;amp;quot;,hexrange:[&amp;amp;quot;11080&amp;amp;quot;,&amp;amp;quot;110cf&amp;amp;quot;]},{category:&amp;amp;quot;sora sompeng&amp;amp;quot;,hexrange:[&amp;amp;quot;110d0&amp;amp;quot;,&amp;amp;quot;110ff&amp;amp;quot;]},{category:&amp;amp;quot;chakma&amp;amp;quot;,hexrange:[&amp;amp;quot;11100&amp;amp;quot;,&amp;amp;quot;1114f&amp;amp;quot;]},{category:&amp;amp;quot;mahajani&amp;amp;quot;,hexrange:[&amp;amp;quot;11150&amp;amp;quot;,&amp;amp;quot;1117f&amp;amp;quot;]},{category:&amp;amp;quot;sharada&amp;amp;quot;,hexrange:[&amp;amp;quot;11180&amp;amp;quot;,&amp;amp;quot;111df&amp;amp;quot;]},{category:&amp;amp;quot;sinhala archaic numbers&amp;amp;quot;,hexrange:[&amp;amp;quot;111e0&amp;amp;quot;,&amp;amp;quot;111ff&amp;amp;quot;]},{category:&amp;amp;quot;khojki&amp;amp;quot;,hexrange:[&amp;amp;quot;11200&amp;amp;quot;,&amp;amp;quot;1124f&amp;amp;quot;]},{category:&amp;amp;quot;multani&amp;amp;quot;,hexrange:[&amp;amp;quot;11280&amp;amp;quot;,&amp;amp;quot;112af&amp;amp;quot;]},{category:&amp;amp;quot;khudawadi&amp;amp;quot;,hexrange:[&amp;amp;quot;112b0&amp;amp;quot;,&amp;amp;quot;112ff&amp;amp;quot;]},{category:&amp;amp;quot;grantha&amp;amp;quot;,hexrange:[&amp;amp;quot;11300&amp;amp;quot;,&amp;amp;quot;1137f&amp;amp;quot;]},{category:&amp;amp;quot;newa&amp;amp;quot;,hexrange:[&amp;amp;quot;11400&amp;amp;quot;,&amp;amp;quot;1147f&amp;amp;quot;]},{category:&amp;amp;quot;tirhuta&amp;amp;quot;,hexrange:[&amp;amp;quot;11480&amp;amp;quot;,&amp;amp;quot;114df&amp;amp;quot;]},{category:&amp;amp;quot;siddham&amp;amp;quot;,hexrange:[&amp;amp;quot;11580&amp;amp;quot;,&amp;amp;quot;115ff&amp;amp;quot;]},{category:&amp;amp;quot;modi&amp;amp;quot;,hexrange:[&amp;amp;quot;11600&amp;amp;quot;,&amp;amp;quot;1165f&amp;amp;quot;]},{category:&amp;amp;quot;mongolian supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;11660&amp;amp;quot;,&amp;amp;quot;1167f&amp;amp;quot;]},{category:&amp;amp;quot;takri&amp;amp;quot;,hexrange:[&amp;amp;quot;11680&amp;amp;quot;,&amp;amp;quot;116cf&amp;amp;quot;]},{category:&amp;amp;quot;ahom&amp;amp;quot;,hexrange:[&amp;amp;quot;11700&amp;amp;quot;,&amp;amp;quot;1174f&amp;amp;quot;]},{category:&amp;amp;quot;dogra&amp;amp;quot;,hexrange:[&amp;amp;quot;11800&amp;amp;quot;,&amp;amp;quot;1184f&amp;amp;quot;]},{category:&amp;amp;quot;warang citi&amp;amp;quot;,hexrange:[&amp;amp;quot;118a0&amp;amp;quot;,&amp;amp;quot;118ff&amp;amp;quot;]},{category:&amp;amp;quot;dives akuru&amp;amp;quot;,hexrange:[&amp;amp;quot;11900&amp;amp;quot;,&amp;amp;quot;1195f&amp;amp;quot;]},{category:&amp;amp;quot;nandinagari&amp;amp;quot;,hexrange:[&amp;amp;quot;119a0&amp;amp;quot;,&amp;amp;quot;119ff&amp;amp;quot;]},{category:&amp;amp;quot;zanabazar square&amp;amp;quot;,hexrange:[&amp;amp;quot;11a00&amp;amp;quot;,&amp;amp;quot;11a4f&amp;amp;quot;]},{category:&amp;amp;quot;soyombo&amp;amp;quot;,hexrange:[&amp;amp;quot;11a50&amp;amp;quot;,&amp;amp;quot;11aaf&amp;amp;quot;]},{category:&amp;amp;quot;unified canadian aboriginal syllabics extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;11ab0&amp;amp;quot;,&amp;amp;quot;11abf&amp;amp;quot;]},{category:&amp;amp;quot;pau cin hau&amp;amp;quot;,hexrange:[&amp;amp;quot;11ac0&amp;amp;quot;,&amp;amp;quot;11aff&amp;amp;quot;]},{category:&amp;amp;quot;devanagari extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;11b00&amp;amp;quot;,&amp;amp;quot;11b5f&amp;amp;quot;]},{category:&amp;amp;quot;bhaiksuki&amp;amp;quot;,hexrange:[&amp;amp;quot;11c00&amp;amp;quot;,&amp;amp;quot;11c6f&amp;amp;quot;]},{category:&amp;amp;quot;marchen&amp;amp;quot;,hexrange:[&amp;amp;quot;11c70&amp;amp;quot;,&amp;amp;quot;11cbf&amp;amp;quot;]},{category:&amp;amp;quot;masaram gondi&amp;amp;quot;,hexrange:[&amp;amp;quot;11d00&amp;amp;quot;,&amp;amp;quot;11d5f&amp;amp;quot;]},{category:&amp;amp;quot;gunjala gondi&amp;amp;quot;,hexrange:[&amp;amp;quot;11d60&amp;amp;quot;,&amp;amp;quot;11daf&amp;amp;quot;]},{category:&amp;amp;quot;makasar&amp;amp;quot;,hexrange:[&amp;amp;quot;11ee0&amp;amp;quot;,&amp;amp;quot;11eff&amp;amp;quot;]},{category:&amp;amp;quot;kawi&amp;amp;quot;,hexrange:[&amp;amp;quot;11f00&amp;amp;quot;,&amp;amp;quot;11f5f&amp;amp;quot;]},{category:&amp;amp;quot;lisu supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;11fb0&amp;amp;quot;,&amp;amp;quot;11fbf&amp;amp;quot;]},{category:&amp;amp;quot;tamil supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;11fc0&amp;amp;quot;,&amp;amp;quot;11fff&amp;amp;quot;]},{category:&amp;amp;quot;cuneiform&amp;amp;quot;,hexrange:[&amp;amp;quot;12000&amp;amp;quot;,&amp;amp;quot;123ff&amp;amp;quot;]},{category:&amp;amp;quot;cuneiform numbers and punctuation&amp;amp;quot;,hexrange:[&amp;amp;quot;12400&amp;amp;quot;,&amp;amp;quot;1247f&amp;amp;quot;]},{category:&amp;amp;quot;early dynastic cuneiform&amp;amp;quot;,hexrange:[&amp;amp;quot;12480&amp;amp;quot;,&amp;amp;quot;1254f&amp;amp;quot;]},{category:&amp;amp;quot;cypro-minoan&amp;amp;quot;,hexrange:[&amp;amp;quot;12f90&amp;amp;quot;,&amp;amp;quot;12fff&amp;amp;quot;]},{category:&amp;amp;quot;egyptian hieroglyphs&amp;amp;quot;,hexrange:[&amp;amp;quot;13000&amp;amp;quot;,&amp;amp;quot;1342f&amp;amp;quot;]},{category:&amp;amp;quot;egyptian hieroglyph format controls&amp;amp;quot;,hexrange:[&amp;amp;quot;13430&amp;amp;quot;,&amp;amp;quot;1345f&amp;amp;quot;]},{category:&amp;amp;quot;anatolian hieroglyphs&amp;amp;quot;,hexrange:[&amp;amp;quot;14400&amp;amp;quot;,&amp;amp;quot;1467f&amp;amp;quot;]},{category:&amp;amp;quot;bamum supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;16800&amp;amp;quot;,&amp;amp;quot;16a3f&amp;amp;quot;]},{category:&amp;amp;quot;mro&amp;amp;quot;,hexrange:[&amp;amp;quot;16a40&amp;amp;quot;,&amp;amp;quot;16a6f&amp;amp;quot;]},{category:&amp;amp;quot;tangsa&amp;amp;quot;,hexrange:[&amp;amp;quot;16a70&amp;amp;quot;,&amp;amp;quot;16acf&amp;amp;quot;]},{category:&amp;amp;quot;bassa vah&amp;amp;quot;,hexrange:[&amp;amp;quot;16ad0&amp;amp;quot;,&amp;amp;quot;16aff&amp;amp;quot;]},{category:&amp;amp;quot;pahawh hmong&amp;amp;quot;,hexrange:[&amp;amp;quot;16b00&amp;amp;quot;,&amp;amp;quot;16b8f&amp;amp;quot;]},{category:&amp;amp;quot;medefaidrin&amp;amp;quot;,hexrange:[&amp;amp;quot;16e40&amp;amp;quot;,&amp;amp;quot;16e9f&amp;amp;quot;]},{category:&amp;amp;quot;miao&amp;amp;quot;,hexrange:[&amp;amp;quot;16f00&amp;amp;quot;,&amp;amp;quot;16f9f&amp;amp;quot;]},{category:&amp;amp;quot;ideographic symbols and punctuation&amp;amp;quot;,hexrange:[&amp;amp;quot;16fe0&amp;amp;quot;,&amp;amp;quot;16fff&amp;amp;quot;]},{category:&amp;amp;quot;tangut&amp;amp;quot;,hexrange:[&amp;amp;quot;17000&amp;amp;quot;,&amp;amp;quot;187ff&amp;amp;quot;]},{category:&amp;amp;quot;tangut components&amp;amp;quot;,hexrange:[&amp;amp;quot;18800&amp;amp;quot;,&amp;amp;quot;18aff&amp;amp;quot;]},{category:&amp;amp;quot;khitan small script&amp;amp;quot;,hexrange:[&amp;amp;quot;18b00&amp;amp;quot;,&amp;amp;quot;18cff&amp;amp;quot;]},{category:&amp;amp;quot;tangut supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;18d00&amp;amp;quot;,&amp;amp;quot;18d7f&amp;amp;quot;]},{category:&amp;amp;quot;kana extended-b&amp;amp;quot;,hexrange:[&amp;amp;quot;1aff0&amp;amp;quot;,&amp;amp;quot;1afff&amp;amp;quot;]},{category:&amp;amp;quot;kana supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;1b000&amp;amp;quot;,&amp;amp;quot;1b0ff&amp;amp;quot;]},{category:&amp;amp;quot;kana extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;1b100&amp;amp;quot;,&amp;amp;quot;1b12f&amp;amp;quot;]},{category:&amp;amp;quot;small kana extension&amp;amp;quot;,hexrange:[&amp;amp;quot;1b130&amp;amp;quot;,&amp;amp;quot;1b16f&amp;amp;quot;]},{category:&amp;amp;quot;nushu&amp;amp;quot;,hexrange:[&amp;amp;quot;1b170&amp;amp;quot;,&amp;amp;quot;1b2ff&amp;amp;quot;]},{category:&amp;amp;quot;duployan&amp;amp;quot;,hexrange:[&amp;amp;quot;1bc00&amp;amp;quot;,&amp;amp;quot;1bc9f&amp;amp;quot;]},{category:&amp;amp;quot;shorthand format controls&amp;amp;quot;,hexrange:[&amp;amp;quot;1bca0&amp;amp;quot;,&amp;amp;quot;1bcaf&amp;amp;quot;]},{category:&amp;amp;quot;znamenny musical notation&amp;amp;quot;,hexrange:[&amp;amp;quot;1cf00&amp;amp;quot;,&amp;amp;quot;1cfcf&amp;amp;quot;]},{category:&amp;amp;quot;byzantine musical symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;1d000&amp;amp;quot;,&amp;amp;quot;1d0ff&amp;amp;quot;]},{category:&amp;amp;quot;musical symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;1d100&amp;amp;quot;,&amp;amp;quot;1d1ff&amp;amp;quot;]},{category:&amp;amp;quot;ancient greek musical notation&amp;amp;quot;,hexrange:[&amp;amp;quot;1d200&amp;amp;quot;,&amp;amp;quot;1d24f&amp;amp;quot;]},{category:&amp;amp;quot;kaktovik numerals&amp;amp;quot;,hexrange:[&amp;amp;quot;1d2c0&amp;amp;quot;,&amp;amp;quot;1d2df&amp;amp;quot;]},{category:&amp;amp;quot;mayan numerals&amp;amp;quot;,hexrange:[&amp;amp;quot;1d2e0&amp;amp;quot;,&amp;amp;quot;1d2ff&amp;amp;quot;]},{category:&amp;amp;quot;tai xuan jing symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;1d300&amp;amp;quot;,&amp;amp;quot;1d35f&amp;amp;quot;]},{category:&amp;amp;quot;counting rod numerals&amp;amp;quot;,hexrange:[&amp;amp;quot;1d360&amp;amp;quot;,&amp;amp;quot;1d37f&amp;amp;quot;]},{category:&amp;amp;quot;mathematical alphanumeric symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;1d400&amp;amp;quot;,&amp;amp;quot;1d7ff&amp;amp;quot;]},{category:&amp;amp;quot;sutton signwriting&amp;amp;quot;,hexrange:[&amp;amp;quot;1d800&amp;amp;quot;,&amp;amp;quot;1daaf&amp;amp;quot;]},{category:&amp;amp;quot;latin extended-g&amp;amp;quot;,hexrange:[&amp;amp;quot;1df00&amp;amp;quot;,&amp;amp;quot;1dfff&amp;amp;quot;]},{category:&amp;amp;quot;glagolitic supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;1e000&amp;amp;quot;,&amp;amp;quot;1e02f&amp;amp;quot;]},{category:&amp;amp;quot;cyrillic extended-d&amp;amp;quot;,hexrange:[&amp;amp;quot;1e030&amp;amp;quot;,&amp;amp;quot;1e08f&amp;amp;quot;]},{category:&amp;amp;quot;nyiakeng puachue hmong&amp;amp;quot;,hexrange:[&amp;amp;quot;1e100&amp;amp;quot;,&amp;amp;quot;1e14f&amp;amp;quot;]},{category:&amp;amp;quot;toto&amp;amp;quot;,hexrange:[&amp;amp;quot;1e290&amp;amp;quot;,&amp;amp;quot;1e2bf&amp;amp;quot;]},{category:&amp;amp;quot;wancho&amp;amp;quot;,hexrange:[&amp;amp;quot;1e2c0&amp;amp;quot;,&amp;amp;quot;1e2ff&amp;amp;quot;]},{category:&amp;amp;quot;nag mundari&amp;amp;quot;,hexrange:[&amp;amp;quot;1e4d0&amp;amp;quot;,&amp;amp;quot;1e4ff&amp;amp;quot;]},{category:&amp;amp;quot;ethiopic extended-b&amp;amp;quot;,hexrange:[&amp;amp;quot;1e7e0&amp;amp;quot;,&amp;amp;quot;1e7ff&amp;amp;quot;]},{category:&amp;amp;quot;mende kikakui&amp;amp;quot;,hexrange:[&amp;amp;quot;1e800&amp;amp;quot;,&amp;amp;quot;1e8df&amp;amp;quot;]},{category:&amp;amp;quot;adlam&amp;amp;quot;,hexrange:[&amp;amp;quot;1e900&amp;amp;quot;,&amp;amp;quot;1e95f&amp;amp;quot;]},{category:&amp;amp;quot;indic siyaq numbers&amp;amp;quot;,hexrange:[&amp;amp;quot;1ec70&amp;amp;quot;,&amp;amp;quot;1ecbf&amp;amp;quot;]},{category:&amp;amp;quot;ottoman siyaq numbers&amp;amp;quot;,hexrange:[&amp;amp;quot;1ed00&amp;amp;quot;,&amp;amp;quot;1ed4f&amp;amp;quot;]},{category:&amp;amp;quot;arabic mathematical alphabetic symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;1ee00&amp;amp;quot;,&amp;amp;quot;1eeff&amp;amp;quot;]},{category:&amp;amp;quot;mahjong tiles&amp;amp;quot;,hexrange:[&amp;amp;quot;1f000&amp;amp;quot;,&amp;amp;quot;1f02f&amp;amp;quot;]},{category:&amp;amp;quot;domino tiles&amp;amp;quot;,hexrange:[&amp;amp;quot;1f030&amp;amp;quot;,&amp;amp;quot;1f09f&amp;amp;quot;]},{category:&amp;amp;quot;playing cards&amp;amp;quot;,hexrange:[&amp;amp;quot;1f0a0&amp;amp;quot;,&amp;amp;quot;1f0ff&amp;amp;quot;]},{category:&amp;amp;quot;enclosed alphanumeric supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;1f100&amp;amp;quot;,&amp;amp;quot;1f1ff&amp;amp;quot;]},{category:&amp;amp;quot;enclosed ideographic supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;1f200&amp;amp;quot;,&amp;amp;quot;1f2ff&amp;amp;quot;]},{category:&amp;amp;quot;miscellaneous symbols and pictographs&amp;amp;quot;,hexrange:[&amp;amp;quot;1f300&amp;amp;quot;,&amp;amp;quot;1f5ff&amp;amp;quot;]},{category:&amp;amp;quot;emoticons (emoji)&amp;amp;quot;,hexrange:[&amp;amp;quot;1f600&amp;amp;quot;,&amp;amp;quot;1f64f&amp;amp;quot;]},{category:&amp;amp;quot;ornamental dingbats&amp;amp;quot;,hexrange:[&amp;amp;quot;1f650&amp;amp;quot;,&amp;amp;quot;1f67f&amp;amp;quot;]},{category:&amp;amp;quot;transport and map symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;1f680&amp;amp;quot;,&amp;amp;quot;1f6ff&amp;amp;quot;]},{category:&amp;amp;quot;alchemical symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;1f700&amp;amp;quot;,&amp;amp;quot;1f77f&amp;amp;quot;]},{category:&amp;amp;quot;geometric shapes extended&amp;amp;quot;,hexrange:[&amp;amp;quot;1f780&amp;amp;quot;,&amp;amp;quot;1f7ff&amp;amp;quot;]},{category:&amp;amp;quot;supplemental arrows-c&amp;amp;quot;,hexrange:[&amp;amp;quot;1f800&amp;amp;quot;,&amp;amp;quot;1f8ff&amp;amp;quot;]},{category:&amp;amp;quot;supplemental symbols and pictographs&amp;amp;quot;,hexrange:[&amp;amp;quot;1f900&amp;amp;quot;,&amp;amp;quot;1f9ff&amp;amp;quot;]},{category:&amp;amp;quot;chess symbols&amp;amp;quot;,hexrange:[&amp;amp;quot;1fa00&amp;amp;quot;,&amp;amp;quot;1fa6f&amp;amp;quot;]},{category:&amp;amp;quot;symbols and pictographs extended-a&amp;amp;quot;,hexrange:[&amp;amp;quot;1fa70&amp;amp;quot;,&amp;amp;quot;1faff&amp;amp;quot;]},{category:&amp;amp;quot;symbols for legacy computing&amp;amp;quot;,hexrange:[&amp;amp;quot;1fb00&amp;amp;quot;,&amp;amp;quot;1fbff&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension b&amp;amp;quot;,hexrange:[&amp;amp;quot;20000&amp;amp;quot;,&amp;amp;quot;2a6df&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension c&amp;amp;quot;,hexrange:[&amp;amp;quot;2a700&amp;amp;quot;,&amp;amp;quot;2b73f&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension d&amp;amp;quot;,hexrange:[&amp;amp;quot;2b740&amp;amp;quot;,&amp;amp;quot;2b81f&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension e&amp;amp;quot;,hexrange:[&amp;amp;quot;2b820&amp;amp;quot;,&amp;amp;quot;2ceaf&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension f&amp;amp;quot;,hexrange:[&amp;amp;quot;2ceb0&amp;amp;quot;,&amp;amp;quot;2ebef&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension i&amp;amp;quot;,hexrange:[&amp;amp;quot;2ebf0&amp;amp;quot;,&amp;amp;quot;2ee5f&amp;amp;quot;]},{category:&amp;amp;quot;cjk compatibility ideographs supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;2f800&amp;amp;quot;,&amp;amp;quot;2fa1f&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension g&amp;amp;quot;,hexrange:[&amp;amp;quot;30000&amp;amp;quot;,&amp;amp;quot;3134f&amp;amp;quot;]},{category:&amp;amp;quot;cjk unified ideographs extension h&amp;amp;quot;,hexrange:[&amp;amp;quot;31350&amp;amp;quot;,&amp;amp;quot;323af&amp;amp;quot;]},{category:&amp;amp;quot;tags&amp;amp;quot;,hexrange:[&amp;amp;quot;e0000&amp;amp;quot;,&amp;amp;quot;e007f&amp;amp;quot;]},{category:&amp;amp;quot;variation selectors supplement&amp;amp;quot;,hexrange:[&amp;amp;quot;e0100&amp;amp;quot;,&amp;amp;quot;e01ef&amp;amp;quot;]},{category:&amp;amp;quot;supplementary private use area-a&amp;amp;quot;,hexrange:[&amp;amp;quot;f0000&amp;amp;quot;,&amp;amp;quot;fffff&amp;amp;quot;]},{category:&amp;amp;quot;supplementary private use area-b&amp;amp;quot;,hexrange:[&amp;amp;quot;100000&amp;amp;quot;,&amp;amp;quot;10ffff&amp;amp;quot;]}];function ra(i){let t=i.length;for(;--t&amp;amp;gt;=0;)i[t]=0}var O2=0,y1=1,V2=2,U2=3,G2=258,Ep=29,Go=256,Mo=Go+1+Ep,Qs=30,Sp=19,v1=2*Mo+1,Gn=15,tp=16,z2=7,Ap=256,x1=16,b1=17,_1=18,mp=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Ul=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),j2=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),w1=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),$2=512,Ii=new Array((Mo+2)*2);ra(Ii);var No=new Array(Qs*2);ra(No);var Lo=new Array($2);ra(Lo);var Ro=new Array(G2-U2+1);ra(Ro);var Dp=new Array(Ep);ra(Dp);var Gl=new Array(Qs);ra(Gl);function rp(i,t,r,n,s){this.static_tree=i,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=s,this.has_stree=i&amp;amp;amp;&amp;amp;amp;i.length}var C1,E1,S1;function ip(i,t){this.dyn_tree=i,this.max_code=0,this.stat_desc=t}var A1=i=&amp;amp;gt;i&amp;amp;lt;256?Lo[i]:Lo[256+(i&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;7)],Bo=(i,t)=&amp;amp;gt;{i.pending_buf[i.pending++]=t&amp;amp;amp;255,i.pending_buf[i.pending++]=t&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255},er=(i,t,r)=&amp;amp;gt;{i.bi_valid&amp;amp;gt;tp-r?(i.bi_buf|=t&amp;amp;lt;&amp;amp;lt;i.bi_valid&amp;amp;amp;65535,Bo(i,i.bi_buf),i.bi_buf=t&amp;amp;gt;&amp;amp;gt;tp-i.bi_valid,i.bi_valid+=r-tp):(i.bi_buf|=t&amp;amp;lt;&amp;amp;lt;i.bi_valid&amp;amp;amp;65535,i.bi_valid+=r)},ui=(i,t,r)=&amp;amp;gt;{er(i,r[t*2],r[t*2+1])},D1=(i,t)=&amp;amp;gt;{let r=0;do r|=i&amp;amp;amp;1,i&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=1,r&amp;amp;lt;&amp;amp;lt;=1;while(--t&amp;amp;gt;0);return r&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1},H2=i=&amp;amp;gt;{i.bi_valid===16?(Bo(i,i.bi_buf),i.bi_buf=0,i.bi_valid=0):i.bi_valid&amp;amp;gt;=8&amp;amp;amp;&amp;amp;amp;(i.pending_buf[i.pending++]=i.bi_buf&amp;amp;amp;255,i.bi_buf&amp;amp;gt;&amp;amp;gt;=8,i.bi_valid-=8)},W2=(i,t)=&amp;amp;gt;{let r=t.dyn_tree,n=t.max_code,s=t.stat_desc.static_tree,a=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,u=t.stat_desc.extra_base,h=t.stat_desc.max_length,l,c,p,f,d,m,g=0;for(f=0;f&amp;amp;lt;=Gn;f++)i.bl_count[f]=0;for(r[i.heap[i.heap_max]*2+1]=0,l=i.heap_max+1;l&amp;amp;lt;v1;l++)c=i.heap[l],f=r[r[c*2+1]*2+1]+1,f&amp;amp;gt;h&amp;amp;amp;&amp;amp;amp;(f=h,g++),r[c*2+1]=f,!(c&amp;amp;gt;n)&amp;amp;amp;&amp;amp;amp;(i.bl_count[f]++,d=0,c&amp;amp;gt;=u&amp;amp;amp;&amp;amp;amp;(d=o[c-u]),m=r[c*2],i.opt_len+=m*(f+d),a&amp;amp;amp;&amp;amp;amp;(i.static_len+=m*(s[c*2+1]+d)));if(g!==0){do{for(f=h-1;i.bl_count[f]===0;)f--;i.bl_count[f]--,i.bl_count[f+1]+=2,i.bl_count[h]--,g-=2}while(g&amp;amp;gt;0);for(f=h;f!==0;f--)for(c=i.bl_count[f];c!==0;)p=i.heap[--l],!(p&amp;amp;gt;n)&amp;amp;amp;&amp;amp;amp;(r[p*2+1]!==f&amp;amp;amp;&amp;amp;amp;(i.opt_len+=(f-r[p*2+1])*r[p*2],r[p*2+1]=f),c--)}},F1=(i,t,r)=&amp;amp;gt;{let n=new Array(Gn+1),s=0,a,o;for(a=1;a&amp;amp;lt;=Gn;a++)s=s+r[a-1]&amp;amp;lt;&amp;amp;lt;1,n[a]=s;for(o=0;o&amp;amp;lt;=t;o++){let u=i[o*2+1];u!==0&amp;amp;amp;&amp;amp;amp;(i[o*2]=D1(n[u]++,u))}},q2=()=&amp;amp;gt;{let i,t,r,n,s,a=new Array(Gn+1);for(r=0,n=0;n&amp;amp;lt;Ep-1;n++)for(Dp[n]=r,i=0;i&amp;amp;lt;1&amp;amp;lt;&amp;amp;lt;mp[n];i++)Ro[r++]=n;for(Ro[r-1]=n,s=0,n=0;n&amp;amp;lt;16;n++)for(Gl[n]=s,i=0;i&amp;amp;lt;1&amp;amp;lt;&amp;amp;lt;Ul[n];i++)Lo[s++]=n;for(s&amp;amp;gt;&amp;amp;gt;=7;n&amp;amp;lt;Qs;n++)for(Gl[n]=s&amp;amp;lt;&amp;amp;lt;7,i=0;i&amp;amp;lt;1&amp;amp;lt;&amp;amp;lt;Ul[n]-7;i++)Lo[256+s++]=n;for(t=0;t&amp;amp;lt;=Gn;t++)a[t]=0;for(i=0;i&amp;amp;lt;=143;)Ii[i*2+1]=8,i++,a[8]++;for(;i&amp;amp;lt;=255;)Ii[i*2+1]=9,i++,a[9]++;for(;i&amp;amp;lt;=279;)Ii[i*2+1]=7,i++,a[7]++;for(;i&amp;amp;lt;=287;)Ii[i*2+1]=8,i++,a[8]++;for(F1(Ii,Mo+1,a),i=0;i&amp;amp;lt;Qs;i++)No[i*2+1]=5,No[i*2]=D1(i,5);C1=new rp(Ii,mp,Go+1,Mo,Gn),E1=new rp(No,Ul,0,Qs,Gn),S1=new rp(new Array(0),j2,0,Sp,z2)},T1=i=&amp;amp;gt;{let t;for(t=0;t&amp;amp;lt;Mo;t++)i.dyn_ltree[t*2]=0;for(t=0;t&amp;amp;lt;Qs;t++)i.dyn_dtree[t*2]=0;for(t=0;t&amp;amp;lt;Sp;t++)i.bl_tree[t*2]=0;i.dyn_ltree[Ap*2]=1,i.opt_len=i.static_len=0,i.sym_next=i.matches=0},N1=i=&amp;amp;gt;{i.bi_valid&amp;amp;gt;8?Bo(i,i.bi_buf):i.bi_valid&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i.pending_buf[i.pending++]=i.bi_buf),i.bi_buf=0,i.bi_valid=0},Mg=(i,t,r,n)=&amp;amp;gt;{let s=t*2,a=r*2;return i[s]&amp;amp;lt;i[a]||i[s]===i[a]&amp;amp;amp;&amp;amp;amp;n[t]&amp;amp;lt;=n[r]},np=(i,t,r)=&amp;amp;gt;{let n=i.heap[r],s=r&amp;amp;lt;&amp;amp;lt;1;for(;s&amp;amp;lt;=i.heap_len&amp;amp;amp;&amp;amp;amp;(s&amp;amp;lt;i.heap_len&amp;amp;amp;&amp;amp;amp;Mg(t,i.heap[s+1],i.heap[s],i.depth)&amp;amp;amp;&amp;amp;amp;s++,!Mg(t,n,i.heap[s],i.depth));)i.heap[r]=i.heap[s],r=s,s&amp;amp;lt;&amp;amp;lt;=1;i.heap[r]=n},Lg=(i,t,r)=&amp;amp;gt;{let n,s,a=0,o,u;if(i.sym_next!==0)do n=i.pending_buf[i.sym_buf+a++]&amp;amp;amp;255,n+=(i.pending_buf[i.sym_buf+a++]&amp;amp;amp;255)&amp;amp;lt;&amp;amp;lt;8,s=i.pending_buf[i.sym_buf+a++],n===0?ui(i,s,t):(o=Ro[s],ui(i,o+Go+1,t),u=mp[o],u!==0&amp;amp;amp;&amp;amp;amp;(s-=Dp[o],er(i,s,u)),n--,o=A1(n),ui(i,o,r),u=Ul[o],u!==0&amp;amp;amp;&amp;amp;amp;(n-=Gl[o],er(i,n,u)));while(a&amp;amp;lt;i.sym_next);ui(i,Ap,t)},gp=(i,t)=&amp;amp;gt;{let r=t.dyn_tree,n=t.stat_desc.static_tree,s=t.stat_desc.has_stree,a=t.stat_desc.elems,o,u,h=-1,l;for(i.heap_len=0,i.heap_max=v1,o=0;o&amp;amp;lt;a;o++)r[o*2]!==0?(i.heap[++i.heap_len]=h=o,i.depth[o]=0):r[o*2+1]=0;for(;i.heap_len&amp;amp;lt;2;)l=i.heap[++i.heap_len]=h&amp;amp;lt;2?++h:0,r[l*2]=1,i.depth[l]=0,i.opt_len--,s&amp;amp;amp;&amp;amp;amp;(i.static_len-=n[l*2+1]);for(t.max_code=h,o=i.heap_len&amp;amp;gt;&amp;amp;gt;1;o&amp;amp;gt;=1;o--)np(i,r,o);l=a;do o=i.heap[1],i.heap[1]=i.heap[i.heap_len--],np(i,r,1),u=i.heap[1],i.heap[--i.heap_max]=o,i.heap[--i.heap_max]=u,r[l*2]=r[o*2]+r[u*2],i.depth[l]=(i.depth[o]&amp;amp;gt;=i.depth[u]?i.depth[o]:i.depth[u])+1,r[o*2+1]=r[u*2+1]=l,i.heap[1]=l++,np(i,r,1);while(i.heap_len&amp;amp;gt;=2);i.heap[--i.heap_max]=i.heap[1],W2(i,t),F1(r,h,i.bl_count)},Rg=(i,t,r)=&amp;amp;gt;{let n,s=-1,a,o=t[1],u=0,h=7,l=4;for(o===0&amp;amp;amp;&amp;amp;amp;(h=138,l=3),t[(r+1)*2+1]=65535,n=0;n&amp;amp;lt;=r;n++)a=o,o=t[(n+1)*2+1],!(++u&amp;amp;lt;h&amp;amp;amp;&amp;amp;amp;a===o)&amp;amp;amp;&amp;amp;amp;(u&amp;amp;lt;l?i.bl_tree[a*2]+=u:a!==0?(a!==s&amp;amp;amp;&amp;amp;amp;i.bl_tree[a*2]++,i.bl_tree[x1*2]++):u&amp;amp;lt;=10?i.bl_tree[b1*2]++:i.bl_tree[_1*2]++,u=0,s=a,o===0?(h=138,l=3):a===o?(h=6,l=3):(h=7,l=4))},Bg=(i,t,r)=&amp;amp;gt;{let n,s=-1,a,o=t[1],u=0,h=7,l=4;for(o===0&amp;amp;amp;&amp;amp;amp;(h=138,l=3),n=0;n&amp;amp;lt;=r;n++)if(a=o,o=t[(n+1)*2+1],!(++u&amp;amp;lt;h&amp;amp;amp;&amp;amp;amp;a===o)){if(u&amp;amp;lt;l)do ui(i,a,i.bl_tree);while(--u!==0);else a!==0?(a!==s&amp;amp;amp;&amp;amp;amp;(ui(i,a,i.bl_tree),u--),ui(i,x1,i.bl_tree),er(i,u-3,2)):u&amp;amp;lt;=10?(ui(i,b1,i.bl_tree),er(i,u-3,3)):(ui(i,_1,i.bl_tree),er(i,u-11,7));u=0,s=a,o===0?(h=138,l=3):a===o?(h=6,l=3):(h=7,l=4)}},Z2=i=&amp;amp;gt;{let t;for(Rg(i,i.dyn_ltree,i.l_desc.max_code),Rg(i,i.dyn_dtree,i.d_desc.max_code),gp(i,i.bl_desc),t=Sp-1;t&amp;amp;gt;=3&amp;amp;amp;&amp;amp;amp;i.bl_tree[w1[t]*2+1]===0;t--);return i.opt_len+=3*(t+1)+5+5+4,t},Y2=(i,t,r,n)=&amp;amp;gt;{let s;for(er(i,t-257,5),er(i,r-1,5),er(i,n-4,4),s=0;s&amp;amp;lt;n;s++)er(i,i.bl_tree[w1[s]*2+1],3);Bg(i,i.dyn_ltree,t-1),Bg(i,i.dyn_dtree,r-1)},X2=i=&amp;amp;gt;{let t=4093624447,r;for(r=0;r&amp;amp;lt;=31;r++,t&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=1)if(t&amp;amp;amp;1&amp;amp;amp;&amp;amp;amp;i.dyn_ltree[r*2]!==0)return 0;if(i.dyn_ltree[18]!==0||i.dyn_ltree[20]!==0||i.dyn_ltree[26]!==0)return 1;for(r=32;r&amp;amp;lt;Go;r++)if(i.dyn_ltree[r*2]!==0)return 1;return 0},Pg=!1,K2=i=&amp;amp;gt;{Pg||(q2(),Pg=!0),i.l_desc=new ip(i.dyn_ltree,C1),i.d_desc=new ip(i.dyn_dtree,E1),i.bl_desc=new ip(i.bl_tree,S1),i.bi_buf=0,i.bi_valid=0,T1(i)},I1=(i,t,r,n)=&amp;amp;gt;{er(i,(O2&amp;amp;lt;&amp;amp;lt;1)+(n?1:0),3),N1(i),Bo(i,r),Bo(i,~r),r&amp;amp;amp;&amp;amp;amp;i.pending_buf.set(i.window.subarray(t,t+r),i.pending),i.pending+=r},J2=i=&amp;amp;gt;{er(i,y1&amp;amp;lt;&amp;amp;lt;1,3),ui(i,Ap,Ii),H2(i)},Q2=(i,t,r,n)=&amp;amp;gt;{let s,a,o=0;i.level&amp;amp;gt;0?(i.strm.data_type===2&amp;amp;amp;&amp;amp;amp;(i.strm.data_type=X2(i)),gp(i,i.l_desc),gp(i,i.d_desc),o=Z2(i),s=i.opt_len+3+7&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;3,a=i.static_len+3+7&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;3,a&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;(s=a)):s=a=r+5,r+4&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;t!==-1?I1(i,t,r,n):i.strategy===4||a===s?(er(i,(y1&amp;amp;lt;&amp;amp;lt;1)+(n?1:0),3),Lg(i,Ii,No)):(er(i,(V2&amp;amp;lt;&amp;amp;lt;1)+(n?1:0),3),Y2(i,i.l_desc.max_code+1,i.d_desc.max_code+1,o+1),Lg(i,i.dyn_ltree,i.dyn_dtree)),T1(i),n&amp;amp;amp;&amp;amp;amp;N1(i)},ew=(i,t,r)=&amp;amp;gt;(i.pending_buf[i.sym_buf+i.sym_next++]=t,i.pending_buf[i.sym_buf+i.sym_next++]=t&amp;amp;gt;&amp;amp;gt;8,i.pending_buf[i.sym_buf+i.sym_next++]=r,t===0?i.dyn_ltree[r*2]++:(i.matches++,t--,i.dyn_ltree[(Ro[r]+Go+1)*2]++,i.dyn_dtree[A1(t)*2]++),i.sym_next===i.sym_end),tw=K2,rw=I1,iw=Q2,nw=ew,sw=J2,aw={_tr_init:tw,_tr_stored_block:rw,_tr_flush_block:iw,_tr_tally:nw,_tr_align:sw},ow=(i,t,r,n)=&amp;amp;gt;{let s=i&amp;amp;amp;65535|0,a=i&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;65535|0,o=0;for(;r!==0;){o=r&amp;amp;gt;2e3?2e3:r,r-=o;do s=s+t[n++]|0,a=a+s|0;while(--o);s%=65521,a%=65521}return s|a&amp;amp;lt;&amp;amp;lt;16|0},Po=ow,uw=()=&amp;amp;gt;{let i,t=[];for(var r=0;r&amp;amp;lt;256;r++){i=r;for(var n=0;n&amp;amp;lt;8;n++)i=i&amp;amp;amp;1?3988292384^i&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1:i&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1;t[r]=i}return t},lw=new Uint32Array(uw()),hw=(i,t,r,n)=&amp;amp;gt;{let s=lw,a=n+r;i^=-1;for(let o=n;o&amp;amp;lt;a;o++)i=i&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8^s[(i^t[o])&amp;amp;amp;255];return i^-1},Nt=hw,$n={2:&amp;amp;quot;need dictionary&amp;amp;quot;,1:&amp;amp;quot;stream end&amp;amp;quot;,0:&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;-1&amp;amp;quot;:&amp;amp;quot;file error&amp;amp;quot;,&amp;amp;quot;-2&amp;amp;quot;:&amp;amp;quot;stream error&amp;amp;quot;,&amp;amp;quot;-3&amp;amp;quot;:&amp;amp;quot;data error&amp;amp;quot;,&amp;amp;quot;-4&amp;amp;quot;:&amp;amp;quot;insufficient memory&amp;amp;quot;,&amp;amp;quot;-5&amp;amp;quot;:&amp;amp;quot;buffer error&amp;amp;quot;,&amp;amp;quot;-6&amp;amp;quot;:&amp;amp;quot;incompatible version&amp;amp;quot;},ia={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:cw,_tr_stored_block:yp,_tr_flush_block:fw,_tr_tally:sn,_tr_align:pw}=aw,{Z_NO_FLUSH:an,Z_PARTIAL_FLUSH:dw,Z_FULL_FLUSH:mw,Z_FINISH:Tr,Z_BLOCK:Og,Z_OK:Mt,Z_STREAM_END:Vg,Z_STREAM_ERROR:li,Z_DATA_ERROR:gw,Z_BUF_ERROR:sp,Z_DEFAULT_COMPRESSION:yw,Z_FILTERED:vw,Z_HUFFMAN_ONLY:Rl,Z_RLE:xw,Z_FIXED:bw,Z_DEFAULT_STRATEGY:_w,Z_UNKNOWN:ww,Z_DEFLATED:$l}=ia,Cw=9,Ew=15,Sw=8,Aw=29,Dw=256,vp=Dw+1+Aw,Fw=30,Tw=19,Nw=2*vp+1,Iw=15,Ye=3,nn=258,hi=nn+Ye+1,kw=32,ea=42,Fp=57,xp=69,bp=73,_p=91,wp=103,zn=113,Fo=666,Zt=1,na=2,Hn=3,sa=4,Mw=3,jn=(i,t)=&amp;amp;gt;(i.msg=$n[t],t),Ug=i=&amp;amp;gt;i*2-(i&amp;amp;gt;4?9:0),rn=i=&amp;amp;gt;{let t=i.length;for(;--t&amp;amp;gt;=0;)i[t]=0},Lw=i=&amp;amp;gt;{let t,r,n,s=i.w_size;t=i.hash_size,n=t;do r=i.head[--n],i.head[n]=r&amp;amp;gt;=s?r-s:0;while(--t);t=s,n=t;do r=i.prev[--n],i.prev[n]=r&amp;amp;gt;=s?r-s:0;while(--t)},Rw=(i,t,r)=&amp;amp;gt;(t&amp;amp;lt;&amp;amp;lt;i.hash_shift^r)&amp;amp;amp;i.hash_mask,on=Rw,pr=i=&amp;amp;gt;{let t=i.state,r=t.pending;r&amp;amp;gt;i.avail_out&amp;amp;amp;&amp;amp;amp;(r=i.avail_out),r!==0&amp;amp;amp;&amp;amp;amp;(i.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+r),i.next_out),i.next_out+=r,t.pending_out+=r,i.total_out+=r,i.avail_out-=r,t.pending-=r,t.pending===0&amp;amp;amp;&amp;amp;amp;(t.pending_out=0))},dr=(i,t)=&amp;amp;gt;{fw(i,i.block_start&amp;amp;gt;=0?i.block_start:-1,i.strstart-i.block_start,t),i.block_start=i.strstart,pr(i.strm)},Je=(i,t)=&amp;amp;gt;{i.pending_buf[i.pending++]=t},Do=(i,t)=&amp;amp;gt;{i.pending_buf[i.pending++]=t&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i.pending_buf[i.pending++]=t&amp;amp;amp;255},Cp=(i,t,r,n)=&amp;amp;gt;{let s=i.avail_in;return s&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;(s=n),s===0?0:(i.avail_in-=s,t.set(i.input.subarray(i.next_in,i.next_in+s),r),i.state.wrap===1?i.adler=Po(i.adler,t,s,r):i.state.wrap===2&amp;amp;amp;&amp;amp;amp;(i.adler=Nt(i.adler,t,s,r)),i.next_in+=s,i.total_in+=s,s)},k1=(i,t)=&amp;amp;gt;{let r=i.max_chain_length,n=i.strstart,s,a,o=i.prev_length,u=i.nice_match,h=i.strstart&amp;amp;gt;i.w_size-hi?i.strstart-(i.w_size-hi):0,l=i.window,c=i.w_mask,p=i.prev,f=i.strstart+nn,d=l[n+o-1],m=l[n+o];i.prev_length&amp;amp;gt;=i.good_match&amp;amp;amp;&amp;amp;amp;(r&amp;amp;gt;&amp;amp;gt;=2),u&amp;amp;gt;i.lookahead&amp;amp;amp;&amp;amp;amp;(u=i.lookahead);do if(s=t,!(l[s+o]!==m||l[s+o-1]!==d||l[s]!==l[n]||l[++s]!==l[n+1])){n+=2,s++;do;while(l[++n]===l[++s]&amp;amp;amp;&amp;amp;amp;l[++n]===l[++s]&amp;amp;amp;&amp;amp;amp;l[++n]===l[++s]&amp;amp;amp;&amp;amp;amp;l[++n]===l[++s]&amp;amp;amp;&amp;amp;amp;l[++n]===l[++s]&amp;amp;amp;&amp;amp;amp;l[++n]===l[++s]&amp;amp;amp;&amp;amp;amp;l[++n]===l[++s]&amp;amp;amp;&amp;amp;amp;l[++n]===l[++s]&amp;amp;amp;&amp;amp;amp;n&amp;amp;lt;f);if(a=nn-(f-n),n=f-nn,a&amp;amp;gt;o){if(i.match_start=t,o=a,a&amp;amp;gt;=u)break;d=l[n+o-1],m=l[n+o]}}while((t=p[t&amp;amp;amp;c])&amp;amp;gt;h&amp;amp;amp;&amp;amp;amp;--r!==0);return o&amp;amp;lt;=i.lookahead?o:i.lookahead},ta=i=&amp;amp;gt;{let t=i.w_size,r,n,s;do{if(n=i.window_size-i.lookahead-i.strstart,i.strstart&amp;amp;gt;=t+(t-hi)&amp;amp;amp;&amp;amp;amp;(i.window.set(i.window.subarray(t,t+t-n),0),i.match_start-=t,i.strstart-=t,i.block_start-=t,i.insert&amp;amp;gt;i.strstart&amp;amp;amp;&amp;amp;amp;(i.insert=i.strstart),Lw(i),n+=t),i.strm.avail_in===0)break;if(r=Cp(i.strm,i.window,i.strstart+i.lookahead,n),i.lookahead+=r,i.lookahead+i.insert&amp;amp;gt;=Ye)for(s=i.strstart-i.insert,i.ins_h=i.window[s],i.ins_h=on(i,i.ins_h,i.window[s+1]);i.insert&amp;amp;amp;&amp;amp;amp;(i.ins_h=on(i,i.ins_h,i.window[s+Ye-1]),i.prev[s&amp;amp;amp;i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=s,s++,i.insert--,!(i.lookahead+i.insert&amp;amp;lt;Ye)););}while(i.lookahead&amp;amp;lt;hi&amp;amp;amp;&amp;amp;amp;i.strm.avail_in!==0)},M1=(i,t)=&amp;amp;gt;{let r=i.pending_buf_size-5&amp;amp;gt;i.w_size?i.w_size:i.pending_buf_size-5,n,s,a,o=0,u=i.strm.avail_in;do{if(n=65535,a=i.bi_valid+42&amp;amp;gt;&amp;amp;gt;3,i.strm.avail_out&amp;amp;lt;a||(a=i.strm.avail_out-a,s=i.strstart-i.block_start,n&amp;amp;gt;s+i.strm.avail_in&amp;amp;amp;&amp;amp;amp;(n=s+i.strm.avail_in),n&amp;amp;gt;a&amp;amp;amp;&amp;amp;amp;(n=a),n&amp;amp;lt;r&amp;amp;amp;&amp;amp;amp;(n===0&amp;amp;amp;&amp;amp;amp;t!==Tr||t===an||n!==s+i.strm.avail_in)))break;o=t===Tr&amp;amp;amp;&amp;amp;amp;n===s+i.strm.avail_in?1:0,yp(i,0,0,o),i.pending_buf[i.pending-4]=n,i.pending_buf[i.pending-3]=n&amp;amp;gt;&amp;amp;gt;8,i.pending_buf[i.pending-2]=~n,i.pending_buf[i.pending-1]=~n&amp;amp;gt;&amp;amp;gt;8,pr(i.strm),s&amp;amp;amp;&amp;amp;amp;(s&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;(s=n),i.strm.output.set(i.window.subarray(i.block_start,i.block_start+s),i.strm.next_out),i.strm.next_out+=s,i.strm.avail_out-=s,i.strm.total_out+=s,i.block_start+=s,n-=s),n&amp;amp;amp;&amp;amp;amp;(Cp(i.strm,i.strm.output,i.strm.next_out,n),i.strm.next_out+=n,i.strm.avail_out-=n,i.strm.total_out+=n)}while(o===0);return u-=i.strm.avail_in,u&amp;amp;amp;&amp;amp;amp;(u&amp;amp;gt;=i.w_size?(i.matches=2,i.window.set(i.strm.input.subarray(i.strm.next_in-i.w_size,i.strm.next_in),0),i.strstart=i.w_size,i.insert=i.strstart):(i.window_size-i.strstart&amp;amp;lt;=u&amp;amp;amp;&amp;amp;amp;(i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches&amp;amp;lt;2&amp;amp;amp;&amp;amp;amp;i.matches++,i.insert&amp;amp;gt;i.strstart&amp;amp;amp;&amp;amp;amp;(i.insert=i.strstart)),i.window.set(i.strm.input.subarray(i.strm.next_in-u,i.strm.next_in),i.strstart),i.strstart+=u,i.insert+=u&amp;amp;gt;i.w_size-i.insert?i.w_size-i.insert:u),i.block_start=i.strstart),i.high_water&amp;amp;lt;i.strstart&amp;amp;amp;&amp;amp;amp;(i.high_water=i.strstart),o?sa:t!==an&amp;amp;amp;&amp;amp;amp;t!==Tr&amp;amp;amp;&amp;amp;amp;i.strm.avail_in===0&amp;amp;amp;&amp;amp;amp;i.strstart===i.block_start?na:(a=i.window_size-i.strstart,i.strm.avail_in&amp;amp;gt;a&amp;amp;amp;&amp;amp;amp;i.block_start&amp;amp;gt;=i.w_size&amp;amp;amp;&amp;amp;amp;(i.block_start-=i.w_size,i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches&amp;amp;lt;2&amp;amp;amp;&amp;amp;amp;i.matches++,a+=i.w_size,i.insert&amp;amp;gt;i.strstart&amp;amp;amp;&amp;amp;amp;(i.insert=i.strstart)),a&amp;amp;gt;i.strm.avail_in&amp;amp;amp;&amp;amp;amp;(a=i.strm.avail_in),a&amp;amp;amp;&amp;amp;amp;(Cp(i.strm,i.window,i.strstart,a),i.strstart+=a,i.insert+=a&amp;amp;gt;i.w_size-i.insert?i.w_size-i.insert:a),i.high_water&amp;amp;lt;i.strstart&amp;amp;amp;&amp;amp;amp;(i.high_water=i.strstart),a=i.bi_valid+42&amp;amp;gt;&amp;amp;gt;3,a=i.pending_buf_size-a&amp;amp;gt;65535?65535:i.pending_buf_size-a,r=a&amp;amp;gt;i.w_size?i.w_size:a,s=i.strstart-i.block_start,(s&amp;amp;gt;=r||(s||t===Tr)&amp;amp;amp;&amp;amp;amp;t!==an&amp;amp;amp;&amp;amp;amp;i.strm.avail_in===0&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;=a)&amp;amp;amp;&amp;amp;amp;(n=s&amp;amp;gt;a?a:s,o=t===Tr&amp;amp;amp;&amp;amp;amp;i.strm.avail_in===0&amp;amp;amp;&amp;amp;amp;n===s?1:0,yp(i,i.block_start,n,o),i.block_start+=n,pr(i.strm)),o?Hn:Zt)},ap=(i,t)=&amp;amp;gt;{let r,n;for(;;){if(i.lookahead&amp;amp;lt;hi){if(ta(i),i.lookahead&amp;amp;lt;hi&amp;amp;amp;&amp;amp;amp;t===an)return Zt;if(i.lookahead===0)break}if(r=0,i.lookahead&amp;amp;gt;=Ye&amp;amp;amp;&amp;amp;amp;(i.ins_h=on(i,i.ins_h,i.window[i.strstart+Ye-1]),r=i.prev[i.strstart&amp;amp;amp;i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),r!==0&amp;amp;amp;&amp;amp;amp;i.strstart-r&amp;amp;lt;=i.w_size-hi&amp;amp;amp;&amp;amp;amp;(i.match_length=k1(i,r)),i.match_length&amp;amp;gt;=Ye)if(n=sn(i,i.strstart-i.match_start,i.match_length-Ye),i.lookahead-=i.match_length,i.match_length&amp;amp;lt;=i.max_lazy_match&amp;amp;amp;&amp;amp;amp;i.lookahead&amp;amp;gt;=Ye){i.match_length--;do i.strstart++,i.ins_h=on(i,i.ins_h,i.window[i.strstart+Ye-1]),r=i.prev[i.strstart&amp;amp;amp;i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart;while(--i.match_length!==0);i.strstart++}else i.strstart+=i.match_length,i.match_length=0,i.ins_h=i.window[i.strstart],i.ins_h=on(i,i.ins_h,i.window[i.strstart+1]);else n=sn(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++;if(n&amp;amp;amp;&amp;amp;amp;(dr(i,!1),i.strm.avail_out===0))return Zt}return i.insert=i.strstart&amp;amp;lt;Ye-1?i.strstart:Ye-1,t===Tr?(dr(i,!0),i.strm.avail_out===0?Hn:sa):i.sym_next&amp;amp;amp;&amp;amp;amp;(dr(i,!1),i.strm.avail_out===0)?Zt:na},Ks=(i,t)=&amp;amp;gt;{let r,n,s;for(;;){if(i.lookahead&amp;amp;lt;hi){if(ta(i),i.lookahead&amp;amp;lt;hi&amp;amp;amp;&amp;amp;amp;t===an)return Zt;if(i.lookahead===0)break}if(r=0,i.lookahead&amp;amp;gt;=Ye&amp;amp;amp;&amp;amp;amp;(i.ins_h=on(i,i.ins_h,i.window[i.strstart+Ye-1]),r=i.prev[i.strstart&amp;amp;amp;i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),i.prev_length=i.match_length,i.prev_match=i.match_start,i.match_length=Ye-1,r!==0&amp;amp;amp;&amp;amp;amp;i.prev_length&amp;amp;lt;i.max_lazy_match&amp;amp;amp;&amp;amp;amp;i.strstart-r&amp;amp;lt;=i.w_size-hi&amp;amp;amp;&amp;amp;amp;(i.match_length=k1(i,r),i.match_length&amp;amp;lt;=5&amp;amp;amp;&amp;amp;amp;(i.strategy===vw||i.match_length===Ye&amp;amp;amp;&amp;amp;amp;i.strstart-i.match_start&amp;amp;gt;4096)&amp;amp;amp;&amp;amp;amp;(i.match_length=Ye-1)),i.prev_length&amp;amp;gt;=Ye&amp;amp;amp;&amp;amp;amp;i.match_length&amp;amp;lt;=i.prev_length){s=i.strstart+i.lookahead-Ye,n=sn(i,i.strstart-1-i.prev_match,i.prev_length-Ye),i.lookahead-=i.prev_length-1,i.prev_length-=2;do++i.strstart&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;(i.ins_h=on(i,i.ins_h,i.window[i.strstart+Ye-1]),r=i.prev[i.strstart&amp;amp;amp;i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart);while(--i.prev_length!==0);if(i.match_available=0,i.match_length=Ye-1,i.strstart++,n&amp;amp;amp;&amp;amp;amp;(dr(i,!1),i.strm.avail_out===0))return Zt}else if(i.match_available){if(n=sn(i,0,i.window[i.strstart-1]),n&amp;amp;amp;&amp;amp;amp;dr(i,!1),i.strstart++,i.lookahead--,i.strm.avail_out===0)return Zt}else i.match_available=1,i.strstart++,i.lookahead--}return i.match_available&amp;amp;amp;&amp;amp;amp;(n=sn(i,0,i.window[i.strstart-1]),i.match_available=0),i.insert=i.strstart&amp;amp;lt;Ye-1?i.strstart:Ye-1,t===Tr?(dr(i,!0),i.strm.avail_out===0?Hn:sa):i.sym_next&amp;amp;amp;&amp;amp;amp;(dr(i,!1),i.strm.avail_out===0)?Zt:na},Bw=(i,t)=&amp;amp;gt;{let r,n,s,a,o=i.window;for(;;){if(i.lookahead&amp;amp;lt;=nn){if(ta(i),i.lookahead&amp;amp;lt;=nn&amp;amp;amp;&amp;amp;amp;t===an)return Zt;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead&amp;amp;gt;=Ye&amp;amp;amp;&amp;amp;amp;i.strstart&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(s=i.strstart-1,n=o[s],n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s])){a=i.strstart+nn;do;while(n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s]&amp;amp;amp;&amp;amp;amp;n===o[++s]&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;a);i.match_length=nn-(a-s),i.match_length&amp;amp;gt;i.lookahead&amp;amp;amp;&amp;amp;amp;(i.match_length=i.lookahead)}if(i.match_length&amp;amp;gt;=Ye?(r=sn(i,1,i.match_length-Ye),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(r=sn(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),r&amp;amp;amp;&amp;amp;amp;(dr(i,!1),i.strm.avail_out===0))return Zt}return i.insert=0,t===Tr?(dr(i,!0),i.strm.avail_out===0?Hn:sa):i.sym_next&amp;amp;amp;&amp;amp;amp;(dr(i,!1),i.strm.avail_out===0)?Zt:na},Pw=(i,t)=&amp;amp;gt;{let r;for(;;){if(i.lookahead===0&amp;amp;amp;&amp;amp;amp;(ta(i),i.lookahead===0)){if(t===an)return Zt;break}if(i.match_length=0,r=sn(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,r&amp;amp;amp;&amp;amp;amp;(dr(i,!1),i.strm.avail_out===0))return Zt}return i.insert=0,t===Tr?(dr(i,!0),i.strm.avail_out===0?Hn:sa):i.sym_next&amp;amp;amp;&amp;amp;amp;(dr(i,!1),i.strm.avail_out===0)?Zt:na};function oi(i,t,r,n,s){this.good_length=i,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=s}var To=[new oi(0,0,0,0,M1),new oi(4,4,8,4,ap),new oi(4,5,16,8,ap),new oi(4,6,32,32,ap),new oi(4,4,16,16,Ks),new oi(8,16,32,32,Ks),new oi(8,16,128,128,Ks),new oi(8,32,128,256,Ks),new oi(32,128,258,1024,Ks),new oi(32,258,258,4096,Ks)],Ow=i=&amp;amp;gt;{i.window_size=2*i.w_size,rn(i.head),i.max_lazy_match=To[i.level].max_lazy,i.good_match=To[i.level].good_length,i.nice_match=To[i.level].nice_length,i.max_chain_length=To[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=Ye-1,i.match_available=0,i.ins_h=0};function Vw(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$l,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(Nw*2),this.dyn_dtree=new Uint16Array((2*Fw+1)*2),this.bl_tree=new Uint16Array((2*Tw+1)*2),rn(this.dyn_ltree),rn(this.dyn_dtree),rn(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(Iw+1),this.heap=new Uint16Array(2*vp+1),rn(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*vp+1),rn(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var zo=i=&amp;amp;gt;{if(!i)return 1;let t=i.state;return!t||t.strm!==i||t.status!==ea&amp;amp;amp;&amp;amp;amp;t.status!==Fp&amp;amp;amp;&amp;amp;amp;t.status!==xp&amp;amp;amp;&amp;amp;amp;t.status!==bp&amp;amp;amp;&amp;amp;amp;t.status!==_p&amp;amp;amp;&amp;amp;amp;t.status!==wp&amp;amp;amp;&amp;amp;amp;t.status!==zn&amp;amp;amp;&amp;amp;amp;t.status!==Fo?1:0},L1=i=&amp;amp;gt;{if(zo(i))return jn(i,li);i.total_in=i.total_out=0,i.data_type=ww;let t=i.state;return t.pending=0,t.pending_out=0,t.wrap&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(t.wrap=-t.wrap),t.status=t.wrap===2?Fp:t.wrap?ea:zn,i.adler=t.wrap===2?0:1,t.last_flush=-2,cw(t),Mt},R1=i=&amp;amp;gt;{let t=L1(i);return t===Mt&amp;amp;amp;&amp;amp;amp;Ow(i.state),t},Uw=(i,t)=&amp;amp;gt;zo(i)||i.state.wrap!==2?li:(i.state.gzhead=t,Mt),B1=(i,t,r,n,s,a)=&amp;amp;gt;{if(!i)return li;let o=1;if(t===yw&amp;amp;amp;&amp;amp;amp;(t=6),n&amp;amp;lt;0?(o=0,n=-n):n&amp;amp;gt;15&amp;amp;amp;&amp;amp;amp;(o=2,n-=16),s&amp;amp;lt;1||s&amp;amp;gt;Cw||r!==$l||n&amp;amp;lt;8||n&amp;amp;gt;15||t&amp;amp;lt;0||t&amp;amp;gt;9||a&amp;amp;lt;0||a&amp;amp;gt;bw||n===8&amp;amp;amp;&amp;amp;amp;o!==1)return jn(i,li);n===8&amp;amp;amp;&amp;amp;amp;(n=9);let u=new Vw;return i.state=u,u.strm=i,u.status=ea,u.wrap=o,u.gzhead=null,u.w_bits=n,u.w_size=1&amp;amp;lt;&amp;amp;lt;u.w_bits,u.w_mask=u.w_size-1,u.hash_bits=s+7,u.hash_size=1&amp;amp;lt;&amp;amp;lt;u.hash_bits,u.hash_mask=u.hash_size-1,u.hash_shift=~~((u.hash_bits+Ye-1)/Ye),u.window=new Uint8Array(u.w_size*2),u.head=new Uint16Array(u.hash_size),u.prev=new Uint16Array(u.w_size),u.lit_bufsize=1&amp;amp;lt;&amp;amp;lt;s+6,u.pending_buf_size=u.lit_bufsize*4,u.pending_buf=new Uint8Array(u.pending_buf_size),u.sym_buf=u.lit_bufsize,u.sym_end=(u.lit_bufsize-1)*3,u.level=t,u.strategy=a,u.method=r,R1(i)},Gw=(i,t)=&amp;amp;gt;B1(i,t,$l,Ew,Sw,_w),zw=(i,t)=&amp;amp;gt;{if(zo(i)||t&amp;amp;gt;Og||t&amp;amp;lt;0)return i?jn(i,li):li;let r=i.state;if(!i.output||i.avail_in!==0&amp;amp;amp;&amp;amp;amp;!i.input||r.status===Fo&amp;amp;amp;&amp;amp;amp;t!==Tr)return jn(i,i.avail_out===0?sp:li);let n=r.last_flush;if(r.last_flush=t,r.pending!==0){if(pr(i),i.avail_out===0)return r.last_flush=-1,Mt}else if(i.avail_in===0&amp;amp;amp;&amp;amp;amp;Ug(t)&amp;amp;lt;=Ug(n)&amp;amp;amp;&amp;amp;amp;t!==Tr)return jn(i,sp);if(r.status===Fo&amp;amp;amp;&amp;amp;amp;i.avail_in!==0)return jn(i,sp);if(r.status===ea&amp;amp;amp;&amp;amp;amp;r.wrap===0&amp;amp;amp;&amp;amp;amp;(r.status=zn),r.status===ea){let s=$l+(r.w_bits-8&amp;amp;lt;&amp;amp;lt;4)&amp;amp;lt;&amp;amp;lt;8,a=-1;if(r.strategy&amp;amp;gt;=Rl||r.level&amp;amp;lt;2?a=0:r.level&amp;amp;lt;6?a=1:r.level===6?a=2:a=3,s|=a&amp;amp;lt;&amp;amp;lt;6,r.strstart!==0&amp;amp;amp;&amp;amp;amp;(s|=kw),s+=31-s%31,Do(r,s),r.strstart!==0&amp;amp;amp;&amp;amp;amp;(Do(r,i.adler&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16),Do(r,i.adler&amp;amp;amp;65535)),i.adler=1,r.status=zn,pr(i),r.pending!==0)return r.last_flush=-1,Mt}if(r.status===Fp){if(i.adler=0,Je(r,31),Je(r,139),Je(r,8),r.gzhead)Je(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Je(r,r.gzhead.time&amp;amp;amp;255),Je(r,r.gzhead.time&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255),Je(r,r.gzhead.time&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255),Je(r,r.gzhead.time&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255),Je(r,r.level===9?2:r.strategy&amp;amp;gt;=Rl||r.level&amp;amp;lt;2?4:0),Je(r,r.gzhead.os&amp;amp;amp;255),r.gzhead.extra&amp;amp;amp;&amp;amp;amp;r.gzhead.extra.length&amp;amp;amp;&amp;amp;amp;(Je(r,r.gzhead.extra.length&amp;amp;amp;255),Je(r,r.gzhead.extra.length&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)),r.gzhead.hcrc&amp;amp;amp;&amp;amp;amp;(i.adler=Nt(i.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=xp;else if(Je(r,0),Je(r,0),Je(r,0),Je(r,0),Je(r,0),Je(r,r.level===9?2:r.strategy&amp;amp;gt;=Rl||r.level&amp;amp;lt;2?4:0),Je(r,Mw),r.status=zn,pr(i),r.pending!==0)return r.last_flush=-1,Mt}if(r.status===xp){if(r.gzhead.extra){let s=r.pending,a=(r.gzhead.extra.length&amp;amp;amp;65535)-r.gzindex;for(;r.pending+a&amp;amp;gt;r.pending_buf_size;){let u=r.pending_buf_size-r.pending;if(r.pending_buf.set(r.gzhead.extra.subarray(r.gzindex,r.gzindex+u),r.pending),r.pending=r.pending_buf_size,r.gzhead.hcrc&amp;amp;amp;&amp;amp;amp;r.pending&amp;amp;gt;s&amp;amp;amp;&amp;amp;amp;(i.adler=Nt(i.adler,r.pending_buf,r.pending-s,s)),r.gzindex+=u,pr(i),r.pending!==0)return r.last_flush=-1,Mt;s=0,a-=u}let o=new Uint8Array(r.gzhead.extra);r.pending_buf.set(o.subarray(r.gzindex,r.gzindex+a),r.pending),r.pending+=a,r.gzhead.hcrc&amp;amp;amp;&amp;amp;amp;r.pending&amp;amp;gt;s&amp;amp;amp;&amp;amp;amp;(i.adler=Nt(i.adler,r.pending_buf,r.pending-s,s)),r.gzindex=0}r.status=bp}if(r.status===bp){if(r.gzhead.name){let s=r.pending,a;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&amp;amp;amp;&amp;amp;amp;r.pending&amp;amp;gt;s&amp;amp;amp;&amp;amp;amp;(i.adler=Nt(i.adler,r.pending_buf,r.pending-s,s)),pr(i),r.pending!==0)return r.last_flush=-1,Mt;s=0}r.gzindex&amp;amp;lt;r.gzhead.name.length?a=r.gzhead.name.charCodeAt(r.gzindex++)&amp;amp;amp;255:a=0,Je(r,a)}while(a!==0);r.gzhead.hcrc&amp;amp;amp;&amp;amp;amp;r.pending&amp;amp;gt;s&amp;amp;amp;&amp;amp;amp;(i.adler=Nt(i.adler,r.pending_buf,r.pending-s,s)),r.gzindex=0}r.status=_p}if(r.status===_p){if(r.gzhead.comment){let s=r.pending,a;do{if(r.pending===r.pending_buf_size){if(r.gzhead.hcrc&amp;amp;amp;&amp;amp;amp;r.pending&amp;amp;gt;s&amp;amp;amp;&amp;amp;amp;(i.adler=Nt(i.adler,r.pending_buf,r.pending-s,s)),pr(i),r.pending!==0)return r.last_flush=-1,Mt;s=0}r.gzindex&amp;amp;lt;r.gzhead.comment.length?a=r.gzhead.comment.charCodeAt(r.gzindex++)&amp;amp;amp;255:a=0,Je(r,a)}while(a!==0);r.gzhead.hcrc&amp;amp;amp;&amp;amp;amp;r.pending&amp;amp;gt;s&amp;amp;amp;&amp;amp;amp;(i.adler=Nt(i.adler,r.pending_buf,r.pending-s,s))}r.status=wp}if(r.status===wp){if(r.gzhead.hcrc){if(r.pending+2&amp;amp;gt;r.pending_buf_size&amp;amp;amp;&amp;amp;amp;(pr(i),r.pending!==0))return r.last_flush=-1,Mt;Je(r,i.adler&amp;amp;amp;255),Je(r,i.adler&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255),i.adler=0}if(r.status=zn,pr(i),r.pending!==0)return r.last_flush=-1,Mt}if(i.avail_in!==0||r.lookahead!==0||t!==an&amp;amp;amp;&amp;amp;amp;r.status!==Fo){let s=r.level===0?M1(r,t):r.strategy===Rl?Pw(r,t):r.strategy===xw?Bw(r,t):To[r.level].func(r,t);if((s===Hn||s===sa)&amp;amp;amp;&amp;amp;amp;(r.status=Fo),s===Zt||s===Hn)return i.avail_out===0&amp;amp;amp;&amp;amp;amp;(r.last_flush=-1),Mt;if(s===na&amp;amp;amp;&amp;amp;amp;(t===dw?pw(r):t!==Og&amp;amp;amp;&amp;amp;amp;(yp(r,0,0,!1),t===mw&amp;amp;amp;&amp;amp;amp;(rn(r.head),r.lookahead===0&amp;amp;amp;&amp;amp;amp;(r.strstart=0,r.block_start=0,r.insert=0))),pr(i),i.avail_out===0))return r.last_flush=-1,Mt}return t!==Tr?Mt:r.wrap&amp;amp;lt;=0?Vg:(r.wrap===2?(Je(r,i.adler&amp;amp;amp;255),Je(r,i.adler&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255),Je(r,i.adler&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255),Je(r,i.adler&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255),Je(r,i.total_in&amp;amp;amp;255),Je(r,i.total_in&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255),Je(r,i.total_in&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255),Je(r,i.total_in&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255)):(Do(r,i.adler&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16),Do(r,i.adler&amp;amp;amp;65535)),pr(i),r.wrap&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(r.wrap=-r.wrap),r.pending!==0?Mt:Vg)},jw=i=&amp;amp;gt;{if(zo(i))return li;let t=i.state.status;return i.state=null,t===zn?jn(i,gw):Mt},$w=(i,t)=&amp;amp;gt;{let r=t.length;if(zo(i))return li;let n=i.state,s=n.wrap;if(s===2||s===1&amp;amp;amp;&amp;amp;amp;n.status!==ea||n.lookahead)return li;if(s===1&amp;amp;amp;&amp;amp;amp;(i.adler=Po(i.adler,t,r,0)),n.wrap=0,r&amp;amp;gt;=n.w_size){s===0&amp;amp;amp;&amp;amp;amp;(rn(n.head),n.strstart=0,n.block_start=0,n.insert=0);let h=new Uint8Array(n.w_size);h.set(t.subarray(r-n.w_size,r),0),t=h,r=n.w_size}let a=i.avail_in,o=i.next_in,u=i.input;for(i.avail_in=r,i.next_in=0,i.input=t,ta(n);n.lookahead&amp;amp;gt;=Ye;){let h=n.strstart,l=n.lookahead-(Ye-1);do n.ins_h=on(n,n.ins_h,n.window[h+Ye-1]),n.prev[h&amp;amp;amp;n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=h,h++;while(--l);n.strstart=h,n.lookahead=Ye-1,ta(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Ye-1,n.match_available=0,i.next_in=o,i.input=u,i.avail_in=a,n.wrap=s,Mt},Hw=Gw,Ww=B1,qw=R1,Zw=L1,Yw=Uw,Xw=zw,Kw=jw,Jw=$w,Qw=&amp;amp;quot;pako deflate (from Nodeca project)&amp;amp;quot;,Io={deflateInit:Hw,deflateInit2:Ww,deflateReset:qw,deflateResetKeep:Zw,deflateSetHeader:Yw,deflate:Xw,deflateEnd:Kw,deflateSetDictionary:Jw,deflateInfo:Qw},eC=(i,t)=&amp;amp;gt;Object.prototype.hasOwnProperty.call(i,t),tC=function(i){let t=Array.prototype.slice.call(arguments,1);for(;t.length;){let r=t.shift();if(r){if(typeof r!=&amp;amp;quot;object&amp;amp;quot;)throw new TypeError(r+&amp;amp;quot;must be non-object&amp;amp;quot;);for(let n in r)eC(r,n)&amp;amp;amp;&amp;amp;amp;(i[n]=r[n])}}return i},rC=i=&amp;amp;gt;{let t=0;for(let n=0,s=i.length;n&amp;amp;lt;s;n++)t+=i[n].length;let r=new Uint8Array(t);for(let n=0,s=0,a=i.length;n&amp;amp;lt;a;n++){let o=i[n];r.set(o,s),s+=o.length}return r},Hl={assign:tC,flattenChunks:rC},P1=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{P1=!1}var Oo=new Uint8Array(256);for(let i=0;i&amp;amp;lt;256;i++)Oo[i]=i&amp;amp;gt;=252?6:i&amp;amp;gt;=248?5:i&amp;amp;gt;=240?4:i&amp;amp;gt;=224?3:i&amp;amp;gt;=192?2:1;Oo[254]=Oo[254]=1;var iC=i=&amp;amp;gt;{if(typeof TextEncoder==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;TextEncoder.prototype.encode)return new TextEncoder().encode(i);let t,r,n,s,a,o=i.length,u=0;for(s=0;s&amp;amp;lt;o;s++)r=i.charCodeAt(s),(r&amp;amp;amp;64512)===55296&amp;amp;amp;&amp;amp;amp;s+1&amp;amp;lt;o&amp;amp;amp;&amp;amp;amp;(n=i.charCodeAt(s+1),(n&amp;amp;amp;64512)===56320&amp;amp;amp;&amp;amp;amp;(r=65536+(r-55296&amp;amp;lt;&amp;amp;lt;10)+(n-56320),s++)),u+=r&amp;amp;lt;128?1:r&amp;amp;lt;2048?2:r&amp;amp;lt;65536?3:4;for(t=new Uint8Array(u),a=0,s=0;a&amp;amp;lt;u;s++)r=i.charCodeAt(s),(r&amp;amp;amp;64512)===55296&amp;amp;amp;&amp;amp;amp;s+1&amp;amp;lt;o&amp;amp;amp;&amp;amp;amp;(n=i.charCodeAt(s+1),(n&amp;amp;amp;64512)===56320&amp;amp;amp;&amp;amp;amp;(r=65536+(r-55296&amp;amp;lt;&amp;amp;lt;10)+(n-56320),s++)),r&amp;amp;lt;128?t[a++]=r:r&amp;amp;lt;2048?(t[a++]=192|r&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;6,t[a++]=128|r&amp;amp;amp;63):r&amp;amp;lt;65536?(t[a++]=224|r&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;12,t[a++]=128|r&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;6&amp;amp;amp;63,t[a++]=128|r&amp;amp;amp;63):(t[a++]=240|r&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;18,t[a++]=128|r&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;12&amp;amp;amp;63,t[a++]=128|r&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;6&amp;amp;amp;63,t[a++]=128|r&amp;amp;amp;63);return t},nC=(i,t)=&amp;amp;gt;{if(t&amp;amp;lt;65534&amp;amp;amp;&amp;amp;amp;i.subarray&amp;amp;amp;&amp;amp;amp;P1)return String.fromCharCode.apply(null,i.length===t?i:i.subarray(0,t));let r=&amp;amp;quot;&amp;amp;quot;;for(let n=0;n&amp;amp;lt;t;n++)r+=String.fromCharCode(i[n]);return r},sC=(i,t)=&amp;amp;gt;{let r=t||i.length;if(typeof TextDecoder==&amp;amp;quot;function&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;TextDecoder.prototype.decode)return new TextDecoder().decode(i.subarray(0,t));let n,s,a=new Array(r*2);for(s=0,n=0;n&amp;amp;lt;r;){let o=i[n++];if(o&amp;amp;lt;128){a[s++]=o;continue}let u=Oo[o];if(u&amp;amp;gt;4){a[s++]=65533,n+=u-1;continue}for(o&amp;amp;amp;=u===2?31:u===3?15:7;u&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;n&amp;amp;lt;r;)o=o&amp;amp;lt;&amp;amp;lt;6|i[n++]&amp;amp;amp;63,u--;if(u&amp;amp;gt;1){a[s++]=65533;continue}o&amp;amp;lt;65536?a[s++]=o:(o-=65536,a[s++]=55296|o&amp;amp;gt;&amp;amp;gt;10&amp;amp;amp;1023,a[s++]=56320|o&amp;amp;amp;1023)}return nC(a,s)},aC=(i,t)=&amp;amp;gt;{t=t||i.length,t&amp;amp;gt;i.length&amp;amp;amp;&amp;amp;amp;(t=i.length);let r=t-1;for(;r&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;(i[r]&amp;amp;amp;192)===128;)r--;return r&amp;amp;lt;0||r===0?t:r+Oo[i[r]]&amp;amp;gt;t?r:t},Vo={string2buf:iC,buf2string:sC,utf8border:aC};function oC(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=&amp;amp;quot;&amp;amp;quot;,this.state=null,this.data_type=2,this.adler=0}var O1=oC,V1=Object.prototype.toString,{Z_NO_FLUSH:uC,Z_SYNC_FLUSH:lC,Z_FULL_FLUSH:hC,Z_FINISH:cC,Z_OK:zl,Z_STREAM_END:fC,Z_DEFAULT_COMPRESSION:pC,Z_DEFAULT_STRATEGY:dC,Z_DEFLATED:mC}=ia;function jo(i){this.options=Hl.assign({level:pC,method:mC,chunkSize:16384,windowBits:15,memLevel:8,strategy:dC},i||{});let t=this.options;t.raw&amp;amp;amp;&amp;amp;amp;t.windowBits&amp;amp;gt;0?t.windowBits=-t.windowBits:t.gzip&amp;amp;amp;&amp;amp;amp;t.windowBits&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;t.windowBits&amp;amp;lt;16&amp;amp;amp;&amp;amp;amp;(t.windowBits+=16),this.err=0,this.msg=&amp;amp;quot;&amp;amp;quot;,this.ended=!1,this.chunks=[],this.strm=new O1,this.strm.avail_out=0;let r=Io.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==zl)throw new Error($n[r]);if(t.header&amp;amp;amp;&amp;amp;amp;Io.deflateSetHeader(this.strm,t.header),t.dictionary){let n;if(typeof t.dictionary==&amp;amp;quot;string&amp;amp;quot;?n=Vo.string2buf(t.dictionary):V1.call(t.dictionary)===&amp;amp;quot;[object ArrayBuffer]&amp;amp;quot;?n=new Uint8Array(t.dictionary):n=t.dictionary,r=Io.deflateSetDictionary(this.strm,n),r!==zl)throw new Error($n[r]);this._dict_set=!0}}jo.prototype.push=function(i,t){let r=this.strm,n=this.options.chunkSize,s,a;if(this.ended)return!1;for(t===~~t?a=t:a=t===!0?cC:uC,typeof i==&amp;amp;quot;string&amp;amp;quot;?r.input=Vo.string2buf(i):V1.call(i)===&amp;amp;quot;[object ArrayBuffer]&amp;amp;quot;?r.input=new Uint8Array(i):r.input=i,r.next_in=0,r.avail_in=r.input.length;;){if(r.avail_out===0&amp;amp;amp;&amp;amp;amp;(r.output=new Uint8Array(n),r.next_out=0,r.avail_out=n),(a===lC||a===hC)&amp;amp;amp;&amp;amp;amp;r.avail_out&amp;amp;lt;=6){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(s=Io.deflate(r,a),s===fC)return r.next_out&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;this.onData(r.output.subarray(0,r.next_out)),s=Io.deflateEnd(this.strm),this.onEnd(s),this.ended=!0,s===zl;if(r.avail_out===0){this.onData(r.output);continue}if(a&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;r.next_out&amp;amp;gt;0){this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;continue}if(r.avail_in===0)break}return!0};jo.prototype.onData=function(i){this.chunks.push(i)};jo.prototype.onEnd=function(i){i===zl&amp;amp;amp;&amp;amp;amp;(this.result=Hl.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};function Tp(i,t){let r=new jo(t);if(r.push(i,!0),r.err)throw r.msg||$n[r.err];return r.result}function gC(i,t){return t=t||{},t.raw=!0,Tp(i,t)}function yC(i,t){return t=t||{},t.gzip=!0,Tp(i,t)}var vC=jo,xC=Tp,bC=gC,_C=yC,wC=ia,CC={Deflate:vC,deflate:xC,deflateRaw:bC,gzip:_C,constants:wC},Bl=16209,EC=16191,SC=function(t,r){let n,s,a,o,u,h,l,c,p,f,d,m,g,v,w,y,S,_,b,I,E,A,C,T,D=t.state;n=t.next_in,C=t.input,s=n+(t.avail_in-5),a=t.next_out,T=t.output,o=a-(r-t.avail_out),u=a+(t.avail_out-257),h=D.dmax,l=D.wsize,c=D.whave,p=D.wnext,f=D.window,d=D.hold,m=D.bits,g=D.lencode,v=D.distcode,w=(1&amp;amp;lt;&amp;amp;lt;D.lenbits)-1,y=(1&amp;amp;lt;&amp;amp;lt;D.distbits)-1;e:do{m&amp;amp;lt;15&amp;amp;amp;&amp;amp;amp;(d+=C[n++]&amp;amp;lt;&amp;amp;lt;m,m+=8,d+=C[n++]&amp;amp;lt;&amp;amp;lt;m,m+=8),S=g[d&amp;amp;amp;w];t:for(;;){if(_=S&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,d&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=_,m-=_,_=S&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,_===0)T[a++]=S&amp;amp;amp;65535;else if(_&amp;amp;amp;16){b=S&amp;amp;amp;65535,_&amp;amp;amp;=15,_&amp;amp;amp;&amp;amp;amp;(m&amp;amp;lt;_&amp;amp;amp;&amp;amp;amp;(d+=C[n++]&amp;amp;lt;&amp;amp;lt;m,m+=8),b+=d&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;_)-1,d&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=_,m-=_),m&amp;amp;lt;15&amp;amp;amp;&amp;amp;amp;(d+=C[n++]&amp;amp;lt;&amp;amp;lt;m,m+=8,d+=C[n++]&amp;amp;lt;&amp;amp;lt;m,m+=8),S=v[d&amp;amp;amp;y];r:for(;;){if(_=S&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,d&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=_,m-=_,_=S&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,_&amp;amp;amp;16){if(I=S&amp;amp;amp;65535,_&amp;amp;amp;=15,m&amp;amp;lt;_&amp;amp;amp;&amp;amp;amp;(d+=C[n++]&amp;amp;lt;&amp;amp;lt;m,m+=8,m&amp;amp;lt;_&amp;amp;amp;&amp;amp;amp;(d+=C[n++]&amp;amp;lt;&amp;amp;lt;m,m+=8)),I+=d&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;_)-1,I&amp;amp;gt;h){t.msg=&amp;amp;quot;invalid distance too far back&amp;amp;quot;,D.mode=Bl;break e}if(d&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=_,m-=_,_=a-o,I&amp;amp;gt;_){if(_=I-_,_&amp;amp;gt;c&amp;amp;amp;&amp;amp;amp;D.sane){t.msg=&amp;amp;quot;invalid distance too far back&amp;amp;quot;,D.mode=Bl;break e}if(E=0,A=f,p===0){if(E+=l-_,_&amp;amp;lt;b){b-=_;do T[a++]=f[E++];while(--_);E=a-I,A=T}}else if(p&amp;amp;lt;_){if(E+=l+p-_,_-=p,_&amp;amp;lt;b){b-=_;do T[a++]=f[E++];while(--_);if(E=0,p&amp;amp;lt;b){_=p,b-=_;do T[a++]=f[E++];while(--_);E=a-I,A=T}}}else if(E+=p-_,_&amp;amp;lt;b){b-=_;do T[a++]=f[E++];while(--_);E=a-I,A=T}for(;b&amp;amp;gt;2;)T[a++]=A[E++],T[a++]=A[E++],T[a++]=A[E++],b-=3;b&amp;amp;amp;&amp;amp;amp;(T[a++]=A[E++],b&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(T[a++]=A[E++]))}else{E=a-I;do T[a++]=T[E++],T[a++]=T[E++],T[a++]=T[E++],b-=3;while(b&amp;amp;gt;2);b&amp;amp;amp;&amp;amp;amp;(T[a++]=T[E++],b&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;(T[a++]=T[E++]))}}else if((_&amp;amp;amp;64)===0){S=v[(S&amp;amp;amp;65535)+(d&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;_)-1)];continue r}else{t.msg=&amp;amp;quot;invalid distance code&amp;amp;quot;,D.mode=Bl;break e}break}}else if((_&amp;amp;amp;64)===0){S=g[(S&amp;amp;amp;65535)+(d&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;_)-1)];continue t}else if(_&amp;amp;amp;32){D.mode=EC;break e}else{t.msg=&amp;amp;quot;invalid literal/length code&amp;amp;quot;,D.mode=Bl;break e}break}}while(n&amp;amp;lt;s&amp;amp;amp;&amp;amp;amp;a&amp;amp;lt;u);b=m&amp;amp;gt;&amp;amp;gt;3,n-=b,m-=b&amp;amp;lt;&amp;amp;lt;3,d&amp;amp;amp;=(1&amp;amp;lt;&amp;amp;lt;m)-1,t.next_in=n,t.next_out=a,t.avail_in=n&amp;amp;lt;s?5+(s-n):5-(n-s),t.avail_out=a&amp;amp;lt;u?257+(u-a):257-(a-u),D.hold=d,D.bits=m},Js=15,Gg=852,zg=592,jg=0,op=1,$g=2,AC=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),DC=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),FC=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),TC=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),NC=(i,t,r,n,s,a,o,u)=&amp;amp;gt;{let h=u.bits,l=0,c=0,p=0,f=0,d=0,m=0,g=0,v=0,w=0,y=0,S,_,b,I,E,A=null,C,T=new Uint16Array(Js+1),D=new Uint16Array(Js+1),F=null,N,B,U;for(l=0;l&amp;amp;lt;=Js;l++)T[l]=0;for(c=0;c&amp;amp;lt;n;c++)T[t[r+c]]++;for(d=h,f=Js;f&amp;amp;gt;=1&amp;amp;amp;&amp;amp;amp;T[f]===0;f--);if(d&amp;amp;gt;f&amp;amp;amp;&amp;amp;amp;(d=f),f===0)return s[a++]=1&amp;amp;lt;&amp;amp;lt;24|64&amp;amp;lt;&amp;amp;lt;16|0,s[a++]=1&amp;amp;lt;&amp;amp;lt;24|64&amp;amp;lt;&amp;amp;lt;16|0,u.bits=1,0;for(p=1;p&amp;amp;lt;f&amp;amp;amp;&amp;amp;amp;T[p]===0;p++);for(d&amp;amp;lt;p&amp;amp;amp;&amp;amp;amp;(d=p),v=1,l=1;l&amp;amp;lt;=Js;l++)if(v&amp;amp;lt;&amp;amp;lt;=1,v-=T[l],v&amp;amp;lt;0)return-1;if(v&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(i===jg||f!==1))return-1;for(D[1]=0,l=1;l&amp;amp;lt;Js;l++)D[l+1]=D[l]+T[l];for(c=0;c&amp;amp;lt;n;c++)t[r+c]!==0&amp;amp;amp;&amp;amp;amp;(o[D[t[r+c]]++]=c);if(i===jg?(A=F=o,C=20):i===op?(A=AC,F=DC,C=257):(A=FC,F=TC,C=0),y=0,c=0,l=p,E=a,m=d,g=0,b=-1,w=1&amp;amp;lt;&amp;amp;lt;d,I=w-1,i===op&amp;amp;amp;&amp;amp;amp;w&amp;amp;gt;Gg||i===$g&amp;amp;amp;&amp;amp;amp;w&amp;amp;gt;zg)return 1;for(;;){N=l-g,o[c]+1&amp;amp;lt;C?(B=0,U=o[c]):o[c]&amp;amp;gt;=C?(B=F[o[c]-C],U=A[o[c]-C]):(B=96,U=0),S=1&amp;amp;lt;&amp;amp;lt;l-g,_=1&amp;amp;lt;&amp;amp;lt;m,p=_;do _-=S,s[E+(y&amp;amp;gt;&amp;amp;gt;g)+_]=N&amp;amp;lt;&amp;amp;lt;24|B&amp;amp;lt;&amp;amp;lt;16|U|0;while(_!==0);for(S=1&amp;amp;lt;&amp;amp;lt;l-1;y&amp;amp;amp;S;)S&amp;amp;gt;&amp;amp;gt;=1;if(S!==0?(y&amp;amp;amp;=S-1,y+=S):y=0,c++,--T[l]===0){if(l===f)break;l=t[r+o[c]]}if(l&amp;amp;gt;d&amp;amp;amp;&amp;amp;amp;(y&amp;amp;amp;I)!==b){for(g===0&amp;amp;amp;&amp;amp;amp;(g=d),E+=p,m=l-g,v=1&amp;amp;lt;&amp;amp;lt;m;m+g&amp;amp;lt;f&amp;amp;amp;&amp;amp;amp;(v-=T[m+g],!(v&amp;amp;lt;=0));)m++,v&amp;amp;lt;&amp;amp;lt;=1;if(w+=1&amp;amp;lt;&amp;amp;lt;m,i===op&amp;amp;amp;&amp;amp;amp;w&amp;amp;gt;Gg||i===$g&amp;amp;amp;&amp;amp;amp;w&amp;amp;gt;zg)return 1;b=y&amp;amp;amp;I,s[b]=d&amp;amp;lt;&amp;amp;lt;24|m&amp;amp;lt;&amp;amp;lt;16|E-a|0}}return y!==0&amp;amp;amp;&amp;amp;amp;(s[E+y]=l-g&amp;amp;lt;&amp;amp;lt;24|64&amp;amp;lt;&amp;amp;lt;16|0),u.bits=d,0},ko=NC,IC=0,U1=1,G1=2,{Z_FINISH:Hg,Z_BLOCK:kC,Z_TREES:Pl,Z_OK:Wn,Z_STREAM_END:MC,Z_NEED_DICT:LC,Z_STREAM_ERROR:Nr,Z_DATA_ERROR:z1,Z_MEM_ERROR:j1,Z_BUF_ERROR:RC,Z_DEFLATED:Wg}=ia,Wl=16180,qg=16181,Zg=16182,Yg=16183,Xg=16184,Kg=16185,Jg=16186,Qg=16187,e1=16188,t1=16189,jl=16190,Ni=16191,up=16192,r1=16193,lp=16194,i1=16195,n1=16196,s1=16197,a1=16198,Ol=16199,Vl=16200,o1=16201,u1=16202,l1=16203,h1=16204,c1=16205,hp=16206,f1=16207,p1=16208,ct=16209,$1=16210,H1=16211,BC=852,PC=592,OC=15,VC=OC,d1=i=&amp;amp;gt;(i&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255)+(i&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;65280)+((i&amp;amp;amp;65280)&amp;amp;lt;&amp;amp;lt;8)+((i&amp;amp;amp;255)&amp;amp;lt;&amp;amp;lt;24);function UC(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var qn=i=&amp;amp;gt;{if(!i)return 1;let t=i.state;return!t||t.strm!==i||t.mode&amp;amp;lt;Wl||t.mode&amp;amp;gt;H1?1:0},W1=i=&amp;amp;gt;{if(qn(i))return Nr;let t=i.state;return i.total_in=i.total_out=t.total=0,i.msg=&amp;amp;quot;&amp;amp;quot;,t.wrap&amp;amp;amp;&amp;amp;amp;(i.adler=t.wrap&amp;amp;amp;1),t.mode=Wl,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(BC),t.distcode=t.distdyn=new Int32Array(PC),t.sane=1,t.back=-1,Wn},q1=i=&amp;amp;gt;{if(qn(i))return Nr;let t=i.state;return t.wsize=0,t.whave=0,t.wnext=0,W1(i)},Z1=(i,t)=&amp;amp;gt;{let r;if(qn(i))return Nr;let n=i.state;return t&amp;amp;lt;0?(r=0,t=-t):(r=(t&amp;amp;gt;&amp;amp;gt;4)+5,t&amp;amp;lt;48&amp;amp;amp;&amp;amp;amp;(t&amp;amp;amp;=15)),t&amp;amp;amp;&amp;amp;amp;(t&amp;amp;lt;8||t&amp;amp;gt;15)?Nr:(n.window!==null&amp;amp;amp;&amp;amp;amp;n.wbits!==t&amp;amp;amp;&amp;amp;amp;(n.window=null),n.wrap=r,n.wbits=t,q1(i))},Y1=(i,t)=&amp;amp;gt;{if(!i)return Nr;let r=new UC;i.state=r,r.strm=i,r.window=null,r.mode=Wl;let n=Z1(i,t);return n!==Wn&amp;amp;amp;&amp;amp;amp;(i.state=null),n},GC=i=&amp;amp;gt;Y1(i,VC),m1=!0,cp,fp,zC=i=&amp;amp;gt;{if(m1){cp=new Int32Array(512),fp=new Int32Array(32);let t=0;for(;t&amp;amp;lt;144;)i.lens[t++]=8;for(;t&amp;amp;lt;256;)i.lens[t++]=9;for(;t&amp;amp;lt;280;)i.lens[t++]=7;for(;t&amp;amp;lt;288;)i.lens[t++]=8;for(ko(U1,i.lens,0,288,cp,0,i.work,{bits:9}),t=0;t&amp;amp;lt;32;)i.lens[t++]=5;ko(G1,i.lens,0,32,fp,0,i.work,{bits:5}),m1=!1}i.lencode=cp,i.lenbits=9,i.distcode=fp,i.distbits=5},X1=(i,t,r,n)=&amp;amp;gt;{let s,a=i.state;return a.window===null&amp;amp;amp;&amp;amp;amp;(a.wsize=1&amp;amp;lt;&amp;amp;lt;a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),n&amp;amp;gt;=a.wsize?(a.window.set(t.subarray(r-a.wsize,r),0),a.wnext=0,a.whave=a.wsize):(s=a.wsize-a.wnext,s&amp;amp;gt;n&amp;amp;amp;&amp;amp;amp;(s=n),a.window.set(t.subarray(r-n,r-n+s),a.wnext),n-=s,n?(a.window.set(t.subarray(r-n,r),0),a.wnext=n,a.whave=a.wsize):(a.wnext+=s,a.wnext===a.wsize&amp;amp;amp;&amp;amp;amp;(a.wnext=0),a.whave&amp;amp;lt;a.wsize&amp;amp;amp;&amp;amp;amp;(a.whave+=s))),0},jC=(i,t)=&amp;amp;gt;{let r,n,s,a,o,u,h,l,c,p,f,d,m,g,v=0,w,y,S,_,b,I,E,A,C=new Uint8Array(4),T,D,F=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(qn(i)||!i.output||!i.input&amp;amp;amp;&amp;amp;amp;i.avail_in!==0)return Nr;r=i.state,r.mode===Ni&amp;amp;amp;&amp;amp;amp;(r.mode=up),o=i.next_out,s=i.output,h=i.avail_out,a=i.next_in,n=i.input,u=i.avail_in,l=r.hold,c=r.bits,p=u,f=h,A=Wn;e:for(;;)switch(r.mode){case Wl:if(r.wrap===0){r.mode=up;break}for(;c&amp;amp;lt;16;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(r.wrap&amp;amp;amp;2&amp;amp;amp;&amp;amp;amp;l===35615){r.wbits===0&amp;amp;amp;&amp;amp;amp;(r.wbits=15),r.check=0,C[0]=l&amp;amp;amp;255,C[1]=l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,r.check=Nt(r.check,C,2,0),l=0,c=0,r.mode=qg;break}if(r.head&amp;amp;amp;&amp;amp;amp;(r.head.done=!1),!(r.wrap&amp;amp;amp;1)||(((l&amp;amp;amp;255)&amp;amp;lt;&amp;amp;lt;8)+(l&amp;amp;gt;&amp;amp;gt;8))%31){i.msg=&amp;amp;quot;incorrect header check&amp;amp;quot;,r.mode=ct;break}if((l&amp;amp;amp;15)!==Wg){i.msg=&amp;amp;quot;unknown compression method&amp;amp;quot;,r.mode=ct;break}if(l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=4,c-=4,E=(l&amp;amp;amp;15)+8,r.wbits===0&amp;amp;amp;&amp;amp;amp;(r.wbits=E),E&amp;amp;gt;15||E&amp;amp;gt;r.wbits){i.msg=&amp;amp;quot;invalid window size&amp;amp;quot;,r.mode=ct;break}r.dmax=1&amp;amp;lt;&amp;amp;lt;r.wbits,r.flags=0,i.adler=r.check=1,r.mode=l&amp;amp;amp;512?t1:Ni,l=0,c=0;break;case qg:for(;c&amp;amp;lt;16;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(r.flags=l,(r.flags&amp;amp;amp;255)!==Wg){i.msg=&amp;amp;quot;unknown compression method&amp;amp;quot;,r.mode=ct;break}if(r.flags&amp;amp;amp;57344){i.msg=&amp;amp;quot;unknown header flags set&amp;amp;quot;,r.mode=ct;break}r.head&amp;amp;amp;&amp;amp;amp;(r.head.text=l&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;1),r.flags&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(C[0]=l&amp;amp;amp;255,C[1]=l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,r.check=Nt(r.check,C,2,0)),l=0,c=0,r.mode=Zg;case Zg:for(;c&amp;amp;lt;32;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}r.head&amp;amp;amp;&amp;amp;amp;(r.head.time=l),r.flags&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(C[0]=l&amp;amp;amp;255,C[1]=l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,C[2]=l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,C[3]=l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255,r.check=Nt(r.check,C,4,0)),l=0,c=0,r.mode=Yg;case Yg:for(;c&amp;amp;lt;16;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}r.head&amp;amp;amp;&amp;amp;amp;(r.head.xflags=l&amp;amp;amp;255,r.head.os=l&amp;amp;gt;&amp;amp;gt;8),r.flags&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(C[0]=l&amp;amp;amp;255,C[1]=l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,r.check=Nt(r.check,C,2,0)),l=0,c=0,r.mode=Xg;case Xg:if(r.flags&amp;amp;amp;1024){for(;c&amp;amp;lt;16;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}r.length=l,r.head&amp;amp;amp;&amp;amp;amp;(r.head.extra_len=l),r.flags&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(C[0]=l&amp;amp;amp;255,C[1]=l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,r.check=Nt(r.check,C,2,0)),l=0,c=0}else r.head&amp;amp;amp;&amp;amp;amp;(r.head.extra=null);r.mode=Kg;case Kg:if(r.flags&amp;amp;amp;1024&amp;amp;amp;&amp;amp;amp;(d=r.length,d&amp;amp;gt;u&amp;amp;amp;&amp;amp;amp;(d=u),d&amp;amp;amp;&amp;amp;amp;(r.head&amp;amp;amp;&amp;amp;amp;(E=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Uint8Array(r.head.extra_len)),r.head.extra.set(n.subarray(a,a+d),E)),r.flags&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(r.check=Nt(r.check,n,d,a)),u-=d,a+=d,r.length-=d),r.length))break e;r.length=0,r.mode=Jg;case Jg:if(r.flags&amp;amp;amp;2048){if(u===0)break e;d=0;do E=n[a+d++],r.head&amp;amp;amp;&amp;amp;amp;E&amp;amp;amp;&amp;amp;amp;r.length&amp;amp;lt;65536&amp;amp;amp;&amp;amp;amp;(r.head.name+=String.fromCharCode(E));while(E&amp;amp;amp;&amp;amp;amp;d&amp;amp;lt;u);if(r.flags&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(r.check=Nt(r.check,n,d,a)),u-=d,a+=d,E)break e}else r.head&amp;amp;amp;&amp;amp;amp;(r.head.name=null);r.length=0,r.mode=Qg;case Qg:if(r.flags&amp;amp;amp;4096){if(u===0)break e;d=0;do E=n[a+d++],r.head&amp;amp;amp;&amp;amp;amp;E&amp;amp;amp;&amp;amp;amp;r.length&amp;amp;lt;65536&amp;amp;amp;&amp;amp;amp;(r.head.comment+=String.fromCharCode(E));while(E&amp;amp;amp;&amp;amp;amp;d&amp;amp;lt;u);if(r.flags&amp;amp;amp;512&amp;amp;amp;&amp;amp;amp;r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(r.check=Nt(r.check,n,d,a)),u-=d,a+=d,E)break e}else r.head&amp;amp;amp;&amp;amp;amp;(r.head.comment=null);r.mode=e1;case e1:if(r.flags&amp;amp;amp;512){for(;c&amp;amp;lt;16;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;l!==(r.check&amp;amp;amp;65535)){i.msg=&amp;amp;quot;header crc mismatch&amp;amp;quot;,r.mode=ct;break}l=0,c=0}r.head&amp;amp;amp;&amp;amp;amp;(r.head.hcrc=r.flags&amp;amp;gt;&amp;amp;gt;9&amp;amp;amp;1,r.head.done=!0),i.adler=r.check=0,r.mode=Ni;break;case t1:for(;c&amp;amp;lt;32;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}i.adler=r.check=d1(l),l=0,c=0,r.mode=jl;case jl:if(r.havedict===0)return i.next_out=o,i.avail_out=h,i.next_in=a,i.avail_in=u,r.hold=l,r.bits=c,LC;i.adler=r.check=1,r.mode=Ni;case Ni:if(t===kC||t===Pl)break e;case up:if(r.last){l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=c&amp;amp;amp;7,c-=c&amp;amp;amp;7,r.mode=hp;break}for(;c&amp;amp;lt;3;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}switch(r.last=l&amp;amp;amp;1,l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=1,c-=1,l&amp;amp;amp;3){case 0:r.mode=r1;break;case 1:if(zC(r),r.mode=Ol,t===Pl){l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=2,c-=2;break e}break;case 2:r.mode=n1;break;case 3:i.msg=&amp;amp;quot;invalid block type&amp;amp;quot;,r.mode=ct}l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=2,c-=2;break;case r1:for(l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=c&amp;amp;amp;7,c-=c&amp;amp;amp;7;c&amp;amp;lt;32;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if((l&amp;amp;amp;65535)!==(l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16^65535)){i.msg=&amp;amp;quot;invalid stored block lengths&amp;amp;quot;,r.mode=ct;break}if(r.length=l&amp;amp;amp;65535,l=0,c=0,r.mode=lp,t===Pl)break e;case lp:r.mode=i1;case i1:if(d=r.length,d){if(d&amp;amp;gt;u&amp;amp;amp;&amp;amp;amp;(d=u),d&amp;amp;gt;h&amp;amp;amp;&amp;amp;amp;(d=h),d===0)break e;s.set(n.subarray(a,a+d),o),u-=d,a+=d,h-=d,o+=d,r.length-=d;break}r.mode=Ni;break;case n1:for(;c&amp;amp;lt;14;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(r.nlen=(l&amp;amp;amp;31)+257,l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=5,c-=5,r.ndist=(l&amp;amp;amp;31)+1,l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=5,c-=5,r.ncode=(l&amp;amp;amp;15)+4,l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=4,c-=4,r.nlen&amp;amp;gt;286||r.ndist&amp;amp;gt;30){i.msg=&amp;amp;quot;too many length or distance symbols&amp;amp;quot;,r.mode=ct;break}r.have=0,r.mode=s1;case s1:for(;r.have&amp;amp;lt;r.ncode;){for(;c&amp;amp;lt;3;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}r.lens[F[r.have++]]=l&amp;amp;amp;7,l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=3,c-=3}for(;r.have&amp;amp;lt;19;)r.lens[F[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,T={bits:r.lenbits},A=ko(IC,r.lens,0,19,r.lencode,0,r.work,T),r.lenbits=T.bits,A){i.msg=&amp;amp;quot;invalid code lengths set&amp;amp;quot;,r.mode=ct;break}r.have=0,r.mode=a1;case a1:for(;r.have&amp;amp;lt;r.nlen+r.ndist;){for(;v=r.lencode[l&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;r.lenbits)-1],w=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,y=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,S=v&amp;amp;amp;65535,!(w&amp;amp;lt;=c);){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(S&amp;amp;lt;16)l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=w,c-=w,r.lens[r.have++]=S;else{if(S===16){for(D=w+2;c&amp;amp;lt;D;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=w,c-=w,r.have===0){i.msg=&amp;amp;quot;invalid bit length repeat&amp;amp;quot;,r.mode=ct;break}E=r.lens[r.have-1],d=3+(l&amp;amp;amp;3),l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=2,c-=2}else if(S===17){for(D=w+3;c&amp;amp;lt;D;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=w,c-=w,E=0,d=3+(l&amp;amp;amp;7),l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=3,c-=3}else{for(D=w+7;c&amp;amp;lt;D;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=w,c-=w,E=0,d=11+(l&amp;amp;amp;127),l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=7,c-=7}if(r.have+d&amp;amp;gt;r.nlen+r.ndist){i.msg=&amp;amp;quot;invalid bit length repeat&amp;amp;quot;,r.mode=ct;break}for(;d--;)r.lens[r.have++]=E}}if(r.mode===ct)break;if(r.lens[256]===0){i.msg=&amp;amp;quot;invalid code -- missing end-of-block&amp;amp;quot;,r.mode=ct;break}if(r.lenbits=9,T={bits:r.lenbits},A=ko(U1,r.lens,0,r.nlen,r.lencode,0,r.work,T),r.lenbits=T.bits,A){i.msg=&amp;amp;quot;invalid literal/lengths set&amp;amp;quot;,r.mode=ct;break}if(r.distbits=6,r.distcode=r.distdyn,T={bits:r.distbits},A=ko(G1,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,T),r.distbits=T.bits,A){i.msg=&amp;amp;quot;invalid distances set&amp;amp;quot;,r.mode=ct;break}if(r.mode=Ol,t===Pl)break e;case Ol:r.mode=Vl;case Vl:if(u&amp;amp;gt;=6&amp;amp;amp;&amp;amp;amp;h&amp;amp;gt;=258){i.next_out=o,i.avail_out=h,i.next_in=a,i.avail_in=u,r.hold=l,r.bits=c,SC(i,f),o=i.next_out,s=i.output,h=i.avail_out,a=i.next_in,n=i.input,u=i.avail_in,l=r.hold,c=r.bits,r.mode===Ni&amp;amp;amp;&amp;amp;amp;(r.back=-1);break}for(r.back=0;v=r.lencode[l&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;r.lenbits)-1],w=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,y=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,S=v&amp;amp;amp;65535,!(w&amp;amp;lt;=c);){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(y&amp;amp;amp;&amp;amp;amp;(y&amp;amp;amp;240)===0){for(_=w,b=y,I=S;v=r.lencode[I+((l&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;_+b)-1)&amp;amp;gt;&amp;amp;gt;_)],w=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,y=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,S=v&amp;amp;amp;65535,!(_+w&amp;amp;lt;=c);){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=_,c-=_,r.back+=_}if(l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=w,c-=w,r.back+=w,r.length=S,y===0){r.mode=c1;break}if(y&amp;amp;amp;32){r.back=-1,r.mode=Ni;break}if(y&amp;amp;amp;64){i.msg=&amp;amp;quot;invalid literal/length code&amp;amp;quot;,r.mode=ct;break}r.extra=y&amp;amp;amp;15,r.mode=o1;case o1:if(r.extra){for(D=r.extra;c&amp;amp;lt;D;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}r.length+=l&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;r.extra)-1,l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=r.extra,c-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=u1;case u1:for(;v=r.distcode[l&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;r.distbits)-1],w=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,y=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,S=v&amp;amp;amp;65535,!(w&amp;amp;lt;=c);){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if((y&amp;amp;amp;240)===0){for(_=w,b=y,I=S;v=r.distcode[I+((l&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;_+b)-1)&amp;amp;gt;&amp;amp;gt;_)],w=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,y=v&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,S=v&amp;amp;amp;65535,!(_+w&amp;amp;lt;=c);){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=_,c-=_,r.back+=_}if(l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=w,c-=w,r.back+=w,y&amp;amp;amp;64){i.msg=&amp;amp;quot;invalid distance code&amp;amp;quot;,r.mode=ct;break}r.offset=S,r.extra=y&amp;amp;amp;15,r.mode=l1;case l1:if(r.extra){for(D=r.extra;c&amp;amp;lt;D;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}r.offset+=l&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;r.extra)-1,l&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;=r.extra,c-=r.extra,r.back+=r.extra}if(r.offset&amp;amp;gt;r.dmax){i.msg=&amp;amp;quot;invalid distance too far back&amp;amp;quot;,r.mode=ct;break}r.mode=h1;case h1:if(h===0)break e;if(d=f-h,r.offset&amp;amp;gt;d){if(d=r.offset-d,d&amp;amp;gt;r.whave&amp;amp;amp;&amp;amp;amp;r.sane){i.msg=&amp;amp;quot;invalid distance too far back&amp;amp;quot;,r.mode=ct;break}d&amp;amp;gt;r.wnext?(d-=r.wnext,m=r.wsize-d):m=r.wnext-d,d&amp;amp;gt;r.length&amp;amp;amp;&amp;amp;amp;(d=r.length),g=r.window}else g=s,m=o-r.offset,d=r.length;d&amp;amp;gt;h&amp;amp;amp;&amp;amp;amp;(d=h),h-=d,r.length-=d;do s[o++]=g[m++];while(--d);r.length===0&amp;amp;amp;&amp;amp;amp;(r.mode=Vl);break;case c1:if(h===0)break e;s[o++]=r.length,h--,r.mode=Vl;break;case hp:if(r.wrap){for(;c&amp;amp;lt;32;){if(u===0)break e;u--,l|=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(f-=h,i.total_out+=f,r.total+=f,r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;f&amp;amp;amp;&amp;amp;amp;(i.adler=r.check=r.flags?Nt(r.check,s,f,o-f):Po(r.check,s,f,o-f)),f=h,r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;(r.flags?l:d1(l))!==r.check){i.msg=&amp;amp;quot;incorrect data check&amp;amp;quot;,r.mode=ct;break}l=0,c=0}r.mode=f1;case f1:if(r.wrap&amp;amp;amp;&amp;amp;amp;r.flags){for(;c&amp;amp;lt;32;){if(u===0)break e;u--,l+=n[a++]&amp;amp;lt;&amp;amp;lt;c,c+=8}if(r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;l!==(r.total&amp;amp;amp;4294967295)){i.msg=&amp;amp;quot;incorrect length check&amp;amp;quot;,r.mode=ct;break}l=0,c=0}r.mode=p1;case p1:A=MC;break e;case ct:A=z1;break e;case $1:return j1;case H1:default:return Nr}return i.next_out=o,i.avail_out=h,i.next_in=a,i.avail_in=u,r.hold=l,r.bits=c,(r.wsize||f!==i.avail_out&amp;amp;amp;&amp;amp;amp;r.mode&amp;amp;lt;ct&amp;amp;amp;&amp;amp;amp;(r.mode&amp;amp;lt;hp||t!==Hg))&amp;amp;amp;&amp;amp;amp;X1(i,i.output,i.next_out,f-i.avail_out),p-=i.avail_in,f-=i.avail_out,i.total_in+=p,i.total_out+=f,r.total+=f,r.wrap&amp;amp;amp;4&amp;amp;amp;&amp;amp;amp;f&amp;amp;amp;&amp;amp;amp;(i.adler=r.check=r.flags?Nt(r.check,s,f,i.next_out-f):Po(r.check,s,f,i.next_out-f)),i.data_type=r.bits+(r.last?64:0)+(r.mode===Ni?128:0)+(r.mode===Ol||r.mode===lp?256:0),(p===0&amp;amp;amp;&amp;amp;amp;f===0||t===Hg)&amp;amp;amp;&amp;amp;amp;A===Wn&amp;amp;amp;&amp;amp;amp;(A=RC),A},$C=i=&amp;amp;gt;{if(qn(i))return Nr;let t=i.state;return t.window&amp;amp;amp;&amp;amp;amp;(t.window=null),i.state=null,Wn},HC=(i,t)=&amp;amp;gt;{if(qn(i))return Nr;let r=i.state;return(r.wrap&amp;amp;amp;2)===0?Nr:(r.head=t,t.done=!1,Wn)},WC=(i,t)=&amp;amp;gt;{let r=t.length,n,s,a;return qn(i)||(n=i.state,n.wrap!==0&amp;amp;amp;&amp;amp;amp;n.mode!==jl)?Nr:n.mode===jl&amp;amp;amp;&amp;amp;amp;(s=1,s=Po(s,t,r,0),s!==n.check)?z1:(a=X1(i,t,r,r),a?(n.mode=$1,j1):(n.havedict=1,Wn))},qC=q1,ZC=Z1,YC=W1,XC=GC,KC=Y1,JC=jC,QC=$C,eE=HC,tE=WC,rE=&amp;amp;quot;pako inflate (from Nodeca project)&amp;amp;quot;,ki={inflateReset:qC,inflateReset2:ZC,inflateResetKeep:YC,inflateInit:XC,inflateInit2:KC,inflate:JC,inflateEnd:QC,inflateGetHeader:eE,inflateSetDictionary:tE,inflateInfo:rE};function iE(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=&amp;amp;quot;&amp;amp;quot;,this.comment=&amp;amp;quot;&amp;amp;quot;,this.hcrc=0,this.done=!1}var nE=iE,K1=Object.prototype.toString,{Z_NO_FLUSH:sE,Z_FINISH:aE,Z_OK:Uo,Z_STREAM_END:pp,Z_NEED_DICT:dp,Z_STREAM_ERROR:oE,Z_DATA_ERROR:g1,Z_MEM_ERROR:uE}=ia;function $o(i){this.options=Hl.assign({chunkSize:1024*64,windowBits:15,to:&amp;amp;quot;&amp;amp;quot;},i||{});let t=this.options;t.raw&amp;amp;amp;&amp;amp;amp;t.windowBits&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;t.windowBits&amp;amp;lt;16&amp;amp;amp;&amp;amp;amp;(t.windowBits=-t.windowBits,t.windowBits===0&amp;amp;amp;&amp;amp;amp;(t.windowBits=-15)),t.windowBits&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;t.windowBits&amp;amp;lt;16&amp;amp;amp;&amp;amp;amp;!(i&amp;amp;amp;&amp;amp;amp;i.windowBits)&amp;amp;amp;&amp;amp;amp;(t.windowBits+=32),t.windowBits&amp;amp;gt;15&amp;amp;amp;&amp;amp;amp;t.windowBits&amp;amp;lt;48&amp;amp;amp;&amp;amp;amp;(t.windowBits&amp;amp;amp;15)===0&amp;amp;amp;&amp;amp;amp;(t.windowBits|=15),this.err=0,this.msg=&amp;amp;quot;&amp;amp;quot;,this.ended=!1,this.chunks=[],this.strm=new O1,this.strm.avail_out=0;let r=ki.inflateInit2(this.strm,t.windowBits);if(r!==Uo)throw new Error($n[r]);if(this.header=new nE,ki.inflateGetHeader(this.strm,this.header),t.dictionary&amp;amp;amp;&amp;amp;amp;(typeof t.dictionary==&amp;amp;quot;string&amp;amp;quot;?t.dictionary=Vo.string2buf(t.dictionary):K1.call(t.dictionary)===&amp;amp;quot;[object ArrayBuffer]&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t.dictionary=new Uint8Array(t.dictionary)),t.raw&amp;amp;amp;&amp;amp;amp;(r=ki.inflateSetDictionary(this.strm,t.dictionary),r!==Uo)))throw new Error($n[r])}$o.prototype.push=function(i,t){let r=this.strm,n=this.options.chunkSize,s=this.options.dictionary,a,o,u;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?aE:sE,K1.call(i)===&amp;amp;quot;[object ArrayBuffer]&amp;amp;quot;?r.input=new Uint8Array(i):r.input=i,r.next_in=0,r.avail_in=r.input.length;;){for(r.avail_out===0&amp;amp;amp;&amp;amp;amp;(r.output=new Uint8Array(n),r.next_out=0,r.avail_out=n),a=ki.inflate(r,o),a===dp&amp;amp;amp;&amp;amp;amp;s&amp;amp;amp;&amp;amp;amp;(a=ki.inflateSetDictionary(r,s),a===Uo?a=ki.inflate(r,o):a===g1&amp;amp;amp;&amp;amp;amp;(a=dp));r.avail_in&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;a===pp&amp;amp;amp;&amp;amp;amp;r.state.wrap&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;i[r.next_in]!==0;)ki.inflateReset(r),a=ki.inflate(r,o);switch(a){case oE:case g1:case dp:case uE:return this.onEnd(a),this.ended=!0,!1}if(u=r.avail_out,r.next_out&amp;amp;amp;&amp;amp;amp;(r.avail_out===0||a===pp))if(this.options.to===&amp;amp;quot;string&amp;amp;quot;){let h=Vo.utf8border(r.output,r.next_out),l=r.next_out-h,c=Vo.buf2string(r.output,h);r.next_out=l,r.avail_out=n-l,l&amp;amp;amp;&amp;amp;amp;r.output.set(r.output.subarray(h,h+l),0),this.onData(c)}else this.onData(r.output.length===r.next_out?r.output:r.output.subarray(0,r.next_out));if(!(a===Uo&amp;amp;amp;&amp;amp;amp;u===0)){if(a===pp)return a=ki.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(r.avail_in===0)break}}return!0};$o.prototype.onData=function(i){this.chunks.push(i)};$o.prototype.onEnd=function(i){i===Uo&amp;amp;amp;&amp;amp;amp;(this.options.to===&amp;amp;quot;string&amp;amp;quot;?this.result=this.chunks.join(&amp;amp;quot;&amp;amp;quot;):this.result=Hl.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};function Np(i,t){let r=new $o(t);if(r.push(i),r.err)throw r.msg||$n[r.err];return r.result}function lE(i,t){return t=t||{},t.raw=!0,Np(i,t)}var hE=$o,cE=Np,fE=lE,pE=Np,dE=ia,mE={Inflate:hE,inflate:cE,inflateRaw:fE,ungzip:pE,constants:dE},{Deflate:X8,deflate:K8,deflateRaw:J8,gzip:Q8}=CC,{Inflate:eP,inflate:gE,inflateRaw:tP,ungzip:rP}=mE;var J1=gE;var Q1={inflate:J1},oe={};oe.parse=function(i){var t=oe.B,r=function(_,b,I,E){var A=oe.T,C={cmap:A.cmap,head:A.head,hhea:A.hhea,maxp:A.maxp,hmtx:A.hmtx,name:A.name,&amp;amp;quot;OS/2&amp;amp;quot;:A.OS2,post:A.post,loca:A.loca,kern:A.kern,glyf:A.glyf,&amp;amp;quot;CFF &amp;amp;quot;:A.CFF,GSUB:A.GSUB,CBLC:A.CBLC,CBDT:A.CBDT,&amp;amp;quot;SVG &amp;amp;quot;:A.SVG,COLR:A.colr,CPAL:A.cpal,sbix:A.sbix,fvar:A.fvar,gvar:A.gvar,avar:A.avar,HVAR:A.HVAR},T={_data:_,_index:b,_offset:I};for(var D in C){var F=oe.findTable(_,D,I);if(F){var N=F[0],B=E[N];B==null&amp;amp;amp;&amp;amp;amp;(B=C[D].parseTab(_,N,F[1],T)),T[D]=E[N]=B}}return T};function n(_){var b=t.readUshort(_,12),I=t.readUint(_,16),E=new Uint8Array(I),A=12+b*16;t.writeASCII(E,0,&amp;amp;quot;OTTO&amp;amp;quot;),t.writeUshort(E,4,b);for(var C=44,T=0;T&amp;amp;lt;b;T++){var D=t.readASCII(_,C,4),F=t.readUint(_,C+4),N=t.readUint(_,C+8),B=t.readUint(_,C+12);C+=20;var U=_.slice(F,F+N);N!=B&amp;amp;amp;&amp;amp;amp;(U=Q1.inflate(U));var j=12+T*16;t.writeASCII(E,j,D),t.writeUint(E,j+8,A),t.writeUint(E,j+12,B),E.set(U,A),A+=B}return E}var s=new Uint8Array(i);let a;s[0]==119&amp;amp;amp;&amp;amp;amp;(a=s,s=n(s));var o={},u=t.readASCII(s,0,4);if(u==&amp;amp;quot;ttcf&amp;amp;quot;){var h=4;t.readUshort(s,h),h+=2,t.readUshort(s,h),h+=2;var l=t.readUint(s,h);h+=4;for(var c=[],p=0;p&amp;amp;lt;l;p++){var f=t.readUint(s,h);h+=4,c.push(r(s,p,f,o))}return c}var d=r(s,0,0,o);d._compressedData=a;var m=d.fvar;if(m){for(var g=[d],p=0;p&amp;amp;lt;m[1].length;p++){var v=m[1][p],w={};g.push(w);for(var y in d)w[y]=d[y];w._index=p;var S=w.name=JSON.parse(JSON.stringify(w.name));S.fontSubfamily=v[0],v[3]==null&amp;amp;amp;&amp;amp;amp;(v[3]=(S.fontFamily+&amp;amp;quot;-&amp;amp;quot;+S.fontSubfamily).replaceAll(&amp;amp;quot; &amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;)),S.postScriptName=v[3]}return g}return[d]};oe.findTable=function(i,t,r){for(var n=oe.B,s=n.readUshort(i,r+4),a=r+12,o=0;o&amp;amp;lt;s;o++){var u=n.readASCII(i,a,4);n.readUint(i,a+4);var h=n.readUint(i,a+8),l=n.readUint(i,a+12);if(u==t)return[h,l];a+=16}return null};oe.T={};oe.B={readFixed:function(i,t){return(i[t]&amp;amp;lt;&amp;amp;lt;8|i[t+1])+(i[t+2]&amp;amp;lt;&amp;amp;lt;8|i[t+3])/(256*256+4)},readF2dot14:function(i,t){var r=oe.B.readShort(i,t);return r/16384},readInt:function(i,t){var r=oe.B.t.uint8;return r[0]=i[t+3],r[1]=i[t+2],r[2]=i[t+1],r[3]=i[t],oe.B.t.int32[0]},readInt8:function(i,t){var r=oe.B.t.uint8;return r[0]=i[t],oe.B.t.int8[0]},readShort:function(i,t){var r=oe.B.t.uint16;return r[0]=i[t]&amp;amp;lt;&amp;amp;lt;8|i[t+1],oe.B.t.int16[0]},readUshort:function(i,t){return i[t]&amp;amp;lt;&amp;amp;lt;8|i[t+1]},writeUshort:function(i,t,r){i[t]=r&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[t+1]=r&amp;amp;amp;255},readUshorts:function(i,t,r){for(var n=[],s=0;s&amp;amp;lt;r;s++){var a=oe.B.readUshort(i,t+s*2);n.push(a)}return n},readUint:function(i,t){var r=oe.B.t.uint8;return r[3]=i[t],r[2]=i[t+1],r[1]=i[t+2],r[0]=i[t+3],oe.B.t.uint32[0]},writeUint:function(i,t,r){i[t]=r&amp;amp;gt;&amp;amp;gt;24&amp;amp;amp;255,i[t+1]=r&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255,i[t+2]=r&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255,i[t+3]=r&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255},readUint64:function(i,t){return oe.B.readUint(i,t)*4294967296+oe.B.readUint(i,t+4)},readASCII:function(i,t,r){for(var n=&amp;amp;quot;&amp;amp;quot;,s=0;s&amp;amp;lt;r;s++)n+=String.fromCharCode(i[t+s]);return n},writeASCII:function(i,t,r){for(var n=0;n&amp;amp;lt;r.length;n++)i[t+n]=r.charCodeAt(n)},readUnicode:function(i,t,r){for(var n=&amp;amp;quot;&amp;amp;quot;,s=0;s&amp;amp;lt;r;s++){var a=i[t++]&amp;amp;lt;&amp;amp;lt;8|i[t++];n+=String.fromCharCode(a)}return n},_tdec:window.TextDecoder?new window.TextDecoder:null,readUTF8:function(i,t,r){var n=oe.B._tdec;return n&amp;amp;amp;&amp;amp;amp;t==0&amp;amp;amp;&amp;amp;amp;r==i.length?n.decode(i):oe.B.readASCII(i,t,r)},readBytes:function(i,t,r){for(var n=[],s=0;s&amp;amp;lt;r;s++)n.push(i[t+s]);return n},readASCIIArray:function(i,t,r){for(var n=[],s=0;s&amp;amp;lt;r;s++)n.push(String.fromCharCode(i[t+s]));return n},t:function(){var i=new ArrayBuffer(8);return{buff:i,int8:new Int8Array(i),uint8:new Uint8Array(i),int16:new Int16Array(i),uint16:new Uint16Array(i),int32:new Int32Array(i),uint32:new Uint32Array(i)}}()};oe.T.CFF={parseTab:function(i,t,r){var n=oe.B,s=oe.T.CFF;i=new Uint8Array(i.buffer,t,r),t=0,i[t],t++,i[t],t++,i[t],t++,i[t],t++;var a=[];t=s.readIndex(i,t,a);for(var o=[],u=0;u&amp;amp;lt;a.length-1;u++)o.push(n.readASCII(i,t+a[u],a[u+1]-a[u]));t+=a[a.length-1];var h=[];t=s.readIndex(i,t,h);for(var l=[],u=0;u&amp;amp;lt;h.length-1;u++)l.push(s.readDict(i,t+h[u],t+h[u+1]));t+=h[h.length-1];var c=l[0],p=[];t=s.readIndex(i,t,p);for(var f=[],u=0;u&amp;amp;lt;p.length-1;u++)f.push(n.readASCII(i,t+p[u],p[u+1]-p[u]));if(t+=p[p.length-1],s.readSubrs(i,t,c),c.CharStrings&amp;amp;amp;&amp;amp;amp;(c.CharStrings=s.readBytes(i,c.CharStrings)),c.ROS){t=c.FDArray;var d=[];t=s.readIndex(i,t,d),c.FDArray=[];for(var u=0;u&amp;amp;lt;d.length-1;u++){var m=s.readDict(i,t+d[u],t+d[u+1]);s._readFDict(i,m,f),c.FDArray.push(m)}t+=d[d.length-1],t=c.FDSelect,c.FDSelect=[];var g=i[t];if(t++,g==3){var v=n.readUshort(i,t);t+=2;for(var u=0;u&amp;amp;lt;v+1;u++)c.FDSelect.push(n.readUshort(i,t),i[t+2]),t+=3}else throw g}return c.charset&amp;amp;amp;&amp;amp;amp;(c.charset=s.readCharset(i,c.charset,c.CharStrings.length)),s._readFDict(i,c,f),c},_readFDict:function(i,t,r){var n=oe.T.CFF,s;t.Private&amp;amp;amp;&amp;amp;amp;(s=t.Private[1],t.Private=n.readDict(i,s,s+t.Private[0]),t.Private.Subrs&amp;amp;amp;&amp;amp;amp;n.readSubrs(i,s+t.Private.Subrs,t.Private));for(var a in t)[&amp;amp;quot;FamilyName&amp;amp;quot;,&amp;amp;quot;FontName&amp;amp;quot;,&amp;amp;quot;FullName&amp;amp;quot;,&amp;amp;quot;Notice&amp;amp;quot;,&amp;amp;quot;version&amp;amp;quot;,&amp;amp;quot;Copyright&amp;amp;quot;].indexOf(a)!=-1&amp;amp;amp;&amp;amp;amp;(t[a]=r[t[a]-426+35])},readSubrs:function(i,t,r){r.Subrs=oe.T.CFF.readBytes(i,t);var n,s=r.Subrs.length+1;s&amp;amp;lt;1240?n=107:s&amp;amp;lt;33900?n=1131:n=32768,r.Bias=n},readBytes:function(i,t){oe.B;var r=[];t=oe.T.CFF.readIndex(i,t,r);for(var n=[],s=r.length-1,a=i.byteOffset+t,o=0;o&amp;amp;lt;s;o++){var u=r[o];n.push(new Uint8Array(i.buffer,a+u,r[o+1]-u))}return n},tableSE:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,0,111,112,113,114,0,115,116,117,118,119,120,121,122,0,123,0,124,125,126,127,128,129,130,131,0,132,133,0,134,135,136,137,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,139,0,0,0,0,140,141,142,143,0,0,0,0,0,144,0,0,0,145,0,0,146,147,148,149,0,0,0,0],glyphByUnicode:function(i,t){for(var r=0;r&amp;amp;lt;i.charset.length;r++)if(i.charset[r]==t)return r;return-1},glyphBySE:function(i,t){return t&amp;amp;lt;0||t&amp;amp;gt;255?-1:oe.T.CFF.glyphByUnicode(i,oe.T.CFF.tableSE[t])},readCharset:function(i,t,r){var n=oe.B,s=[&amp;amp;quot;.notdef&amp;amp;quot;],a=i[t];if(t++,a==0)for(var o=0;o&amp;amp;lt;r;o++){var u=n.readUshort(i,t);t+=2,s.push(u)}else if(a==1||a==2)for(;s.length&amp;amp;lt;r;){var u=n.readUshort(i,t);t+=2;var h=0;a==1?(h=i[t],t++):(h=n.readUshort(i,t),t+=2);for(var o=0;o&amp;amp;lt;=h;o++)s.push(u),u++}else throw&amp;amp;quot;error: format: &amp;amp;quot;+a;return s},readIndex:function(i,t,r){var n=oe.B,s=n.readUshort(i,t)+1;t+=2;var a=i[t];if(t++,a==1)for(var o=0;o&amp;amp;lt;s;o++)r.push(i[t+o]);else if(a==2)for(var o=0;o&amp;amp;lt;s;o++)r.push(n.readUshort(i,t+o*2));else if(a==3)for(var o=0;o&amp;amp;lt;s;o++)r.push(n.readUint(i,t+o*3-1)&amp;amp;amp;16777215);else if(a==4)for(var o=0;o&amp;amp;lt;s;o++)r.push(n.readUint(i,t+o*4));else if(s!=1)throw&amp;amp;quot;unsupported offset size: &amp;amp;quot;+a+&amp;amp;quot;, count: &amp;amp;quot;+s;return t+=s*a,t-1},getCharString:function(i,t,r){var n=oe.B,s=i[t],a=i[t+1];i[t+2],i[t+3],i[t+4];var o=1,u=null,h=null;s&amp;amp;lt;=20&amp;amp;amp;&amp;amp;amp;(u=s,o=1),s==12&amp;amp;amp;&amp;amp;amp;(u=s*100+a,o=2),21&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;=27&amp;amp;amp;&amp;amp;amp;(u=s,o=1),s==28&amp;amp;amp;&amp;amp;amp;(h=n.readShort(i,t+1),o=3),29&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;=31&amp;amp;amp;&amp;amp;amp;(u=s,o=1),32&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;=246&amp;amp;amp;&amp;amp;amp;(h=s-139,o=1),247&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;=250&amp;amp;amp;&amp;amp;amp;(h=(s-247)*256+a+108,o=2),251&amp;amp;lt;=s&amp;amp;amp;&amp;amp;amp;s&amp;amp;lt;=254&amp;amp;amp;&amp;amp;amp;(h=-(s-251)*256-a-108,o=2),s==255&amp;amp;amp;&amp;amp;amp;(h=n.readInt(i,t+1)/65535,o=5),r.val=h??&amp;amp;quot;o&amp;amp;quot;+u,r.size=o},readCharString:function(i,t,r){for(var n=t+r,s=oe.B,a=[];t&amp;amp;lt;n;){var o=i[t],u=i[t+1];i[t+2],i[t+3],i[t+4];var h=1,l=null,c=null;o&amp;amp;lt;=20&amp;amp;amp;&amp;amp;amp;(l=o,h=1),o==12&amp;amp;amp;&amp;amp;amp;(l=o*100+u,h=2),(o==19||o==20)&amp;amp;amp;&amp;amp;amp;(l=o,h=2),21&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=27&amp;amp;amp;&amp;amp;amp;(l=o,h=1),o==28&amp;amp;amp;&amp;amp;amp;(c=s.readShort(i,t+1),h=3),29&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=31&amp;amp;amp;&amp;amp;amp;(l=o,h=1),32&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=246&amp;amp;amp;&amp;amp;amp;(c=o-139,h=1),247&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=250&amp;amp;amp;&amp;amp;amp;(c=(o-247)*256+u+108,h=2),251&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=254&amp;amp;amp;&amp;amp;amp;(c=-(o-251)*256-u-108,h=2),o==255&amp;amp;amp;&amp;amp;amp;(c=s.readInt(i,t+1)/65535,h=5),a.push(c??&amp;amp;quot;o&amp;amp;quot;+l),t+=h}return a},readDict:function(i,t,r){for(var n=oe.B,s={},a=[];t&amp;amp;lt;r;){var o=i[t],u=i[t+1];i[t+2],i[t+3],i[t+4];var h=1,l=null,c=null;if(o==28&amp;amp;amp;&amp;amp;amp;(c=n.readShort(i,t+1),h=3),o==29&amp;amp;amp;&amp;amp;amp;(c=n.readInt(i,t+1),h=5),32&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=246&amp;amp;amp;&amp;amp;amp;(c=o-139,h=1),247&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=250&amp;amp;amp;&amp;amp;amp;(c=(o-247)*256+u+108,h=2),251&amp;amp;lt;=o&amp;amp;amp;&amp;amp;amp;o&amp;amp;lt;=254&amp;amp;amp;&amp;amp;amp;(c=-(o-251)*256-u-108,h=2),o==255)throw c=n.readInt(i,t+1)/65535,h=5,&amp;amp;quot;unknown number&amp;amp;quot;;if(o==30){var p=[];for(h=1;;){var f=i[t+h];h++;var d=f&amp;amp;gt;&amp;amp;gt;4,m=f&amp;amp;amp;15;if(d!=15&amp;amp;amp;&amp;amp;amp;p.push(d),m!=15&amp;amp;amp;&amp;amp;amp;p.push(m),m==15)break}for(var g=&amp;amp;quot;&amp;amp;quot;,v=[0,1,2,3,4,5,6,7,8,9,&amp;amp;quot;.&amp;amp;quot;,&amp;amp;quot;e&amp;amp;quot;,&amp;amp;quot;e-&amp;amp;quot;,&amp;amp;quot;reserved&amp;amp;quot;,&amp;amp;quot;-&amp;amp;quot;,&amp;amp;quot;endOfNumber&amp;amp;quot;],w=0;w&amp;amp;lt;p.length;w++)g+=v[p[w]];c=parseFloat(g)}if(o&amp;amp;lt;=21){var y=[&amp;amp;quot;version&amp;amp;quot;,&amp;amp;quot;Notice&amp;amp;quot;,&amp;amp;quot;FullName&amp;amp;quot;,&amp;amp;quot;FamilyName&amp;amp;quot;,&amp;amp;quot;Weight&amp;amp;quot;,&amp;amp;quot;FontBBox&amp;amp;quot;,&amp;amp;quot;BlueValues&amp;amp;quot;,&amp;amp;quot;OtherBlues&amp;amp;quot;,&amp;amp;quot;FamilyBlues&amp;amp;quot;,&amp;amp;quot;FamilyOtherBlues&amp;amp;quot;,&amp;amp;quot;StdHW&amp;amp;quot;,&amp;amp;quot;StdVW&amp;amp;quot;,&amp;amp;quot;escape&amp;amp;quot;,&amp;amp;quot;UniqueID&amp;amp;quot;,&amp;amp;quot;XUID&amp;amp;quot;,&amp;amp;quot;charset&amp;amp;quot;,&amp;amp;quot;Encoding&amp;amp;quot;,&amp;amp;quot;CharStrings&amp;amp;quot;,&amp;amp;quot;Private&amp;amp;quot;,&amp;amp;quot;Subrs&amp;amp;quot;,&amp;amp;quot;defaultWidthX&amp;amp;quot;,&amp;amp;quot;nominalWidthX&amp;amp;quot;];if(l=y[o],h=1,o==12){var y=[&amp;amp;quot;Copyright&amp;amp;quot;,&amp;amp;quot;isFixedPitch&amp;amp;quot;,&amp;amp;quot;ItalicAngle&amp;amp;quot;,&amp;amp;quot;UnderlinePosition&amp;amp;quot;,&amp;amp;quot;UnderlineThickness&amp;amp;quot;,&amp;amp;quot;PaintType&amp;amp;quot;,&amp;amp;quot;CharstringType&amp;amp;quot;,&amp;amp;quot;FontMatrix&amp;amp;quot;,&amp;amp;quot;StrokeWidth&amp;amp;quot;,&amp;amp;quot;BlueScale&amp;amp;quot;,&amp;amp;quot;BlueShift&amp;amp;quot;,&amp;amp;quot;BlueFuzz&amp;amp;quot;,&amp;amp;quot;StemSnapH&amp;amp;quot;,&amp;amp;quot;StemSnapV&amp;amp;quot;,&amp;amp;quot;ForceBold&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;LanguageGroup&amp;amp;quot;,&amp;amp;quot;ExpansionFactor&amp;amp;quot;,&amp;amp;quot;initialRandomSeed&amp;amp;quot;,&amp;amp;quot;SyntheticBase&amp;amp;quot;,&amp;amp;quot;PostScript&amp;amp;quot;,&amp;amp;quot;BaseFontName&amp;amp;quot;,&amp;amp;quot;BaseFontBlend&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;,&amp;amp;quot;ROS&amp;amp;quot;,&amp;amp;quot;CIDFontVersion&amp;amp;quot;,&amp;amp;quot;CIDFontRevision&amp;amp;quot;,&amp;amp;quot;CIDFontType&amp;amp;quot;,&amp;amp;quot;CIDCount&amp;amp;quot;,&amp;amp;quot;UIDBase&amp;amp;quot;,&amp;amp;quot;FDArray&amp;amp;quot;,&amp;amp;quot;FDSelect&amp;amp;quot;,&amp;amp;quot;FontName&amp;amp;quot;];l=y[u],h=2}}l!=null?(s[l]=a.length==1?a[0]:a,a=[]):a.push(c),t+=h}return s}};oe.T.cmap={parseTab:function(i,t,r){var n={tables:[],ids:{},off:t};i=new Uint8Array(i.buffer,t,r),t=0;var s=oe.B,a=s.readUshort,o=oe.T.cmap;a(i,t),t+=2;var u=a(i,t);t+=2;for(var h=[],l=0;l&amp;amp;lt;u;l++){var c=a(i,t);t+=2;var p=a(i,t);t+=2;var f=s.readUint(i,t);t+=4;var d=&amp;amp;quot;p&amp;amp;quot;+c+&amp;amp;quot;e&amp;amp;quot;+p,m=h.indexOf(f);if(m==-1){m=n.tables.length;var g={};h.push(f);var v=g.format=a(i,f);v==0?g=o.parse0(i,f,g):v==4?g=o.parse4(i,f,g):v==6?g=o.parse6(i,f,g):v==12&amp;amp;amp;&amp;amp;amp;(g=o.parse12(i,f,g)),n.tables.push(g)}n.ids[d]!=null&amp;amp;amp;&amp;amp;amp;console.log(&amp;amp;quot;multiple tables for one platform+encoding: &amp;amp;quot;+d),n.ids[d]=m}return n},parse0:function(i,t,r){var n=oe.B;t+=2;var s=n.readUshort(i,t);t+=2,n.readUshort(i,t),t+=2,r.map=[];for(var a=0;a&amp;amp;lt;s-6;a++)r.map.push(i[t+a]);return r},parse4:function(i,t,r){var n=oe.B,s=n.readUshort,a=n.readUshorts,o=t;t+=2;var u=s(i,t);t+=2,s(i,t),t+=2;var h=s(i,t);t+=2;var l=h&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1;r.searchRange=s(i,t),t+=2,r.entrySelector=s(i,t),t+=2,r.rangeShift=s(i,t),t+=2,r.endCount=a(i,t,l),t+=l*2,t+=2,r.startCount=a(i,t,l),t+=l*2,r.idDelta=[];for(var c=0;c&amp;amp;lt;l;c++)r.idDelta.push(n.readShort(i,t)),t+=2;return r.idRangeOffset=a(i,t,l),t+=l*2,r.glyphIdArray=a(i,t,o+u-t&amp;amp;gt;&amp;amp;gt;1),r},parse6:function(i,t,r){var n=oe.B;t+=2,n.readUshort(i,t),t+=2,n.readUshort(i,t),t+=2,r.firstCode=n.readUshort(i,t),t+=2;var s=n.readUshort(i,t);t+=2,r.glyphIdArray=[];for(var a=0;a&amp;amp;lt;s;a++)r.glyphIdArray.push(n.readUshort(i,t)),t+=2;return r},parse12:function(i,t,r){var n=oe.B,s=n.readUint;t+=4,s(i,t),t+=4,s(i,t),t+=4;var a=s(i,t)*3;t+=4;for(var o=r.groups=new Uint32Array(a),u=0;u&amp;amp;lt;a;u+=3)o[u]=s(i,t+(u&amp;amp;lt;&amp;amp;lt;2)),o[u+1]=s(i,t+(u&amp;amp;lt;&amp;amp;lt;2)+4),o[u+2]=s(i,t+(u&amp;amp;lt;&amp;amp;lt;2)+8);return r}};oe.T.CBLC={parseTab:function(i,t,r){var n=oe.B,s=t;n.readUshort(i,t),t+=2,n.readUshort(i,t),t+=2;var a=n.readUint(i,t);t+=4;for(var o=[],u=0;u&amp;amp;lt;a;u++){var h=n.readUint(i,t);t+=4,n.readUint(i,t),t+=4,n.readUint(i,t),t+=4,t+=4,t+=24,n.readUshort(i,t),t+=2,n.readUshort(i,t),t+=2,t+=4;for(var l=s+h,c=0;c&amp;amp;lt;3;c++){var p=n.readUshort(i,l);l+=2;var f=n.readUshort(i,l);l+=2;var d=n.readUint(i,l);l+=4;var m=f-p+1,g=s+h+d,v=n.readUshort(i,g);if(g+=2,v!=1)throw v;var w=n.readUshort(i,g);g+=2;var y=n.readUint(i,g);g+=4;for(var S=[],_=0;_&amp;amp;lt;m;_++){var b=n.readUint(i,g+_*4);S.push(y+b)}o.push([p,f,w,S])}}return o}};oe.T.CBDT={parseTab:function(i,t,r){return oe.B,new Uint8Array(i.buffer,i.byteOffset+t,r)}};oe.T.glyf={parseTab:function(i,t,r,n){for(var s=[],a=n.maxp.numGlyphs,o=0;o&amp;amp;lt;a;o++)s.push(null);return s},_parseGlyf:function(i,t){var r=oe.B,n=i._data,s=i.loca;if(s[t]==s[t+1])return null;var a=oe.findTable(n,&amp;amp;quot;glyf&amp;amp;quot;,i._offset)[0]+s[t],o={};if(o.noc=r.readShort(n,a),a+=2,o.xMin=r.readShort(n,a),a+=2,o.yMin=r.readShort(n,a),a+=2,o.xMax=r.readShort(n,a),a+=2,o.yMax=r.readShort(n,a),a+=2,o.xMin&amp;amp;gt;=o.xMax||o.yMin&amp;amp;gt;=o.yMax)return null;if(o.noc&amp;amp;gt;0){o.endPts=[];for(var u=0;u&amp;amp;lt;o.noc;u++)o.endPts.push(r.readUshort(n,a)),a+=2;var h=r.readUshort(n,a);if(a+=2,n.length-a&amp;amp;lt;h)return null;o.instructions=r.readBytes(n,a,h),a+=h;var l=o.endPts[o.noc-1]+1;o.flags=[];for(var u=0;u&amp;amp;lt;l;u++){var c=n[a];if(a++,o.flags.push(c),(c&amp;amp;amp;8)!=0){var p=n[a];a++;for(var f=0;f&amp;amp;lt;p;f++)o.flags.push(c),u++}}o.xs=[];for(var u=0;u&amp;amp;lt;l;u++){var d=(o.flags[u]&amp;amp;amp;2)!=0,m=(o.flags[u]&amp;amp;amp;16)!=0;d?(o.xs.push(m?n[a]:-n[a]),a++):m?o.xs.push(0):(o.xs.push(r.readShort(n,a)),a+=2)}o.ys=[];for(var u=0;u&amp;amp;lt;l;u++){var d=(o.flags[u]&amp;amp;amp;4)!=0,m=(o.flags[u]&amp;amp;amp;32)!=0;d?(o.ys.push(m?n[a]:-n[a]),a++):m?o.ys.push(0):(o.ys.push(r.readShort(n,a)),a+=2)}for(var g=0,v=0,u=0;u&amp;amp;lt;l;u++)g+=o.xs[u],v+=o.ys[u],o.xs[u]=g,o.ys[u]=v}else{var w=1,y=2,S=8,_=32,b=64,I=128,E=256;o.parts=[];var A;do{A=r.readUshort(n,a),a+=2;var C={m:{a:1,b:0,c:0,d:1,tx:0,ty:0},p1:-1,p2:-1};if(o.parts.push(C),C.glyphIndex=r.readUshort(n,a),a+=2,A&amp;amp;amp;w){var T=r.readShort(n,a);a+=2;var D=r.readShort(n,a);a+=2}else{var T=r.readInt8(n,a);a++;var D=r.readInt8(n,a);a++}A&amp;amp;amp;y?(C.m.tx=T,C.m.ty=D):(C.p1=T,C.p2=D),A&amp;amp;amp;S?(C.m.a=C.m.d=r.readF2dot14(n,a),a+=2):A&amp;amp;amp;b?(C.m.a=r.readF2dot14(n,a),a+=2,C.m.d=r.readF2dot14(n,a),a+=2):A&amp;amp;amp;I&amp;amp;amp;&amp;amp;amp;(C.m.a=r.readF2dot14(n,a),a+=2,C.m.b=r.readF2dot14(n,a),a+=2,C.m.c=r.readF2dot14(n,a),a+=2,C.m.d=r.readF2dot14(n,a),a+=2)}while(A&amp;amp;amp;_);if(A&amp;amp;amp;E){var F=r.readUshort(n,a);a+=2,o.instr=[];for(var u=0;u&amp;amp;lt;F;u++)o.instr.push(n[a]),a++}}return o}};oe.T.head={parseTab:function(i,t,r){var n=oe.B,s={};return n.readFixed(i,t),t+=4,s.fontRevision=n.readFixed(i,t),t+=4,n.readUint(i,t),t+=4,n.readUint(i,t),t+=4,s.flags=n.readUshort(i,t),t+=2,s.unitsPerEm=n.readUshort(i,t),t+=2,s.created=n.readUint64(i,t),t+=8,s.modified=n.readUint64(i,t),t+=8,s.xMin=n.readShort(i,t),t+=2,s.yMin=n.readShort(i,t),t+=2,s.xMax=n.readShort(i,t),t+=2,s.yMax=n.readShort(i,t),t+=2,s.macStyle=n.readUshort(i,t),t+=2,s.lowestRecPPEM=n.readUshort(i,t),t+=2,s.fontDirectionHint=n.readShort(i,t),t+=2,s.indexToLocFormat=n.readShort(i,t),t+=2,s.glyphDataFormat=n.readShort(i,t),t+=2,s}};oe.T.hhea={parseTab:function(i,t,r){var n=oe.B,s={};n.readFixed(i,t),t+=4;for(var a=[&amp;amp;quot;ascender&amp;amp;quot;,&amp;amp;quot;descender&amp;amp;quot;,&amp;amp;quot;lineGap&amp;amp;quot;,&amp;amp;quot;advanceWidthMax&amp;amp;quot;,&amp;amp;quot;minLeftSideBearing&amp;amp;quot;,&amp;amp;quot;minRightSideBearing&amp;amp;quot;,&amp;amp;quot;xMaxExtent&amp;amp;quot;,&amp;amp;quot;caretSlopeRise&amp;amp;quot;,&amp;amp;quot;caretSlopeRun&amp;amp;quot;,&amp;amp;quot;caretOffset&amp;amp;quot;,&amp;amp;quot;res0&amp;amp;quot;,&amp;amp;quot;res1&amp;amp;quot;,&amp;amp;quot;res2&amp;amp;quot;,&amp;amp;quot;res3&amp;amp;quot;,&amp;amp;quot;metricDataFormat&amp;amp;quot;,&amp;amp;quot;numberOfHMetrics&amp;amp;quot;],o=0;o&amp;amp;lt;a.length;o++){var u=a[o],h=u==&amp;amp;quot;advanceWidthMax&amp;amp;quot;||u==&amp;amp;quot;numberOfHMetrics&amp;amp;quot;?n.readUshort:n.readShort;s[u]=h(i,t+o*2)}return s}};oe.T.hmtx={parseTab:function(i,t,r,n){for(var s=oe.B,a=[],o=[],u=n.maxp.numGlyphs,h=n.hhea.numberOfHMetrics,l=0,c=0,p=0;p&amp;amp;lt;h;)l=s.readUshort(i,t+(p&amp;amp;lt;&amp;amp;lt;2)),c=s.readShort(i,t+(p&amp;amp;lt;&amp;amp;lt;2)+2),a.push(l),o.push(c),p++;for(;p&amp;amp;lt;u;)a.push(l),o.push(c),p++;return{aWidth:a,lsBearing:o}}};oe.T.kern={parseTab:function(i,t,r,n){var s=oe.B,a=oe.T.kern,o=s.readUshort(i,t);if(o==1)return a.parseV1(i,t,r,n);var u=s.readUshort(i,t+2);t+=4;for(var h={glyph1:[],rval:[]},l=0;l&amp;amp;lt;u;l++){t+=2;var r=s.readUshort(i,t);t+=2;var c=s.readUshort(i,t);t+=2;var p=c&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8;p&amp;amp;amp;=15,p==0&amp;amp;amp;&amp;amp;amp;(t=a.readFormat0(i,t,h))}return h},parseV1:function(i,t,r,n){var s=oe.B,a=oe.T.kern;s.readFixed(i,t);var o=s.readUint(i,t+4);t+=8;for(var u={glyph1:[],rval:[]},h=0;h&amp;amp;lt;o;h++){s.readUint(i,t),t+=4;var l=s.readUshort(i,t);t+=2,s.readUshort(i,t),t+=2;var c=l&amp;amp;amp;255;c==0&amp;amp;amp;&amp;amp;amp;(t=a.readFormat0(i,t,u))}return u},readFormat0:function(i,t,r){var n=oe.B,s=n.readUshort,a=-1,o=s(i,t);s(i,t+2),s(i,t+4),s(i,t+6),t+=8;for(var u=0;u&amp;amp;lt;o;u++){var h=s(i,t);t+=2;var l=s(i,t);t+=2;var c=n.readShort(i,t);t+=2,h!=a&amp;amp;amp;&amp;amp;amp;(r.glyph1.push(h),r.rval.push({glyph2:[],vals:[]}));var p=r.rval[r.rval.length-1];p.glyph2.push(l),p.vals.push(c),a=h}return t}};oe.T.loca={parseTab:function(i,t,r,n){var s=oe.B,a=[],o=n.head.indexToLocFormat,u=n.maxp.numGlyphs+1;if(o==0)for(var h=0;h&amp;amp;lt;u;h++)a.push(s.readUshort(i,t+(h&amp;amp;lt;&amp;amp;lt;1))&amp;amp;lt;&amp;amp;lt;1);if(o==1)for(var h=0;h&amp;amp;lt;u;h++)a.push(s.readUint(i,t+(h&amp;amp;lt;&amp;amp;lt;2)));return a}};oe.T.maxp={parseTab:function(i,t,r){var n=oe.B,s=n.readUshort,a={};return n.readUint(i,t),t+=4,a.numGlyphs=s(i,t),t+=2,a}};oe.T.name={parseTab:function(i,t,r){var n=oe.B,s={};n.readUshort(i,t),t+=2;var a=n.readUshort(i,t);t+=2;var o=n.readUshort(i,t);t+=2;for(var u=t-6+o,h=[&amp;amp;quot;copyright&amp;amp;quot;,&amp;amp;quot;fontFamily&amp;amp;quot;,&amp;amp;quot;fontSubfamily&amp;amp;quot;,&amp;amp;quot;ID&amp;amp;quot;,&amp;amp;quot;fullName&amp;amp;quot;,&amp;amp;quot;version&amp;amp;quot;,&amp;amp;quot;postScriptName&amp;amp;quot;,&amp;amp;quot;trademark&amp;amp;quot;,&amp;amp;quot;manufacturer&amp;amp;quot;,&amp;amp;quot;designer&amp;amp;quot;,&amp;amp;quot;description&amp;amp;quot;,&amp;amp;quot;urlVendor&amp;amp;quot;,&amp;amp;quot;urlDesigner&amp;amp;quot;,&amp;amp;quot;licence&amp;amp;quot;,&amp;amp;quot;licenceURL&amp;amp;quot;,&amp;amp;quot;---&amp;amp;quot;,&amp;amp;quot;typoFamilyName&amp;amp;quot;,&amp;amp;quot;typoSubfamilyName&amp;amp;quot;,&amp;amp;quot;compatibleFull&amp;amp;quot;,&amp;amp;quot;sampleText&amp;amp;quot;,&amp;amp;quot;postScriptCID&amp;amp;quot;,&amp;amp;quot;wwsFamilyName&amp;amp;quot;,&amp;amp;quot;wwsSubfamilyName&amp;amp;quot;,&amp;amp;quot;lightPalette&amp;amp;quot;,&amp;amp;quot;darkPalette&amp;amp;quot;],l=n.readUshort,c=0;c&amp;amp;lt;a;c++){var p=l(i,t);t+=2;var f=l(i,t);t+=2;var d=l(i,t);t+=2;var m=l(i,t);t+=2;var g=l(i,t);t+=2;var v=l(i,t);t+=2;var w=u+v,y;p==0||p==3&amp;amp;amp;&amp;amp;amp;f==0||p==1&amp;amp;amp;&amp;amp;amp;f==25?y=n.readUnicode(i,w,g/2):f==0?y=n.readASCII(i,w,g):f==1||f==3||f==4||f==5||f==10?y=n.readUnicode(i,w,g/2):p==1?(y=n.readASCII(i,w,g),console.log(&amp;amp;quot;reading unknown MAC encoding &amp;amp;quot;+f+&amp;amp;quot; as ASCII&amp;amp;quot;)):(console.log(&amp;amp;quot;unknown encoding &amp;amp;quot;+f+&amp;amp;quot;, platformID: &amp;amp;quot;+p),y=n.readASCII(i,w,g));var S=&amp;amp;quot;p&amp;amp;quot;+p+&amp;amp;quot;,&amp;amp;quot;+d.toString(16);s[S]==null&amp;amp;amp;&amp;amp;amp;(s[S]={});var _=h[m];_==null&amp;amp;amp;&amp;amp;amp;(_=&amp;amp;quot;_&amp;amp;quot;+m),s[S][_]=y,s[S]._lang=d}var b=oe.T.name.selectOne(s),I=&amp;amp;quot;fontFamily&amp;amp;quot;;if(b[I]==null)for(var E in s)s[E][I]!=null&amp;amp;amp;&amp;amp;amp;(b[I]=s[E][I]);return b},selectOne:function(i){var t=&amp;amp;quot;postScriptName&amp;amp;quot;;for(var r in i)if(i[r][t]!=null&amp;amp;amp;&amp;amp;amp;i[r]._lang==1033)return i[r];for(var r in i)if(i[r][t]!=null&amp;amp;amp;&amp;amp;amp;i[r]._lang==0)return i[r];for(var r in i)if(i[r][t]!=null&amp;amp;amp;&amp;amp;amp;i[r]._lang==3084)return i[r];for(var r in i)if(i[r][t]!=null)return i[r];var n;for(var r in i){n=i[r];break}return console.log(&amp;amp;quot;returning name table with languageID &amp;amp;quot;+n._lang),n[t]==null&amp;amp;amp;&amp;amp;amp;n.ID!=null&amp;amp;amp;&amp;amp;amp;(n[t]=n.ID),n}};oe.T.OS2={parseTab:function(i,t,r){var n=oe.B,s=n.readUshort(i,t);t+=2;var a=oe.T.OS2,o={};if(s==0)a.version0(i,t,o);else if(s==1)a.version1(i,t,o);else if(s==2||s==3||s==4)a.version2(i,t,o);else if(s==5)a.version5(i,t,o);else throw&amp;amp;quot;unknown OS/2 table version: &amp;amp;quot;+s;return o},version0:function(i,t,r){var n=oe.B;return r.xAvgCharWidth=n.readShort(i,t),t+=2,r.usWeightClass=n.readUshort(i,t),t+=2,r.usWidthClass=n.readUshort(i,t),t+=2,r.fsType=n.readUshort(i,t),t+=2,r.ySubscriptXSize=n.readShort(i,t),t+=2,r.ySubscriptYSize=n.readShort(i,t),t+=2,r.ySubscriptXOffset=n.readShort(i,t),t+=2,r.ySubscriptYOffset=n.readShort(i,t),t+=2,r.ySuperscriptXSize=n.readShort(i,t),t+=2,r.ySuperscriptYSize=n.readShort(i,t),t+=2,r.ySuperscriptXOffset=n.readShort(i,t),t+=2,r.ySuperscriptYOffset=n.readShort(i,t),t+=2,r.yStrikeoutSize=n.readShort(i,t),t+=2,r.yStrikeoutPosition=n.readShort(i,t),t+=2,r.sFamilyClass=n.readShort(i,t),t+=2,r.panose=n.readBytes(i,t,10),t+=10,r.ulUnicodeRange1=n.readUint(i,t),t+=4,r.ulUnicodeRange2=n.readUint(i,t),t+=4,r.ulUnicodeRange3=n.readUint(i,t),t+=4,r.ulUnicodeRange4=n.readUint(i,t),t+=4,r.achVendID=n.readASCII(i,t,4),t+=4,r.fsSelection=n.readUshort(i,t),t+=2,r.usFirstCharIndex=n.readUshort(i,t),t+=2,r.usLastCharIndex=n.readUshort(i,t),t+=2,r.sTypoAscender=n.readShort(i,t),t+=2,r.sTypoDescender=n.readShort(i,t),t+=2,r.sTypoLineGap=n.readShort(i,t),t+=2,r.usWinAscent=n.readUshort(i,t),t+=2,r.usWinDescent=n.readUshort(i,t),t+=2,t},version1:function(i,t,r){var n=oe.B;return t=oe.T.OS2.version0(i,t,r),r.ulCodePageRange1=n.readUint(i,t),t+=4,r.ulCodePageRange2=n.readUint(i,t),t+=4,t},version2:function(i,t,r){var n=oe.B,s=n.readUshort;return t=oe.T.OS2.version1(i,t,r),r.sxHeight=n.readShort(i,t),t+=2,r.sCapHeight=n.readShort(i,t),t+=2,r.usDefault=s(i,t),t+=2,r.usBreak=s(i,t),t+=2,r.usMaxContext=s(i,t),t+=2,t},version5:function(i,t,r){var n=oe.B.readUshort;return t=oe.T.OS2.version2(i,t,r),r.usLowerOpticalPointSize=n(i,t),t+=2,r.usUpperOpticalPointSize=n(i,t),t+=2,t}};oe.T.post={parseTab:function(i,t,r){var n=oe.B,s={};return s.version=n.readFixed(i,t),t+=4,s.italicAngle=n.readFixed(i,t),t+=4,s.underlinePosition=n.readShort(i,t),t+=2,s.underlineThickness=n.readShort(i,t),t+=2,s}};oe.T.SVG={parseTab:function(i,t,r){var n=oe.B,s={entries:[],svgs:[]},a=t;n.readUshort(i,t),t+=2;var o=n.readUint(i,t);t+=4,n.readUint(i,t),t+=4,t=o+a;var u=n.readUshort(i,t);t+=2;for(var h=0;h&amp;amp;lt;u;h++){var l=n.readUshort(i,t);t+=2;var c=n.readUshort(i,t);t+=2;var p=n.readUint(i,t);t+=4;var f=n.readUint(i,t);t+=4;var d=new Uint8Array(i.buffer,a+p+o,f);d[0]==31&amp;amp;amp;&amp;amp;amp;d[1]==139&amp;amp;amp;&amp;amp;amp;d[2]==8&amp;amp;amp;&amp;amp;amp;(d=Q1.inflate(d));for(var m=n.readUTF8(d,0,d.length),g=l;g&amp;amp;lt;=c;g++)s.entries[g]=s.svgs.length;s.svgs.push(m)}return s}};oe.T.sbix={parseTab:function(i,t,r,n){for(var s=n.maxp.numGlyphs,a=t,o=oe.B,u=o.readUint(i,t+4),h=[],l=u-1;l&amp;amp;lt;u;l++)for(var c=a+o.readUint(i,t+8+l*4),p=0;p&amp;amp;lt;s;p++){var f=o.readUint(i,c+4+p*4),d=o.readUint(i,c+4+p*4+4);if(f==d){h[p]=null;continue}var m=c+f,g=o.readASCII(i,m+4,4);if(g!=&amp;amp;quot;png &amp;amp;quot;)throw g;h[p]=new Uint8Array(i.buffer,i.byteOffset+m+8,d-f-8)}return h}};oe.T.colr={parseTab:function(i,t,r){var n=oe.B,s=t;t+=2;var a=n.readUshort(i,t);t+=2;var o=n.readUint(i,t);t+=4;var u=n.readUint(i,t);t+=4;var h=n.readUshort(i,t);t+=2;for(var l={},c=s+o,p=0;p&amp;amp;lt;a;p++)l[&amp;amp;quot;g&amp;amp;quot;+n.readUshort(i,c)]=[n.readUshort(i,c+2),n.readUshort(i,c+4)],c+=6;var f=[];c=s+u;for(var p=0;p&amp;amp;lt;h;p++)f.push(n.readUshort(i,c),n.readUshort(i,c+2)),c+=4;return[l,f]}};oe.T.cpal={parseTab:function(i,t,r){var n=oe.B,s=t,a=n.readUshort(i,t);if(t+=2,a==0){n.readUshort(i,t),t+=2,n.readUshort(i,t),t+=2;var o=n.readUshort(i,t);t+=2;var u=n.readUint(i,t);return t+=4,new Uint8Array(i.buffer,s+u,o*4)}else throw a}};oe.T.GSUB={parseTab:function(i,t,r,n){var s=oe.B,a=s.readUshort;s.readUint;var o=t;a(i,o),o+=2,a(i,o),o+=2,a(i,o),o+=2;var u=a(i,o);o+=2,a(i,o),o+=2,o=t+u;var h={},l=a(i,o);o+=2;for(var c=0;c&amp;amp;lt;l;c++){var p=s.readASCII(i,o,4);o+=4,a(i,o),o+=2,h[p]=!0}return h}};oe.T.fvar={parseTab:function(i,t,r,n){var s=n.name,a=t,o=oe.B,u=[],h=[];a+=8;var l=o.readUshort(i,a);a+=2,a+=2;var c=o.readUshort(i,a);a+=2;var p=o.readUshort(i,a);a+=2;for(var f=0;f&amp;amp;lt;l;f++){var d=o.readASCII(i,a,4),m=o.readFixed(i,a+4),g=o.readFixed(i,a+8),v=o.readFixed(i,a+12),w=o.readUshort(i,a+16),y=o.readUshort(i,a+18);u.push([d,m,g,v,w,s[&amp;amp;quot;_&amp;amp;quot;+y]]),a+=20}for(var f=0;f&amp;amp;lt;c;f++){for(var S=o.readUshort(i,a),_=null,w=o.readUshort(i,a+2),b=[],I=0;I&amp;amp;lt;l;I++)b.push(o.readFixed(i,a+4+I*4));a+=4+l*4,(p&amp;amp;amp;3)==2&amp;amp;amp;&amp;amp;amp;(_=o.readUshort(i,a),a+=2),h.push([s[&amp;amp;quot;_&amp;amp;quot;+S],w,b,_])}return[u,h]}};oe.T.gvar=function(){var i=32768,t=16384,r=8192,n=128,s=64,a=128,o=32768,u=oe.B;function h(f,d,m){for(var g=[],v=0;v&amp;amp;lt;m;v++)g.push(u.readF2dot14(f,d+v*2));return g}function l(f,d,m,g,v){for(var w=[],y=0;y&amp;amp;lt;m;y++){var S=u.readUshort(f,d);d+=2;var _=u.readUshort(f,d),b=_&amp;amp;amp;61440;_=_&amp;amp;amp;4095,d+=2;var I=null,E=null,A=null;b&amp;amp;amp;i&amp;amp;amp;&amp;amp;amp;(I=h(f,d,g),d+=g*2),b&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;(E=h(f,d,g),d+=g*2),b&amp;amp;amp;t&amp;amp;amp;&amp;amp;amp;(A=h(f,d,g),d+=g*2),w.push([S,_,b,E,I,A])}return w}function c(f,d,m){var g=f[d];if(d++,g==0)return[[],d];127&amp;amp;lt;g&amp;amp;amp;&amp;amp;amp;(g=(g&amp;amp;amp;127)&amp;amp;lt;&amp;amp;lt;8|f[d++]);for(var v=[],w=0;v.length&amp;amp;lt;g;){var y=f[d];d++;var S=(y&amp;amp;amp;a)!=0;y=(y&amp;amp;amp;127)+1;for(var _=0;_&amp;amp;lt;y;_++){var b=0;S?(b=u.readUshort(f,d),d+=2):(b=f[d],d++),w+=b,v.push(w)}}return[v,d]}function p(f,d,m,g){var v=d+4,w=u.readUshort(f,v);v+=2;var y=u.readUshort(f,v);v+=2;var S=u.readUint(f,v);v+=4;var _=u.readUshort(f,v);v+=2,u.readUshort(f,v),v+=2;var b=u.readUint(f,v);v+=4;for(var I=[],E=0;E&amp;amp;lt;_+1;E++)I.push(u.readUint(f,v+E*4));var A=[],C=[],T=[];v=d+S;for(var E=0;E&amp;amp;lt;y;E++){var D=h(f,v+E*w*2,w),F=[],N=[];A.push(D),C.push(F),T.push(N);for(var B=0;B&amp;amp;lt;w;B++)F[B]=Math.min(D[B],0),N[B]=Math.max(D[B],0)}for(var U=new Int8Array(f.buffer),j=[],E=0;E&amp;amp;lt;_;E++){v=d+b+I[E];var W=u.readUshort(f,v);v+=2;var te=W&amp;amp;amp;o;W&amp;amp;amp;=4095;var X=u.readUshort(f,v);v+=2;var Z=l(f,v,W,w),G=[];j.push(G),v=d+b+I[E]+X;var q=null;if(te){var J=c(f,v);q=J[0],v=J[1]}for(var Y=0;Y&amp;amp;lt;W;Y++){var Q=Z[Y],fe=v+Q[0],de=q;if(Q[2]&amp;amp;amp;r){var J=c(f,v);de=J[0],v=J[1]}for(var me=[];v&amp;amp;lt;fe;){var ie=f[v++],ee=(ie&amp;amp;amp;63)+1;if(ie&amp;amp;amp;n)for(var B=0;B&amp;amp;lt;ee;B++)me.push(0);else if(ie&amp;amp;amp;s){for(var B=0;B&amp;amp;lt;ee;B++)me.push(u.readShort(f,v+B*2));v+=ee*2}else{for(var B=0;B&amp;amp;lt;ee;B++)me.push(U[v+B]);v+=ee}}var se=Q[1];if(G.push([[Q[3]?Q[3]:C[se],Q[4]?Q[4]:A[se],Q[5]?Q[5]:T[se]],me,de.length==0?null:de]),de.length!=0&amp;amp;amp;&amp;amp;amp;de.length*2!=me.length)throw&amp;amp;quot;e&amp;amp;quot;}}return j}return{parseTab:p}}();oe.T.avar={parseTab:function(i,t,r,n){var s=t,a=oe.B,o=[];s+=6;var u=a.readUshort(i,s);s+=2;for(var h=0;h&amp;amp;lt;u;h++){var l=a.readUshort(i,s);s+=2;var c=[];o.push(c);for(var p=0;p&amp;amp;lt;l;p++){var f=a.readF2dot14(i,s),d=a.readF2dot14(i,s+2);s+=4,c.push(f,d)}}return o}};oe.T.HVAR={parseTab:function(i,t,r,n){var s=t,a=t,o=oe.B;s+=4;var u=o.readUint(i,s);s+=4;var h=o.readUint(i,s);s+=4;var l=o.readUint(i,s);s+=4;var c=o.readUint(i,s);if(s+=4,l!=0||c!=0)throw l;s=a+u;var p=s,U=o.readUshort(i,s);if(s+=2,U!=1)throw&amp;amp;quot;e&amp;amp;quot;;var f=o.readUint(i,s);s+=4;var d=o.readUshort(i,s);s+=2;for(var m=[],g=0;g&amp;amp;lt;d;g++)m.push(o.readUint(i,s+g*4));s+=d*4,s=p+f;var v=o.readUshort(i,s);s+=2;var w=o.readUshort(i,s);s+=2;for(var y=[],g=0;g&amp;amp;lt;w;g++){var S=[[],[],[]];y.push(S);for(var _=0;_&amp;amp;lt;v;_++)S[0].push(o.readF2dot14(i,s+0)),S[1].push(o.readF2dot14(i,s+2)),S[2].push(o.readF2dot14(i,s+4)),s+=6}for(var b=new Int8Array(i.buffer),I=[],g=0;g&amp;amp;lt;m.length;g++){s=a+u+m[g];var E=[];I.push(E);var A=o.readUshort(i,s);s+=2;var C=o.readUshort(i,s);if(s+=2,C&amp;amp;amp;32768)throw&amp;amp;quot;e&amp;amp;quot;;var w=o.readUshort(i,s);s+=2;for(var T=[],_=0;_&amp;amp;lt;w;_++)T.push(o.readUshort(i,s+_*2));s+=w*2;for(var D=0;D&amp;amp;lt;A;D++){for(var F=[],N=0;N&amp;amp;lt;w;N++)F.push(N&amp;amp;lt;C?o.readShort(i,s):b[s]),s+=N&amp;amp;lt;C?2:1;var B=new Array(y.length);B.fill(0),E.push(B);for(var _=0;_&amp;amp;lt;T.length;_++)B[T[_]]=F[_]}}s=a+h;var U=i[s++];if(U!=0)throw&amp;amp;quot;e&amp;amp;quot;;var j=i[s++],W=o.readUshort(i,s);s+=2;for(var te=15,X=48,Z=((j&amp;amp;amp;X)&amp;amp;gt;&amp;amp;gt;4)+1,G=[],g=0;g&amp;amp;lt;W;g++){var q=0;Z==1?q=i[s++]:(q=o.readUshort(i,s),s+=2);var J=q&amp;amp;gt;&amp;amp;gt;(j&amp;amp;amp;te)+1,Y=q&amp;amp;amp;(1&amp;amp;lt;&amp;amp;lt;(j&amp;amp;amp;te)+1)-1;G.push(I[J][Y])}return[y,G]}};oe.U=function(){var i={MoveTo:function(A,C,T){A.cmds.push(&amp;amp;quot;M&amp;amp;quot;),A.crds.push(C,T)},LineTo:function(A,C,T){A.cmds.push(&amp;amp;quot;L&amp;amp;quot;),A.crds.push(C,T)},CurveTo:function(A,C,T,D,F,N,B){A.cmds.push(&amp;amp;quot;C&amp;amp;quot;),A.crds.push(C,T,D,F,N,B)},qCurveTo:function(A,C,T,D,F){A.cmds.push(&amp;amp;quot;Q&amp;amp;quot;),A.crds.push(C,T,D,F)},ClosePath:function(A){A.cmds.push(&amp;amp;quot;Z&amp;amp;quot;)}};function t(A,C,T,D){var F=C[T],N=C[T+1],B=A.kern;if(B){var U=B.glyph1.indexOf(F);if(U!=-1){var j=B.rval[U].glyph2.indexOf(N);if(j!=-1)return[0,0,B.rval[U].vals[j],0]}}return[0,0,0,0]}function r(A,C,T){T==null&amp;amp;amp;&amp;amp;amp;(T={}),T.ltr,T.fts;var D=T.axs;A.fvar&amp;amp;amp;&amp;amp;amp;D==null&amp;amp;amp;&amp;amp;amp;(D=A.fvar[1][A._index][2]);var F=A.HVAR;D&amp;amp;amp;&amp;amp;amp;F&amp;amp;amp;&amp;amp;amp;(D=f(A,D));for(var N=[],B=0;B&amp;amp;lt;C.length;B++){var U=C.codePointAt(B);U&amp;amp;gt;65535&amp;amp;amp;&amp;amp;amp;B++,N.push(h(A,U))}for(var j=[],B=0;B&amp;amp;lt;N.length;B++){var W=t(A,N,B),te=N[B],X=A.hmtx.aWidth[te]+W[2];if(F&amp;amp;amp;&amp;amp;amp;F[1][te])for(var Z=F[1][te],G=0;G&amp;amp;lt;F[0].length;G++)X+=p(F[0][G],D)*Z[G];j.push({g:te,cl:B,dx:0,dy:0,ax:X,ay:0})}return j}function n(A,C,T){var D={cmds:[],crds:[]},F=0,N=0,B,U;T&amp;amp;amp;&amp;amp;amp;(B=T.clr,U=T.axs);for(var j=0;j&amp;amp;lt;C.length;j++){for(var W=C[j],te=l(A,W.g,!1,U),X=te.crds,Z=0;Z&amp;amp;lt;X.length;Z+=2)D.crds.push(X[Z]+F+W.dx),D.crds.push(X[Z+1]+N+W.dy);B&amp;amp;amp;&amp;amp;amp;D.cmds.push(B);for(var Z=0;Z&amp;amp;lt;te.cmds.length;Z++)D.cmds.push(te.cmds[Z]);var G=D.cmds.length;B&amp;amp;amp;&amp;amp;amp;G!=0&amp;amp;amp;&amp;amp;amp;D.cmds[G-1]!=&amp;amp;quot;X&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;D.cmds.push(&amp;amp;quot;X&amp;amp;quot;),F+=W.ax,N+=W.ay}return{cmds:D.cmds,crds:D.crds}}function s(A,C,T){for(var D=0,F=~~(A.length/C);D+1!=F;){var N=D+(F-D&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;1);A[N*C]&amp;amp;lt;=T?D=N:F=N}return D*C}for(var a=[9,10,11,12,13,32,133,160,5760,6158,8232,8233,8239,8288,12288,65279],o={},u=0;u&amp;amp;lt;a.length;u++)o[a[u]]=1;for(var u=8192;u&amp;amp;lt;=8205;u++)o[u]=1;function h(A,C){if(A._ctab==null){for(var T=A.cmap,D=-1,F=[&amp;amp;quot;p3e10&amp;amp;quot;,&amp;amp;quot;p0e4&amp;amp;quot;,&amp;amp;quot;p3e1&amp;amp;quot;,&amp;amp;quot;p1e0&amp;amp;quot;,&amp;amp;quot;p0e3&amp;amp;quot;,&amp;amp;quot;p0e1&amp;amp;quot;,&amp;amp;quot;p3e0&amp;amp;quot;,&amp;amp;quot;p3e5&amp;amp;quot;],N=0;N&amp;amp;lt;F.length;N++)if(T.ids[F[N]]!=null){D=T.ids[F[N]];break}if(D==-1)throw&amp;amp;quot;no familiar platform and encoding!&amp;amp;quot;;A._ctab=T.tables[D]}var B=A._ctab,U=B.format,j=-1;if(U==0)C&amp;amp;gt;=B.map.length?j=0:j=B.map[C];else if(U==4){var W=B.endCount;if(j=0,C&amp;amp;lt;=W[W.length-1]){var te=s(W,1,C);if(W[te]&amp;amp;lt;C&amp;amp;amp;&amp;amp;amp;te++,C&amp;amp;gt;=B.startCount[te]){var X=0;B.idRangeOffset[te]!=0?X=B.glyphIdArray[C-B.startCount[te]+(B.idRangeOffset[te]&amp;amp;gt;&amp;amp;gt;1)-(B.idRangeOffset.length-te)]:X=C+B.idDelta[te],j=X&amp;amp;amp;65535}}}else if(U==6){var Z=C-B.firstCode,G=B.glyphIdArray;Z&amp;amp;lt;0||Z&amp;amp;gt;=G.length?j=0:j=G[Z]}else if(U==12){var q=B.groups;if(j=0,C&amp;amp;lt;=q[q.length-2]){var N=s(q,3,C);q[N]&amp;amp;lt;=C&amp;amp;amp;&amp;amp;amp;C&amp;amp;lt;=q[N+1]&amp;amp;amp;&amp;amp;amp;(j=q[N+2]+(C-q[N]))}}else throw&amp;amp;quot;unknown cmap table format &amp;amp;quot;+B.format;var J=A[&amp;amp;quot;SVG &amp;amp;quot;],Y=A.loca;return j!=0&amp;amp;amp;&amp;amp;amp;A[&amp;amp;quot;CFF &amp;amp;quot;]==null&amp;amp;amp;&amp;amp;amp;(J==null||J.entries[j]==null)&amp;amp;amp;&amp;amp;amp;Y&amp;amp;amp;&amp;amp;amp;Y[j]==Y[j+1]&amp;amp;amp;&amp;amp;amp;o[C]==null&amp;amp;amp;&amp;amp;amp;(j=0),j}function l(A,C,T,D){var F={cmds:[],crds:[]};A.fvar&amp;amp;amp;&amp;amp;amp;(D==null&amp;amp;amp;&amp;amp;amp;(D=A.fvar[1][A._index][2]),D=f(A,D));var N=A[&amp;amp;quot;SVG &amp;amp;quot;],B=A[&amp;amp;quot;CFF &amp;amp;quot;],U=A.COLR,j=A.CBLC,W=A.CBDT,te=A.sbix,X=window.UPNG,Z=null;if(j&amp;amp;amp;&amp;amp;amp;X)for(var G=0;G&amp;amp;lt;j.length;G++)j[G][0]&amp;amp;lt;=C&amp;amp;amp;&amp;amp;amp;C&amp;amp;lt;=j[G][1]&amp;amp;amp;&amp;amp;amp;(Z=j[G]);if(Z||te&amp;amp;amp;&amp;amp;amp;te[C]){if(Z&amp;amp;amp;&amp;amp;amp;Z[2]!=17)throw&amp;amp;quot;not a PNG&amp;amp;quot;;A.__tmp==null&amp;amp;amp;&amp;amp;amp;(A.__tmp={});var q=A.__tmp[&amp;amp;quot;g&amp;amp;quot;+C];if(q==null){var J,Y;if(te)J=te[C],Y=J.length;else{var Q=Z[3][C-Z[0]]+5;Y=W[Q+1]&amp;amp;lt;&amp;amp;lt;16|W[Q+2]&amp;amp;lt;&amp;amp;lt;8|W[Q+3],Q+=4,J=new Uint8Array(W.buffer,W.byteOffset+Q,Y)}for(var fe=&amp;amp;quot;&amp;amp;quot;,G=0;G&amp;amp;lt;Y;G++)fe+=String.fromCharCode(J[G]);q=A.__tmp[&amp;amp;quot;g&amp;amp;quot;+C]=&amp;amp;quot;data:image/png;base64,&amp;amp;quot;+btoa(fe)}F.cmds.push(q);var de=A.head.unitsPerEm*1.15,me=Math.round(de),ie=Math.round(de),ee=Math.round(-ie*.15);F.crds.push(0,ie+ee,me,ie+ee,me,ee,0,ee)}else if(N&amp;amp;amp;&amp;amp;amp;N.entries[C]){var se=N.entries[C];if(se!=null){if(typeof se==&amp;amp;quot;number&amp;amp;quot;){var ce=N.svgs[se];if(typeof ce==&amp;amp;quot;string&amp;amp;quot;){var ue=new DOMParser,pe=ue.parseFromString(ce,&amp;amp;quot;image/svg+xml&amp;amp;quot;);ce=N.svgs[se]=pe.getElementsByTagName(&amp;amp;quot;svg&amp;amp;quot;)[0]}se=oe.U.SVG.toPath(ce,C),N.entries[C]=se}F=se}}else if(T!=!0&amp;amp;amp;&amp;amp;amp;U&amp;amp;amp;&amp;amp;amp;U[0][&amp;amp;quot;g&amp;amp;quot;+C]&amp;amp;amp;&amp;amp;amp;U[0][&amp;amp;quot;g&amp;amp;quot;+C][1]&amp;amp;gt;1){let Ie=function(Ce){var Ge=Ce.toString(16);return(Ge.length==1?&amp;amp;quot;0&amp;amp;quot;:&amp;amp;quot;&amp;amp;quot;)+Ge};for(var O=A.CPAL,P=U[0][&amp;amp;quot;g&amp;amp;quot;+C],G=0;G&amp;amp;lt;P[1];G++){var z=P[0]+G,$=U[1][2*z],ne=U[1][2*z+1]*4,K=l(A,$,$==C),ve=&amp;amp;quot;#&amp;amp;quot;+Ie(O[ne+2])+Ie(O[ne+1])+Ie(O[ne+0]);F.cmds.push(ve),F.cmds=F.cmds.concat(K.cmds),F.crds=F.crds.concat(K.crds),F.cmds.push(&amp;amp;quot;X&amp;amp;quot;)}}else if(B){var ge=B.Private,Te={x:0,y:0,stack:[],nStems:0,haveWidth:!1,width:ge?ge.defaultWidthX:0,open:!1};if(B.ROS){for(var xe=0;B.FDSelect[xe+2]&amp;amp;lt;=C;)xe+=2;ge=B.FDArray[B.FDSelect[xe+1]].Private}I(B.CharStrings[C],Te,B,ge,F)}else A.glyf&amp;amp;amp;&amp;amp;amp;c(C,A,F,D);return{cmds:F.cmds,crds:F.crds}}function c(A,C,T,D){var F=C.glyf[A];F==null&amp;amp;amp;&amp;amp;amp;(F=C.glyf[A]=oe.T.glyf._parseGlyf(C,A)),F!=null&amp;amp;amp;&amp;amp;amp;(F.noc&amp;amp;gt;-1?m(F,C,A,T,D):g(F,C,A,T,D))}function p(A,C){C.length;for(var T=1,D=A[0],F=A[1],N=A[2],B=0;B&amp;amp;lt;C.length;B++){var U=1;D[B]&amp;amp;gt;F[B]||F[B]&amp;amp;gt;N[B]||D[B]&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;N[B]&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;F[B]!=0||F[B]==0?U=1:C[B]&amp;amp;lt;D[B]||C[B]&amp;amp;gt;N[B]?U=0:C[B]==F[B]?U=1:C[B]&amp;amp;lt;F[B]?U=(C[B]-D[B])/(F[B]-D[B]):U=(N[B]-C[B])/(N[B]-F[B]),T=T*U}return T}function f(A,C){for(var T=A.fvar,D=A.avar,F=T?T[0]:null,N=[],B=0;B&amp;amp;lt;F.length;B++){var U=F[B][1],j=F[B][2],W=F[B][3],te=Math.max(U,Math.min(W,C[B]));if(te&amp;amp;lt;j?N[B]=(j-te)/(U-j):te&amp;amp;gt;j?N[B]=(te-j)/(W-j):N[B]=0,D&amp;amp;amp;&amp;amp;amp;N[B]!=-1){for(var X=D[B],Z=0;Z&amp;amp;lt;X.length&amp;amp;amp;&amp;amp;amp;!(X[Z]&amp;amp;gt;=N[B]);Z+=2);var G=(N[B]-X[Z-2])/(X[Z]-X[Z-2]);N[B]=G*X[Z+1]+(1-G)*X[Z-1]}}return N}function d(A,C,T,D,F){var N=T.length,B=new Array(N*2+8);B.fill(0);for(var U=0;U&amp;amp;lt;N;U++){var j=0,W=0,te=C.indexOf(U);if(te!=-1)j=A[te],W=A[C.length+te];else{for(var X=0;F[X]&amp;amp;lt;U;)X++;for(var Z=X==0?0:F[X-1]+1,G=F[X],q=-1,J=-1,Y=0;Y&amp;amp;lt;C.length;Y++){var Q=C[Y];Q&amp;amp;lt;Z||Q&amp;amp;gt;G||Q&amp;amp;gt;=N||(q=Y,J==-1&amp;amp;amp;&amp;amp;amp;(J=Y))}for(var Y=0;Y&amp;amp;lt;C.length;Y++){var Q=C[Y];if(!(Q&amp;amp;lt;Z||Q&amp;amp;gt;G||Q&amp;amp;gt;=N)&amp;amp;amp;&amp;amp;amp;(Q&amp;amp;lt;U&amp;amp;amp;&amp;amp;amp;(q=Y),U&amp;amp;lt;Q)){J=Y;break}}for(var fe=0;fe&amp;amp;lt;2;fe++){var de=fe==0?T:D,me=fe*C.length,ie=0,ee=de[C[q]],se=de[C[J]],ce=de[U],ue=A[me+q],pe=A[me+J];if(ee==se)ue==pe?ie=ue:ie=0;else if(ce&amp;amp;lt;=Math.min(ee,se))ee&amp;amp;lt;se?ie=ue:ie=pe;else if(Math.max(ee,se)&amp;amp;lt;=ce)ee&amp;amp;lt;se?ie=pe:ie=ue;else{var O=(ce-ee)/(se-ee);ie=O*pe+(1-O)*ue}fe==0?j=ie:W=ie}}B[U]=j,B[N+4+U]=W}return B}function m(A,C,T,D,F){var N=A.xs,B=A.ys;if(C.fvar&amp;amp;amp;&amp;amp;amp;F){N=N.slice(0),B=B.slice(0);for(var U=C.gvar,j=U?U[T]:null,W=0;W&amp;amp;lt;j.length;W++){var te=j[W][0],X=p(te,F);if(!(X&amp;amp;lt;1e-9)){var Z=j[W][1],G=j[W][2];if(G&amp;amp;amp;&amp;amp;amp;(Z=j[W][1]=d(Z,G,N,B,A.endPts),j[W][2]=null),Z.length==N.length*2+8)for(var q=0;q&amp;amp;lt;N.length;q++)N[q]+=X*Z[q],B[q]+=X*Z[q+N.length+4]}}}for(var J=0;J&amp;amp;lt;A.noc;J++){for(var Y=J==0?0:A.endPts[J-1]+1,Q=A.endPts[J],q=Y;q&amp;amp;lt;=Q;q++){var fe=q==Y?Q:q-1,de=q==Q?Y:q+1,me=A.flags[q]&amp;amp;amp;1,ie=A.flags[fe]&amp;amp;amp;1,ee=A.flags[de]&amp;amp;amp;1,se=N[q],ce=B[q];if(q==Y)if(me)if(ie)i.MoveTo(D,N[fe],B[fe]);else{i.MoveTo(D,se,ce);continue}else ie?i.MoveTo(D,N[fe],B[fe]):i.MoveTo(D,Math.floor((N[fe]+se)*.5),Math.floor((B[fe]+ce)*.5));me?ie&amp;amp;amp;&amp;amp;amp;i.LineTo(D,se,ce):ee?i.qCurveTo(D,se,ce,N[de],B[de]):i.qCurveTo(D,se,ce,Math.floor((se+N[de])*.5),Math.floor((ce+B[de])*.5))}i.ClosePath(D)}}function g(A,C,T,D,F){var N=[0,0,0,0,0,0],B=[0,0,0,0,0,0],U=A.parts.length;if(C.fvar&amp;amp;amp;&amp;amp;amp;F)for(var j=C.gvar,W=j?j[T]:null,te=0;te&amp;amp;lt;W.length;te++){var X=W[te][0],Z=p(X,F);if(!(Z&amp;amp;lt;1e-6)){var G=W[te][1],q=W[te][2];if(q==null)for(var J=0;J&amp;amp;lt;U;J++)N[J]+=Z*G[J],B[J]+=Z*G[J+U+4];else for(var Y=0;Y&amp;amp;lt;q.length;Y++){var J=q[Y];N[J]+=Z*G[0],B[J]+=Z*G[0+U]}}}for(var Y=0;Y&amp;amp;lt;U;Y++){var Q={cmds:[],crds:[]},fe=A.parts[Y];c(fe.glyphIndex,C,Q,F);for(var de=fe.m,me=de.tx+N[Y],ie=de.ty+B[Y],J=0;J&amp;amp;lt;Q.crds.length;J+=2){var ee=Q.crds[J],se=Q.crds[J+1];D.crds.push(ee*de.a+se*de.c+me),D.crds.push(ee*de.b+se*de.d+ie)}for(var J=0;J&amp;amp;lt;Q.cmds.length;J++)D.cmds.push(Q.cmds[J])}}function v(A,C){var T=A.cmds,D=A.crds;C==null&amp;amp;amp;&amp;amp;amp;(C=5);function F(ue){return parseFloat(ue.toFixed(C))}function N(ue){for(var pe=[],O=!1,P=&amp;amp;quot;&amp;amp;quot;,z=0;z&amp;amp;lt;ue.length;z++){var $=ue[z],ne=typeof $==&amp;amp;quot;number&amp;amp;quot;;if(!ne){if($==P&amp;amp;amp;&amp;amp;amp;$.length==1&amp;amp;amp;&amp;amp;amp;$!=&amp;amp;quot;m&amp;amp;quot;)continue;P=$}O&amp;amp;amp;&amp;amp;amp;ne&amp;amp;amp;&amp;amp;amp;$&amp;amp;gt;=0&amp;amp;amp;&amp;amp;amp;pe.push(&amp;amp;quot; &amp;amp;quot;),pe.push($),O=ne}return pe.join(&amp;amp;quot;&amp;amp;quot;)}for(var B=[],U=0,j={M:2,L:2,Q:4,C:6},W=0,te=0,X=0,Z=0,G=0,q=0,J=0;J&amp;amp;lt;T.length;J++){var Y=T[J],Q=j[Y]?j[Y]:0,fe=[],de,me,ie,ee;if(Y==&amp;amp;quot;L&amp;amp;quot;)de=D[U]-W,me=D[U+1]-te,ie=F(de+X),ee=F(me+Z),T[J+1]==&amp;amp;quot;Z&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;D[U]==G&amp;amp;amp;&amp;amp;amp;D[U+1]==q?(ie=de,ee=me):ie==0&amp;amp;amp;&amp;amp;amp;ee==0||(ie==0?fe.push(&amp;amp;quot;v&amp;amp;quot;,ee):ee==0?fe.push(&amp;amp;quot;h&amp;amp;quot;,ie):fe.push(&amp;amp;quot;l&amp;amp;quot;,ie,ee));else{fe.push(Y.toLowerCase());for(var se=0;se&amp;amp;lt;Q;se+=2)de=D[U+se]-W,me=D[U+se+1]-te,ie=F(de+X),ee=F(me+Z),fe.push(ie,ee)}Q!=0&amp;amp;amp;&amp;amp;amp;(X+=de-ie,Z+=me-ee);for(var ce=fe,se=0;se&amp;amp;lt;ce.length;se++)B.push(ce[se]);Q!=0&amp;amp;amp;&amp;amp;amp;(U+=Q,W=D[U-2],te=D[U-1]),Y==&amp;amp;quot;M&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(G=W,q=te),Y==&amp;amp;quot;Z&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(W=G,te=q)}return N(B)}function w(A){var C={cmds:[],crds:[]};return oe.U.SVG.svgToPath(A,C),{cmds:C.cmds,crds:C.crds}}function y(A,C,T,D){for(var F=C&amp;amp;gt;&amp;amp;gt;1,N=T&amp;amp;gt;&amp;amp;gt;1,B=new Uint8Array(F*N*4),U=new Uint32Array(A.buffer),j=new Uint32Array(B.buffer),W=0;W&amp;amp;lt;N;W++)for(var te=0;te&amp;amp;lt;F;te++){var X=W*F+te,Z=(W&amp;amp;lt;&amp;amp;lt;1)*C+(te&amp;amp;lt;&amp;amp;lt;1),G=U[Z],q=U[Z+1],J=U[Z+C],Y=U[Z+C+1],Q=G&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,fe=q&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,de=J&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,me=Y&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;24,ie=Q+fe+de+me;if(ie==1020){var ee=(G&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255)+(q&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255)+(J&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255)+(Y&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255)+2&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;2,se=(G&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+(q&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+(J&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+(Y&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)+2&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;2,ce=(G&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+(q&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+(J&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+(Y&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)+2&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;2;j[X]=255&amp;amp;lt;&amp;amp;lt;24|ce&amp;amp;lt;&amp;amp;lt;16|se&amp;amp;lt;&amp;amp;lt;8|ee}else if(ie==0)j[X]=0;else{var ee=(G&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255)*Q+(q&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255)*fe+(J&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255)*de+(Y&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0&amp;amp;amp;255)*me,se=(G&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)*Q+(q&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)*fe+(J&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)*de+(Y&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;8&amp;amp;amp;255)*me,ce=(G&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)*Q+(q&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)*fe+(J&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)*de+(Y&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;16&amp;amp;amp;255)*me,ue=1/ie;ee=~~(ee*ue+.5),se=~~(se*ue+.5),ce=~~(ce*ue+.5),j[X]=ie+2&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;2&amp;amp;lt;&amp;amp;lt;24|ce&amp;amp;lt;&amp;amp;lt;16|se&amp;amp;lt;&amp;amp;lt;8|ee}}return{buff:B,w:F,h:N}}var S,_;function b(A,C){for(var T=0,D=A.cmds,F=A.crds,N=0;N&amp;amp;lt;D.length;N++){var B=D[N];if(B==&amp;amp;quot;M&amp;amp;quot;)C.moveTo(F[T],F[T+1]),T+=2;else if(B==&amp;amp;quot;L&amp;amp;quot;)C.lineTo(F[T],F[T+1]),T+=2;else if(B==&amp;amp;quot;C&amp;amp;quot;)C.bezierCurveTo(F[T],F[T+1],F[T+2],F[T+3],F[T+4],F[T+5]),T+=6;else if(B==&amp;amp;quot;Q&amp;amp;quot;)C.quadraticCurveTo(F[T],F[T+1],F[T+2],F[T+3]),T+=4;else if(B[0]==&amp;amp;quot;d&amp;amp;quot;){var U=window.UPNG,j=F[T],W=F[T+1],te=F[T+2],X=F[T+3],Z=F[T+4],G=F[T+5],q=F[T+6],J=F[T+7];if(T+=8,U==null){C.moveTo(j,W),C.lineTo(te,X),C.lineTo(Z,G),C.lineTo(q,J),C.closePath();continue}for(var Y=te-j,Q=X-W,fe=q-j,de=J-W,me=atob(B.slice(22)),ie=new Uint8Array(me.length),ee=0;ee&amp;amp;lt;me.length;ee++)ie[ee]=me.charCodeAt(ee);for(var se=U.decode(ie.buffer),ce=se.width,ue=se.height,pe=new Uint8Array(U.toRGBA8(se)[0]),O=C.getTransform(),P=Math.sqrt(Math.abs(O.a*O.d-O.b*O.c))*Math.sqrt(fe*fe+de*de)/ue;P&amp;amp;lt;.5;){var z=y(pe,ce,ue);pe=z.buff,ce=z.w,ue=z.h,P*=2}S==null&amp;amp;amp;&amp;amp;amp;(S=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),_=S.getContext(&amp;amp;quot;2d&amp;amp;quot;)),(S.width!=ce||S.height!=ue)&amp;amp;amp;&amp;amp;amp;(S.width=ce,S.height=ue),_.putImageData(new ImageData(new Uint8ClampedArray(pe.buffer),ce,ue),0,0),C.save(),C.transform(Y,Q,fe,de,j,W),C.scale(1/ce,1/ue),C.drawImage(S,0,0),C.restore()}else if(B.charAt(0)==&amp;amp;quot;#&amp;amp;quot;||B.charAt(0)==&amp;amp;quot;r&amp;amp;quot;)C.beginPath(),C.fillStyle=B;else if(B.charAt(0)==&amp;amp;quot;O&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;B!=&amp;amp;quot;OX&amp;amp;quot;){C.beginPath();var $=B.split(&amp;amp;quot;-&amp;amp;quot;);C.lineWidth=parseFloat($[2]),C.lineCap=[&amp;amp;quot;butt&amp;amp;quot;,&amp;amp;quot;round&amp;amp;quot;,&amp;amp;quot;square&amp;amp;quot;][parseFloat($[3])],C.lineJoin=[&amp;amp;quot;miter&amp;amp;quot;,&amp;amp;quot;round&amp;amp;quot;,&amp;amp;quot;bevel&amp;amp;quot;][parseFloat($[4])],C.miterLimit=parseFloat($[5]),C.lineDashOffset=parseFloat($[6]),C.setLineDash($[7].split(&amp;amp;quot;,&amp;amp;quot;).map(parseFloat)),C.strokeStyle=$[1]}else B==&amp;amp;quot;Z&amp;amp;quot;?C.closePath():B==&amp;amp;quot;X&amp;amp;quot;?C.fill():B==&amp;amp;quot;OX&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;C.stroke()}}function I(A,C,T,D,F){for(var N=C.stack,B=C.nStems,U=C.haveWidth,j=C.width,W=C.open,te=0,X=C.x,Z=C.y,G=0,q=0,J=0,Y=0,Q=0,fe=0,de=0,me=0,ie=0,ee=0,se=oe.T.CFF,ce=D.nominalWidthX,ue={val:0,size:0};te&amp;amp;lt;A.length;){se.getCharString(A,te,ue);var pe=ue.val;if(te+=ue.size,pe==&amp;amp;quot;o1&amp;amp;quot;||pe==&amp;amp;quot;o18&amp;amp;quot;){var O;O=N.length%2!==0,O&amp;amp;amp;&amp;amp;amp;!U&amp;amp;amp;&amp;amp;amp;(j=N.shift()+ce),B+=N.length&amp;amp;gt;&amp;amp;gt;1,N.length=0,U=!0}else if(pe==&amp;amp;quot;o3&amp;amp;quot;||pe==&amp;amp;quot;o23&amp;amp;quot;){var O;O=N.length%2!==0,O&amp;amp;amp;&amp;amp;amp;!U&amp;amp;amp;&amp;amp;amp;(j=N.shift()+ce),B+=N.length&amp;amp;gt;&amp;amp;gt;1,N.length=0,U=!0}else if(pe==&amp;amp;quot;o4&amp;amp;quot;)N.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;!U&amp;amp;amp;&amp;amp;amp;(j=N.shift()+ce,U=!0),W&amp;amp;amp;&amp;amp;amp;i.ClosePath(F),Z+=N.pop(),i.MoveTo(F,X,Z),W=!0;else if(pe==&amp;amp;quot;o5&amp;amp;quot;)for(;N.length&amp;amp;gt;0;)X+=N.shift(),Z+=N.shift(),i.LineTo(F,X,Z);else if(pe==&amp;amp;quot;o6&amp;amp;quot;||pe==&amp;amp;quot;o7&amp;amp;quot;)for(var P=N.length,z=pe==&amp;amp;quot;o6&amp;amp;quot;,$=0;$&amp;amp;lt;P;$++){var ne=N.shift();z?X+=ne:Z+=ne,z=!z,i.LineTo(F,X,Z)}else if(pe==&amp;amp;quot;o8&amp;amp;quot;||pe==&amp;amp;quot;o24&amp;amp;quot;){for(var P=N.length,K=0;K+6&amp;amp;lt;=P;)G=X+N.shift(),q=Z+N.shift(),J=G+N.shift(),Y=q+N.shift(),X=J+N.shift(),Z=Y+N.shift(),i.CurveTo(F,G,q,J,Y,X,Z),K+=6;pe==&amp;amp;quot;o24&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(X+=N.shift(),Z+=N.shift(),i.LineTo(F,X,Z))}else{if(pe==&amp;amp;quot;o11&amp;amp;quot;)break;if(pe==&amp;amp;quot;o1234&amp;amp;quot;||pe==&amp;amp;quot;o1235&amp;amp;quot;||pe==&amp;amp;quot;o1236&amp;amp;quot;||pe==&amp;amp;quot;o1237&amp;amp;quot;)pe==&amp;amp;quot;o1234&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(G=X+N.shift(),q=Z,J=G+N.shift(),Y=q+N.shift(),ie=J+N.shift(),ee=Y,Q=ie+N.shift(),fe=Y,de=Q+N.shift(),me=Z,X=de+N.shift(),i.CurveTo(F,G,q,J,Y,ie,ee),i.CurveTo(F,Q,fe,de,me,X,Z)),pe==&amp;amp;quot;o1235&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(G=X+N.shift(),q=Z+N.shift(),J=G+N.shift(),Y=q+N.shift(),ie=J+N.shift(),ee=Y+N.shift(),Q=ie+N.shift(),fe=ee+N.shift(),de=Q+N.shift(),me=fe+N.shift(),X=de+N.shift(),Z=me+N.shift(),N.shift(),i.CurveTo(F,G,q,J,Y,ie,ee),i.CurveTo(F,Q,fe,de,me,X,Z)),pe==&amp;amp;quot;o1236&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(G=X+N.shift(),q=Z+N.shift(),J=G+N.shift(),Y=q+N.shift(),ie=J+N.shift(),ee=Y,Q=ie+N.shift(),fe=Y,de=Q+N.shift(),me=fe+N.shift(),X=de+N.shift(),i.CurveTo(F,G,q,J,Y,ie,ee),i.CurveTo(F,Q,fe,de,me,X,Z)),pe==&amp;amp;quot;o1237&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(G=X+N.shift(),q=Z+N.shift(),J=G+N.shift(),Y=q+N.shift(),ie=J+N.shift(),ee=Y+N.shift(),Q=ie+N.shift(),fe=ee+N.shift(),de=Q+N.shift(),me=fe+N.shift(),Math.abs(de-X)&amp;amp;gt;Math.abs(me-Z)?X=de+N.shift():Z=me+N.shift(),i.CurveTo(F,G,q,J,Y,ie,ee),i.CurveTo(F,Q,fe,de,me,X,Z));else if(pe==&amp;amp;quot;o14&amp;amp;quot;){if(N.length&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;N.length!=4&amp;amp;amp;&amp;amp;amp;!U&amp;amp;amp;&amp;amp;amp;(j=N.shift()+T.nominalWidthX,U=!0),N.length==4){var ve=N.shift(),ge=N.shift(),Te=N.shift(),xe=N.shift(),Ie=se.glyphBySE(T,Te),Ce=se.glyphBySE(T,xe);I(T.CharStrings[Ie],C,T,D,F),C.x=ve,C.y=ge,I(T.CharStrings[Ce],C,T,D,F)}W&amp;amp;amp;&amp;amp;amp;(i.ClosePath(F),W=!1)}else if(pe==&amp;amp;quot;o19&amp;amp;quot;||pe==&amp;amp;quot;o20&amp;amp;quot;){var O;O=N.length%2!==0,O&amp;amp;amp;&amp;amp;amp;!U&amp;amp;amp;&amp;amp;amp;(j=N.shift()+ce),B+=N.length&amp;amp;gt;&amp;amp;gt;1,N.length=0,U=!0,te+=B+7&amp;amp;gt;&amp;amp;gt;3}else if(pe==&amp;amp;quot;o21&amp;amp;quot;)N.length&amp;amp;gt;2&amp;amp;amp;&amp;amp;amp;!U&amp;amp;amp;&amp;amp;amp;(j=N.shift()+ce,U=!0),Z+=N.pop(),X+=N.pop(),W&amp;amp;amp;&amp;amp;amp;i.ClosePath(F),i.MoveTo(F,X,Z),W=!0;else if(pe==&amp;amp;quot;o22&amp;amp;quot;)N.length&amp;amp;gt;1&amp;amp;amp;&amp;amp;amp;!U&amp;amp;amp;&amp;amp;amp;(j=N.shift()+ce,U=!0),X+=N.pop(),W&amp;amp;amp;&amp;amp;amp;i.ClosePath(F),i.MoveTo(F,X,Z),W=!0;else if(pe==&amp;amp;quot;o25&amp;amp;quot;){for(;N.length&amp;amp;gt;6;)X+=N.shift(),Z+=N.shift(),i.LineTo(F,X,Z);G=X+N.shift(),q=Z+N.shift(),J=G+N.shift(),Y=q+N.shift(),X=J+N.shift(),Z=Y+N.shift(),i.CurveTo(F,G,q,J,Y,X,Z)}else if(pe==&amp;amp;quot;o26&amp;amp;quot;)for(N.length%2&amp;amp;amp;&amp;amp;amp;(X+=N.shift());N.length&amp;amp;gt;0;)G=X,q=Z+N.shift(),J=G+N.shift(),Y=q+N.shift(),X=J,Z=Y+N.shift(),i.CurveTo(F,G,q,J,Y,X,Z);else if(pe==&amp;amp;quot;o27&amp;amp;quot;)for(N.length%2&amp;amp;amp;&amp;amp;amp;(Z+=N.shift());N.length&amp;amp;gt;0;)G=X+N.shift(),q=Z,J=G+N.shift(),Y=q+N.shift(),X=J+N.shift(),Z=Y,i.CurveTo(F,G,q,J,Y,X,Z);else if(pe==&amp;amp;quot;o10&amp;amp;quot;||pe==&amp;amp;quot;o29&amp;amp;quot;){var Ge=pe==&amp;amp;quot;o10&amp;amp;quot;?D:T;if(N.length==0)console.log(&amp;amp;quot;error: empty stack&amp;amp;quot;);else{var Me=N.pop(),nt=Ge.Subrs[Me+Ge.Bias];C.x=X,C.y=Z,C.nStems=B,C.haveWidth=U,C.width=j,C.open=W,I(nt,C,T,D,F),X=C.x,Z=C.y,B=C.nStems,U=C.haveWidth,j=C.width,W=C.open}}else if(pe==&amp;amp;quot;o30&amp;amp;quot;||pe==&amp;amp;quot;o31&amp;amp;quot;){var P,Gt=N.length,K=0,ft=pe==&amp;amp;quot;o31&amp;amp;quot;;for(P=Gt&amp;amp;amp;-3,K+=Gt-P;K&amp;amp;lt;P;)ft?(G=X+N.shift(),q=Z,J=G+N.shift(),Y=q+N.shift(),Z=Y+N.shift(),P-K==5?(X=J+N.shift(),K++):X=J,ft=!1):(G=X,q=Z+N.shift(),J=G+N.shift(),Y=q+N.shift(),X=J+N.shift(),P-K==5?(Z=Y+N.shift(),K++):Z=Y,ft=!0),i.CurveTo(F,G,q,J,Y,X,Z),K+=4}else{if((pe+&amp;amp;quot;&amp;amp;quot;).charAt(0)==&amp;amp;quot;o&amp;amp;quot;)throw console.log(&amp;amp;quot;Unknown operation: &amp;amp;quot;+pe,A),pe;N.push(pe)}}}C.x=X,C.y=Z,C.nStems=B,C.haveWidth=U,C.width=j,C.open=W}function E(A,C){var T=function(D){var F=0;return(D&amp;amp;amp;4294967168)==0?F=1:(D&amp;amp;amp;4294965248)==0?F=2:(D&amp;amp;amp;4294901760)==0?F=3:(D&amp;amp;amp;4292870144)==0&amp;amp;amp;&amp;amp;amp;(F=4),F};fetch(A).then(function(D){return D.arrayBuffer()}).then(function(D){return WebAssembly.instantiate(D)}).then(function(D){console.log(&amp;amp;quot;HB ready&amp;amp;quot;);var F=D.instance.exports,N=F.memory,B,U,j,W,te,X,Z,G,q;oe.U.shapeHB=function(){var J=function(Q){for(var fe=F.hb_buffer_get_length(Q),de=[],me=F.hb_buffer_get_glyph_infos(Q,0)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;2,ie=F.hb_buffer_get_glyph_positions(Q,0)&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;2,ee=0;ee&amp;amp;lt;fe;++ee){var se=me+ee*5,ce=ie+ee*5;de.push({g:U[se+0],cl:U[se+2],ax:j[ce+0],ay:j[ce+1],dx:j[ce+2],dy:j[ce+3]})}return de},Y;return function(Q,fe,de){var me=Q._data,ie=Q.name.postScriptName,ee=de.ltr,se=de.fts,ce=de.axs;if(Q.fvar&amp;amp;amp;&amp;amp;amp;ce==null&amp;amp;amp;&amp;amp;amp;(ce=Q.fvar[1][Q._index][2]),B=new Uint8Array(N.buffer),U=new Uint32Array(N.buffer),j=new Int32Array(N.buffer),W=new Float32Array(N.buffer),te!=ie&amp;amp;amp;&amp;amp;amp;(X!=null&amp;amp;amp;&amp;amp;amp;(F.hb_blob_destroy(X),F.free(Z),F.hb_face_destroy(G),F.hb_font_destroy(q)),Z=F.malloc(me.byteLength),B.set(me,Z),X=F.hb_blob_create(Z,me.byteLength,2,0,0),G=F.hb_face_create(X,Q._index),q=F.hb_font_create(G),te=ie),window.TextEncoder==null){alert(&amp;amp;quot;Your browser is too old. Please, update it.&amp;amp;quot;);return}Y==null&amp;amp;amp;&amp;amp;amp;(Y=new window.TextEncoder(&amp;amp;quot;utf8&amp;amp;quot;));var ue=F.hb_buffer_create(),pe=Y.encode(fe),O=pe.length,P=F.malloc(O);B.set(pe,P),F.hb_buffer_add_utf8(ue,P,O,0,O),F.free(P);var z=oe.B,$=0;if(se){$=F.malloc(16*se.length);for(var ne=0;ne&amp;amp;lt;se.length;ne++){var K=se[ne],ve=$+ne*16,ge=ve&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;2;z.writeASCII(B,ve,K[0].split(&amp;amp;quot;&amp;amp;quot;).reverse().join(&amp;amp;quot;&amp;amp;quot;)),U[ge+1]=K[1],U[ge+2]=K[2],U[ge+3]=K[3]}}var Te=0;if(ce&amp;amp;amp;&amp;amp;amp;Q.fvar){var xe=Q.fvar[0];Te=F.malloc(8*ce.length);for(var ne=0;ne&amp;amp;lt;ce.length;ne++){var ve=Te+ne*8,ge=ve&amp;amp;gt;&amp;amp;gt;&amp;amp;gt;2;z.writeASCII(B,ve,xe[ne][0].split(&amp;amp;quot;&amp;amp;quot;).reverse().join(&amp;amp;quot;&amp;amp;quot;)),W[ge+1]=ce[ne]}}ce&amp;amp;amp;&amp;amp;amp;F.hb_font_set_variations(q,Te,ce.length),F.hb_buffer_set_direction(ue,ee?4:5),F.hb_buffer_guess_segment_properties(ue),F.hb_shape(q,ue,$,se?se.length:0);var Ie=J(ue);F.hb_buffer_destroy(ue),se&amp;amp;amp;&amp;amp;amp;F.free($),ce&amp;amp;amp;&amp;amp;amp;F.free(Te);var Ce=Ie.slice(0);ee||Ce.reverse();for(var Ge=0,Me=0,ne=1;ne&amp;amp;lt;Ce.length;ne++){for(var nt=Ce[ne],Gt=nt.cl;;){var ft=fe.codePointAt(Ge),Ri=T(ft);if(Me+Ri&amp;amp;lt;=Gt)Me+=Ri,Ge+=ft&amp;amp;lt;=65535?1:2;else break}nt.cl=Ge}return Ie}}(),C()})}return{shape:r,shapeToPath:n,codeToGlyph:h,glyphToPath:l,pathToSVG:v,SVGToPath:w,pathToContext:b,initHB:E}}();var ty=Se(aa());var xP=Se(Bt());var ey={M:2,L:2,C:6,Q:4},ry=[&amp;amp;quot;ttf&amp;amp;quot;,&amp;amp;quot;otf&amp;amp;quot;,&amp;amp;quot;woff&amp;amp;quot;],yE=new RegExp(`\\.(${ry.join(&amp;amp;quot;|&amp;amp;quot;)})`,&amp;amp;quot;i&amp;amp;quot;),vE=new RegExp(`([^/]+)(\\.(?:${ry.join(&amp;amp;quot;|&amp;amp;quot;)}))`,&amp;amp;quot;i&amp;amp;quot;),iy=&amp;amp;quot;Sorry, only TTF, OTF and WOFF files are supported.&amp;amp;quot;,xE=[&amp;amp;quot;weight&amp;amp;quot;,&amp;amp;quot;stretch&amp;amp;quot;,&amp;amp;quot;style&amp;amp;quot;],oa=class{constructor(t,r,n,s,a){if(!(r instanceof FontFace))throw Error(&amp;amp;quot;FontFace is required&amp;amp;quot;);this._pInst=t,this.name=n,this.path=s,this.data=a,this.face=r}static hasGlyphData(t){let{font:r}=t;return typeof r==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;typeof r.data&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;}fontBounds(t,r,n,s,a,o){({width:s,height:a,options:o}=this._parseArgs(s,a,o));let u=o?.graphics?._renderer||this._pInst._renderer;if(!u)throw Error(&amp;amp;quot;p5 or graphics required for fontBounds()&amp;amp;quot;);return u.fontBounds(t,r,n,s,a)}textBounds(t,r,n,s,a,o){({width:s,height:a,options:o}=this._parseArgs(s,a,o));let u=o?.graphics?._renderer||this._pInst._renderer;if(!u)throw Error(&amp;amp;quot;p5 or graphics required for fontBounds()&amp;amp;quot;);return u.textBounds(t,r,n,s,a)}textToPaths(t,r,n,s,a,o){if({width:s,height:a,options:o}=this._parseArgs(s,a,o),!this.data)throw Error(&amp;amp;#39;No font data available for &amp;amp;quot;&amp;amp;#39;+this.name+`&amp;amp;quot;
   7446 <a href="#l7427" class="line" id="l7427">   7427</a> &lt;a href=&quot;#l7408&quot; class=&quot;line&quot; id=&quot;l7408&quot;&gt;   7408&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2308&amp;quot; id=&amp;quot;h4-0-2308&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Try downloading a local copy of the font file`);return this._lineateAndPathify(t,r,n,s,a,o).map(l=&amp;amp;gt;l.glyphs).flat().map(l=&amp;amp;gt;l.path.commands).flat()}textToPoints(t,r,n,s,a,o){return this.textToContours(t,r,n,s,a,o).reduce((h,l)=&amp;amp;gt;(h.push(...l),h),[])}textToContours(t,r=0,n=0,s,a,o){({width:s,height:a,options:o}=this._parseArgs(s,a,o));let u=this.textToPaths(t,r,n,s,a,o),h=[];for(let l of u)l[0]===&amp;amp;quot;M&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;h.push([]),h[h.length-1].push(l);return h.map(l=&amp;amp;gt;wE(l,o,this))}textToModel(t,r,n,s,a,o){({width:s,height:a,options:o}=this._parseArgs(s,a,o));let u=o?.extrude||0,h=this.textToContours(t,r,n,s,a,o),l=this._pInst.buildGeometry(()=&amp;amp;gt;{if(u===0){this._pInst.beginShape(),this._pInst.normal(0,0,1);for(let c of h){this._pInst.beginContour();for(let{x:p,y:f}of c)this._pInst.vertex(p,f);this._pInst.endContour(this._pInst.CLOSE)}this._pInst.endShape()}else{for(let c of[1,-1]){this._pInst.beginShape();for(let p of h){this._pInst.beginContour();for(let{x:f,y:d}of p)this._pInst.vertex(f,d,c*u*.5);this._pInst.endContour(this._pInst.CLOSE)}this._pInst.endShape(),this._pInst.beginShape()}for(let c of h){this._pInst.beginShape(this._pInst.QUAD_STRIP);for(let p of c)for(let f of[-1,1])this._pInst.vertex(p.x,p.y,f*u*.5);this._pInst.endShape()}}});if(u!==0){l.computeNormals();for(let c of l.faces)if(c.every(p=&amp;amp;gt;l.vertices[p].z&amp;amp;lt;=-u*.5+.1)){for(let p of c)l.vertexNormals[p].set(0,0,-1);c.reverse()}}return l}variations(){let t={};if(this.data){let r=this.face?.axes;r&amp;amp;amp;&amp;amp;amp;r.forEach(n=&amp;amp;gt;{t[n.tag]=n.value})}return xE.forEach(r=&amp;amp;gt;{let n=this.face[r];n!==&amp;amp;quot;normal&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(t[r]=t[r]||n)}),t}metadata(){let t=this.data?.name||{};for(let r in this.face)/^load/.test(r)||(t[r]=t[r]||this.face[r]);return t}static async list(t=!1){if(t){console.log(&amp;amp;quot;There are&amp;amp;quot;,document.fonts.size,`font-faces
   7447 <a href="#l7428" class="line" id="l7428">   7428</a> &lt;a href=&quot;#l7409&quot; class=&quot;line&quot; id=&quot;l7409&quot;&gt;   7409&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2309&amp;quot; id=&amp;quot;h4-0-2309&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`);let r=0;for(let n of document.fonts.values()){console.log(&amp;amp;quot;FontFace: {&amp;amp;quot;);for(let s in n)console.log(&amp;amp;quot;  &amp;amp;quot;+s+&amp;amp;quot;: &amp;amp;quot;+n[s]);console.log(`}
   7448 <a href="#l7429" class="line" id="l7429">   7429</a> &lt;a href=&quot;#l7410&quot; class=&quot;line&quot; id=&quot;l7410&quot;&gt;   7410&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2310&amp;quot; id=&amp;quot;h4-0-2310&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),n.status===&amp;amp;quot;loaded&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;r++}console.log(r+&amp;amp;quot; loaded&amp;amp;quot;)}return await Array.from(document.fonts)}_verticalAlign(t){let{sCapHeight:r}=this.data?.[&amp;amp;quot;OS/2&amp;amp;quot;]||{},{unitsPerEm:n=1e3}=this.data?.head||{},{ascender:s=0,descender:a=0}=this.data?.hhea||{},o=s/2;return((r||s+a)/2-o)*t/n}_lineateAndPathify(t,r,n,s,a,o={}){let u=o?.graphics?._renderer||this._pInst._renderer,h=u.drawingContext.textBaseline,{lines:l,bounds:c}=u._computeBounds(qt._FONT_BOUNDS,t,r,n,s,a,{ignoreRectMode:!0,...o});l=this._position(u,l,c,s,a);let p=this.data?.head?.unitsPerEm||1e3,f=u.states.textSize/p,d=this._currentAxes(u),m=l.map(g=&amp;amp;gt;this._lineToGlyphs(g,{scale:f,axs:d}));return u.drawingContext.textBaseline=h,m}_currentAxes(t){let r;return(this.data?.fvar?.length??0)&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;(r=this.data.fvar[0].map(([s,a,o,u,h,l])=&amp;amp;gt;{if(!t)return o;if(s===&amp;amp;quot;wght&amp;amp;quot;)return t.states.fontWeight;if(s===&amp;amp;quot;wdth&amp;amp;quot;)return 100;if(t.textCanvas().style.fontVariationSettings){let c=new RegExp(`\\b${s}s+(d+)`).exec(t.textCanvas().style.fontVariationSettings);return c?parseInt(c[1]):o}else return o})),r}_textToPathPoints(t,r,n,s,a,o){({width:s,height:a,options:o}=this._parseArgs(s,a,o));let u=this.textToPaths(t,r,n,s,a,o),h=(f,d,m,g)=&amp;amp;gt;{if(fn.dist(d.x,d.y,m.x,m.y)&amp;amp;gt;g){let v={x:(d.x+m.x)/2,y:(d.y+m.y)/2};f.push(v),h(f,d,v,g),h(f,v,m,g)}},l=[],{textSize:c}=this._pInst._renderer.states,p=c/this.data.head.unitsPerEm*500;for(let f=0;f&amp;amp;lt;u.length;f++){let{type:d,data:m}=u[f];if(d!==&amp;amp;quot;Z&amp;amp;quot;){let g={x:m[m.length-2],y:m[m.length-1]};d===&amp;amp;quot;L&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;l.length&amp;amp;amp;&amp;amp;amp;!o?.nodivide&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;h(l,l[l.length-1],g,p),l.push(g)}}return l}_parseArgs(t,r,n={}){return typeof t==&amp;amp;quot;object&amp;amp;quot;?(n=t,t=r=void 0):typeof r==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(n=r,r=void 0),{width:t,height:r,options:n}}_position(t,r,n,s,a){let{textAlign:o,textLeading:u}=t.states,l=this._measureTextDefault(t,&amp;amp;quot;X&amp;amp;quot;).fontBoundingBoxAscent,c=(p,f)=&amp;amp;gt;{let d=n.x,m=n.y+f*u+l,g=t._fontWidthSingle(p);if(o===Et?d+=(n.w-g)/2:o===Kn&amp;amp;amp;&amp;amp;amp;(d+=n.w-g),typeof s&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;)switch(t.states.rectMode){case Et:d-=s/2,m-=a/2;break;case Gi:d-=s,m-=a;break}return{text:p,x:d,y:m}};return r.map(c)}_lineToGlyphs(t,{scale:r=1,axs:n}={}){if(!this.data)throw Error(&amp;amp;#39;No font data available for &amp;amp;quot;&amp;amp;#39;+this.name+`&amp;amp;quot;
   7449 <a href="#l7430" class="line" id="l7430">   7430</a> &lt;a href=&quot;#l7411&quot; class=&quot;line&quot; id=&quot;l7411&quot;&gt;   7411&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2311&amp;quot; id=&amp;quot;h4-0-2311&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Try downloading a local copy of the font file`);let s=oe.U.shape(this.data,t.text,{axs:n});return t.glyphShapes=s,t.glyphs=this._shapeToPaths(s,t,{scale:r,axs:n}),t}_positionGlyphs(t,r){let n=r?.graphics?._renderer||this._pInst._renderer,s=this._currentAxes(n),a=oe.U.shape(this.data,t,{axs:s}),o=[],u=0;for(let h of a)o.push({x:u,index:h.g,shape:h}),u+=h.ax;return o}_singleShapeToPath(t,{scale:r=1,x:n=0,y:s=0,lineX:a=0,lineY:o=0,axs:u}={}){let h=this.data,l=0,{g:c,ax:p,ay:f,dx:d,dy:m}=t,{crds:g,cmds:v}=oe.U.glyphToPath(h,c,!0,u),w={path:{commands:[]}};for(let y=0;y&amp;amp;lt;v.length;y++){let S=v[y],_=[S];if(S in ey){let b=ey[S];for(let I=0;I&amp;amp;lt;b;I+=2){let E=g[I+l]+n+d,A=g[I+l+1]+s+m,C=a+E*r,T=o+A*-r;_.push(C),_.push(T)}l+=b}w.path.commands.push(_)}return{glyph:w,ax:p,ay:f}}_shapeToPaths(t,r,{scale:n=1,axs:s}={}){let a=0,o=0,u=[];if(t.length!==r.text.length)throw Error(&amp;amp;quot;Invalid shape data&amp;amp;quot;);for(let h=0;h&amp;amp;lt;t.length;h++){let{glyph:l,ax:c,ay:p}=this._singleShapeToPath(t[h],{scale:n,x:a,y:o,lineX:r.x,lineY:r.y,axs:s});u.push(l),a+=c,o+=p}return u}_measureTextDefault(t,r){let{textAlign:n,textBaseline:s}=t.states,a=t.textDrawingContext();a.textAlign=&amp;amp;quot;left&amp;amp;quot;,a.textBaseline=&amp;amp;quot;alphabetic&amp;amp;quot;;let o=a.measureText(r);return a.textAlign=n,a.textBaseline=s,o}drawPaths(t,r,n){t.strokeStyle=n?.stroke||t.strokeStyle,t.fillStyle=n?.fill||t.fillStyle,t.beginPath(),r.forEach(([s,...a])=&amp;amp;gt;{s===&amp;amp;quot;M&amp;amp;quot;?t.moveTo(...a):s===&amp;amp;quot;L&amp;amp;quot;?t.lineTo(...a):s===&amp;amp;quot;C&amp;amp;quot;?t.bezierCurveTo(...a):s===&amp;amp;quot;Q&amp;amp;quot;?t.quadraticCurveTo(...a):s===&amp;amp;quot;Z&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;t.closePath()}),n?.fill&amp;amp;amp;&amp;amp;amp;t.fill(),n?.stroke&amp;amp;amp;&amp;amp;amp;t.stroke()}_pathsToCommands(t,r){let n=[];for(let s=0;s&amp;amp;lt;t.length;s++){let a=t[s],{x:o,y:u,path:h}=a,{crds:l,cmds:c}=h;for(let p=0,f=0;f&amp;amp;lt;c.length;f++){let d=c[f],m={type:d,data:[]};if(d==&amp;amp;quot;M&amp;amp;quot;||d==&amp;amp;quot;L&amp;amp;quot;)m.data.push(o+l[p]*r,u+l[p+1]*-r),p+=2;else if(d==&amp;amp;quot;C&amp;amp;quot;){for(let g=0;g&amp;amp;lt;6;g+=2)m.data.push(o+l[p+g]*r,u+l[p+g+1]*-r);p+=6}else if(d==&amp;amp;quot;Q&amp;amp;quot;){for(let g=0;g&amp;amp;lt;4;g+=2)m.data.push(o+l[p+g]*r,u+l[p+g+1]*-r);p+=4}n.push(m)}}return n}};async function Zl(i,t,r,n,s){let a=bE(t,r,n,s);return a.status!==&amp;amp;quot;loaded&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;await a.load(),document.fonts.add(a),new oa(i,a,t,r,s)}function bE(i,t,r,n){i.includes(&amp;amp;quot; &amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(i=&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;+i+&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;);let s=n?._compressedData??n?._data;if(!s){if(!yE.test(t))throw Error(iy);t.startsWith(&amp;amp;quot;url(&amp;amp;quot;)||(t=&amp;amp;quot;url(&amp;amp;quot;+t+&amp;amp;quot;)&amp;amp;quot;),s=t}if((n?.fvar?.length??0)&amp;amp;gt;0){r=r||{};for(let[o,u,h,l,c,p]of n.fvar[0])o===&amp;amp;quot;wght&amp;amp;quot;?r.weight=`${u} ${l}`:o===&amp;amp;quot;wdth&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r.stretch=`${u}% ${l}%`)}let a=new FontFace(i,s,r);if(a.status===&amp;amp;quot;error&amp;amp;quot;)throw Error(&amp;amp;#39;Failed to create FontFace for &amp;amp;quot;&amp;amp;#39;+i+&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;);return a}function _E(i,t){let r,n=i?.name;if(n){if(n.fullName)return n.fullName;n.familyName&amp;amp;amp;&amp;amp;amp;(r=n.familyName)}if(!r){let s=vE.exec(t);s&amp;amp;amp;&amp;amp;amp;s.length&amp;amp;gt;=3?r=s[1]:r=t}return r.includes(&amp;amp;quot; &amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(r=r.replace(/ /g,&amp;amp;quot;_&amp;amp;quot;)),r}function wE(i,t,r){let n=(f,d)=&amp;amp;gt;{if(typeof f!=&amp;amp;quot;object&amp;amp;quot;)f=d;else for(let m in d)typeof f[m]&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(f[m]=d[m]);return f},s=(f,d)=&amp;amp;gt;{let m=f.length;return f[d&amp;amp;lt;0?d%m+m:d%m]},a=(f,d)=&amp;amp;gt;{d=d||0;let m=0;for(let g=f.length-1;f.length&amp;amp;gt;3&amp;amp;amp;&amp;amp;amp;g&amp;amp;gt;=0;--g)collinear(s(f,g-1),s(f,g),s(f,g+1),d)&amp;amp;amp;&amp;amp;amp;(f.splice(g%f.length,1),m++);return m},o=(0,ty.createFromCommands)(Lp(i)),u=n(t,{sampleFactor:.1,simplifyThreshold:0}),h=Math.max(1,Math.ceil(o.getTotalLength()*u.sampleFactor)),l=[],c=r._pInst.angleMode(),p=r._pInst.DEGREES;for(let f=0;f&amp;amp;lt;h;f++){let d=o.getTotalLength()*(h===1?0:f/(h-1));l.push({...o.getPointAtLength(d),get angle(){let m=o.getAngleAtLength(d);return c===p?m*180/Math.PI:m},get alpha(){return this.angle}})}return u.simplifyThreshold&amp;amp;amp;&amp;amp;amp;a(l,u.simplifyThreshold),l}function CE(i){return(i.startsWith(&amp;amp;#39;&amp;amp;quot;&amp;amp;#39;)||i.startsWith(&amp;amp;quot;&amp;amp;#39;&amp;amp;quot;))&amp;amp;amp;&amp;amp;amp;i.at(0)===i.at(-1)?i.slice(1,-1).replace(/\/([&amp;amp;#39;&amp;amp;quot;])/g,&amp;amp;quot;$1&amp;amp;quot;):i}function EE(...i){let t=i.shift();(typeof t!=&amp;amp;quot;string&amp;amp;quot;||t.length===0)&amp;amp;amp;&amp;amp;amp;p5._friendlyError(iy,&amp;amp;quot;p5.loadFont&amp;amp;quot;);let r;typeof i[0]==&amp;amp;quot;string&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(r=i.shift());let n,s,a;for(let o=0;o&amp;amp;lt;i.length;o++){let u=i[o];typeof u==&amp;amp;quot;function&amp;amp;quot;?n?s=u:n=u:typeof u==&amp;amp;quot;object&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(a=u)}return{path:t,name:r,success:n,error:s,options:a}}function Mp(i,t){i.Font=oa,t.parseFontData=async function(r){let n=r instanceof Uint8Array?r:await t.loadBytes(r);if(!n)throw Error(&amp;amp;quot;Failed to load font data&amp;amp;quot;);let s=oe.parse(n);if(s.length===0||s[0].cmap===void 0)throw Error(&amp;amp;quot;parsing font data&amp;amp;quot;);return s[0]},t.loadFont=async function(...r){let{path:n,name:s,success:a,error:o,options:{sets:u,...h}={}}=EE(...r),l=n.includes(&amp;amp;quot;@font-face&amp;amp;quot;);if(l||(await fetch(n,{method:&amp;amp;quot;HEAD&amp;amp;quot;})).headers.get(&amp;amp;quot;content-type&amp;amp;quot;)?.startsWith(&amp;amp;quot;text/css&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(l=!0,n=await fetch(n).then(d=&amp;amp;gt;d.text())),l){let p=new CSSStyleSheet;await p.replace(n);let f=[];for(let _ of p.cssRules)if(_ instanceof CSSFontFaceRule){let b=_.style,I=CE(b.getPropertyValue(&amp;amp;quot;font-family&amp;amp;quot;)),E=b.getPropertyValue(&amp;amp;quot;src&amp;amp;quot;),A={...h||{}};for(let C of b){if(C===&amp;amp;quot;font-family&amp;amp;quot;||C===&amp;amp;quot;src&amp;amp;quot;)continue;let T=C.replace(/^font-/,&amp;amp;quot;&amp;amp;quot;).split(&amp;amp;quot;-&amp;amp;quot;).map((D,F)=&amp;amp;gt;F===0?D:`${D[0].toUpperCase()}${D.slice(1)}`).join(&amp;amp;quot;&amp;amp;quot;);A[T]=b.getPropertyValue(C)}f.push({name:I,src:E,fontDescriptors:A,loadWithData:async()=&amp;amp;gt;{let C;try{let T=/url\(([^\)]+)\)/.exec(E);if(T){let D=T[1];/^[&amp;amp;#39;&amp;amp;quot;]/.exec(D)&amp;amp;amp;&amp;amp;amp;D.at(0)===D.at(-1)&amp;amp;amp;&amp;amp;amp;(D=D.slice(1,-1)),C=await t.parseFontData(D)}}catch{}return Zl(this,I,E,A,C)},loadWithoutData:()=&amp;amp;gt;Zl(this,I,E,A)})}u=u||[&amp;amp;quot;latin&amp;amp;quot;];let d=(u instanceof Array?u:[u]).map(_=&amp;amp;gt;_.toLowerCase()),m=kg.filter(_=&amp;amp;gt;d.some(b=&amp;amp;gt;_.category.includes(b)&amp;amp;amp;&amp;amp;amp;_.category.includes(&amp;amp;quot;ext&amp;amp;quot;)===b.includes(&amp;amp;quot;ext&amp;amp;quot;))),g=new Set(kp.UnicodeRange.parse(m.map(_=&amp;amp;gt;`U+${_.hexrange[0]}-${_.hexrange[1]}`))),v=0,w=0,y;for(let _ of f){if(!_.fontDescriptors.unicodeRange)continue;let I=[...new Set(kp.UnicodeRange.parse(_.fontDescriptors.unicodeRange.split(/,\s*/g))).values()].filter(C=&amp;amp;gt;g.has(C)).length,E={style:&amp;amp;quot;normal&amp;amp;quot;,weight:400,...h},A=Object.keys(_.fontDescriptors).filter(C=&amp;amp;gt;_.fontDescriptors[C]===E[C]).length;(A&amp;amp;gt;w||A===w&amp;amp;amp;&amp;amp;amp;I&amp;amp;gt;=v)&amp;amp;amp;&amp;amp;amp;(w=A,v=I,y=_)}let S=y||f.at(-1);for(let _ of f)_!==S&amp;amp;amp;&amp;amp;amp;_.loadWithoutData();return S?.loadWithData()}let c;try{let p=await t.parseFontData(n);s=s||_E(p,n),c=await Zl(this,s,n,h,p)}catch{let f=s||n.substring(n.lastIndexOf(&amp;amp;quot;/&amp;amp;quot;)+1).replace(/\.[^/.]+$/,&amp;amp;quot;&amp;amp;quot;);console.warn(`WARN: No glyph data for &amp;amp;#39;${f}&amp;amp;#39;, retrying as FontFace`);try{c=await Zl(this,f,n,h)}catch(d){if(o)return o(d);throw d}}return a?a(c):c}}var Lp=i=&amp;amp;gt;i.map(t=&amp;amp;gt;{let r=t[0];switch(r){case&amp;amp;quot;Z&amp;amp;quot;:return{type:r};case&amp;amp;quot;M&amp;amp;quot;:case&amp;amp;quot;L&amp;amp;quot;:{let[,n,s]=t;return{type:r,x:n,y:s}}case&amp;amp;quot;Q&amp;amp;quot;:{let[,n,s,a,o]=t;return{type:r,x1:n,y1:s,x:a,y:o}}case&amp;amp;quot;C&amp;amp;quot;:{let[,n,s,a,o,u,h]=t;return{type:r,x1:n,y1:s,x2:a,y2:o,x:u,y:h}}default:throw new Error(`Unexpected path command: ${r}`)}});typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Mp(p5,p5.prototype);var PP=Se(Bt());var HP=Se(or());var qP=Se(ur());var nO=Se(lr());var lO=Se(Xs());var pO=Se(aa());function ny(i,t){Le.prototype.maxCachedGlyphs=function(){return 200},oa.prototype._getFontInfo=function(m){this._fontInfos=this._fontInfos||{};let g=JSON.stringify(m);if(this._fontInfos[g])return this._fontInfos[g];{let v=new d(this,{axs:m});return this._fontInfos[g]=v,v}};let r=9,n=r,s=64,a=64,o=64,u=64,h=64,l=64;class c{constructor(g,v){this.width=g,this.height=v,this.infos=[]}findImage(g){let v=this.width*this.height;if(g&amp;amp;gt;v)throw new Error(&amp;amp;quot;font is too complex to render in 3D&amp;amp;quot;);let w,y;for(let _=this.infos.length-1;_&amp;amp;gt;=0;--_){let b=this.infos[_];if(b.index+g&amp;amp;lt;v){w=b,y=b.imageData;break}}if(!w){try{y=new ImageData(this.width,this.height)}catch{let b=document.getElementsByTagName(&amp;amp;quot;canvas&amp;amp;quot;)[0],I=!b;b||(b=document.createElement(&amp;amp;quot;canvas&amp;amp;quot;),b.style.display=&amp;amp;quot;none&amp;amp;quot;,document.body.appendChild(b));let E=b.getContext(&amp;amp;quot;2d&amp;amp;quot;);E&amp;amp;amp;&amp;amp;amp;(y=E.createImageData(this.width,this.height)),I&amp;amp;amp;&amp;amp;amp;document.body.removeChild(b)}w={index:0,imageData:y},this.infos.push(w)}let S=w.index;return w.index+=g,y._dirty=!0,{imageData:y,index:S}}}function p(m,g,v,w,y){let _=m.imageData.data,b=m.index++*4;_[b++]=g,_[b++]=v,_[b++]=w,_[b++]=y}let f=Math.sqrt(3);class d{constructor(g,{axs:v}={}){this.font=g,this.axs=v,this.strokeImageInfos=new c(s,a),this.colDimImageInfos=new c(o,u),this.rowDimImageInfos=new c(o,u),this.colCellImageInfos=new c(h,l),this.rowCellImageInfos=new c(h,l),this.glyphInfos={}}getGlyphInfo(g){let v=this.glyphInfos[g.index];if(v)return v;let w=this.axs,{glyph:{path:{commands:y}}}=this.font._singleShapeToPath(g.shape,{axs:w}),S=1/0,_=-1/0,b=1/0,I=-1/0;for(let ie of y)for(let ee=1;ee&amp;amp;lt;ie.length;ee+=2)S=Math.min(S,ie[ee]),_=Math.max(_,ie[ee]),b=Math.min(b,ie[ee+1]),I=Math.max(I,ie[ee+1]);if(S&amp;amp;gt;=_||b&amp;amp;gt;=I||!y.length)return this.glyphInfos[g.index]={};let E=_-S,A=I-b,C=Lp(y),T,D=[],F=[],N=[];for(T=r-1;T&amp;amp;gt;=0;--T)N.push([]);for(T=n-1;T&amp;amp;gt;=0;--T)F.push([]);function B(ie,ee,se){let ce=D.length;D.push(se);function ue(ve,ge,Te){for(let xe=ve.length;xe-- &amp;amp;gt;0;){let Ie=ve[xe];ge&amp;amp;gt;Ie&amp;amp;amp;&amp;amp;amp;(ge=Ie),Te&amp;amp;lt;Ie&amp;amp;amp;&amp;amp;amp;(Te=Ie)}return{min:ge,max:Te}}let pe=.5,O=ue(ie,1,0),P=Math.max(Math.floor(O.min*r-pe),0),z=Math.min(Math.ceil(O.max*r+pe),r);for(let ve=P;ve&amp;amp;lt;z;++ve)N[ve].push(ce);let $=ue(ee,1,0),ne=Math.max(Math.floor($.min*n-pe),0),K=Math.min(Math.ceil($.max*n+pe),n);for(let ve=ne;ve&amp;amp;lt;K;++ve)F[ve].push(ce)}function U(ie,ee,se){return ie&amp;amp;lt;ee?ee:ie&amp;amp;gt;se?se:ie}function j(ie){return U(255*ie,0,255)}class W{constructor(ee,se,ce,ue){this.p0=ee,this.c0=se,this.c1=ce,this.p1=ue}toQuadratic(){return{x:this.p0.x,y:this.p0.y,x1:this.p1.x,y1:this.p1.y,cx:((this.c0.x+this.c1.x)*3-(this.p0.x+this.p1.x))/4,cy:((this.c0.y+this.c1.y)*3-(this.p0.y+this.p1.y))/4}}quadError(){return H.sub(H.sub(this.p1,this.p0),H.mult(H.sub(this.c1,this.c0),3)).mag()/2}split(ee){let se=H.lerp(this.p0,this.c0,ee),ce=H.lerp(this.c0,this.c1,ee),ue=H.lerp(se,ce,ee);this.c1=H.lerp(this.c1,this.p1,ee),this.c0=H.lerp(ce,this.c1,ee);let pe=H.lerp(ue,this.c0,ee),O=new W(this.p0,se,ue,pe);return this.p0=pe,O}splitInflections(){let ee=H.sub(this.c0,this.p0),se=H.sub(H.sub(this.c1,this.c0),ee),ce=H.sub(H.sub(H.sub(this.p1,this.c1),ee),H.mult(se,2)),ue=[],pe=se.x*ce.y-se.y*ce.x;if(pe!==0){let O=ee.x*ce.y-ee.y*ce.x,P=ee.x*se.y-ee.y*se.x,z=O*O-4*pe*P;if(z&amp;amp;gt;=0){pe&amp;amp;lt;0&amp;amp;amp;&amp;amp;amp;(pe=-pe,O=-O,P=-P);let $=Math.sqrt(z),ne=(-O-$)/(2*pe),K=(-O+$)/(2*pe);ne&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;ne&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;(ue.push(this.split(ne)),K=1-(1-K)/(1-ne)),K&amp;amp;gt;0&amp;amp;amp;&amp;amp;amp;K&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;ue.push(this.split(K))}}return ue.push(this),ue}}function te(ie,ee,se,ce,ue,pe,O,P){let z=new W(new H(ie,ee),new H(se,ce),new H(ue,pe),new H(O,P)).splitInflections(),$=[],ne=30/f;for(let K of z){let ve=[],ge;for(;ge=ne/K.quadError(),!(ge&amp;amp;gt;=.5*.5*.5);){let Te=Math.pow(ge,1/3),xe=K.split(Te),Ie=K.split(1-Te/(1-Te));$.push(xe),ve.push(K),K=Ie}ge&amp;amp;lt;1&amp;amp;amp;&amp;amp;amp;$.push(K.split(.5)),$.push(K),Array.prototype.push.apply($,ve.reverse())}return $}function X(ie,ee,se,ce){let ue=(ie+se)/2,pe=(ee+ce)/2;B([ie,se],[ee,ce],{x:ie,y:ee,cx:ue,cy:pe})}function Z(ie,ee,se,ce){return Math.abs(se-ie)&amp;amp;lt;1e-5&amp;amp;amp;&amp;amp;amp;Math.abs(ce-ee)&amp;amp;lt;1e-5}let G,q,J,Y;for(let ie of C){let ee=(ie.x-S)/E,se=(ie.y-b)/A;if(!Z(G,q,ee,se)){switch(ie.type){case&amp;amp;quot;M&amp;amp;quot;:{J=ee,Y=se;break}case&amp;amp;quot;L&amp;amp;quot;:{X(G,q,ee,se);break}case&amp;amp;quot;Q&amp;amp;quot;:{let ce=(ie.x1-S)/E,ue=(ie.y1-b)/A;B([G,ee,ce],[q,se,ue],{x:G,y:q,cx:ce,cy:ue});break}case&amp;amp;quot;Z&amp;amp;quot;:{Z(G,q,J,Y)?D.push({x:G,y:q}):(X(G,q,J,Y),D.push({x:J,y:Y}));break}case&amp;amp;quot;C&amp;amp;quot;:{let ce=(ie.x1-S)/E,ue=(ie.y1-b)/A,pe=(ie.x2-S)/E,O=(ie.y2-b)/A,P=te(G,q,ce,ue,pe,O,ee,se);for(let z=0;z&amp;amp;lt;P.length;z++){let $=P[z].toQuadratic();B([$.x,$.x1,$.cx],[$.y,$.y1,$.cy],$)}break}default:throw new Error(`unknown command type: ${ie.type}`)}G=ee,q=se}}let Q=D.length,fe=this.strokeImageInfos.findImage(Q),de=fe.index;for(let ie=0;ie&amp;amp;lt;Q;++ie){let ee=D[ie];p(fe,j(ee.x),j(ee.y),j(ee.cx),j(ee.cy))}function me(ie,ee,se){let ce=ie.length,ue=ee.findImage(ce),pe=ue.index,O=0;for(let z=0;z&amp;amp;lt;ce;++z)O+=ie[z].length;let P=se.findImage(O);for(let z=0;z&amp;amp;lt;ce;++z){let $=ie[z],ne=$.length,K=P.index;p(ue,K&amp;amp;gt;&amp;amp;gt;7,K&amp;amp;amp;127,ne&amp;amp;gt;&amp;amp;gt;7,ne&amp;amp;amp;127);for(let ve=0;ve&amp;amp;lt;ne;++ve){let ge=$[ve]+de;p(P,ge&amp;amp;gt;&amp;amp;gt;7,ge&amp;amp;amp;127,0,0)}}return{cellImageInfo:P,dimOffset:pe,dimImageInfo:ue}}return v=this.glyphInfos[g.index]={glyph:g,uGlyphRect:[S,b,_,I],strokeImageInfo:fe,strokes:D,colInfo:me(N,this.colDimImageInfos,this.colCellImageInfos),rowInfo:me(F,this.rowDimImageInfos,this.rowCellImageInfos)},v.uGridOffset=[v.colInfo.dimOffset,v.rowInfo.dimOffset],v}}Le.prototype._renderText=function(m,g,v,w,y){if(!this.states.textFont||typeof this.states.textFont==&amp;amp;quot;string&amp;amp;quot;){console.log(&amp;amp;quot;WEBGL: you must load and set a font before drawing text. See `loadFont` and `textFont` for more details.&amp;amp;quot;);return}if(v&amp;amp;gt;=w||!this.states.fillColor)return;if(!i.Font.hasGlyphData(this.states.textFont)){console.log(&amp;amp;quot;WEBGL: only Opentype (.otf) and Truetype (.ttf) fonts with glyph data are supported&amp;amp;quot;);return}this.push();let S=this.states.strokeColor,_=this.states.drawMode;this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,null),this.states.setValue(&amp;amp;quot;drawMode&amp;amp;quot;,os);let{font:b}=this.states.textFont;if(!b)throw new Error(&amp;amp;quot;In WebGL mode, textFont() needs to be given the result of loadFont() instead of a font family name.&amp;amp;quot;);let I=b._currentAxes(this),E=b._getFontInfo(I),A={x:g,y:v},T=this.states.textSize/(b.data?.head?.unitsPerEm||1e3);this.translate(A.x,A.y,0),this.scale(T,T,1);let D=this.GL,F=!this._defaultFontShader,N=this._getFontShader();N.init(),N.bindShader(),F&amp;amp;amp;&amp;amp;amp;(N.setUniform(&amp;amp;quot;uGridImageSize&amp;amp;quot;,[o,u]),N.setUniform(&amp;amp;quot;uCellsImageSize&amp;amp;quot;,[h,l]),N.setUniform(&amp;amp;quot;uStrokeImageSize&amp;amp;quot;,[s,a]),N.setUniform(&amp;amp;quot;uGridSize&amp;amp;quot;,[r,n]));let B=this.states.fillSet?this.states.curFillColor:[0,0,0,255];this._setGlobalUniforms(N),this._applyColorBlend(B);let U=this.geometryBufferCache.getGeometryByID(&amp;amp;quot;glyph&amp;amp;quot;);U||(U=this._textGeom=new dt(1,1,function(){for(let j=0;j&amp;amp;lt;=1;j++)for(let W=0;W&amp;amp;lt;=1;W++)this.vertices.push(new H(W,j,0)),this.uvs.push(W,j)},this),U.gid=&amp;amp;quot;glyph&amp;amp;quot;,U.computeFaces().computeNormals(),this.geometryBufferCache.ensureCached(U));for(let j of this.buffers.text)j._prepareBuffer(U,N);this._bindBuffer(this.geometryBufferCache.cache.glyph.indexBuffer,D.ELEMENT_ARRAY_BUFFER),N.setUniform(&amp;amp;quot;uMaterialColor&amp;amp;quot;,B),D.pixelStorei(D.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),this.glyphDataCache=this.glyphDataCache||new Set;try{let j=b._positionGlyphs(m);for(let W of j){let te=E.getGlyphInfo(W);if(te.uGlyphRect){let X=te.rowInfo,Z=te.colInfo,G=[te.strokeImageInfo.imageData,X.cellImageInfo.imageData,X.dimImageInfo.imageData,Z.cellImageInfo.imageData,Z.dimImageInfo.imageData];for(let q of G)this.glyphDataCache.delete(q),this.glyphDataCache.add(q);for(;this.glyphDataCache.size&amp;amp;gt;this.maxCachedGlyphs();){let q=this.glyphDataCache.values().next().value;this.glyphDataCache.delete(q);let J=this.textures.get(q);J&amp;amp;amp;&amp;amp;amp;(J.remove(),this.textures.delete(q))}N.setUniform(&amp;amp;quot;uSamplerStrokes&amp;amp;quot;,te.strokeImageInfo.imageData),N.setUniform(&amp;amp;quot;uSamplerRowStrokes&amp;amp;quot;,X.cellImageInfo.imageData),N.setUniform(&amp;amp;quot;uSamplerRows&amp;amp;quot;,X.dimImageInfo.imageData),N.setUniform(&amp;amp;quot;uSamplerColStrokes&amp;amp;quot;,Z.cellImageInfo.imageData),N.setUniform(&amp;amp;quot;uSamplerCols&amp;amp;quot;,Z.dimImageInfo.imageData),N.setUniform(&amp;amp;quot;uGridOffset&amp;amp;quot;,te.uGridOffset),N.setUniform(&amp;amp;quot;uGlyphRect&amp;amp;quot;,te.uGlyphRect),N.setUniform(&amp;amp;quot;uGlyphOffset&amp;amp;quot;,W.x),N.bindTextures(),D.drawElements(D.TRIANGLES,6,this.GL.UNSIGNED_SHORT,0)}}}finally{N.unbindShader(),this.states.setValue(&amp;amp;quot;strokeColor&amp;amp;quot;,S),this.states.setValue(&amp;amp;quot;drawMode&amp;amp;quot;,_),D.pixelStorei(D.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),this.pop()}}}var Oy=Se(th());function Yp(i,t){let r,n,s=i.Shader.prototype.modify;i.Shader.prototype.modify=function(O,P={parser:!0,srcLocations:!1}){if(O instanceof Function){let z;if(P.parser){let K=O.toString(),ve=Ll(K,{ecmaVersion:2021,locations:P.srcLocations});Cg(ve,u,void 0,{varyings:{}});let ge=Oy.default.generate(ve);z=new Function(ge.slice(ge.indexOf(&amp;amp;quot;{&amp;amp;quot;)+1,ge.lastIndexOf(&amp;amp;quot;}&amp;amp;quot;)).replaceAll(&amp;amp;quot;;&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;))}else z=O;let ne=new J(z,this,P.srcLocations).generate();return s.call(this,ne)}else return s.call(this,O)};function a(O){switch(O){case&amp;amp;quot;+&amp;amp;quot;:return&amp;amp;quot;add&amp;amp;quot;;case&amp;amp;quot;-&amp;amp;quot;:return&amp;amp;quot;sub&amp;amp;quot;;case&amp;amp;quot;*&amp;amp;quot;:return&amp;amp;quot;mult&amp;amp;quot;;case&amp;amp;quot;/&amp;amp;quot;:return&amp;amp;quot;div&amp;amp;quot;;case&amp;amp;quot;%&amp;amp;quot;:return&amp;amp;quot;mod&amp;amp;quot;;case&amp;amp;quot;==&amp;amp;quot;:case&amp;amp;quot;===&amp;amp;quot;:return&amp;amp;quot;equalTo&amp;amp;quot;;case&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;:return&amp;amp;quot;greaterThan&amp;amp;quot;;case&amp;amp;quot;&amp;amp;gt;=&amp;amp;quot;:return&amp;amp;quot;greaterThanEqualTo&amp;amp;quot;;case&amp;amp;quot;&amp;amp;lt;&amp;amp;quot;:return&amp;amp;quot;lessThan&amp;amp;quot;;case&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;:return&amp;amp;quot;and&amp;amp;quot;;case&amp;amp;quot;||&amp;amp;quot;:return&amp;amp;quot;or&amp;amp;quot;}}function o(O){return O.type===&amp;amp;quot;CallExpression&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;O.callee?.type===&amp;amp;quot;Identifier&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;O.callee?.name.startsWith(&amp;amp;quot;uniform&amp;amp;quot;)}let u={UnaryExpression(O,P,z){if(z.some(o))return;let $={type:&amp;amp;quot;Literal&amp;amp;quot;,value:O.operator},ne=K=&amp;amp;gt;{K.type=&amp;amp;quot;CallExpression&amp;amp;quot;,K.callee={type:&amp;amp;quot;Identifier&amp;amp;quot;,name:&amp;amp;quot;unaryNode&amp;amp;quot;},K.arguments=[K.argument,$]};if(O.type===&amp;amp;quot;MemberExpression&amp;amp;quot;){let K=O.argument.property.name;[[&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;z&amp;amp;quot;,&amp;amp;quot;w&amp;amp;quot;],[&amp;amp;quot;r&amp;amp;quot;,&amp;amp;quot;g&amp;amp;quot;,&amp;amp;quot;b&amp;amp;quot;,&amp;amp;quot;a&amp;amp;quot;],[&amp;amp;quot;s&amp;amp;quot;,&amp;amp;quot;t&amp;amp;quot;,&amp;amp;quot;p&amp;amp;quot;,&amp;amp;quot;q&amp;amp;quot;]].some(Te=&amp;amp;gt;[...K].every(xe=&amp;amp;gt;Te.includes(xe)))&amp;amp;amp;&amp;amp;amp;O.argument.type===&amp;amp;quot;MemberExpression&amp;amp;quot;?(O.type=&amp;amp;quot;MemberExpression&amp;amp;quot;,O.object={type:&amp;amp;quot;CallExpression&amp;amp;quot;,callee:{type:&amp;amp;quot;Identifier&amp;amp;quot;,name:&amp;amp;quot;unaryNode&amp;amp;quot;},arguments:[O.argument.object,$]},O.property={type:&amp;amp;quot;Identifier&amp;amp;quot;,name:K}):ne(O)}else ne(O);delete O.argument,delete O.operator},VariableDeclarator(O,P,z){if(O.init.callee&amp;amp;amp;&amp;amp;amp;O.init.callee.name?.startsWith(&amp;amp;quot;uniform&amp;amp;quot;)){let $={type:&amp;amp;quot;Literal&amp;amp;quot;,value:O.id.name};O.init.arguments.unshift($)}if(O.init.callee&amp;amp;amp;&amp;amp;amp;O.init.callee.name?.startsWith(&amp;amp;quot;varying&amp;amp;quot;)){let $={type:&amp;amp;quot;Literal&amp;amp;quot;,value:O.id.name};O.init.arguments.unshift($),P.varyings[O.id.name]=$}},Identifier(O,P,z){P.varyings[O.name]&amp;amp;amp;&amp;amp;amp;!z.some($=&amp;amp;gt;$.type===&amp;amp;quot;AssignmentExpression&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;$.left===O)&amp;amp;amp;&amp;amp;amp;(O.type=&amp;amp;quot;ExpressionStatement&amp;amp;quot;,O.expression={type:&amp;amp;quot;CallExpression&amp;amp;quot;,callee:{type:&amp;amp;quot;MemberExpression&amp;amp;quot;,object:{type:&amp;amp;quot;Identifier&amp;amp;quot;,name:O.name},property:{type:&amp;amp;quot;Identifier&amp;amp;quot;,name:&amp;amp;quot;getValue&amp;amp;quot;}},arguments:[]})},ArrayExpression(O,P,z){let $=JSON.parse(JSON.stringify(O));O.type=&amp;amp;quot;CallExpression&amp;amp;quot;,O.callee={type:&amp;amp;quot;Identifier&amp;amp;quot;,name:&amp;amp;quot;dynamicNode&amp;amp;quot;},O.arguments=[$]},AssignmentExpression(O,P,z){if(O.operator!==&amp;amp;quot;=&amp;amp;quot;){let $=a(O.operator.replace(&amp;amp;quot;=&amp;amp;quot;,&amp;amp;quot;&amp;amp;quot;)),ne={type:&amp;amp;quot;CallExpression&amp;amp;quot;,callee:{type:&amp;amp;quot;MemberExpression&amp;amp;quot;,object:O.left,property:{type:&amp;amp;quot;Identifier&amp;amp;quot;,name:$}},arguments:[O.right]};O.operator=&amp;amp;quot;=&amp;amp;quot;,O.right=ne}P.varyings[O.left.name]&amp;amp;amp;&amp;amp;amp;(O.type=&amp;amp;quot;ExpressionStatement&amp;amp;quot;,O.expression={type:&amp;amp;quot;CallExpression&amp;amp;quot;,callee:{type:&amp;amp;quot;MemberExpression&amp;amp;quot;,object:{type:&amp;amp;quot;Identifier&amp;amp;quot;,name:O.left.name},property:{type:&amp;amp;quot;Identifier&amp;amp;quot;,name:&amp;amp;quot;bridge&amp;amp;quot;}},arguments:[O.right]})},BinaryExpression(O,P,z){if(z.some(o))return;if([&amp;amp;quot;Literal&amp;amp;quot;,&amp;amp;quot;ArrayExpression&amp;amp;quot;,&amp;amp;quot;Identifier&amp;amp;quot;].includes(O.left.type)){let ne={type:&amp;amp;quot;CallExpression&amp;amp;quot;,callee:{type:&amp;amp;quot;Identifier&amp;amp;quot;,name:&amp;amp;quot;dynamicNode&amp;amp;quot;},arguments:[O.left]};O.left=ne}O.type=&amp;amp;quot;CallExpression&amp;amp;quot;,O.callee={type:&amp;amp;quot;MemberExpression&amp;amp;quot;,object:O.left,property:{type:&amp;amp;quot;Identifier&amp;amp;quot;,name:a(O.operator)}},O.arguments=[O.right]}};class h{constructor(P,z){if(new.target===h)throw new TypeError(&amp;amp;quot;Cannot construct BaseNode instances directly. This is an abstract class.&amp;amp;quot;);if(this.type=z,this.componentNames=[],this.componentsChanged=!1,this.isInternal=P,this.usedIn=[],this.dependsOn=[],this.srcLine=null,this.usedInConditional=!1,r.srcLocations===!0&amp;amp;amp;&amp;amp;amp;P===!1)try{throw new Error(&amp;amp;quot;StackCapture&amp;amp;quot;)}catch($){let ne=$.stack.split(`
   7450 <a href="#l7431" class="line" id="l7431">   7431</a> &lt;a href=&quot;#l7412&quot; class=&quot;line&quot; id=&quot;l7412&quot;&gt;   7412&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2312&amp;quot; id=&amp;quot;h4-0-2312&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),K=5;B(this)&amp;amp;amp;&amp;amp;amp;K--,this.srcLine=ne[K].trim()}}addVectorComponents(){if(this.type.startsWith(&amp;amp;quot;vec&amp;amp;quot;)){let P=parseInt(this.type.slice(3));this.componentNames=[&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;z&amp;amp;quot;,&amp;amp;quot;w&amp;amp;quot;].slice(0,P);let z=this;for(let $ of this.componentNames){let ne=new m(z,$,&amp;amp;quot;float&amp;amp;quot;,!0);Object.defineProperty(this,$,{get(){return ne},set(K){this.componentsChanged=!0,G(this)?this.node.value=K:ne=K}})}}}forceTemporaryVariable(){(!(F(this)&amp;amp;amp;&amp;amp;amp;Z(this.parent))||!U(this))&amp;amp;amp;&amp;amp;amp;(this.useTemp=!0)}assertUsedInConditional(P){this.usedInConditional=!0,this.usedIn.push(P),this.forceTemporaryVariable()}isUsedInConditional(){return this.usedInConditional}checkConditionalDependencies(P){P.ifs.forEach(z=&amp;amp;gt;{let $=()=&amp;amp;gt;z.usedInSatisfied.length&amp;amp;gt;=1,ne=()=&amp;amp;gt;z.dependsOn.length===z.dependsOnSatisfied.length;z.insertionPoint&amp;amp;gt;-1||!z.usedIn.length||(z.dependsOn.some(K=&amp;amp;gt;K.node===this)&amp;amp;amp;&amp;amp;amp;!z.dependsOnSatisfied.includes(this)&amp;amp;amp;&amp;amp;amp;z.dependsOnSatisfied.push(this),z.usedIn.includes(this)&amp;amp;amp;&amp;amp;amp;!z.usedInSatisfied.includes(this)&amp;amp;amp;&amp;amp;amp;z.usedInSatisfied.push(this),ne()&amp;amp;amp;&amp;amp;amp;$()&amp;amp;amp;&amp;amp;amp;z.saveState(P,ne(),$()))})}toGLSLBase(P){let z;if(this.shouldUseTemporaryVariable()){let $=P.declarations.length;z=this.getTemporaryVariable(P);let ne=P.declarations.length-1-$;ne=ne&amp;amp;gt;0?ne:void 0,this.dependsOn.forEach(K=&amp;amp;gt;{if(K.isVector){let ve=K.originalComponents.map((ge,Te)=&amp;amp;gt;ge===K.currentComponents[Te]);P.updateComponents(K.node,ne,ve)}else P.updateComponents(K.node,ne)})}else z=this.toGLSL(P);return this.checkConditionalDependencies(P),z}shouldUseTemporaryVariable(){if(this.componentsChanged||W(this)||this.useTemp)return!0;if(this.isInternal||U(this)||j(this)||this.type===&amp;amp;quot;sampler2D&amp;amp;quot;)return!1;let P=0;return P+=X(this)*2,P+=B(this)*2,P+=N(this)*3,P+=this.usedIn.length,P&amp;amp;gt;=4}getTemporaryVariable(P){if(!this.temporaryVariable){this.temporaryVariable=`temp_${P.getNextID()}`;let z=&amp;amp;quot;&amp;amp;quot;;this.srcLine&amp;amp;amp;&amp;amp;amp;(z+=`
   7451 <a href="#l7432" class="line" id="l7432">   7432</a> &lt;a href=&quot;#l7413&quot; class=&quot;line&quot; id=&quot;l7413&quot;&gt;   7413&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2313&amp;quot; id=&amp;quot;h4-0-2313&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+// From ${this.srcLine}
   7452 <a href="#l7433" class="line" id="l7433">   7433</a> &lt;a href=&quot;#l7414&quot; class=&quot;line&quot; id=&quot;l7414&quot;&gt;   7414&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2314&amp;quot; id=&amp;quot;h4-0-2314&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),z+=&amp;amp;quot;  &amp;amp;quot;+this.type+&amp;amp;quot; &amp;amp;quot;+this.temporaryVariable+&amp;amp;quot; = &amp;amp;quot;+this.toGLSL(P)+&amp;amp;quot;;&amp;amp;quot;,P.declarations.push(z)}return this.temporaryVariable}add(P){return ee(this,this.enforceType(P),&amp;amp;quot;+&amp;amp;quot;)}sub(P){return ee(this,this.enforceType(P),&amp;amp;quot;-&amp;amp;quot;)}mult(P){return ee(this,this.enforceType(P),&amp;amp;quot;*&amp;amp;quot;)}div(P){return ee(this,this.enforceType(P),&amp;amp;quot;/&amp;amp;quot;)}mod(P){return ee(this,this.enforceType(P),&amp;amp;quot;%&amp;amp;quot;)}enforceType(P){if(C(P)){if(!q(P.type))throw new TypeError(`You&amp;amp;#39;ve tried to perform an operation on a struct of type: ${P.type}. Try accessing a member on that struct with &amp;amp;#39;.&amp;amp;#39;`);if(!q(P.type))throw new TypeError(`You&amp;amp;#39;ve tried to perform an operation on a struct of type: ${P.type}. Try accessing a member on that struct with &amp;amp;#39;.&amp;amp;#39;`);return(D(this)||N(this))&amp;amp;amp;&amp;amp;amp;T(P)?new c(P):P}else return typeof P==&amp;amp;quot;number&amp;amp;quot;?T(this)?new l(P):new c(P):Array.isArray(P)?ue.dynamicVector(P):ue[this.type](P)}toFloat(){if(D(this))return this;if(T(this))return new c(this)}toGLSL(P){throw new TypeError(&amp;amp;quot;Not supposed to call this function on BaseNode, which is an abstract class.&amp;amp;quot;)}}class l extends h{constructor(P=0,z=!1){super(z,&amp;amp;quot;int&amp;amp;quot;),this.x=P}toGLSL(P){if(C(this.x)){let z=this.x.toGLSLBase(P);return T(this.x.type)?z:`int(${z})`}else return typeof this.x==&amp;amp;quot;number&amp;amp;quot;?`${Math.floor(this.x)}`:`int(${this.x})`}}class c extends h{constructor(P=0,z=!1,$=!1){if(super(z,&amp;amp;quot;float&amp;amp;quot;),Array.isArray(P)&amp;amp;amp;&amp;amp;amp;(P=P[0]),$){let{parent:ne,name:K}=$;this.name=K,this.parent=ne}this.x=P}toGLSL(P){if(C(this.x)){let z=this.x.toGLSLBase(P);return D(this.x)?z:`float(${z})`}else return typeof this.x==&amp;amp;quot;number&amp;amp;quot;?`${this.x.toFixed(4)}`:`float(${this.x})`}}class p extends h{constructor(P,z,$=!1){super($,z),this.originalValues=fe(P,parseInt(z.slice(3))),this.componentNames=[&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;z&amp;amp;quot;,&amp;amp;quot;w&amp;amp;quot;].slice(0,this.originalValues.length)}addVectorComponents(){let P=this.originalValues;this.componentsChanged=!1,this.componentNames.forEach((z,$)=&amp;amp;gt;{let ne={name:z,parent:this},K=F(P[$])?P[$]:new c(P[$],!0,ne);Object.defineProperty(this,z,{get(){return K},set(ve){this.componentsChanged=!0,G(this)?this.node.value=ve:K=F(ve)?ve:new c(ve,!0,ne)}})}),this.originalValues=this.componentNames.map(z=&amp;amp;gt;this[z])}toGLSL(P){if((!this.componentsChanged||!this.defined)&amp;amp;amp;&amp;amp;amp;!this.oldName){let z=this.componentNames.map(($,ne)=&amp;amp;gt;this.originalValues[ne].toGLSLBase(P)).join(&amp;amp;quot;, &amp;amp;quot;);return this.defined=!0,`${this.type}(${z})`}else return this.temporaryVariable}}class f extends h{constructor(P,z,$,ne=!1){let K,ve=ge=&amp;amp;gt;{let Te,xe=0,Ie=z.every((Ce,Ge)=&amp;amp;gt;{let Me=E(Ce),nt=ge.args[Ge];return nt===&amp;amp;quot;genType&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;((Te===void 0||Te===&amp;amp;quot;float&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;Me.startsWith(&amp;amp;quot;vec&amp;amp;quot;))&amp;amp;amp;&amp;amp;amp;(Te=Me),nt=Te),xe+=Me===nt,Me===nt||Me===&amp;amp;quot;float&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;nt.startsWith(&amp;amp;quot;vec&amp;amp;quot;)});return{...ge,valid:Ie,similarity:xe,genType:Te}};if(Array.isArray($)){let ge=$.filter(xe=&amp;amp;gt;xe.args.length===z.length);if(ge.length===0){let xe=new Set,Ie=[];$.forEach(Ge=&amp;amp;gt;xe.add(Ge.args.length)),xe.forEach(Ge=&amp;amp;gt;Ie.push(`${Ge}`));let Ce=Ie.join(&amp;amp;quot; or &amp;amp;quot;);throw new Error(`Function &amp;amp;#39;${P}&amp;amp;#39; has ${$.length} variants which expect ${Ce} arguments, but ${z.length} arguments were provided.`)}let Te=function(xe,Ie){return Ie=ve(Ie),Ie.valid&amp;amp;amp;&amp;amp;amp;(!xe||Ie.similarity&amp;amp;gt;xe.similarity)&amp;amp;amp;&amp;amp;amp;(xe=Ie),xe};K=ge.reduce(Te,null)}else K=ve($);if(!K||!K.valid){let ge=Ie=&amp;amp;gt;`(${Ie.map(Ce=&amp;amp;gt;Ce).join(&amp;amp;quot;, &amp;amp;quot;)})`,Te=Array.isArray($)?$.map(Ie=&amp;amp;gt;ge(Ie.args)).join(&amp;amp;quot; or &amp;amp;quot;):ge($.args),xe=ge(z.map(Ie=&amp;amp;gt;E(Ie)));throw new Error(`Function &amp;amp;#39;${P}&amp;amp;#39; was called with wrong arguments. Most likely, you provided mixed lengths vectors as arguments.
   7453 <a href="#l7434" class="line" id="l7434">   7434</a> &lt;a href=&quot;#l7415&quot; class=&quot;line&quot; id=&quot;l7415&quot;&gt;   7415&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2315&amp;quot; id=&amp;quot;h4-0-2315&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Expected argument types: ${Te}
   7454 <a href="#l7435" class="line" id="l7435">   7435</a> &lt;a href=&quot;#l7416&quot; class=&quot;line&quot; id=&quot;l7416&quot;&gt;   7416&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2316&amp;quot; id=&amp;quot;h4-0-2316&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+Provided argument types: ${xe}
   7455 <a href="#l7436" class="line" id="l7436">   7436</a> &lt;a href=&quot;#l7417&quot; class=&quot;line&quot; id=&quot;l7417&quot;&gt;   7417&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2317&amp;quot; id=&amp;quot;h4-0-2317&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+All of the arguments with expected type &amp;amp;#39;genType&amp;amp;#39; should have a matching type. If one of those is different, try to find where it was created.
   7456 <a href="#l7437" class="line" id="l7437">   7437</a> &lt;a href=&quot;#l7418&quot; class=&quot;line&quot; id=&quot;l7418&quot;&gt;   7418&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2318&amp;quot; id=&amp;quot;h4-0-2318&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+        `)}if(z.length!==K.args.length)throw new Error(`Function &amp;amp;#39;${P}&amp;amp;#39; expects ${K.args.length} arguments, but ${z.length} were provided.`);z=z.map((ge,Te)=&amp;amp;gt;{if(C(ge))D(ge)&amp;amp;amp;&amp;amp;amp;K.args[Te]===&amp;amp;quot;genType&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;K.genType!==&amp;amp;quot;float&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(ge=ue[K.genType](ge));else{let xe=K.args[Te]===&amp;amp;quot;genType&amp;amp;quot;?K.genType:K.args[Te];ge=ue[xe](ge)}return ge}),K.returnType===&amp;amp;quot;genType&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;(K.returnType=K.genType),super(ne,K.returnType),this.name=P,this.args=z,this.argumentTypes=K.args}deconstructArgs(P){return this.args.map(($,ne)=&amp;amp;gt;(T($)&amp;amp;amp;&amp;amp;amp;this.argumentTypes[ne]!=&amp;amp;quot;float&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;($=$.toFloat()),$.toGLSLBase(P),$.toGLSLBase(P))).join(&amp;amp;quot;, &amp;amp;quot;)}toGLSL(P){return`${this.name}(${this.deconstructArgs(P)})`}}class d extends h{constructor(P,z,$=!1){super($,z),this.name=P}toGLSL(P){return`${this.name}`}}class m extends h{constructor(P,z,$,ne=!1){super(ne,$),this.parent=P,this.componentName=z,this.type=$}toGLSL(P){let z=this.parent.toGLSLBase(P);return!U(this.parent)&amp;amp;amp;&amp;amp;amp;!W(this.parent)&amp;amp;amp;&amp;amp;amp;(z=`(${z})`),`${z}.${this.componentName}`}}class g extends d{constructor(P,z,$=!1){super(P,z,$),this.timesChanged=0,this.tempVars=0}getValue(){let P=r.context;if(!P.varyings[this.name]||!this.timesChanged)return this;let z=P.varyings[this.name].splice(0,this.timesChanged),$;return z.forEach((ne,K)=&amp;amp;gt;{let{value:ve}=ne;if(P.declarations.push(`  ${this.name} = ${ve.toGLSLBase(P)};`),K===z.length-1){let ge=`${this.name}_${this.tempVars++}`;$=ie(new d(ge,this.type,!0)),P.declarations.push(`  ${this.type} ${ge} = ${this.name};`)}}),this.timesChanged=0,$}bridge(P){(!C(P)||this.type.startsWith(&amp;amp;quot;vec&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;E(P)===&amp;amp;quot;float&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(P=ue[this.type](P)),r.registerVarying(this,P),this.timesChanged+=1}}class v extends h{constructor(P,z,$,ne=!1){super(ne,null),this.operator=$,this.left=P,this.right=z;for(let K of[P,z])K.usedIn.push(this);this.type=this.determineType()}determineType(){if([&amp;amp;quot;==&amp;amp;quot;,&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;gt;=&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;&amp;amp;quot;,&amp;amp;quot;&amp;amp;lt;=&amp;amp;quot;,&amp;amp;quot;||&amp;amp;quot;,&amp;amp;quot;!&amp;amp;quot;,&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;].includes(this.operator))return&amp;amp;quot;bool&amp;amp;quot;;if(this.left.type===this.right.type)return this.left.type;if(N(this.left)&amp;amp;amp;&amp;amp;amp;D(this.right))return this.left.type;if(N(this.right)&amp;amp;amp;&amp;amp;amp;D(this.left))return this.right.type;if(D(this.left)&amp;amp;amp;&amp;amp;amp;T(this.right)||T(this.left)&amp;amp;amp;&amp;amp;amp;D(this.right))return&amp;amp;quot;float&amp;amp;quot;;throw new Error(&amp;amp;quot;Incompatible types for binary operator&amp;amp;quot;)}processOperand(P,z){if(P.temporaryVariable)return P.temporaryVariable;let $=P.toGLSLBase(z);return B(P)&amp;amp;amp;&amp;amp;amp;!P.temporaryVariable&amp;amp;amp;&amp;amp;amp;($=`(${$})`),this.type===&amp;amp;quot;float&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;T(P)&amp;amp;amp;&amp;amp;amp;($=`float(${$})`),$}toGLSL(P){let z=this.processOperand(this.left,P),$=this.processOperand(this.right,P);return`${z} ${this.operator} ${$}`}}class w extends v{constructor(P,z,$){super(P,z,$)}toGLSL(P){return N(this)||D(this)?`mod(${this.left.toGLSLBase(P)}, ${this.right.toGLSLBase(P)})`:`${this.processOperand(P,this.left)} % ${this.processOperand(P,this.right)}`}}class y extends h{constructor(P,z,$=!1){super($,P.type),this.node=P,this.operator=z}toGLSL(P){let z=this.node.toGLSLBase(P);return!U(this.node)&amp;amp;amp;&amp;amp;amp;!W(this.node)&amp;amp;amp;&amp;amp;amp;!te(this.node)&amp;amp;amp;&amp;amp;amp;(z=`(${z})`),`${this.operator}${z}`}}h.prototype.equalTo=function(O){return ee(this,this.enforceType(O),&amp;amp;quot;==&amp;amp;quot;)},h.prototype.greaterThan=function(O){return ee(this,this.enforceType(O),&amp;amp;quot;&amp;amp;gt;&amp;amp;quot;)},h.prototype.greaterThanEqualTo=function(O){return ee(this,this.enforceType(O),&amp;amp;quot;&amp;amp;gt;=&amp;amp;quot;)},h.prototype.lessThan=function(O){return ee(this,this.enforceType(O),&amp;amp;quot;&amp;amp;lt;&amp;amp;quot;)},h.prototype.lessThanEqualTo=function(O){return ee(this,this.enforceType(O),&amp;amp;quot;&amp;amp;lt;=&amp;amp;quot;)},h.prototype.not=function(){return new y(this.condition,&amp;amp;quot;!&amp;amp;quot;,!0)},h.prototype.or=function(O){return new ee(this,this.enforceType(O),&amp;amp;quot;||&amp;amp;quot;,!0)},h.prototype.and=function(O){return new ee(this,this.enforceType(O),&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;&amp;amp;quot;,!0)};function S(O){let P=new b;return O(),n=null,P}class _{constructor(P,z){this.dependsOn=[],this.usedIn=[],this.dependsOnSatisfied=[],this.usedInSatisfied=[],this.states=[],this.if(P,z),this.insertionPoint=-1,this.elseIfs=[],this.elseBranch=null,r.context.ifs.push(this)}if(P,z){this.condition=P,this.conditionString=P.toGLSL(r.context),this.ifBranch=S(z),this.ifBranch.parent=this}elseIf(P,z){let $=S(z);return z.parent=this,this.elseIfs.push({condition:P,elseBranch:$}),this}else(P){return this.elseBranch=S(P),this.elseBranch.parent=this,this}thenDiscard(){return new I(this.condition)}saveState(P,z,$){this.states.push({line:P.declarations.length,usedInSatisfied:z,dependsOnSatisfied:$}),this.insertionPoint=P.declarations.length-1}toGLSL(P){let z=P.declarations.length;this.dependsOn.forEach(ve=&amp;amp;gt;P.updateComponents(ve.node));let ne=P.declarations.length-z;this.insertionPoint+=ne;let K=[`
   7457 <a href="#l7438" class="line" id="l7438">   7438</a> &lt;a href=&quot;#l7419&quot; class=&quot;line&quot; id=&quot;l7419&quot;&gt;   7419&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2319&amp;quot; id=&amp;quot;h4-0-2319&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  if (${this.conditionString}) {`,`
   7458 <a href="#l7439" class="line" id="l7439">   7439</a> &lt;a href=&quot;#l7420&quot; class=&quot;line&quot; id=&quot;l7420&quot;&gt;   7420&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2320&amp;quot; id=&amp;quot;h4-0-2320&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    ${this.ifBranch.toGLSL(P)}`,`
   7459 <a href="#l7440" class="line" id="l7440">   7440</a> &lt;a href=&quot;#l7421&quot; class=&quot;line&quot; id=&quot;l7421&quot;&gt;   7421&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2321&amp;quot; id=&amp;quot;h4-0-2321&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }`];return this.elseIfs.length&amp;amp;amp;&amp;amp;amp;this.elseIfs.forEach(ve=&amp;amp;gt;{let{condition:ge,elseBranch:Te}=ve;K.push(` else if (${ge.toGLSL(P)}) {`),K.push(`
   7460 <a href="#l7441" class="line" id="l7441">   7441</a> &lt;a href=&quot;#l7422&quot; class=&quot;line&quot; id=&quot;l7422&quot;&gt;   7422&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2322&amp;quot; id=&amp;quot;h4-0-2322&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    ${Te.toGLSL(P)}`),K.push(`
   7461 <a href="#l7442" class="line" id="l7442">   7442</a> &lt;a href=&quot;#l7423&quot; class=&quot;line&quot; id=&quot;l7423&quot;&gt;   7423&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2323&amp;quot; id=&amp;quot;h4-0-2323&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }`)}),this.elseBranch&amp;amp;amp;&amp;amp;amp;(K.push(&amp;amp;quot; else {&amp;amp;quot;),K.push(`
   7462 <a href="#l7443" class="line" id="l7443">   7443</a> &lt;a href=&quot;#l7424&quot; class=&quot;line&quot; id=&quot;l7424&quot;&gt;   7424&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2324&amp;quot; id=&amp;quot;h4-0-2324&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    ${this.elseBranch.toGLSL(P)}`),K.push(`
   7463 <a href="#l7444" class="line" id="l7444">   7444</a> &lt;a href=&quot;#l7425&quot; class=&quot;line&quot; id=&quot;l7425&quot;&gt;   7425&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2325&amp;quot; id=&amp;quot;h4-0-2325&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  }
   7464 <a href="#l7445" class="line" id="l7445">   7445</a> &lt;a href=&quot;#l7426&quot; class=&quot;line&quot; id=&quot;l7426&quot;&gt;   7426&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2326&amp;quot; id=&amp;quot;h4-0-2326&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`)),K.push(`
   7465 <a href="#l7446" class="line" id="l7446">   7446</a> &lt;a href=&quot;#l7427&quot; class=&quot;line&quot; id=&quot;l7427&quot;&gt;   7427&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2327&amp;quot; id=&amp;quot;h4-0-2327&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),K.flat().join(&amp;amp;quot;&amp;amp;quot;)}}t.assign=function(O,P){if(!n)throw new error(&amp;amp;#39;assign() is supposed to be used inside of conditional branchs. Use the &amp;amp;quot;=&amp;amp;quot; operator as normal otherwise.&amp;amp;#39;);n.assign(O,P)};class b{constructor(){n=this,this.statements=[],this.assignments=[],this.dependsOn=[],this.declarations=[];let P=null;Object.defineProperty(this,&amp;amp;quot;parent&amp;amp;quot;,{get(){return P},set(z){z.dependsOn.push(...this.dependsOn),P=z}})}assign(P,z){!C(z)||z.type!==P.type?(z=ue[P.type](z),this.declarations.push(z),this.assignments.push({node:P})):this.assignments.push({node:P,value:z}),P=P.parent?P.parent:P,z=z.parent?z.parent:z,![P,z].some($=&amp;amp;gt;this.dependsOn.some(ne=&amp;amp;gt;ne.node===$))&amp;amp;amp;&amp;amp;amp;(P.assertUsedInConditional(this),this.dependsOn.push(Y(P)),z.shouldUseTemporaryVariable()&amp;amp;amp;&amp;amp;amp;(z.assertUsedInConditional(this),this.dependsOn.push(Y(z))))}toGLSL(P){let z=0;return this.assignments.forEach(({node:$,value:ne})=&amp;amp;gt;{let K,ve;if(ne)ve=ne.toGLSLBase(P);else{let ge=this.declarations[z];z++,ge.temporaryVariable=`temp_${P.getNextID()}`,this.statements.push(`${ge.type} ${ge.temporaryVariable} = ${ge.toGLSL(P)};`),ve=ge.toGLSLBase(P)}U($)||W($)?K=`${$.toGLSLBase(P)} = ${ve};`:F($)&amp;amp;amp;&amp;amp;amp;$.name?K=`${$.parent.toGLSLBase(P)}.${$.name} = ${ve};`:($.temporaryVariable=`temp_${P.getNextID()}`,K=`${$.type} ${$.toGLSLBase(P)} = ${ve};`),this.statements.push(K)}),this.statements.join(`
   7466 <a href="#l7447" class="line" id="l7447">   7447</a> &lt;a href=&quot;#l7428&quot; class=&quot;line&quot; id=&quot;l7428&quot;&gt;   7428&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2328&amp;quot; id=&amp;quot;h4-0-2328&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    `)}}class I{constructor(P){this.condition=P}toGLSL(P){P.discardConditions.push(`if (${this.condition}{discard;})`)}}function E(O){if(C(O))return O.type;if(Array.isArray(O)&amp;amp;amp;&amp;amp;amp;O.length&amp;amp;gt;1)return`vec${O.length}`;if(typeof O==&amp;amp;quot;number&amp;amp;quot;||Array.isArray(O)&amp;amp;amp;&amp;amp;amp;O.length===1)return&amp;amp;quot;float&amp;amp;quot;}function A(O){let P=0;if(Array.isArray(O))for(let z of O)N(z)?P+=parseInt(z.type.slice(3)):P+=1;else N(O)&amp;amp;amp;&amp;amp;amp;(P+=parseInt(val.type.slice(3)));if(![2,3,4].includes(P))throw new Error(`You have attempted to construct a vector with ${P} values. Only vec2, vec3, and vec4 types are supported.`);return P}t.dynamicNode=function(O){if(C(O))return O;if(typeof O==&amp;amp;quot;number&amp;amp;quot;)return new c(O);if(Array.isArray(O))return ue.dynamicVector(O)},t.unaryNode=function(O,P){return O=dynamicNode(O),ie(new y(O,P))};function C(O){return O instanceof h}function T(O){return C(O)&amp;amp;amp;&amp;amp;amp;O.type===&amp;amp;quot;int&amp;amp;quot;}function D(O){return C(O)&amp;amp;amp;&amp;amp;amp;O.type===&amp;amp;quot;float&amp;amp;quot;}function F(O){return O instanceof c}function N(O){return C(O)&amp;amp;amp;&amp;amp;amp;(O.type===&amp;amp;quot;vec2&amp;amp;quot;||O.type===&amp;amp;quot;vec3&amp;amp;quot;||O.type===&amp;amp;quot;vec4&amp;amp;quot;)}function B(O){return O instanceof v}function U(O){return O instanceof d||O instanceof m}function j(O){return O instanceof _||O instanceof b}function W(O){return O.temporaryVariable}function te(O){return O instanceof c||O instanceof l||O instanceof p}function X(O){return O instanceof f}function Z(O){return O instanceof p}function G(O){return O instanceof y}function q(O){return[&amp;amp;quot;int&amp;amp;quot;,&amp;amp;quot;float&amp;amp;quot;,&amp;amp;quot;vec2&amp;amp;quot;,&amp;amp;quot;vec3&amp;amp;quot;,&amp;amp;quot;vec4&amp;amp;quot;,&amp;amp;quot;sampler2D&amp;amp;quot;].includes(O)}class J{constructor(P,z,$){r=this,this.userCallback=P,this.srcLocations=$,this.cleanup=()=&amp;amp;gt;{},this.generateHookOverrides(z),this.output={vertexDeclarations:new Set,fragmentDeclarations:new Set,uniforms:{}},this.uniformNodes=[],this.resetGLSLContext(),this.isGenerating=!1}generate(){let P=i.disableFriendlyErrors;return i.disableFriendlyErrors=!0,this.isGenerating=!0,this.userCallback(),this.output.vertexDeclarations=[...this.output.vertexDeclarations].join(`
   7467 <a href="#l7448" class="line" id="l7448">   7448</a> &lt;a href=&quot;#l7429&quot; class=&quot;line&quot; id=&quot;l7429&quot;&gt;   7429&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2329&amp;quot; id=&amp;quot;h4-0-2329&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),this.output.fragmentDeclarations=[...this.output.fragmentDeclarations].join(`
   7468 <a href="#l7449" class="line" id="l7449">   7449</a> &lt;a href=&quot;#l7430&quot; class=&quot;line&quot; id=&quot;l7430&quot;&gt;   7430&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2330&amp;quot; id=&amp;quot;h4-0-2330&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),this.isGenerating=!1,this.cleanup(),i.disableFriendlyErrors=P,this.output}generateHookOverrides(P){let z={...P.hooks.vertex,...P.hooks.fragment},$={};Object.keys(z).forEach(ne=&amp;amp;gt;{let K=P.hookTypes(ne);this[K.name]=function(ve){let ge=[],Te=[];K.parameters.forEach(Me=&amp;amp;gt;{if(q(Me.type.typeName))ge.push(se(Me.name,Me.type.typeName,!0));else{let Gt={};Me.type.properties.forEach(ft=&amp;amp;gt;{Gt[ft.name]=se(`${Me.name}.${ft.name}`,ft.type.typeName,!0)}),ge.push(Gt)}let nt=Me.type.qualifiers.length&amp;amp;gt;0?Me.type.qualifiers.join(&amp;amp;quot; &amp;amp;quot;):&amp;amp;quot;&amp;amp;quot;;Te.push(`${nt} ${Me.type.typeName} ${Me.name}`.trim())});let xe=ve(...ge),Ie=K.returnType,Ce={};q(Ie.typeName)?(C(xe)?D(xe)&amp;amp;amp;&amp;amp;amp;Ie.typeName.startsWith(&amp;amp;quot;vec&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;(xe=ue[Ie.typeName](xe)):xe=ue[Ie.typeName](xe),Ce.notAProperty=xe.toGLSLBase(this.context),this.context.updateComponents(xe)):Object.entries(xe).forEach(([Me,nt])=&amp;amp;gt;{nt=dynamicNode(nt),Ce[Me]=nt.toGLSLBase(this.context),this.context.updateComponents(nt)}),this.context.ifs.forEach(Me=&amp;amp;gt;{if(Me.usedIn.length===0)return;let nt=Me.toGLSL(this.context);this.context.declarations.splice(Me.insertionPoint,0,nt)});let Ge=[`(${Te.join(&amp;amp;quot;, &amp;amp;quot;)}) {`,...this.context.declarations,`
   7469 <a href="#l7450" class="line" id="l7450">   7450</a> &lt;a href=&quot;#l7431&quot; class=&quot;line&quot; id=&quot;l7431&quot;&gt;   7431&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2331&amp;quot; id=&amp;quot;h4-0-2331&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  ${K.returnType.typeName} finalReturnValue;`];Object.entries(Ce).forEach(([Me,nt])=&amp;amp;gt;{let Gt=Ie.properties?`.${Me}`:&amp;amp;quot;&amp;amp;quot;;Ge.push(`  finalReturnValue${Gt} = ${nt};`)}),this.context.declarations=[];for(let Me in this.context.varyings){let nt=this.context.varyings[Me],Gt=[];nt.forEach(ft=&amp;amp;gt;{let{node:Ri,value:Bi}=ft;Gt.push(`  ${Ri.name} = ${Bi.toGLSLBase(this.context)};`),Gt.unshift(...this.context.declarations),Ri.timesChanged=0}),Ge.push(...Gt)}Ge.push(&amp;amp;quot;  return finalReturnValue;&amp;amp;quot;,&amp;amp;quot;}&amp;amp;quot;),this.output[ne]=Ge.join(`
   7470 <a href="#l7451" class="line" id="l7451">   7451</a> &lt;a href=&quot;#l7432&quot; class=&quot;line&quot; id=&quot;l7432&quot;&gt;   7432&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2332&amp;quot; id=&amp;quot;h4-0-2332&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+`),this.resetGLSLContext()},$[K.name]=window[K.name],window[K.name]=function(ve){r[K.name](ve)}}),this.cleanup=()=&amp;amp;gt;{for(let ne in $)window[ne]=$[ne]}}registerVarying(P,z){Array.isArray(this.context.varyings[P.name])||(this.context.varyings[P.name]=[]),this.context.varyings[P.name].push({node:P,value:z}),this.output.vertexDeclarations.add(`OUT ${P.type} ${P.name};`),this.output.fragmentDeclarations.add(`IN ${P.type} ${P.name};`)}resetGLSLContext(){this.uniformNodes.forEach(P=&amp;amp;gt;{P.usedIn=[],P.temporaryVariable=void 0}),this.context={id:0,getNextID(){return this.id++},declarations:[],varyings:[],ifs:[],updateComponents:function(P,z,$){if(P.componentsChanged){$||($=P.componentNames.map(()=&amp;amp;gt;!0));let ne=[];if(Z(P))P.componentNames.forEach((K,ve)=&amp;amp;gt;{if($[ve]&amp;amp;amp;&amp;amp;amp;P[K]!==P.originalValues[ve]){let ge=ue.float(P[K]),Te=`  ${P.temporaryVariable}.${K} = ${ge.toGLSLBase(this)};`;ne.push(Te)}});else{let K=P.componentNames.map(Te=&amp;amp;gt;P[Te]),ve=ue[P.type](K),ge=`  ${P.temporaryVariable} = ${ve.toGLSLBase(this)};`;ne.push(ge)}z?this.declarations.splice(z,0,...ne):this.declarations.push(...ne),P.componentsChanged=!1}}},this.uniformNodes=[]}}function Y(O){return N(O)?{node:O,isVector:!0,originalComponents:[...O.componentNames.map(P=&amp;amp;gt;O[P])],get currentComponents(){return O.componentNames.map(P=&amp;amp;gt;O[P])}}:{node:O,isVector:!1}}function Q(O){return O.map(P=&amp;amp;gt;Y(P))}function fe(O,P){return Array.isArray(O)||(O=[O]),O=O.flat(),O=O.map(z=&amp;amp;gt;N(z)?z.componentNames.map(ne=&amp;amp;gt;z[ne]):z).flat(),O.length===1&amp;amp;amp;&amp;amp;amp;!Z(O[0])&amp;amp;amp;&amp;amp;amp;(O=Array(P).fill(O[0])),O}function de(O){let P=[[&amp;amp;quot;x&amp;amp;quot;,&amp;amp;quot;y&amp;amp;quot;,&amp;amp;quot;z&amp;amp;quot;,&amp;amp;quot;w&amp;amp;quot;],[&amp;amp;quot;r&amp;amp;quot;,&amp;amp;quot;g&amp;amp;quot;,&amp;amp;quot;b&amp;amp;quot;,&amp;amp;quot;a&amp;amp;quot;],[&amp;amp;quot;s&amp;amp;quot;,&amp;amp;quot;t&amp;amp;quot;,&amp;amp;quot;p&amp;amp;quot;,&amp;amp;quot;q&amp;amp;quot;]].map(z=&amp;amp;gt;z.slice(0,O));return{get(z,$,ne){if($ in z)return Reflect.get(...arguments);for(let K of P)if([...$].every(ve=&amp;amp;gt;K.includes(ve))){if($.length===1)return z[P[0][K.indexOf($[0])]];let ve=[...$].map(Te=&amp;amp;gt;{let xe=K.indexOf(Te),Ie=P[0][xe];return z[Ie]}),ge=`vec${$.length}`;return ue[ge](ve)}},set(z,$,ne,K){for(let ve of P){let ge=[...$];if(ge.every(Te=&amp;amp;gt;ve.includes(Te))){let Te=Array.isArray(ne)?ne:Array($.length).fill(ne);return ge.forEach((xe,Ie)=&amp;amp;gt;{let Ce=ve.indexOf(xe),Ge=P[0][Ce];Reflect.set(z,Ge,Te[Ie],K)}),!0}}return Reflect.set(...arguments)}}}t.If=function(O,P){return new _(O,P)},t.instanceID=function(){return se(&amp;amp;quot;gl_InstanceID&amp;amp;quot;,&amp;amp;quot;int&amp;amp;quot;)},t.getTexture=function(...O){return ce(&amp;amp;quot;getTexture&amp;amp;quot;,O,{args:[&amp;amp;quot;sampler2D&amp;amp;quot;,&amp;amp;quot;vec2&amp;amp;quot;],returnType:&amp;amp;quot;vec4&amp;amp;quot;,isp5Function:!0})};let me={int:&amp;amp;quot;Int&amp;amp;quot;,float:&amp;amp;quot;Float&amp;amp;quot;,vec2:&amp;amp;quot;Vector2&amp;amp;quot;,vec3:&amp;amp;quot;Vector3&amp;amp;quot;,vec4:&amp;amp;quot;Vector4&amp;amp;quot;,sampler2D:&amp;amp;quot;Texture&amp;amp;quot;};function ie(O,P){if(O.type.startsWith(&amp;amp;quot;vec&amp;amp;quot;)||P){let z=parseInt(O.type.slice(3));O=new Proxy(O,de(z)),O.addVectorComponents()}return O}function ee(O,P,z,$){let ne;return z===&amp;amp;quot;%&amp;amp;quot;?ne=new w(O,P):ne=new v(O,P,z,$),ie(ne)}function se(O,P,z){let $=new d(O,P,z);return ie($)}function ce(O,P,z,$){let ne=new f(O,P,z,$);return ne=ie(ne),ne.dependsOn=Q(ne.args),ne.args.map(ve=&amp;amp;gt;ve.usedIn.filter(Te=&amp;amp;gt;j(Te)).map(Te=&amp;amp;gt;Te instanceof b?Te.parent:Te)).flat().forEach(ve=&amp;amp;gt;ve.usedIn.push(ne)),ne}let ue={int:O=&amp;amp;gt;new l(O),float:O=&amp;amp;gt;new c(O),vec2:O=&amp;amp;gt;ie(new p(O,&amp;amp;quot;vec2&amp;amp;quot;)),vec3:O=&amp;amp;gt;ie(new p(O,&amp;amp;quot;vec3&amp;amp;quot;)),vec4:O=&amp;amp;gt;ie(new p(O,&amp;amp;quot;vec4&amp;amp;quot;)),dynamicVector:function(O){let P=A(O);return this[`vec${P}`](O)}};for(let O in me){let P=me[O],z=`uniform${P}`;if(J.prototype[z]=function(...K){let[ve,...ge]=K;O.startsWith(&amp;amp;quot;vec&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!(ge[0]instanceof Function)?(ge=fe(ge,parseInt(O.slice(3))),this.output.uniforms[`${O} ${ve}`]=ge):this.output.uniforms[`${O} ${ve}`]=ge[0];let Te=se(ve,O,!1);return this.uniformNodes.push(Te),Te},t[z]=function(...K){return r[z](...K)},O===&amp;amp;quot;sampler2D&amp;amp;quot;)continue;let $=`varying${P}`;J.prototype[$]=function(K){return ie(new g(K,O,!1))},t[$]=function(K){return r[$](K)};let ne=t[O];t[O]=function(...K){if(r?.isGenerating)return O.startsWith(&amp;amp;quot;vec&amp;amp;quot;)?K=fe(K,parseInt(O.slice(3))):K=K[0],ue[O](K);if(ne)return ne.apply(this,K);i._friendlyError(`It looks like you&amp;amp;#39;ve called ${O} outside of a shader&amp;amp;#39;s modify() function.`)}}Object.entries({acos:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},acosh:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},asin:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},asinh:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},atan:[{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1}],atanh:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},cos:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},cosh:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},degrees:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},radians:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},sin:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},sinh:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},tan:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},tanh:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},abs:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},ceil:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},clamp:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},dFdx:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},dFdy:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},exp:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},exp2:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},floor:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},fma:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},fract:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},fwidth:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},inversesqrt:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},log:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},log2:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},max:[{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;float&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0}],min:[{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;float&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0}],mix:[{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;float&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1}],pow:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},round:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},roundEven:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},smoothstep:[{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},{args:[&amp;amp;quot;float&amp;amp;quot;,&amp;amp;quot;float&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1}],sqrt:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},step:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},trunc:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},cross:{args:[&amp;amp;quot;vec3&amp;amp;quot;,&amp;amp;quot;vec3&amp;amp;quot;],returnType:&amp;amp;quot;vec3&amp;amp;quot;,isp5Function:!0},distance:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;float&amp;amp;quot;,isp5Function:!0},dot:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;float&amp;amp;quot;,isp5Function:!0},faceforward:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},length:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;float&amp;amp;quot;,isp5Function:!1},normalize:{args:[&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!0},reflect:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},refract:{args:[&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;genType&amp;amp;quot;,&amp;amp;quot;float&amp;amp;quot;],returnType:&amp;amp;quot;genType&amp;amp;quot;,isp5Function:!1},texture:{args:[&amp;amp;quot;sampler2D&amp;amp;quot;,&amp;amp;quot;vec2&amp;amp;quot;],returnType:&amp;amp;quot;vec4&amp;amp;quot;,isp5Function:!0}}).forEach(([O,P])=&amp;amp;gt;{if(Array.isArray(P)?P[0].isp5Function:P.isp5Function){let $=t[O];t[O]=function(...ne){return r?.isGenerating?ce(O,ne,P):$.apply(this,ne)}}else t[O]=function(...$){if(r?.isGenerating)return new ce(O,$,P);i._friendlyError(`It looks like you&amp;amp;#39;ve called ${O} outside of a shader&amp;amp;#39;s modify() function.`)}})}typeof p5&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;&amp;amp;amp;&amp;amp;amp;p5.registerAddon(Yp);var n6=Se(Bt());var f6=Se(or());var d6=Se(ur());var _6=Se(lr());var D6=Se(Xs());var I6=Se(aa());var L6=Se(th());function Vy(i){Vc(i,i.prototype),ul(i,i.prototype),Kf(i,i.prototype),ll(i,i.prototype),Jf(i,i.prototype),Uc(i,i.prototype),ny(i,i.prototype),hc(i,i.prototype),lc(i,i.prototype),ac(i,i.prototype),uc(i,i.prototype),Sc(i,i.prototype),Gc(i,i.prototype),oc(i,i.prototype),io(i,i.prototype),no(i,i.prototype),Yp(i,i.prototype)}var q6=Se(Bt()),Z6=Se(Xs());var J6=Se(aa());function Uy(i){i.registerAddon(Qf),i.registerAddon(Mp)}var v9=Se(Bt());var A9=Se(or());var F9=Se(ur());var V9=Se(lr());var Gy=()=&amp;amp;gt;{if(typeof window._setupDone&amp;amp;lt;&amp;amp;quot;u&amp;amp;quot;){console.warn(&amp;amp;quot;p5.js seems to have been imported multiple times. Please remove the duplicate import&amp;amp;quot;);return}if(!window.mocha){let i=new Event(&amp;amp;quot;p5Ready&amp;amp;quot;);window.dispatchEvent(i),(window.setup&amp;amp;amp;&amp;amp;amp;typeof window.setup==&amp;amp;quot;function&amp;amp;quot;||window.draw&amp;amp;amp;&amp;amp;amp;typeof window.draw==&amp;amp;quot;function&amp;amp;quot;)&amp;amp;amp;&amp;amp;amp;!$e.instance&amp;amp;amp;&amp;amp;amp;new $e}},zy=()=&amp;amp;gt;new Promise((i,t)=&amp;amp;gt;{document.readyState===&amp;amp;quot;complete&amp;amp;quot;?i():window.addEventListener(&amp;amp;quot;load&amp;amp;quot;,i,!1)}),jy=typeof IS_MINIFIED&amp;amp;gt;&amp;amp;quot;u&amp;amp;quot;?S0():Promise.resolve();var EV=Se(Bt());var kV=Se(or());var LV=Se(ur());var HV=Se(lr());var k7=Se(Xs());var B7=Se(aa());var O7=Se(th());Wm($e);Zm($e);Ym($e);Eg($e);Sg($e);Ag($e);Dg($e);Fg($e);Tg($e);Ng($e);Ig($e);Vy($e);Uy($e);Promise.all([zy(),jy]).then(Gy);var HE=i=&amp;amp;gt;{i.setup=()=&amp;amp;gt;{i.createCanvas(400,400).parent(&amp;amp;quot;sketch-holder&amp;amp;quot;),i.background(220)},i.draw=()=&amp;amp;gt;{i.fill(0,102,204),i.ellipse(i.mouseX,i.mouseY,50,50)}};new $e(HE);})();
   7471 <a href="#l7452" class="line" id="l7452">   7452</a> &lt;a href=&quot;#l7433&quot; class=&quot;line&quot; id=&quot;l7433&quot;&gt;   7433&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2333&amp;quot; id=&amp;quot;h4-0-2333&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+/*! Bundled license information:
   7472 <a href="#l7453" class="line" id="l7453">   7453</a> &lt;a href=&quot;#l7434&quot; class=&quot;line&quot; id=&quot;l7434&quot;&gt;   7434&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2334&amp;quot; id=&amp;quot;h4-0-2334&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7473 <a href="#l7454" class="line" id="l7454">   7454</a> &lt;a href=&quot;#l7435&quot; class=&quot;line&quot; id=&quot;l7435&quot;&gt;   7435&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2335&amp;quot; id=&amp;quot;h4-0-2335&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+file-saver/FileSaver.js:
   7474 <a href="#l7455" class="line" id="l7455">   7455</a> &lt;a href=&quot;#l7436&quot; class=&quot;line&quot; id=&quot;l7436&quot;&gt;   7436&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2336&amp;quot; id=&amp;quot;h4-0-2336&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (*! @source http://purl.eligrey.com/github/FileSaver.js/blob/master/FileSaver.js *)
   7475 <a href="#l7456" class="line" id="l7456">   7456</a> &lt;a href=&quot;#l7437&quot; class=&quot;line&quot; id=&quot;l7437&quot;&gt;   7437&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2337&amp;quot; id=&amp;quot;h4-0-2337&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7476 <a href="#l7457" class="line" id="l7457">   7457</a> &lt;a href=&quot;#l7438&quot; class=&quot;line&quot; id=&quot;l7438&quot;&gt;   7438&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2338&amp;quot; id=&amp;quot;h4-0-2338&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+pako/dist/pako.esm.mjs:
   7477 <a href="#l7458" class="line" id="l7458">   7458</a> &lt;a href=&quot;#l7439&quot; class=&quot;line&quot; id=&quot;l7439&quot;&gt;   7439&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2339&amp;quot; id=&amp;quot;h4-0-2339&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  (*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)
   7478 <a href="#l7459" class="line" id="l7459">   7459</a> &lt;a href=&quot;#l7440&quot; class=&quot;line&quot; id=&quot;l7440&quot;&gt;   7440&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h4-0-2340&amp;quot; id=&amp;quot;h4-0-2340&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+*/
   7479 <a href="#l7460" class="line" id="l7460">   7460</a> &lt;a href=&quot;#l7441&quot; class=&quot;line&quot; id=&quot;l7441&quot;&gt;   7441&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;b&amp;gt;diff --git a/&amp;lt;a id=&amp;quot;h5&amp;quot; href=&amp;quot;../file/src/js/r3f.jsx.html&amp;quot;&amp;gt;src/js/r3f.jsx&amp;lt;/a&amp;gt; b/&amp;lt;a href=&amp;quot;../file/src/js/r3f.jsx.html&amp;quot;&amp;gt;src/js/r3f.jsx&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;
   7480 <a href="#l7461" class="line" id="l7461">   7461</a> &lt;a href=&quot;#l7442&quot; class=&quot;line&quot; id=&quot;l7442&quot;&gt;   7442&lt;/a&gt; &amp;lt;a href=&amp;quot;#h5-0&amp;quot; id=&amp;quot;h5-0&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -0,0 +1,40 @@
   7481 <a href="#l7462" class="line" id="l7462">   7462</a> &lt;a href=&quot;#l7443&quot; class=&quot;line&quot; id=&quot;l7443&quot;&gt;   7443&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-0&amp;quot; id=&amp;quot;h5-0-0&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+import React, { useRef } from &amp;amp;quot;react&amp;amp;quot;;
   7482 <a href="#l7463" class="line" id="l7463">   7463</a> &lt;a href=&quot;#l7444&quot; class=&quot;line&quot; id=&quot;l7444&quot;&gt;   7444&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-1&amp;quot; id=&amp;quot;h5-0-1&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+import { createRoot } from &amp;amp;quot;react-dom/client&amp;amp;quot;;
   7483 <a href="#l7464" class="line" id="l7464">   7464</a> &lt;a href=&quot;#l7445&quot; class=&quot;line&quot; id=&quot;l7445&quot;&gt;   7445&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-2&amp;quot; id=&amp;quot;h5-0-2&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+import { Canvas, useFrame } from &amp;amp;quot;@react-three/fiber&amp;amp;quot;;
   7484 <a href="#l7465" class="line" id="l7465">   7465</a> &lt;a href=&quot;#l7446&quot; class=&quot;line&quot; id=&quot;l7446&quot;&gt;   7446&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-3&amp;quot; id=&amp;quot;h5-0-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+import * as THREE from &amp;amp;quot;three&amp;amp;quot;;
   7485 <a href="#l7466" class="line" id="l7466">   7466</a> &lt;a href=&quot;#l7447&quot; class=&quot;line&quot; id=&quot;l7447&quot;&gt;   7447&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-4&amp;quot; id=&amp;quot;h5-0-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7486 <a href="#l7467" class="line" id="l7467">   7467</a> &lt;a href=&quot;#l7448&quot; class=&quot;line&quot; id=&quot;l7448&quot;&gt;   7448&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-5&amp;quot; id=&amp;quot;h5-0-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+function RotatingBox() {
   7487 <a href="#l7468" class="line" id="l7468">   7468</a> &lt;a href=&quot;#l7449&quot; class=&quot;line&quot; id=&quot;l7449&quot;&gt;   7449&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-6&amp;quot; id=&amp;quot;h5-0-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  const meshRef = useRef();
   7488 <a href="#l7469" class="line" id="l7469">   7469</a> &lt;a href=&quot;#l7450&quot; class=&quot;line&quot; id=&quot;l7450&quot;&gt;   7450&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-7&amp;quot; id=&amp;quot;h5-0-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7489 <a href="#l7470" class="line" id="l7470">   7470</a> &lt;a href=&quot;#l7451&quot; class=&quot;line&quot; id=&quot;l7451&quot;&gt;   7451&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-8&amp;quot; id=&amp;quot;h5-0-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  useFrame(() =&amp;amp;gt; {
   7490 <a href="#l7471" class="line" id="l7471">   7471</a> &lt;a href=&quot;#l7452&quot; class=&quot;line&quot; id=&quot;l7452&quot;&gt;   7452&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-9&amp;quot; id=&amp;quot;h5-0-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    if (meshRef.current) {
   7491 <a href="#l7472" class="line" id="l7472">   7472</a> &lt;a href=&quot;#l7453&quot; class=&quot;line&quot; id=&quot;l7453&quot;&gt;   7453&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-10&amp;quot; id=&amp;quot;h5-0-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      meshRef.current.rotation.y += 0.01;
   7492 <a href="#l7473" class="line" id="l7473">   7473</a> &lt;a href=&quot;#l7454&quot; class=&quot;line&quot; id=&quot;l7454&quot;&gt;   7454&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-11&amp;quot; id=&amp;quot;h5-0-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    }
   7493 <a href="#l7474" class="line" id="l7474">   7474</a> &lt;a href=&quot;#l7455&quot; class=&quot;line&quot; id=&quot;l7455&quot;&gt;   7455&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-12&amp;quot; id=&amp;quot;h5-0-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  });
   7494 <a href="#l7475" class="line" id="l7475">   7475</a> &lt;a href=&quot;#l7456&quot; class=&quot;line&quot; id=&quot;l7456&quot;&gt;   7456&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-13&amp;quot; id=&amp;quot;h5-0-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7495 <a href="#l7476" class="line" id="l7476">   7476</a> &lt;a href=&quot;#l7457&quot; class=&quot;line&quot; id=&quot;l7457&quot;&gt;   7457&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-14&amp;quot; id=&amp;quot;h5-0-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return (
   7496 <a href="#l7477" class="line" id="l7477">   7477</a> &lt;a href=&quot;#l7458&quot; class=&quot;line&quot; id=&quot;l7458&quot;&gt;   7458&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-15&amp;quot; id=&amp;quot;h5-0-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;lt;mesh ref={meshRef} position={[0, 0, 0]}&amp;amp;gt;
   7497 <a href="#l7478" class="line" id="l7478">   7478</a> &lt;a href=&quot;#l7459&quot; class=&quot;line&quot; id=&quot;l7459&quot;&gt;   7459&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-16&amp;quot; id=&amp;quot;h5-0-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;lt;boxGeometry args={[1, 1, 1]} /&amp;amp;gt;
   7498 <a href="#l7479" class="line" id="l7479">   7479</a> &lt;a href=&quot;#l7460&quot; class=&quot;line&quot; id=&quot;l7460&quot;&gt;   7460&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-17&amp;quot; id=&amp;quot;h5-0-17&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;lt;meshStandardMaterial color={&amp;amp;quot;tomato&amp;amp;quot;} /&amp;amp;gt;
   7499 <a href="#l7480" class="line" id="l7480">   7480</a> &lt;a href=&quot;#l7461&quot; class=&quot;line&quot; id=&quot;l7461&quot;&gt;   7461&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-18&amp;quot; id=&amp;quot;h5-0-18&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;lt;/mesh&amp;amp;gt;
   7500 <a href="#l7481" class="line" id="l7481">   7481</a> &lt;a href=&quot;#l7462&quot; class=&quot;line&quot; id=&quot;l7462&quot;&gt;   7462&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-19&amp;quot; id=&amp;quot;h5-0-19&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  );
   7501 <a href="#l7482" class="line" id="l7482">   7482</a> &lt;a href=&quot;#l7463&quot; class=&quot;line&quot; id=&quot;l7463&quot;&gt;   7463&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-20&amp;quot; id=&amp;quot;h5-0-20&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7502 <a href="#l7483" class="line" id="l7483">   7483</a> &lt;a href=&quot;#l7464&quot; class=&quot;line&quot; id=&quot;l7464&quot;&gt;   7464&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-21&amp;quot; id=&amp;quot;h5-0-21&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7503 <a href="#l7484" class="line" id="l7484">   7484</a> &lt;a href=&quot;#l7465&quot; class=&quot;line&quot; id=&quot;l7465&quot;&gt;   7465&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-22&amp;quot; id=&amp;quot;h5-0-22&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+function Scene() {
   7504 <a href="#l7485" class="line" id="l7485">   7485</a> &lt;a href=&quot;#l7466&quot; class=&quot;line&quot; id=&quot;l7466&quot;&gt;   7466&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-23&amp;quot; id=&amp;quot;h5-0-23&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  return (
   7505 <a href="#l7486" class="line" id="l7486">   7486</a> &lt;a href=&quot;#l7467&quot; class=&quot;line&quot; id=&quot;l7467&quot;&gt;   7467&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-24&amp;quot; id=&amp;quot;h5-0-24&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;lt;Canvas
   7506 <a href="#l7487" class="line" id="l7487">   7487</a> &lt;a href=&quot;#l7468&quot; class=&quot;line&quot; id=&quot;l7468&quot;&gt;   7468&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-25&amp;quot; id=&amp;quot;h5-0-25&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      camera={{ position: [3, 2, 5], fov: 50 }}
   7507 <a href="#l7488" class="line" id="l7488">   7488</a> &lt;a href=&quot;#l7469&quot; class=&quot;line&quot; id=&quot;l7469&quot;&gt;   7469&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-26&amp;quot; id=&amp;quot;h5-0-26&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      style={{ width: &amp;amp;quot;100%&amp;amp;quot;, height: &amp;amp;quot;100%&amp;amp;quot; }}
   7508 <a href="#l7489" class="line" id="l7489">   7489</a> &lt;a href=&quot;#l7470&quot; class=&quot;line&quot; id=&quot;l7470&quot;&gt;   7470&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-27&amp;quot; id=&amp;quot;h5-0-27&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;gt;
   7509 <a href="#l7490" class="line" id="l7490">   7490</a> &lt;a href=&quot;#l7471&quot; class=&quot;line&quot; id=&quot;l7471&quot;&gt;   7471&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-28&amp;quot; id=&amp;quot;h5-0-28&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;lt;ambientLight intensity={0.4} /&amp;amp;gt;
   7510 <a href="#l7491" class="line" id="l7491">   7491</a> &lt;a href=&quot;#l7472&quot; class=&quot;line&quot; id=&quot;l7472&quot;&gt;   7472&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-29&amp;quot; id=&amp;quot;h5-0-29&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;lt;directionalLight position={[5, 5, 5]} intensity={0.8} /&amp;amp;gt;
   7511 <a href="#l7492" class="line" id="l7492">   7492</a> &lt;a href=&quot;#l7473&quot; class=&quot;line&quot; id=&quot;l7473&quot;&gt;   7473&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-30&amp;quot; id=&amp;quot;h5-0-30&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+      &amp;amp;lt;RotatingBox /&amp;amp;gt;
   7512 <a href="#l7493" class="line" id="l7493">   7493</a> &lt;a href=&quot;#l7474&quot; class=&quot;line&quot; id=&quot;l7474&quot;&gt;   7474&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-31&amp;quot; id=&amp;quot;h5-0-31&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    &amp;amp;lt;/Canvas&amp;amp;gt;
   7513 <a href="#l7494" class="line" id="l7494">   7494</a> &lt;a href=&quot;#l7475&quot; class=&quot;line&quot; id=&quot;l7475&quot;&gt;   7475&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-32&amp;quot; id=&amp;quot;h5-0-32&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  );
   7514 <a href="#l7495" class="line" id="l7495">   7495</a> &lt;a href=&quot;#l7476&quot; class=&quot;line&quot; id=&quot;l7476&quot;&gt;   7476&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-33&amp;quot; id=&amp;quot;h5-0-33&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7515 <a href="#l7496" class="line" id="l7496">   7496</a> &lt;a href=&quot;#l7477&quot; class=&quot;line&quot; id=&quot;l7477&quot;&gt;   7477&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-34&amp;quot; id=&amp;quot;h5-0-34&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7516 <a href="#l7497" class="line" id="l7497">   7497</a> &lt;a href=&quot;#l7478&quot; class=&quot;line&quot; id=&quot;l7478&quot;&gt;   7478&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-35&amp;quot; id=&amp;quot;h5-0-35&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const container = document.getElementById(&amp;amp;quot;react-root&amp;amp;quot;);
   7517 <a href="#l7498" class="line" id="l7498">   7498</a> &lt;a href=&quot;#l7479&quot; class=&quot;line&quot; id=&quot;l7479&quot;&gt;   7479&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-36&amp;quot; id=&amp;quot;h5-0-36&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+if (container) {
   7518 <a href="#l7499" class="line" id="l7499">   7499</a> &lt;a href=&quot;#l7480&quot; class=&quot;line&quot; id=&quot;l7480&quot;&gt;   7480&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-37&amp;quot; id=&amp;quot;h5-0-37&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  const root = createRoot(container);
   7519 <a href="#l7500" class="line" id="l7500">   7500</a> &lt;a href=&quot;#l7481&quot; class=&quot;line&quot; id=&quot;l7481&quot;&gt;   7481&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-38&amp;quot; id=&amp;quot;h5-0-38&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  root.render(&amp;amp;lt;Scene /&amp;amp;gt;);
   7520 <a href="#l7501" class="line" id="l7501">   7501</a> &lt;a href=&quot;#l7482&quot; class=&quot;line&quot; id=&quot;l7482&quot;&gt;   7482&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h5-0-39&amp;quot; id=&amp;quot;h5-0-39&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+}
   7521 <a href="#l7502" class="line" id="l7502">   7502</a> &lt;a href=&quot;#l7483&quot; class=&quot;line&quot; id=&quot;l7483&quot;&gt;   7483&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;b&amp;gt;diff --git a/&amp;lt;a id=&amp;quot;h6&amp;quot; href=&amp;quot;../file/src/js/sketch.js.html&amp;quot;&amp;gt;src/js/sketch.js&amp;lt;/a&amp;gt; b/&amp;lt;a href=&amp;quot;../file/src/js/sketch.js.html&amp;quot;&amp;gt;src/js/sketch.js&amp;lt;/a&amp;gt;&amp;lt;/b&amp;gt;
   7522 <a href="#l7503" class="line" id="l7503">   7503</a> &lt;a href=&quot;#l7484&quot; class=&quot;line&quot; id=&quot;l7484&quot;&gt;   7484&lt;/a&gt; &amp;lt;a href=&amp;quot;#h6-0&amp;quot; id=&amp;quot;h6-0&amp;quot; class=&amp;quot;h&amp;quot;&amp;gt;@@ -0,0 +1,17 @@
   7523 <a href="#l7504" class="line" id="l7504">   7504</a> &lt;a href=&quot;#l7485&quot; class=&quot;line&quot; id=&quot;l7485&quot;&gt;   7485&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-0&amp;quot; id=&amp;quot;h6-0-0&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+import p5 from &amp;amp;quot;p5&amp;amp;quot;;
   7524 <a href="#l7505" class="line" id="l7505">   7505</a> &lt;a href=&quot;#l7486&quot; class=&quot;line&quot; id=&quot;l7486&quot;&gt;   7486&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-1&amp;quot; id=&amp;quot;h6-0-1&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7525 <a href="#l7506" class="line" id="l7506">   7506</a> &lt;a href=&quot;#l7487&quot; class=&quot;line&quot; id=&quot;l7487&quot;&gt;   7487&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-2&amp;quot; id=&amp;quot;h6-0-2&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+const sketch = (p) =&amp;amp;gt; {
   7526 <a href="#l7507" class="line" id="l7507">   7507</a> &lt;a href=&quot;#l7488&quot; class=&quot;line&quot; id=&quot;l7488&quot;&gt;   7488&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-3&amp;quot; id=&amp;quot;h6-0-3&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  p.setup = () =&amp;amp;gt; {
   7527 <a href="#l7508" class="line" id="l7508">   7508</a> &lt;a href=&quot;#l7489&quot; class=&quot;line&quot; id=&quot;l7489&quot;&gt;   7489&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-4&amp;quot; id=&amp;quot;h6-0-4&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    const canvas = p.createCanvas(400, 400);
   7528 <a href="#l7509" class="line" id="l7509">   7509</a> &lt;a href=&quot;#l7490&quot; class=&quot;line&quot; id=&quot;l7490&quot;&gt;   7490&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-5&amp;quot; id=&amp;quot;h6-0-5&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    canvas.parent(&amp;amp;quot;sketch-holder&amp;amp;quot;);
   7529 <a href="#l7510" class="line" id="l7510">   7510</a> &lt;a href=&quot;#l7491&quot; class=&quot;line&quot; id=&quot;l7491&quot;&gt;   7491&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-6&amp;quot; id=&amp;quot;h6-0-6&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    p.background(220);
   7530 <a href="#l7511" class="line" id="l7511">   7511</a> &lt;a href=&quot;#l7492&quot; class=&quot;line&quot; id=&quot;l7492&quot;&gt;   7492&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-7&amp;quot; id=&amp;quot;h6-0-7&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  };
   7531 <a href="#l7512" class="line" id="l7512">   7512</a> &lt;a href=&quot;#l7493&quot; class=&quot;line&quot; id=&quot;l7493&quot;&gt;   7493&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-8&amp;quot; id=&amp;quot;h6-0-8&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7532 <a href="#l7513" class="line" id="l7513">   7513</a> &lt;a href=&quot;#l7494&quot; class=&quot;line&quot; id=&quot;l7494&quot;&gt;   7494&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-9&amp;quot; id=&amp;quot;h6-0-9&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  p.draw = () =&amp;amp;gt; {
   7533 <a href="#l7514" class="line" id="l7514">   7514</a> &lt;a href=&quot;#l7495&quot; class=&quot;line&quot; id=&quot;l7495&quot;&gt;   7495&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-10&amp;quot; id=&amp;quot;h6-0-10&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    p.fill(0, 102, 204);
   7534 <a href="#l7515" class="line" id="l7515">   7515</a> &lt;a href=&quot;#l7496&quot; class=&quot;line&quot; id=&quot;l7496&quot;&gt;   7496&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-11&amp;quot; id=&amp;quot;h6-0-11&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+    p.ellipse(p.mouseX, p.mouseY, 50, 50);
   7535 <a href="#l7516" class="line" id="l7516">   7516</a> &lt;a href=&quot;#l7497&quot; class=&quot;line&quot; id=&quot;l7497&quot;&gt;   7497&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-12&amp;quot; id=&amp;quot;h6-0-12&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+  };
   7536 <a href="#l7517" class="line" id="l7517">   7517</a> &lt;a href=&quot;#l7498&quot; class=&quot;line&quot; id=&quot;l7498&quot;&gt;   7498&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-13&amp;quot; id=&amp;quot;h6-0-13&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+};
   7537 <a href="#l7518" class="line" id="l7518">   7518</a> &lt;a href=&quot;#l7499&quot; class=&quot;line&quot; id=&quot;l7499&quot;&gt;   7499&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-14&amp;quot; id=&amp;quot;h6-0-14&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7538 <a href="#l7519" class="line" id="l7519">   7519</a> &lt;a href=&quot;#l7500&quot; class=&quot;line&quot; id=&quot;l7500&quot;&gt;   7500&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-15&amp;quot; id=&amp;quot;h6-0-15&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+new p5(sketch);
   7539 <a href="#l7520" class="line" id="l7520">   7520</a> &lt;a href=&quot;#l7501&quot; class=&quot;line&quot; id=&quot;l7501&quot;&gt;   7501&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;a href=&amp;quot;#h6-0-16&amp;quot; id=&amp;quot;h6-0-16&amp;quot; class=&amp;quot;i&amp;quot;&amp;gt;+
   7540 <a href="#l7521" class="line" id="l7521">   7521</a> &lt;a href=&quot;#l7502&quot; class=&quot;line&quot; id=&quot;l7502&quot;&gt;   7502&lt;/a&gt; &amp;lt;/a&amp;gt;&amp;lt;/pre&amp;gt;
   7541 <a href="#l7522" class="line" id="l7522">   7522</a> &lt;a href=&quot;#l7503&quot; class=&quot;line&quot; id=&quot;l7503&quot;&gt;   7503&lt;/a&gt; &amp;lt;/div&amp;gt;
   7542 <a href="#l7523" class="line" id="l7523">   7523</a> &lt;a href=&quot;#l7504&quot; class=&quot;line&quot; id=&quot;l7504&quot;&gt;   7504&lt;/a&gt; &amp;lt;/body&amp;gt;
   7543 <a href="#l7524" class="line" id="l7524">   7524</a> &lt;a href=&quot;#l7505&quot; class=&quot;line&quot; id=&quot;l7505&quot;&gt;   7505&lt;/a&gt; &amp;lt;/html&amp;gt;
   7544 <a href="#l7525" class="line" id="l7525">   7525</a> &lt;/pre&gt;
   7545 <a href="#l7526" class="line" id="l7526">   7526</a> &lt;/div&gt;
   7546 <a href="#l7527" class="line" id="l7527">   7527</a> &lt;/body&gt;
   7547 <a href="#l7528" class="line" id="l7528">   7528</a> &lt;/html&gt;
   7548 </pre>
   7549 </div>
   7550 </body>
   7551 </html>